您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么在pgsql中手動觸發歸檔,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
pg10.0之前:
select pg_switch_xlog();
pg10.0之后:
select pg_switch_wal();
備注:執行 pg_switch_xlog() 后,WAL 會切換到新的日志,這時會將老的 WAL日志歸檔。
兩種情況:
①WAL 日志寫滿后觸發歸檔。
wal日志被寫滿后會觸發歸檔,wal日志默認是16MB,這個值可以在編譯PostgreSQL時通過參數"--with-wal-segsize"設置,編譯后不能修改。
②archive_timeout時間控制。
可以設置archive超時參數 archive_timeout ,假如設置archive_timeout=60,那么每 60s , 會觸發一次 WAL 日志切換,同時觸發日志歸檔,這里有個隱含的假設: 當前 WAL 日志中仍有未歸檔的WAL。
補充:postgresql開啟歸檔日志
修改postgresql的配置文件(postgresql.conf)
wal_level=hot_standby archive_mode =on archive_command ='DATE=`date +%Y%m%d`;DIR="/home/postgres/arch/$DATE";(test -d $DIR || mkdir -p $DIR)&& cp %p $DIR/%f'
ps:%p 是指相對路徑 %f是指文件名
創建歸檔路徑
mkdir -p /home/postgres/arch chown -R postgres:postgres /home/postgres/arch
重啟數據庫
驗證歸檔是否正常
postgres=# checkpoint; CHECKPOINT postgres=# select pg_switch_xlog(); pg_switch_xlog ---------------- 1/760000E8 (1 row) postgres@ubuntu:~$ cd /home/postgres/data/data_1999/arch/ postgres@ubuntu:~/data/data_1999/arch$ ls 20150603 postgres@ubuntu:~/data/data_1999/arch$ cd 20150603/ postgres@ubuntu:~/data/data_1999/arch/20150603$ ls 000000010000000100000074 000000010000000100000075 000000010000000100000076
看完上述內容,你們對怎么在pgsql中手動觸發歸檔有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。