归档日志
归档日志是非活动的WAL日志备份。通过使用归档日志,可以保留所有WAL日志的历史记录,当数据库处于ARCHIVELOG模式并进行日志切换时,后台进程archiver process会将WAL日志的内容保存到归档日志中,当数据库出现介质失败时,使用数据文件备份、归档日志、在线WAL日志可以完全恢复数据库。
什么情况下会触发WAL日志归档?
- 手动切换时,会触发WAL日志归档。
- WAL segment file写满时,会触发WAL日志归档。
- 设置archive_timeout时,定时触发WAL日志归档。
- 数据库正常关闭时,会触发WAL日志归档。
- 归档——启用WAL归档
- 通过修改kingbase.conf开启归档
- 建立归档目录
- 配置相关参数
- 重启KES实例
- 查看参数
- 手动切换归档
- 查看归档日志文件
- 通过ALTER SYSTEM命令开启归档
- 建立归档目录
- 配置相关参数
- 重启KES实例
- 查看参数
- 手动切换归档
- 查看归档日志文件
- archive_command 归档命令详细
临时启用和禁用归档方法
方法1——通过逻辑运算符设置。
注意:
当文件标识符archive_active存在时,则会执行归档命令
归档标识文件archive_active需要手工创建。
方法2——通过shell设置
注意:
这里使用了shell的选择结构语句。
当文件标识archive_artive存在时,则会执行归档命令。
- 归档——触发WAL归档
1、手工切换WAL日志
使用select sys_switch_wal(); 函数可以手工切换WAL日志。
- 执行sys_switch_wal()。
- 当前写入的wal日志信息会切换到新的日志文件中。
- 将旧的WAL日志归档到/archive/目录中。
2、WAL日志写满
WAL日志被写满后会触发归档,WAL segment file大小默认为16M。
- 创建t01表。
- 批量插入数据。
- KES会自动发生日志切换并执行归档。
3、设置archive_timeout
通过设置archive_timeout参数,可以让数据库周期性的执行日志切换和归档操作。
- 每60s触发一次WAL日志切换。
- 每60s触发一次WAL日志归档。
4、fast或者smart方式正常关闭数据库
使用fast或者smart方式关闭实例时,数据库会再关闭自动执行切换和归档。
- 归档——清理WAL归档
- 手工清理归档日志
- 确定可以清楚的WAL日志文件
- 手工清理WAL日志归档文件
- 自动清理归档日志
- 编辑脚本sys_archive_clean.sh
- 填写数据目录:/KingbaseES/V8/data
- 填写软件家目录:/KingbaseES/V8/Server
- 填写归档目录:/archive
- 使用sys_controldata 查看最后归档点
- 使用sys_archivecleanup命令清除最新归档点之前的WAL日志。
定时启动脚本
- 归档——常用归档配置
- 压缩归档
- 配置远程归档