在DM数据库的还原和恢复中,有时会遇到还原失败的情况,这时首先要查看和校验数据库备份集信息的正确性,检查源库和目标库的初始化参数是否兼容等。我们可以使用DMRMAN查看和校验数据库备份集。
查看数据库全量备份集(脱机备份)
使用show backupset语句可以查看DM数据库备份集信息,命令参考如下(DB_DAMENG_FULL_20200825_111703_293463为脱机全量备份集):
RMAN>show backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20200825_111703_293463';
结果展示如下。DBINFO显示数据库相关信息,包含数据库魔数,数据库创建目录,数据库页大小、簇大小,大小写敏感、长度是否以字符为单位、字符集、数据库版本、是否开启归档等相关信息。
注意:在DM8物理备份还原中,如果源数据库与目标数据库的“大小写敏感”和“长度是否以字符为单位”等初始化参数设置不同,则源库备份集文件无法在目标库中还原。
META INFO展示数据库的名称、备份名称、备份范围、备份类型(全量/增量备份)和备份方式(脱机/联机备份)等信息,这里可以看出本备份集备份范围为数据库备份,备份类型为全量备份,备份方式为脱机备份,如下图所示:
FILE INFO展示数据库的备份集、备份片等信息。包含四部分:备份片信息<backup_piece_list>、数据文件信息<data_file_list>、归档日志信息<arch_file_list>、HUGE表空间数据文件信息<huge_file_list>。这里可以看出脱机备份备份片中不包含重做日志信息,只包含数据文件信息,<data_file_list>列出了所包含的数据文件信息。
查看数据库全量备份集(联机备份)
使用如下语句查看数据库备份集(DB_DAMENG_FULL_2020_08_27_17_59_14为联机全量备份集):
RMAN>show backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_2020_08_27_17_59_14';
查询结果展示如下,可以看出,同一个数据库,联机备份和脱机备份DBINFO信息基本相同(联机备份需要打开归档,故archive flag为1)。
META INFO中,备份范围为数据库备份,备份方式为联机备份,如下图所示:
FILE INFO中可以看出联机备份备份片包含数据备份片和日志备份片,分别包含数据文件信息和部分归档日志信息。
查看数据库增量备份集(联机备份)
使用如下语句查看备份集信息(DB_DAMENG_INCRE_2020_08_27_16_19_58为联机增量备份集):
RMAN>show backupset '/dm8/data/DAMENG/bak/DB_DAMENG_INCRE_2020_08_27_16_19_58';
DB INFO与联机全量备份相同,META INFO中,备份范围显示为数据库备份,备份方式显示为联机备份,备份类型为增量备份,如下图所示:
FILE INFO中可以看出联机增量备份和联机全量备份一样,备份片中都包含数据文件信息和归档日志信息。
查看表空间备份集(联机备份)
使用如下语句查看备份集(TS_TBS_FULL_2020_08_27_16_20_56为联机全量TBS表空间备份集):
DMRMAN>show backupset '/dm8/data/DAMENG/bak/TS_TBS_FULL_2020_08_27_16_20_56';
META INFO中,备份范围显示为表空间备份,备份方式显示为联机全量备份,如下图所示。
FILE INFO中可以看出表空间联机备份备份片中只包含表空间对应的数据文件信息,不包含重做日志信息(DM8表空间还原时自动根据归档日志将表空间还原到最新时间)。
查看归档备份集(联机备份)
使用如下语句查看备份集信息(ARCH_2020_08_27_22_36_47为联机归档备份集):
RMAN>show backupset '/dm8/data/DAMENG/bak/ARCH_2020_08_27_22_36_47';
结果展示如下。其中,META INFO中备份范围显示为归档备份,备份方式显示为联机备份。
FILE INFO中可以看出归档备份备份片中仅包含归档日志信息。<arch_file_list>中列出了归档日志文件信息。
校验备份集
使用check backupset语句可以校验DM数据库备份集信息,命令参考如下:
RMAN>check backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_2020_08_27_17_59_14';
显示校验备份成功,则说明备份集正确。
若备份集中备份片文件(.bak文件)被重命名,则备份集会校验失败,如下报错是重名了备份片文件导致备份集校验失败:
总结:
①DM数据库物理备份集包含元数据文件和备份片文件。
②元数据文件的后缀为.meta,通过元数据文件,可以了解整个备份集信息。元数据文件中记录了备份片文件名称,所以不能随意修改备份片文件(.bak文件)名称,若修改备份片文件名称则会导致备份集找不到备份片文件而无法还原数据库。
③备份片文件后缀为.bak,用来存放备份数据。备份片文件包含数据备份片和日志备份片;数据备份片用于存放数据文件中数据页的信息,日志备份片用于存放REDO日志信息。联机备份因为数据库是运行状态,为保证数据库的一致性,联机备份即要包含数据文件信息,也要包含REDO日志信息,所以联机数据库备份片包含数据备份片和日志备份片两部分(直观的说就是联机备份集有两个.bak文件);而脱机备份时因为数据库是关闭状态,不存在一致性问题,所以脱机备份仅需要备份数据文件。
④DM8表空间备份仅支持联机备份,但只备份对应表空间的数据文件,实际DM8表空间还原时会自动根据归档日志将表空间还原到最新状态。