• PostgreSQL归档日志 手动触发归档 select pg_switch_xlog()


    (转,做记录)

    一 环境信息
    --1.1 PostgreSQL 版本
    9.3.0

    --1.2 postgresql.conf
    wal_level = hot_standby
    archive_mode = on
    archive_command = 'test ! -f /archive/pg93/archive_active || cp %p /archive/pg93/%f'

    --1.3 归档目录
    [pg93@redhatB pg93]$ pwd
    /archive/pg93

    [pg93@redhatB pg93]$ ll
    total 32M
    -rw-------. 1 pg93 pg93 16M Oct 16 11:05 00000001000000000000007A
    -rw-------. 1 pg93 pg93 16M Oct 16 11:07 00000001000000000000007B
    -rw-rw-r--. 1 pg93 pg93 0 Oct 16 11:05 archive_active --归档标识文件
    备注:归档目录为 "/archive/pg93",归档脚本为 archive_command 设置的内容,回到本文的问题:
    什么情况下会触发归档? 经观察只要发生了 WAL 日志切换时,就会触发归档,更进一步分析,
    目前想到了以下三种切换 WAL 日志的方法。

    方法一:手动切换 WAL 日志
    PostgreSQL 提供 pg_switch_xlog() 函数可以手工切换 WAL 日志,如下:

    --手动归档
    [pg93@redhatB ~]$ psql
    shpsql (9.3.0)
    Type "help" for help.

    postgres=# select pg_switch_xlog();
    pg_switch_xlog
    ----------------
    0/87000000
    (1 row)
    备注:执行 pg_switch_xlog() 后,WAL 会切换到新的日志,这时会将老的 WAL日志归档,这里归档到
    /archive/pg93 目录。

    方法二:WAL 日志写满后触发归档
    WAL 日志被写满后会触发归档,文档在说明配置参数 archive_command 时的第一句说就说明了这点,
    WAL 日志文件默认为 16MB,这个值可以在编译 PostgreSQL 时通过参数 "--with-wal-segsize" 更改,编
    译后不能修改。

    方法三:设置 archive_timeout

    另外可以设置archive 超时参数 archive_timeout ,假如设置 archive_timeout=60 ,那么每 60 s ,
    会触发一次 WAL 日志切换,同时触发日志归档,这里有个隐含的假设: 当前 WAL 日志中仍有未归档的 WAL



    自己的实际配置:

      wal_level = archive
      archive_mode = on
      archive_command = 'test ! -f /usr/local/pgsql/archive_xlog/%f && cp %p /usr/local/pgsql/archive_xlog/%f'



  • 相关阅读:
    鱼站追踪记
    使用sqlmap对进行php+mysql注入实战
    Python黑客——快速编写信息收集器
    Visual Studio 2015 Update 1 安装到最后 KB3022398 错误解决方法
    ACdreamoj 1011(树状数组维护字符串hash前缀和)
    iOS开发--Mac下server搭建
    2.oracle分页,找到员工表中薪水大于本部门平均薪水的员工
    Android面试题3之描写叙述下Android的系统架构
    OpenCV入门笔记(三) 图片处理
    全民Scheme(1):数字游戏
  • 原文地址:https://www.cnblogs.com/kuang17/p/6994068.html
Copyright © 2020-2023  润新知