方法:
pg10.0之前:
select pg_switch_xlog();
pg10.0之后:
select pg_switch_wal();
備注:執(zhí)行 pg_switch_xlog() 后,WAL 會(huì)切換到新的日志,這時(shí)會(huì)將老的 WAL日志歸檔。
除了手動(dòng)觸發(fā)歸檔,還有什么情況下,pg會(huì)進(jìn)行歸檔?
兩種情況:
①WAL 日志寫滿后觸發(fā)歸檔。
wal日志被寫滿后會(huì)觸發(fā)歸檔,wal日志默認(rèn)是16MB,這個(gè)值可以在編譯PostgreSQL時(shí)通過(guò)參數(shù)"--with-wal-segsize"設(shè)置,編譯后不能修改。
②archive_timeout時(shí)間控制。
可以設(shè)置archive超時(shí)參數(shù) archive_timeout ,假如設(shè)置archive_timeout=60,那么每 60s , 會(huì)觸發(fā)一次 WAL 日志切換,同時(shí)觸發(fā)日志歸檔,這里有個(gè)隱含的假設(shè): 當(dāng)前 WAL 日志中仍有未歸檔的WAL。
補(bǔ)充:postgresql開(kāi)啟歸檔日志
步驟一:
修改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 是指相對(duì)路徑 %f是指文件名
步驟二:
創(chuàng)建歸檔路徑
mkdir -p /home/postgres/arch
chown -R postgres:postgres /home/postgres/arch
步驟三:
重啟數(shù)據(jù)庫(kù)
步驟四:
驗(yàn)證歸檔是否正常
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
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- pgsql查詢優(yōu)化之模糊查詢實(shí)例詳解
- Postgresql 存儲(chǔ)過(guò)程(plpgsql)兩層for循環(huán)的操作
- pgsql之create user與create role的區(qū)別介紹
- pgsql之pg_stat_replication的使用詳解
- pgsql 如何刪除仍有活動(dòng)鏈接的數(shù)據(jù)庫(kù)
- pgsql的UUID生成函數(shù)實(shí)例
- pgsql 實(shí)現(xiàn)分頁(yè)查詢方式