当前位置:Gxlcms > 数据库问题 > postgresql如何维护WAL日志/归档日志

postgresql如何维护WAL日志/归档日志

时间:2021-07-01 10:21:17 帮助过:245人阅读

. 参数max_wal_size/min_wal_size 9.5以前: (2 + checkpoint_completion_target) * checkpoint_segments + 1 9.5:PostgreSQL 9.5 将废弃checkpoint_segments 参数, 并引入max_wal_size 和 min_wal_size 参数, 通过max_wal_size和checkpoint_completion_target 参数来控制产生多少个XLOG后触发检查点, 通过min_wal_size和max_wal_size参数来控制哪些XLOG可以循环使用。 2. 参数wal_keep_segments 在流复制的环境中。使用流复制建好备库,如果备库由于某些原因接收日志较慢。导致备库还未接收到。就被覆盖了。导致主备无法同步。这个需要重建备库。 避免这种情况提供了该参数。每个日志文件大小16M。如果参数设置64. 占用大概64×16=1GB的空间。根据实际环境设置。 3. pg_resetxlog 在前面参数设置合理的话。是用不到pg_resetxlog命令。 使用案例参考: https://my.oschina.net/Kenyon/blog/101432 [postgres@postgres128 ~]$ pg_resetxlog -? pg_resetxlog resets the PostgreSQL transaction log. Usage: pg_resetxlog [OPTION]... DATADIR Options: -c XID,XID set oldest and newest transactions bearing commit timestamp (zero in either value means no change) [-D] DATADIR data directory -e XIDEPOCH set next transaction ID epoch -f force update to be done -l XLOGFILE force minimum WAL starting location for new transaction log -m MXID,MXID set next and oldest multitransaction ID -n no update, just show what would be done (for testing) -o OID set next OID -O OFFSET set next multitransaction offset -V, --version output version information, then exit -x XID set next transaction ID -?, --help show this help, then exit Report bugs to <pgsql-bugs@postgresql.org>.

归档日志维护

1. pg_archivecleanup清理归档日志。
[postgres@postgres128 ~]$ pg_archivecleanup -?
pg_archivecleanup removes older WAL files from PostgreSQL archives.

Usage:
  pg_archivecleanup [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE

Options:
  -d             generate debug output (verbose mode)
  -n             dry run, show the names of the files that would be removed
  -V, --version  output version information, then exit
  -x EXT         clean up files if they have this extension
  -?, --help     show this help, then exit

For use as archive_cleanup_command in recovery.conf when standby_mode = on:
  archive_cleanup_command = pg_archivecleanup [OPTION]... ARCHIVELOCATION %r
e.g.
  archive_cleanup_command = pg_archivecleanup /mnt/server/archiverdir %r

Or for use as a standalone archive cleaner:
e.g.
  pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010.00000020.backup

1.1 当主库不断把WAL日志拷贝到备库。这个时候需要清理。在recovery.conf可以配置  
e.g.   archive_cleanup_command = pg_archivecleanup /mnt/server/archiverdir %r
1.2 可以收到执行命令。
e.g.  pg_archivecleanup /home/postgres/arch/ 000000010000000000000009
在归档目录/home/postgres/arch/ 把000000010000000000000009之前的日志都清理。

2. pg_rman备份
参考博客 http://www.cnblogs.com/lottu/p/7490615.html
在pg_rman备份保留策略中。在每天都备份。可以清理归档日志。
对流复制环境中。备份一般是在备库。可以把归档日志传送到备库中。
  --keep-arclog-files=NUM   keep NUM of archived WAL
  --keep-arclog-days=DAY    keep archived WAL modified in DAY days
e.g 保留归档日志个数10。或者保留10天内的归档日志。 
KEEP_ARCLOG_FILES = 10  
KEEP_ARCLOG_DAYS = 10   
在备份信息中会产生以下信息。
INFO: start deleting old archived WAL files from ARCLOG_PATH (keep files = 10, keep days = 10)

 

postgresql如何维护WAL日志/归档日志

标签:-o   arch   targe   nbsp   nim   amp   16进制   segment   如何   

人气教程排行