归档日志

归档日志是非活动的WAL日志备份。通过使用归档日志,可以保留所有WAL日志的历史记录,当数据库处于ARCHIVELOG模式并进行日志切换时,后台进程archiver process会将WAL日志的内容保存到归档日志中,当数据库出现介质失败时,使用数据文件备份、归档日志、在线WAL日志可以完全恢复数据库。

什么情况下会触发WAL日志归档?

  1. 手动切换时,会触发WAL日志归档。
  2. WAL segment file写满时,会触发WAL日志归档。
  3. 设置archive_timeout时,定时触发WAL日志归档。
  4. 数据库正常关闭时,会触发WAL日志归档。

  • 归档——启用WAL归档
  1. 通过修改kingbase.conf开启归档
    1. 建立归档目录
    2. 配置相关参数

 

    1. 重启KES实例
    2. 查看参数
    3. 手动切换归档
    4. 查看归档日志文件

 

  1. 通过ALTER SYSTEM命令开启归档
  1. 建立归档目录
  2. 配置相关参数
  3. 重启KES实例

 

  1. 查看参数
  2. 手动切换归档
  3. 查看归档日志文件

 

 

  1. archive_command 归档命令详细

临时启用和禁用归档方法

方法1——通过逻辑运算符设置。

注意:

当文件标识符archive_active存在时,则会执行归档命令

归档标识文件archive_active需要手工创建。

方法2——通过shell设置

 

注意:

这里使用了shell的选择结构语句。

当文件标识archive_artive存在时,则会执行归档命令。

  • 归档——触发WAL归档

1、手工切换WAL日志

使用select sys_switch_wal(); 函数可以手工切换WAL日志。

  1. 执行sys_switch_wal()。
  2. 当前写入的wal日志信息会切换到新的日志文件中。
  3. 将旧的WAL日志归档到/archive/目录中。

 

2、WAL日志写满

WAL日志被写满后会触发归档,WAL segment file大小默认为16M。

  1. 创建t01表。
  2. 批量插入数据。
  3. KES会自动发生日志切换并执行归档。

 

3、设置archive_timeout

通过设置archive_timeout参数,可以让数据库周期性的执行日志切换和归档操作。

  1. 每60s触发一次WAL日志切换。
  2. 每60s触发一次WAL日志归档。

 

4、fast或者smart方式正常关闭数据库

使用fast或者smart方式关闭实例时,数据库会再关闭自动执行切换和归档。

 

  • 归档——清理WAL归档
  1. 手工清理归档日志
  1. 确定可以清楚的WAL日志文件
  2. 手工清理WAL日志归档文件

 

  1. 自动清理归档日志
  1. 编辑脚本sys_archive_clean.sh
    • 填写数据目录:/KingbaseES/V8/data
    • 填写软件家目录:/KingbaseES/V8/Server
    • 填写归档目录:/archive

 

  1. 使用sys_controldata 查看最后归档点
  2. 使用sys_archivecleanup命令清除最新归档点之前的WAL日志。

定时启动脚本

 

  • 归档——常用归档配置
  1. 压缩归档

 

  1. 配置远程归档

 

Logo

一站式 AI 云服务平台

更多推荐