postgersql日誌備份和還原

1.日誌備份 接着課程以前的環境繼續配置,因爲本人的data的目錄在/usr/local/pgsql/data。 cd /usr/local/pgsql/data 直接進入到data目錄下的postgresql.conf進行配置, %p表示xlog文件名$PGDATA的相對路徑, 如pg_xlog/00000001000000190000007D %f 表示xlog文件名, 如00000001000000190000007Dsql

archive_command = 'DATE=date +%Y%m%d; DIR="home/arch/$DATE"; (test -d $DIR || mkdir -p $DIR) && cp /usr/local/pgsql/data/%p $DIR/%f'數據庫

輸入圖片說明

wal_level = logicalvim

輸入圖片說明 以後就可登陸在命令行下執行 插入測試數據 create table t10(id int); insert into t10 select generate_series(1,10);post

執行 checkpoint; select pg_switch_xlog();測試

輸入圖片說明 在data目錄下面的pg_xlog能夠看到相關產地日誌文件 輸入圖片說明命令行

在data下面的home/arch有產出當天的複製文件rest

輸入圖片說明 #執行熱備 /usr/local/pgsql/bin/psql -c"select pg_start_backup('hot_backup');"日誌

#對日誌名稱進行修改 DATE=date +%Y%m%dpostgresql

#壓縮日誌 tar -cf /usr/local/pgsql/data/home/arch/$DATE.backup.tar /usr/local/pgsql/data/code

#中止熱備 /usr/local/pgsql/bin/psql -c "select pg_stop_backup();"

#追加中止以後日誌到壓縮包 tar -rf /usr/local/pgsql/data/home/arch/$DATE.backup.tar /usr/local/pgsql/data/home/arch/$DATE/

輸入圖片說明

2.備份還原 用postgres用戶登陸,而後進行如下操做,果真所有刪除data,直接用直接備份的壓縮包還原便可。我是直接刪除日誌,根據日誌備份進行還原

關閉數據庫 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile stop

清空/data/pg_xlog/目錄下全部文件 rm –r /usr/local/pgsql/data/pg_xlog/

建立/pg_xlog/及其下面的archive_status目錄 mkdir /usr/local/pgsql/data/pg_xlog/ mkdir /usr/local/pgsql/data/pg_xlog/archive_status

在/data/目錄下建立recovery.conf vim /usr/local/pgsql/data/recovery.conf,編輯內容,進行保存 restore_command = 'cp /usr/local/pgsql/data/home/arch/20161211/%f %p'

啓動數據庫 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

查詢數據 select * from t10;

輸入圖片說明 能夠看到數據還在

相關文章
相關標籤/搜索