dmrman使用和脱机备份还原

目录

dmrman介绍

dmrman使用

启动、退出命令

环境配置

备份命令

备份数据库

备份归档

备份查看

备份校验

备份删除

备份导出

备份集映射文件导出

还原和恢复命令

数据库还原和恢复

表空间还原和恢复

表空间还原:

表空间恢复:

归档还原

归档修复

查看操作日志:

全局日志:

备份还原日志:

SBT接口跟踪日志:


dmrman介绍

DMRMAN(DM RECOVERY MANEGER)是 DM 的脱机备份还原管理工具,由它来统一负责库级脱机备份、脱机还原、脱机恢复等相关操作,该工具支持命令行指定参数方式和控制台交互方式执行,降低了用户的操作难度。

使用 DMRMAN 脱机备份数据库需要关闭数据库实例。若是正常退出的数据库,则脱机备份前不需要配置归档;若是故障退出的数据库,则备份前,需先进行归档修复。

通过 DMRMAN 工具执行脱机操作过程中,仅会使用通过关键字 DATABASE 指定的目标库的本地归档配置信息,不会对本地归档配置文件中其他类型归档配置信息进行校验。例如:DATABASE指 定 目 标 库 为 /opt/dmdbms/data/dm.ini , 为 单 机 环 境 且 配 置 参 数ARCH_INI为 1,那么只会相应的读取 dmarch.ini中本地归档日志信息。此时,即使dmarch.in中配置了 REALTIME、MARCH、TIMELY等其他类型的归档日志,也不会去校验dmmal.inidmtimer.ini 等是否有效。

dmrman使用

大多数的 DMRMAN 命令会设置多个参数,命令的结尾可以加分号结束,也可以不使用分号。DMRMAN 是按行解析命令,如果输入一行不完整的命令执行会报错。

启动、退出命令

  • 启动:

./dmrman

启动时可以带参数:

ctlfile 指定执行语句所在的文件路径

ctlstmt 指定待执行语句

dcr_ini 指定dmdcr.ini路径;若未指定且当前目录中dmdcr.ini存在,则使用当前目录中的dmdcr.ini。可单独使用,也可与其他参数配合使用

dfs_ini 指定dmdfs.ini路径;若未指定且当前目录中dmdfs.ini存在,则使用当前目录中的dmdfs.ini。可单独使用,也可与其他参数配合使用

use_ap 指定备份、还原执行载体,1/2:DMAP/进程自身,默认是DMAP。

ap_port 连接AP时用的端口号。默认是4236。可单独使用,也可与其他参数配合使用

  • 退出:

exit 

  • 帮助:

help

环境配置

使用 CONFIGURE 命令进行 DMRMAN 的默认参数配置,配置默认的存储介质类型、备份集搜集目录、归档日志搜集目录、跟踪日志文件。设置的参数默认值仅在此 DMRMAN 实例存活期间有效。

备 份 命 令 如 果 仅 指 定 了 必 选 参 数 如 “BACKUP ARCHIVE LOG DATABASE '/opt/dmdbms/data/DAMENG/dm.ini'”,那么 DMRMAN 会根据配置的环境及内置的参数默认值自动指定备份介质类型、备份路径、备份片大小等参数。

用户备份时也可以指定这些参数来覆盖默认值,常见的备份选项有设置备份集路径、指定备份名、限制备份片大小、添加描述信息、并行备份等。DMRMAN 命令中如果指定了相同的参数,会覆盖 CONFIGURE 的默认设置。

语法:

CONFIGURE |

CONFIGURE CLEAR |

CONFIGURE DEFAULT <sub_conf_stmt>

<sub_conf_stmt>::=

DEVICE [ [TYPE <介质类型> [ PARMS <第三方参数> ] ] | CLEAR ] |

TRACE [ [FILE <跟踪日志文件路径>] [TRACE LEVEL <跟踪日志等级>] | CLEAR ] |

BACKUPDIR [ [ADD|DELETE] '<基备份搜索目录>'{,'<基备份搜索目录>' }|CLEAR] |

ARCHIVEDIR [ [ADD|DELETE] '<归档日志目录>' {,'<归档日志目录>'} { '<归档日志目录>' {,'<归档日志目录>'} } |CLEAR ]

CONFIGURE:查看设置的默认值。

CLEAR:清理参数的默认值。

  • DEVICE

TYPE:备份集存储的介质类型,DISK 或者 TAPE,默认 DISK。

PARMS:介质参数,供第三方存储介质(TAPE 类型)管理使用。

  • TRACE:介质存储过程中使用的跟踪日志配置,

包括文件路径(TRACE FILE)和日志级别(TRACE LEVEL),其中日志级别有效值(1/2,不写/写;默认为 1,不写)。不支持asm 类型文件。若用户指定,则指定的文件不能为已经存在的文件,否则报错;也不可以为ASM 文件。

备份还原过程中 MML 层会调用一组 SBT 接口来访问备份存储介质。SBT 接口是 DM 定义的一组 API 函数,允许第三方厂商定制、管理备份存储介质;DM系统自带的备份还原功能也遵循了 SBT 规范。

指定参数 TRACE FILE 但 TRACE LEVEL 值设置为 1 即不启用 TRACE 功能,则会生成 TRACE 文件,但不会写入 TRACE 信息。默认在执行码路径的 log 目录下生成 DM_SBTTRACE_年月.log 文件。

  • BACKUPDIR:默认搜集备份的目录,可以设置为不存在但是在系统中是有效的路径。

ADD:添加默认备份集搜索目录,若已经存在,则替换原来的。

DELETE:删除指定默认备份集搜索目录。

  • ARCHIVEDIR :默认搜集归档的目录,可以设置为不存在但是在系统中是有效的路径。

ADD:添加默认归档日志目录,若已经存在,则替换原来的。

DELETE:删除指定默认归档日志目录。

备份时如果没指定备份介质类型参数,则会使用 CONFIGURE 中配置的默认介质类型。预先配置的介质类型为 DISK,不需要特别指定。

跟踪日志文件记录了 SBT 接口的调用过程,用户通过查看此日志可跟踪备份还原过程。DMRMAN 备份还原命令中不支持设置跟踪日志文件,只能用CONFIGURE 命令配置,默认配置不记录跟踪日志。

备份集搜索目录用于增量备份还原中搜索基备份。单个目录最大长度为 256 个字节,可配置的备份集搜索目录没有限制。如果不指定备份集搜集目录只会在库的默认备份目录和当前备份执行备份集目录的上级目录下搜索备份集。

归档日志搜索目录用于增量备份还原中搜索归档日志。单个目录最大长度为 256 个字

节,可配置的归档日志搜索目录没有限制。

备份命令

备份数据库

backup database 'dm.ini文件路径' [to 备份名] [ backupset '备份集目录' ]

一个完整的创建脱机数据库备份的示例如下:

1) 启动 DMRMAN 命令行工具。

2) 保证数据库处于脱机状态。

3) DMRMAN 中输入以下命令(简单举例)

RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL BACKUPSET '/home/dm_bak/db_full_bak_01';

命令中的 FULL 参数表示执行的备份为完全备份,也可以不指定该参数,DMRMAN 默认执行的备份类型为完全备份。命令执行完后会在默认的备份路径下生成备份集目录,默认的备份路径为 dm.ini 中BAK_PATH 的配置值,若未配置,则为 SYSTEM_PATH 下的 bak 目录。

备份归档

backup<archive log | archivelog> database '<ini 文件路径>' [to <备份名>] [backupset '<备份集目录>']

DATABASE:必选参数。指定备份目标库的 INI 文件路径。

TO: 指定生成备份名称。若未指定,系统随机生成,默认备份名格式为:ARCH_备份

时间。

BACKUPSET: 指定当前备份集生成目录。若指定为相对路径,则在默认备份路径中生

成备份集。

一个完整的创建脱机数据库备份的示例如下:

1) 启动 DMRMAN 命令行工具。

2) 保证数据库处于脱机状态。

3) DMRMAN 中输入以下命令(简单举例)

RMAN>BACKUP ARCHIVE LOG ALL DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' BACKUPSET '/home/dm_bak/arch_all_bak_01';

命令中的 ALL 参数表示执行的备份为备份所有的归档,也可以不指定该参数,DMRMAN默认执行的备份类型为 ALL 类型归档备份。命令执行完后会在默认的备份路径下生成备份集目录,默认的备份路径为 dm.ini 中BAK_PATH 的配置值,若未配置,则使用 SYSTEM_PATH 下的 bak 目录。

备份查看

show语法:

显示特定的备份集信息,每次只能显示一个备份集:

SHOW BACKUPSET '<备份集目录 >' [DEVICE TYPE DISK(默认)|TAPE [ PARMS ‘第三方参数’ ] ][RECURSIVE][<database_bakdir_lst_stmt>] [ INFO DB[,META][,FILE] [,TABLE] ] [TO '<输出文件路径>' [FORMAT TXT | FORMAT XML] ];

SHOW BACKUPSETS...命令用于批量显示指定搜索目录下的备份集信息:

SHOW BACKUPSETS [<device_type_stmt>] <database_bakdir_lst_stmt>[<info_type_stmt>[USE DB_MAGIC <db_magic>] [<to_file_stmt>];

<database_bakdir_lst_stmt>::= DATABASE '<INI_PATH>' |

WITH BACKUPDIR '<备份集搜索目录>'{,'<备份集搜索目录>'} |

DATABASE '<INI_PATH>' WITH BACKUPDIR '<备份集搜索目录>'{, '<备份集搜索目录>'}

如需要查看的多个备份集不在同一个目录下,可通过多次指定 WITH BACKUPDIR 参数同时查看所有的备份集。

如果指定的备份搜索目录下包含不同数据库的备份集,而我们只想查看某个特定数据库的所有备份集信息,此时可以使用 SHOW BACKUPSETS...USE DB_MAGIC 命令实现。

备份校验

check 语法:

CHECK BACKUPSET '<备份集目录>'[DEVICE TYPE<介质类型> [PARMS '<介质参数>']][DATABASE '<INI_PATH>']

CHECK BACKUPSET...命令用于校验特定备份集,每次只能检验一个备份集。

备份删除

remove

删除指定备份集:

REMOVE BACKUPSET '<备份集目录>'[DEVICE TYPE<介质类型> [PARMS '<介质参数>']][< database_bakdir_lst_stmt>][CASCADE];

CASCADE(大量):当目标备份集已经被其他备份集引用为基备份集,默认不允许删除,若指定 CASCADE,则递归删除所有引用的增量备份。

批量删除备份集:

REMOVE [<备份集类型>] BACKUPSETS [<device_type_stmt>]<database_bakdir_lst_stmt>{[UNTIL TIME '<截止时间串>'] | [BEFORE n]}

<备份集类型>::=DATABASE |TABLESPACE[<ts_name>] |TABLE "<schema_name>"."<tab_name>" |ARCHIVELOG|ARCHIVE LOG

若不指定备份类型,会全部删除。不指定特定表空间,会删除所有满足条件的表空间级备份集。

BEFORE n:删除距离当前时间前 n 天产生的备份集;n 取值范围 0~365,单位:天

目前 DM 的介质管理不支持 TAPE 类型介质的备份集删除,若使用支持此操作的第三方介质管理,则可指定 DEVICE TYPE TAPE 子句。

备份导出

load

LOAD BACKUPSETS FROM DEVICE TYPE<介质类型> [PARMS '<介质参数>'][WITH BACKUPDIR '<备份集搜索目录>'{,'<备份集搜索目录>'}]TO BACKUPDIR '<备份集存放目录>';

备份集存放目录:指从 TAPE 上导出的备份集 meta 文件存放到本地磁盘的目标目录,要求目录为空或不存在。

备份集映射文件导出

还原后的数据文件默认地生成到还原目标库的路径下,如果用户想生成数据文件到特定的路径,就需要指定映射文件参数来实现。将备份集中各数据文件的原始路径或者调整后的路径生成到一个本地文件中,可通过关键字 MAPPED FILE 应用于表空间和库的还原操作中

DUMP BACKUPSET '<备份集目录>'[DEVICE TYPE<介质类型> [PARMS '<介质参数>']] [DATABASE '<INI_PATH>'|TO'<SYSTEM_DIR>'] MAPPED FILE '<映射文件路径>';

INI_PATH:备份集还原到目标库的 INI 路径。若指定,则根据 INI 对应库的系统目录调整数据文件路径若不指定,则保持备份集中数据文件的原始路径。

SYSTEM_DIR:数据库目录中 SYSTEM.DBF 数据文件所在目录,作为数据库系统目录处理。

映射文件路径:输出到本地的目标映射文件路径。用户指定的文件不能为已经存在的文件,否则报错。文件生成之后,允许手动调整数据文件路径到其他路径,真正使用映射文件时,会再次校验。不支持导出到 DMASM 文件系统中。

作用:将备份集中各数据文件的原始路径或者调整后的路径生成到一个本地文件中,该文件可被重新编辑后,用于数据库的还原过程。

举例:

DUMP BACKUPSET'/home/dm_bak/db_bak_for_map_01' DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' MAPPED FILE'/home/dm_mapfile/map_file_01.txt';

生成的映射文件部分内容:

/**=============================================================**/

/*[DAMENG_ROLL_FIL_0]*/

fil_id = 0

ts_id = 1

ts_name = ROLL

data_path = /opt/dmdbms/data/DAMENG_FOR_RESTORE/ROLL.DBF

mirror_path =

还原和恢复命令

数据库还原和恢复

还原数据库:

RESTORE DATABASE ‘<ini_path>’ <restore_type> [WITH CHECK] FROM BACKUPSET '<备份集目录>' [DEVICE TYPE DISK|TAPE[PARMS '<介质参数>']] [IDENTIFIED BY <密码> [ENCRYPT WITH <加密算法>]] [WITH BACKUPDIR '<基备份集搜索目录>'{,'<基备份集搜索目录>'}] [MAPPED FILE '<映射文件>'][TASK THREAD <任务线程数>] [RENAME TO '<数据库名>'];

<restore_type>::=<type1>|<type2>

<type1>::='<INI 文件路径>'[REUSE DMINI][OVERWRITE] [FORCE]

<type2>::= TO '<system_dbf 所在路径>' [OVERWRITE]

OVERWRITE:还原数据库时,存在重名的数据文件时,覆盖重建,不指定时默认

报错。

RENAME TO:指定还原数据库后是否更改库的名字,指定时将还原后的库改为指定的

数据库名,默认使用备份集中的 db_name 作为还原后库的名称。

恢复数据库:

数据库恢复是指重做 REDO 日志,有两种方式:从备份集恢复,即重做备份集中的 RED日志;从归档恢复,即重做归档中的 REDO 日志。数据库恢复后,还需要执行数据库更新操作,将数据库调整为可正常工作的库才算完成。

如果备份集在备份过程中生成了日志,且这些日志在备份集中有完整备份(如联机数据库备份),在执行数据库还原后,可以重做备份集中备份的日志,将数据库恢复到备份时的状态,即从备份集恢复。

从备份集恢复:

RECOVER DATABASE '<INI 文件路径>' [FORCE] FROM BACKUPSET '<备份集目录>'

[DEVICE TYPE DISK|TAPE [PARMS '<介质参数>'] ] [IDENTIFIED BY <密码> [ ENCRYPT WITH <加密算法>] ];

备份集恢复例子:

以使用正常退出数据库的脱机备份的备份集还原为完整示例,进行说明如下:

1) 启动 RMAN 备份数据库,保证数据库处于正常退出的脱机状态。

RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' BACKUPSET '/home/dm_bak/db_full_bak_for_recover_dbmagic';

2) 准备目标库,可以使用备份库,也可以重新生成库或者直接指定目录还原。重新生成库操作如下:

./dminit path=/opt/dmdbms/data db_name=DAMENG_FOR_RESTORE auto_overwrite=1

auto_overwrite=1 部分覆盖,覆盖建库目录下所有同名文件;

3) 校验备份。

RMAN>CHECK BACKUPSET '/home/dm_bak/db_full_bak_for_recover_dbmagic';

4) 还原数据库。

RMAN>RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_recover_dbmagic ';

5) 恢复数据库。

RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_recover_dbmagic ';

6) 更新数据库。

RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC;

从归档恢复允许恢复到指定的时间点及指定的 LSN 值。若同时指定了时间点和 LSN,则以较早的为结束点。

从归档恢复:

RECOVER DATABASE '<INI 文件路径>' [FORCE] <WITH ARCHIVEDIR '<归档日志目录>'{,'<归档日志目录>'}> [USE DB_MAGIC <db_magic>] [UNTIL TIME '<时间串>'] [UNTIL LSN <LSN>];

查看动态视图 V$RLOG 中的 CKPT_LSN 列,可以得出当前检查点 LSN。

查看备份集的数据库信息,获取源库的 DB_MAGIC :

RMAN>SHOW BACKUPSET '/home/dm_bak/db_full_bak_for_recover_arch' INFO DB;

可以使用从归档恢复的情况(其他情况可能导致数据被破坏):

1、执行过从备份集还原,以及执行过从备份集还原恢复的库,本地归档日志属于备份

集备份时的库,本地归档日志的 DB_MAGIC 与备份集中记录 DB_MAGIC 值;

2、未执行过还原的库,但恢复目标库与本地归档日志来源于同一个库,且目标库与原

来的库分离后没有再单独执行过操作或者故障重启过。

归档恢复例子:

利用归档恢复数据库至最新状态的完整示例如下:

查看动态视图 V$RLOG 中的 CKPT_LSN 列,可以得出当前检查点 LSN。

select ckpt_lsn from V$RLOG;

1) 启动 DIsql 联机备份数据库,以及备份从检查点开始的本地归档日志

SQL>BACKUP ARCHIVELOG FROM LSN 421401 BACKUPSET '/home/dm_bak/arch_bak_lsn_421401';

SQL>BACKUP DATABASE BACKUPSET '/home/dm_bak/db_full_bak_for_recover_arch';

2) 准备目标库,可以使用备份库,也可以重新生成库。

如果使用原备份库,且备份库故障,需要先执行目标库归档修复:

RMAN>REPAIR ARCHIVELOG DATABASE 'opt/dmdbms/data/dm.ini';

如果使用新生成的库,生成之后需要先重启一下数据库实例,才可以被还原。重新生成的库不需要执行归档修复(repair)操作。重新生成库操作如下:

./dminit path=/opt/dmdbms/data db_name=DAMENG_FOR_RESTORE auto_overwrite=1

3) 启动 RMAN,校验备份。

RMAN>CHECK BACKUPSET '/home/dm_bak/db_full_bak_for_recover_arch';

4) 还原数据库。

RMAN>RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_recover_arch';

5) 查看备份集的数据库信息,获取源库的 DB_MAGIC。

若还原后,立即执行恢复,可以不用获取源库 DB_MAGIC。因为 DMRMAN 执行库级备份集还原后,会将备份集中的 DB_MAGIC 刷入还原后的库中。

RMAN>SHOW BACKUPSET '/home/dm_bak/db_full_bak_for_recover_arch' INFO DB;

6) 利用归档恢复数据库。

如果由步骤 5 显示的备份集信息可知,源库的 DB_MAGIC 值为1447060265。

RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' WITH

ARCHIVEDIR'/home/dm_arch/arch' USE DB_MAGIC 1447060265;

7) 若执行后归档恢复过程中,出现归档不足的错误,则利用归档校验工具 dmrachk,查看归档目录中归档连续性情况,然后再利用备份的本地归档日志,还原到归档目录后,再次执行恢复操作。(主备环境下的表空间归档恢复时,如果当前节点的归档不连续,而另一节点保存了以上缺失部分归档日志,可以使用该节点的日志进行恢复。这部分示例将在后文介绍)

还原:

RMAN>RESTORE ARCHIVELOGFROM BACKUPSET '/home/dm_bak/arch_bak_lsn_421401' ALL TO ARCHIVEDIR '/home/dm_arch/arch';

查看归档目录中归档连续性情况:

./dmrachk arch_path=/home/dm_arch/arch

若不连续,会显示一些信息

ARCH_PATH 的归档文件链表是不连续的。

breakpoint 0:

the left file /home/dm_arch/arch/ARCHIVE_LOCAL1_20180112161534890.log,c lsn:421311

the right file /home/dm_arch/arch/ARCHIVE_LOCAL1_20180113140135670.log, arch_lsn: 423208

可见本地归档缺失部分为:(421311,423208]

DMRMAN 查看归档备份的范围:

RMAN>show backupset '/home/dm_bak/arch_bak_lsn_421401' INFO META;

找到以下两个信息:

arch start lsn: 421300

arch end lsn: 425550

更新数据库

RECOVER DATABASE '<INI 文件路径>' UPDATE DB_MAGIC;

表空间还原和恢复

表空间还原:

RESTORE DATABASE <INI 路径> TABLESPACE <表空间名> [WITH CHECK]

[DATAFILE< <文件编号> {,<文件编号>} | '<文件路径>' {,'<文件路径>'} > ]

FROM BACKUPSET '<备份集路径>' [DEVICE TYPE <介质类型> [PARMS '<介质参数>']]

[IDENTIFIED BY <加密密码>] [ENCRYPT WITH <加密算法>]

[WITH BACKUPDIR '<备份目录>' {,'<备份目录>'}]

[MAPPED FILE '<映射文件>']

[TASK THREAD <线程数>];

查询数据文件的文件编号或路径:SELECT ID, PATH FROM V$DATAFILE;

文件编号,对应动态视图 V$DATAFILE 中 ID 列的值;

文件路径,对应动态视图 V$DATAFILE 中 PATH或者 MIRROR_PATH 列的值,

也可以仅指定数据文件名称(相对路径),与表空间中数据文件匹配时,会使用 SYSTEM 目录补齐。

TASK THREAD:还原过程中数据处理过程线程的个数,取值范围 0~64,默认为 4,与备份过程中数据处理过程相对应。若指定为 0,则调整为 1;若指定超过当前系统主机核数,则调整为当前系统主机核数。

使用 RESTORE 命令完成表空间的脱机还原,还原的备份集可以是库备份集、联机生成的表空间备份集 。表空间还原要求还原目标库与备份库为同一个库。不能还原TEMP表空间。脱机表空间还原仅涉及表空间数据文件的重建与数据页的拷贝。不需要事先置目标表空间为 OFFLINE 状态。表空间还原后,表空间状态被置为 RES_OFFLINE , 并 设 置 数 据 标 记FIL_TS_RECV_STATE_RESTORED,表示已经过还原但数据不完整。

表空间恢复:

表空间恢复通过重做 REDO 日志,以将数据更新到一致状态。恢复完成后,表空间状态置为ONLINE,并设置数据标记为 FIL_TS_RECV_STAT_RECOVERED,表示数据已恢复到一致状态。

RECOVER DATABASE <INI 路径> TABLESPACE <表空间名> [WITH ARCHIVEDIR '归档目录'{,'归档目录'}][USE DB_MAGIC <db_magic>];

WITH ARCHIVEDIR:归档文件搜索目录。缺省情况下在 dmarch.ini 中指定归档目录中搜索。如果归档日志不在配置文件 dmarch.ini 中指定的目录下,或者归档日志分散在多个目录下,需要使用该参数指定搜索归档日志。

主备环境下指定 DB_MAGIC ,使用备库归档进行恢复

主备环境下,如果当前节点的归档缺失,使用归档进行恢复时,会由于归档日志不连续而报错,无法将表空间恢复到最新状态。如果另一节点保存有该部分日志,则可以使用该节点日志进行恢复。默认情况下,恢复阶段收集归档时只收集与待恢复库 DB_MAGIC、PERMANENT_MAGIC 一致的归档文件,而在主备环境中 PERMANNET_MAGIC 是一致的,此时可通过指定 DB_MAGIC 跳过这一限制。

1) 搭建主备环境并登录任意节点进行备份;

SQL>BACKUP TABLESPACE MAIN BACKUPSET '/home/dm_bak/ts_bak_for_arch';

2) 登录主节点插入部分数据后退出,然后删除该节点下所有归档日志(模拟日志缺失)

3) 从备份集还原表空间 MAIN 到主节点;

RMAN>RESTORE DATABASE '/home/xm/DAMENG/dm.ini' TABLESPACE MAIN FROM BACKUPSET

'/home/dm_bak/ts_bak_for_arch';

4) 指定 DB_MAGIC,使用备库归档进行恢复。由于主节点下所有归档已被删除,无法恢复到最新状态,此时需要借助备库存在的归档进行恢复。

RMAN>RECOVER DATABASE '/home/xm/DAMENG/dm.ini' TABLESPACE MAIN WITH ARCHIVEDIR

'/home/dm_arch2' USE DB_MAGIC 18446520;

归档还原

RESTORE <ARCHIVE LOG | ARCHIVELOG> [WITH CHECK] FROM BACKUPSET '<备份集路径>' [<device_type_stmt>] [IDENTIFIED BY <密码>|”<密码>” [ENCRYPT WITH <加密算法>] ] [TASK THREAD <任务线程数>] [NOT PARALLEL]

[ALL | [FROM LSN <lsn>] | [UNTIL LSN <lsn>] | [LSN BETWEEN < lsn> AND < lsn>]

| [FROM TIME '<time>'] | [UNTIL TIME '<time>'] | [TIME BETWEEN '<time>' AND

'<time>'] ]

TO <还原目录> [OVERWRITE <level>] ;

<device_type_stmt>::= DEVICE TYPE <介质类型> [PARMS '<介质参数>']

<还原目录>::= ARCHIVEDIR '<归档日志目录>' | DATABASE '<ini_path>'

FROM LSN,FROM TIME:指定还原的起始 LSN 或者开始的时间点。真正的起始点为该 LSN 或该时间点所在的整个归档日志文件作为起始点。

OVERWRITE:还原归档时,指定归档日志已经存在时的处理方式。可取值 1、2、3。

1:跳过已存在的归档日志,继续其他日志的还原。跳过的日志信息会生成一条日志记录在安装目录的 log 目录中的 dm_BAKRES_年月.log 日志文件中。

2:直接报错返回。

3:强制覆盖已存在的归档日志。缺省为1

归档修复

修复时,目标库一定不能处于运行状态!!!

REPAIR <ARCHIVE LOG | ARCHIVELOG> DATABASE <'INI 文件路径'>;

一般建议在数据库故障后,应立即执行归档修复,否则后续还原恢复将会导致联机日志中未刷入本地归档的 REDO 日志丢失,届时再利用本地归档恢复将无法恢复到故障前的最新状态。归档修复会对目标库 dmarch.ini 中配置的所有本地归档日志目录执行修复。

查看操作日志:

默认情况下,这些文件都位于 DM 数据库的 log 目录中。下述文件名中的“XXX”代表生成文件的年月,如 2018 年 5月生成日志文件,则其文件名中的“XXX”部分就是“201805”,每个月生成一个日志文件,每个月中日志内容都是不断增加的。

全局日志:

全局日志文件 dm_DMSERVER_xxx.log不 可 配 置 ,数据库运行过程中的日志信息都包含在这个日志中,备份还原操作的阶段性信息会记录在这个日志文件中。日志信息格式如下:

生成日期时间+日志类型(INFO/WARN/ERROR/FATAL+进程(database)+进程 ID(P 开头)+生成线程(dm_sql_thd/main_thread )+日志内容。

备份还原日志:

备份还原日志文件 dm_BAKRES_xxx.log不可配置 ,执行备份与还原时生成的日志。

生成日期时 间 + 日 志 类型( INFO/WARN/ERROR/FATAL/CMD/CMD_PARSE + 进 程(dmrman/database/dmbakres+进程 ID(P 开头)+任务发起进程 ID(PP 开头,显示dmrman 或者 database 的进程 ID不存在时显示 4294967295(2^32-1)0xFFFFFFFF)+日志内容。

对于 AP 进程还会生成任务发起进程 ID。另外,为了保证日志内容的完整性,还会记录由全局日志生成接口生成的日志记录。

SBT接口跟踪日志

dm_SBTTRACE_xxx.log,可配置。SBT 接口在打开 TRACE 跟踪(TRACE LEVEL >1)的情况下生成执行日志,用户可根据需要自行设置文件名。该文件的介绍在备份命令中。

更多相关资料可参考达梦云适配中心:首页 | 达梦云适配中心 (dameng.com)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值