在关系型数据库中,Redo日志和Undo日志是确保数据一致性和事务持久性的关键组件,还在故障恢复过程中发挥十分重要的作用。本次针对DMDSC中的Redo和Undo概念以及异常判断与恢复进行讲解与测试。
作用:
• 重做日志详细记录了事务对数据的每一次修改。其核心目的是确保一旦事务成功提交,即便随后系统遭遇崩溃,这些修改也能被准确无误地恢复,避免数据丢失。
特点:
• 严格按照事务发生的顺序记录变化,确保在系统崩溃时能够按照相同的顺序进行事务重演,从而恢复到崩溃前的状态。
• 日志的写入优先于数据页的修改,这一设计确保了日志总是先于数据被写入磁盘,为数据恢复提供了可靠保障。
• 在归档模式下,redo日志可以被归档到远程或本地存储,进一步增强了数据恢复和备份的能力。
作用:
• Undo日志记录了事务的撤销操作,其主要功能是回滚未提交的事务,将数据恢复到事务开始之前的状态。
• 在事务回滚和多版本并发控制(MVCC)中发挥着重要作用,确保了数据的完整性和一致性。
特点:
• 系统启动时,先执行redo操作,再进行undo操作。这一顺序确保了在恢复数据时,先应用所有已提交的修改,再回滚未提交的修改。
• Undo日志的重用不会导致日志文件的收缩,这意味着日志文件的大小在重用过程中保持不变。
在DSC集群环境中,Redo和Undo的配置信息被保存在dminit.ini文件中。实例初始化时,这些日志文件在ASM(自动存储管理)中创建,为集群的稳定运行提供了坚实基础。
此外,管理员也同样可以通过alter语句灵活调整Redo和Undo的配置,例如:
alter tablespace “ROLL” add datafile ‘+DMDATA/data/dsc/roll2.dbf’ size 256;
ASM>cp ‘dsc0_log01.log’ ‘/home/data/’
[dmdba@DSC0 data]$ echo “This is a header” > dsc0_log01.log
ep stop GRP_DSC
ASM>rm -rf dsc0_log01.log
ASM>cp -r ‘/home/data/dsc0_log01.log’ ‘+DMLOG/log’
ep startup GRP_DSC
[dmdba@DSC1 bin]$ ./dmmdf TYPE=1 FILE=/home/data/system.dbf
ASM>cp ‘dsc0_log01.log’ ‘/home/data/’
ASM>cd +DMDATA/data/dsc
ASM>cp ‘roll.dbf’ ‘/home/data/’
[root@DSC0 bin]# ./dmmdf TYPE=2 FILE=/home/dmdba/dsc0_log01.log
Input the new value: 1044926824
ASM>rm -rf dsc0_log01.log
ASM>cp -r ‘/home/dmdba/dsc0_log01.log’ ‘+DMLOG/log’
ep startup GRP_DSC
after redo
实例恢复
ep stop GRP_DSC
ASM>rm -rf roll.dbf
ASM>cp -r ‘/home/dmdba/roll.dbf’ ‘+DMDATA/data/dsc’
ep startup GRP_DSC
在Undo替换时,新Undo需要重启一次实例才能用。新实例中的Undo、Redo文件至少要和原实例中大小一样。
文章
阅读量
获赞