YashanDB redo 日志文件管理
本文内容来自 YashanDB 官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86/%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86/redo%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86.html
YashanDB 的 redo 日志文件用于记录数据库产生的物理日志,可被用于数据库宕机重演和主备复制。
redo 日志文件有如下 4 种状态:
NEW:表示新创建且未使用的 redo 日志文件。
CURRENT:表示当前正在写入的 redo 日志文件,当 current redo 日志文件写满,或者手动执行切换操作后,会将下一个可用的 redo 日志文件状态设置为 CURRENT,原 current redo 日志文件状态变为 ACTIVE。
ACTIVE:该状态下的 redo 日志文件包含的 redo 对应的页面存在未写入磁盘的情况,或者该 redo 日志文件没有被归档,不可复用。ACTIVE 状态的 redo 日志文件,在执行 checkpoint 并等待归档完成(如果已开启归档模式)后会变成 INACTIVE 状态。
INACTIVE:该状态下的 redo 日志文件包含的 redo 对应的页面都已经写入磁盘,可复用。
Note:
redo 日志文件切换时,会将处于 INACTIVE 或 NEW 状态的 redo 日志文件作为下一个文件,如不存在 INACTIVE 或 NEW 状态的 redo 日志文件则会触发 checkpoint。
查看 redo 日志文件
Note:
本文以单机部署为例,不同部署形态的查看方法相同但 $YASDB_DATA 路径不同,具体请以实际为准。
方式一:
通过 V$LOGFILE 视图查看 redo 日志的信息,包括它的组号、路径、成员、块大小、已用大小与状态等信息。
示例
方式二:
直接进入到 $YASDB_DATA/dbfiles 目录查看。
维护 redo 日志文件
# 添加 redo 日志
YashanDB 中添加 redo 日志主要是用于提高数据库性能,具体见数据库配置调优章节描述。
可通过 ALTER DATABASE 语句添加 redo 日志。
示例
Note:
添加 redo 日志时,属性 size 需放在 BLOCKSIZE 前才能正常添加,默认块大小为 4096Byte,这与磁盘类型有关系,有些磁盘并不支持 512Byte 的块大小,只能设为 4096Byte。
YashanDB 无法直接扩展 redo 日志的大小,需通过添加新的大 redo 日志并将原有的小 redo 日志删除的方式实现。
# 切换 redo 日志
可通过 ALTER SYSTEM 语句手动切换 redo 日志。
示例
# 删除 redo 日志
如发生下述情况,可通过 ALTER DATABASE 语句删除 redo 日志:
磁盘发生故障时,可通过删除故障磁盘上 redo 日志文件避免写入不可访问的文件。
redo 日志文件存储在不恰当的位置。
通过增加更大的 redo 文件,删除原有的 redo,从而实现 redo 文件扩展。
Caution:
为了保证数据库正常运行以及数据安全,仅允许直接删除 INACTIVE 或 NEW 状态的 redo 日志。
如需删除 CURRENT 状态的 redo 日志,操作如下:
切换 redo 日志,使其变为 ACTIVE 状态。
执行 checkpoint 并等待归档完成(如果已开启归档模式),使其变为 INACTIVE 状态。
执行删除操作。
版权声明: 本文为 InfoQ 作者【YashanDB】的原创文章。
原文链接:【http://xie.infoq.cn/article/617cb1720c4a255b745043464】。文章转载请联系作者。
评论