DMDSC 集群备份还原的功能、语法与单节点数据库基本保持一致,下面介绍如何还原DMDSC集群。 首先介绍DSC集群的两种归档方式:
Redo 日志本地归档(LOCAL),就是将 Redo 日志写入到本地归档日志文件的过程。 配置本地归档情况下,Redo 日志刷盘线程将 Redo 日志写入联机 Redo 日志文件后,对应 的 RLOG_PKG 由专门的归档线程负责写入本地归档日志文件中。远程归档(REMOTE ARCHIVE),顾名思义就是将写入本地归档的 REDO 日志信息,发送到远程节点,并写入远程节点的指定归档目录中。DMDSC 集群中各个节点在配置本地归档之外,再相互配置一个远程归档,就可以在任意一个节点的本地磁盘中,找到 DMDSC 集群所有节点产生的、完整的归档日志文件。远程归档的触发时机是,在 REDO 日志写入本 地归档日志文件的同时,将 REDO 日志通过 MAL 系统发送给指定的数据库实例。远程归档与本地归档的另外一个区别就是归档失败的处理策略不同:本地归档写入失败(比如磁盘空间不足),系统将会挂起;而远程归档失败则会直接将远程归档失效,不再发 送 REDO 日志到指定数据库实例。当节点间网络恢复、或者远程节点重启成功后,系统会自动检测并恢复远程归档,继续发送新写入的 REDO 日志,但不会主动补齐故障期间的 REDO日志。因此,在出现节点故障等情况下,远程归档的内容有可能是不完整的,而本地归档的内容肯定是完整的;如果备份还原恰好需要用到这段丢失的远程归档日志,那么可以从源端的本地归档拷贝、补齐这部分内容。
默认DSC集群搭建完成,并能正常使用。
(1)启动DIsql,联机备份数据库。备份其中任意一个节点即可备份整个DMDSC环境。
SQL>BACKUP DATABASE BACKUPSET '/home/dm_bak/db_full_bak_for_dsc';(2) 还原数据库。还原数据库之前可选择对备份文件进行校验。需要注意的是,待还原的目标库可以是单机库,也可以是 DMDSC 库,且节点个数允许不同。 进入dmrman命令还原
./dmrman dcr_ini=/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini RMAN> RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_dsc';(3) 恢复数据库。DMDSC 库恢复要求各节点归档完整性由用户保证,即各节点的本地归档都能够访问到,若本地存在 REMOTE 归档,则可以使用 REMOTE 归档代替远程节点的本地归档。
RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' WITH ARCHIVEDIR'/dmdata/dameng/arch_dsc0','/dmdata/dameng/arch_dsc1';(4) 数据库更新
RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC