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%d
postgresql
#壓縮日誌 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;
能夠看到數據還在