苏州手机网站设计,wordpress引用群晖文件,保定住房和城乡建设局网站,Hdi做指数网站脱机还原工具-dmrman
前言
根据达梦官网文档整理
一、概述
DMRMAN 命令行设置参数执行又可分为命令行指定脚本、命令行指定语句两种执行方式。
指定语句
$ DMRMAN
RMANBACKUP DATABASE/dmdata/data/DAMENG/dm.ini;指定脚本
创建一个名为 cmd_file.txt 的文件#x…脱机还原工具-dmrman
前言
根据达梦官网文档整理
一、概述
DMRMAN 命令行设置参数执行又可分为命令行指定脚本、命令行指定语句两种执行方式。
指定语句
$ DMRMAN
RMANBACKUP DATABASE/dmdata/data/DAMENG/dm.ini;指定脚本
创建一个名为 cmd_file.txt 的文件文件中包含“BACKUP DATABASE’/dmdata/data/DAMENG/dm.ini’”命令保存到/home/dm_cmd 目录下则该文件的执行方式如下
$ DMRMAN
RMAN/home/dm_cmd/cmd_file.txt注意文件路径的前面有一个字符**** 1、参数说明
参数含义备注CTLFILE指定执行语句所在的文件路径不能和 CTLSTMT 同时使用。脚本文件格式支持*.txt可选参数CTLSTMT指定待执行语句不能和 CTLFILE 同时使用。如CTLSTMT“BACKUP DATABASE ‘/home/dmdbms/data/DAMENG/dm.ini’”可选参数DCR_INI指定 dmdcr.ini 路径用于 ASM 存储时访问 ASM 服务若未指定则认为不存在 ASM 存储。可单独使用也可与其他参数配合使用。主要用于 DMDSC 环境可选参数USE_AP指定备份还原执行策略。取值 1、2。默认为 1。 1使用 dmap 辅助进程方式执行备份还原执行备份还原时要求先启动 dmap 服务。 2无辅助进程方式由 dmserver 进程自身完成备份还原不依赖 dmap 服务配置成 2 的情况下不能执行第三方备份即指定 DEVICE TYPE 为 TAPE。可选参数AP_PORT使用 DMAP 备份还原时 DMAP 的端口号dmap 的监听端口监听方配置此参数取值范围 1024~65534默认为 4236发起连接端的端口在 1024-65535 之间随机分配可选参数HELP打印帮助信息可选 注意 CTLFILE中存在多条语句或CTLSTMT中一次输入多条语句时每条语句都必须以分号结尾执行单条语句语句结尾可以加分号也可以不加。 CTLSTMT中待执行语句外层双引号一定要加。执行完毕后工具自动退出。CTLFILE和CTLSTMT不能同时指定。若使用DMASM文件系统可通过DCR_INI指定目标联机的ASM服务器。 2、DMRMAN环境变量配置
使用 CONFIGURE 命令进行 DMRMAN 的默认参数配置
显示和清除现有参数的默认配置配置默认的存储介质类型DISK 或 TAPE跟踪日志文件备份集搜索目录归档日志搜索目录
2.1 语法
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] |
OPEN FILES [文件句柄个数 | [CLEAR]]参数说明CONFIGURE查看设置的默认值。CLEAR清理参数的默认值。DEVICE TYPE备份集存储的介质类型DISK 或者 TAPE默认 DISKPARMS介质参数供第三方存储介质TAPE 类型管理使用TRACE介质存储过程中使用的跟踪日志配置包括文件路径TRACE FILE和日志级别TRACE LEVEL其中日志级别有效值 1、2默认为 1 表示不启用 TRACE此时若指定了 TRACE FILE会生成 TRACE 文件但不写入 TRACE 信息为 2 启用 TRACE 并在 TRACE 文件中写入 TRACE 相关内容。若用户指定则指定的文件不能为已经存在的文件否则报错也不可以为 ASM 文件。BACKUPDIR指定默认搜集备份的目录。ADD添加默认备份集搜索目录若已经存在则替换原来的。DELETE删除指定默认备份集搜索目录。缺省为 ADD缺省的情况下使用新加入的目录替换掉所有已有的目录。ARCHIVEDIR默认搜集归档的目录。ADD 添加归档日志目录若已经存在则替换原来的。DELETE删除指定归档日志目录。缺省为 ADD缺省的情况下使用新加入的目录替换掉所有已有的目录。ADD添加默认备份集搜索目录或归档日志目录若已经存在则替换原来的。DELETE删除指定默认备份集搜索目录或者归档日志目录。OPEN FILES库级还原时最大可打开的文件句柄上限只对 HUGE 文件生效还原过程中打开 HUGE 文件句柄超出该限制后将主动关闭 HUGE 文件。 sub_conf_stmt 注意 设置的参数默认值仅在此 DMRMAN 实例存活期间有效。DMRMAN 命令中如果指定了相同的参数会覆盖 CONFIGURE 的默认设置。 2.2 示例
2.2.1 显示所有配置项当前值
RMAN configure;
THE DMRMAN DEFAULT SETTING:DEFAULT DEVICE:MEDIA : DISK
DEFAULT TRACE :FILE : ../log/dm_SBTTRACE_202402.logLEVEL : 1
DEFAULT BACKUP DIRECTORY:TOTAL COUNT :0DEFAULT ARCHIVE DIRECTORY:TOTAL COUNT :0DEFAULT OPEN FILES:OPEN FILES : 655352.2.2 恢复所有配置项到默认值
RMAN configure clear;
configure default device clear successfully!
configure default trace clear successfully!
configure default backupdir clear successfully!
configure default archivedir clear successfully!
configure default open files clear successfully!2.2.3 恢复任意一个配置项到默认值
RMAN configure default open files clear;
configure default open files clear successfully!2.2.4 显示任意一个配置项的值
RMAN configure default device;
THE DMRMAN DEFAULT DEVICE SETTING:DEFAULT DEVICE:MEDIA : DISK2.2.5 配置存储介质
RMAN configure default device type disk;
configure default device successfully!2.2.6 配置跟踪文件
显示TRACE文件的默认配置
RMAN configure default trace;
THE DMRMAN DEFAULT TRACE SETTING:DEFAULT TRACE :FILE :LEVEL : 1配置默认 TRACE 文件
RMAN configure default trace file /dmdata/trace.log;
configure default trace successfully!配置默认TRACE级别
RMANCONFIGURE DEFAULT TRACE LEVEL 2;其中TRACE 文件和 TRACE 级别也可以同时设置 RMAN configure default trace file /dmdata/trace.log trace level 2;2.2.7 配置备份集搜索目录
备份集搜索目录用于增量备份还原中搜索基备份。单个目录最大长度为 256 个字节可配置的备份集搜索目录没有限制。如果不指定备份集搜索目录只会在库的默认备份目录和当前备份执行备份集目录的上级目录下搜索备份集。
显示备份集搜索目录
RMAN configure default backupdir;
THE DMRMAN DEFAULT BACKUP DIRECTORY SETTING:DEFAULT BACKUP DIRECTORY:TOTAL COUNT :0设置备份集搜索目录
RMAN configure default backupdir /dmdata/1,/dmdata/2;
configure default backupdir update successfully!
DEFAULT BACKUP DIRECTORY:TOTAL COUNT :2/dmdata/1/dmdata/2backupdir的路径必须存在否则会报错。 增加备份集搜索目录
RMAN configure default backupdir add /dmdata/3;
configure default backupdir add successfully!
DEFAULT BACKUP DIRECTORY:TOTAL COUNT :3/dmdata/1/dmdata/2/dmdata/3删除备份集搜索目录
RMAN configure default backupdir delete /dmdata/1;
configure default backupdir delete successfully!
DEFAULT BACKUP DIRECTORY:TOTAL COUNT :2/dmdata/2/dmdata/32.2.8 配置归档日志搜索目录
归档日志搜索目录用于增量备份还原中搜索归档日志。单个目录最大长度为 256 个字节可配置的归档日志搜索目录没有限制。
显示归档日志搜索目录
RMAN configure default archivedir;
THE DMRMAN DEFAULT ARCHIVE DIRECTORY SETTING:DEFAULT ARCHIVE DIRECTORY:TOTAL COUNT :0设置归档日志搜索目录
RMAN configure default archivedir /dmdata/1,/dmdata/2;
configure default archivedir update successfully!
DEFAULT ARCHIVE DIRECTORY:TOTAL COUNT :2/dmdata/1/dmdata/2backupdir的路径必须存在否则会报错。 增加归档日志搜索目录
RMAN configure default archivedir add /dmdata/3;
configure default archivedir add successfully!
DEFAULT ARCHIVE DIRECTORY:TOTAL COUNT :3/dmdata/1/dmdata/2/dmdata/3删除归档日志搜索目录
RMAN configure default archivedir delete /dmdata/1;
configure default archivedir delete successfully!
DEFAULT ARCHIVE DIRECTORY:TOTAL COUNT :2/dmdata/2/dmdata/3二、数据备份
1、数据库备份
在 DMRMAN 工具中使用 BACKUP 命令可以备份整个数据库。使用 DMRMAN 脱机备份数据库需要关闭数据库实例。若是正常退出的数据库则脱机备份前不需要配置归档若是故障退出的数据库则备份前需先进行归档修复。在 DMRMAN 中输入以下命令即可备份数据库
RMAN BACKUP DATABASE /dmdata/data/DAMENG/dm.ini;命令执行完后会在默认的备份路径下生成备份集目录。默认的备份路径为 dm.ini 中 BAK_PATH 配置的路径若未配置 BAK_PATH则默认使用 SYSTEM_PATH 下的 bak 目录。这是最简单的脱机数据库备份语句如果要设置其他备份选项请参考下文的语法及使用说明。
1.1 语法
BACKUP DATABASE INI文件路径 [备份类型][指定备份集子句][TO 备份名] [BACKUPSET 备份集路径]
[DEVICE TYPE 介质类型[PARMS 介质参数]
[BACKUPINFO 备份描述] [MAXPIECESIZE 备份片限制大小]
[LIMIT read_limit|write_limit]
[IDENTIFIED BY 密码|密码 [WITH ENCRYPTION TYPE][ENCRYPT WITH 加密算法]]
[COMPRESSED [LEVEL 压缩级别]][WITHOUT LOG][WITHOUT MIRROR]
[TASK THREAD 线程数][PARALLEL [并行数][READ SIZE 拆分块大小]]
[USE BAK_MAGIC 备份集魔数];
备份类型、read_limit、write_limit::参数说明备份类型1️⃣FULL完全备份完全备份生成的备份集包含了指定库或者表空间的全部有效数据页。2️⃣DDL_CLONE数据库克隆该参数只能用于完全备份中对于数据库中的表来说只备份表的定义不备份表中数据。表空间和表备份不支持该参数数据库克隆必须备份日志。3️⃣SHADOW影子备份该参数只能用于完全备份中表示生成影子备份集只备份源库的 SYSTEM.DBF 及日志相关信息。表空间和表备份不支持该参数影子备份必须备份日志。4️⃣INCREMENT增量备份TO指定生成备份名称管理工具中可以查看。若未指定系统随机生成默认备份名格式为DB备份类型备份时间。BACKUPSET指定当前备份集目录。若指定为相对路径例如 BACKUPSET ‘db_bak_01’则在默认备份目录中生成备份集。若不指定命令不写则在默认备份目录中按约定规则生成默认备份集目录。 SQL backup database full;DEVICE TYPE指存储备份集的介质类型支持 DISK 和 TAPE默认 DISKPARMS只对介质类型为 TAPE 时有效BACKUPINFO备份的描述信息。MAXPIECESIZE最大备份片文件大小上限以 MB 为单位最小 128MB32 位系统最大 2GB64 位系统最大 128GB缺省为最大取值。LIMIT指定备份时最大的读写文件速度单位为 MB/S默认为 0表示无速度限制。IDENTIFIED BY指定备份时的加密密码WITH ENCRYPTION指定加密类型取值范围 0、1、2。0 表示不加密不对备份文件进行加密处理 1默认值表示简单加密对备份文件设置口令但文件内容仍以明文方式存储 2表示完全数据加密对备份文件进行完全的加密备份文件以密文方式存储。 当不指定 WITH ENCRYPTION 子句时采用简单加密。ENCRYPT WITH指定加密算法。当不指定 ENCRYPT WITH 子句时使用 AES256_CFB 加密算法。COMPRESSED是否对备份数据进行压缩处理。LEVEL 表示压缩等级取值范围 0~90默认值 表示不压缩1 表示 1 级压缩9 表示 9 级压缩。压缩级别越高压缩速度越慢但压缩比越高。 若指定 COMPRESSED但未指定 LEVEL则压缩等级默认 1 若未指定 COMPRESSED则默认不进行压缩处理。WITHOUT LOG联机数据库备份是否备份联机日志。如果使用则表示不备份否则表示备份。WITHOUT MIRROR联机数据库备份是否备份镜像文件。如果使用则表示不备份否则表示备份。TASK THREAD备份过程中数据处理过程线程的个数取值范围 0~64默认为 4。若指定为 0则调整为 1若指定超过当前系统主机核数则调整为主机核数。线程数TASK THREAD*并行数PARALLEL不得超过 512。PARALLEL指定**并行备份的并行数和拆分块大小**。并行数取值范围 0~128。若不指定并行数则默认为 4若指定为 0 或者 1 均认为非并行备份。若未指定关键字 PARALLEL则认为非并行备份。USE BAK_MAGIC指定备份集魔数用于唯一标识 DMDPC 集群内同一批次的 MP 和 BP 的备份集。在对 DMDPC 节点执行脱机备份时BAK_MAGIC 由用户指定若不指定则默认为 0需要确保同一批次的备份集 BAK_MAGIC 相同以便区分不同批次的备份集避免备份集出现混用。在连接 SP 执行集群备份时BAK_MAGIC 由 MP 自动生成并自动同步给所有 BP 节点无需用户指定。该参数仅在 DMDPC 环境下有效。READ SPEED备份时读速度上限取值范围 0~2147483647单位为 MB/S0 表示无限制。WRITE SPEED备份时写速度上限取值范围 0~2147483647单位为 MB/S0 表示无限制。
1.2 完全备份
完全备份数据库步骤如下
保证数据库处于脱机状态启动 DMRMAN 命令行工具DMRMAN 中输入以下命令
RMANBACKUP DATABASE /dmdata/data/DAMENG/dm.ini FULL BACKUPSET /dmdata/dmbak/db_full_bak_01;备份语句中的参数 FULL 可以省略不指定备份类型会默认指定备份类型为完全备份。 1.3 增量备份
增量备份指基于指定的库的某个备份完全备份或者增量备份备份自该备份以来所有发生修改了的数据页。脱机增量备份要求两次备份之间数据库必须有操作否则备份会报错。
RMANBACKUP DATABASE /dmdata/data/DAMENG/dm.ini INCREMENT WITH BACKUPDIR
/dmdata/dmbakBACKUPSET /dmdata/dmbak/db_increment_bak_02;命令中的 INCREMENT 参数表示执行的备份为增量备份增量备份时该参数不可省略。如果增量备份的基备份不在默认备份目录中则必须指定 WITH BACKUPDIR 参数用于搜索基备份集或者使用 CONFIGURE DEFAULT BACKUPDIR 命令配置默认的基备份集搜索目录。 DSC 环境下的脱机库备份与联机库备份存在相同的使用限制。由于脱机备份无法推进检查点当不满足该约束时备份将失败。 2、归档备份
在 DMRMAN 工具中使用 BACKUP 命令可以备份库的归档。使用 DMRMAN 备份归档需要设置归档否则会报错。关闭数据库实例在 DMRMAN 中输入以下命令即可备份归档
RMANBACKUP ARCHIVE LOG DATABASE /dmdata/data/DAMENG/dm.ini;命令执行完后会在默认的备份路径下生成备份集目录默认的备份路径为 dm.ini 中 BAK_PATH 的配置值若未配置则使用 SYSTEM_PATH 下的 bak 目录。这是最简单的脱机归档备份语句如果要设置其他备份选项请参考下文的语法及使用说明。
2.1 语法
BACKUP ARCHIVE LOG | ARCHIVELOG [ALL | [FROM LSN lsn]|[UNTIL LSN lsn] | [LSN BETWEEN lsn AND lsn] | [FROM TIME time] | [UNTIL TIME time] | [TIME BETWEEN time AND time]] [notBackedUpSpec][指定备份集子句][DELETE INPUT]
DATABASE INI文件路径 [TO 备份名][备份集子句];
备份集子句 [BACKUPSET 备份集路径] [DEVICE TYPE 介质类型[PARMS 介质参数]
[BACKUPINFO 备份描述] [MAXPIECESIZE 备份片限制大小]
[LIMIT read_limit|write_limit]
[IDENTIFIED BY 密码|密码 [WITH ENCRYPTION TYPE][ENCRYPT WITH 加密算法]]
[COMPRESSED [LEVEL 压缩级别]][TASK THREAD 线程数][PARALLEL [并行数][READ SIZE 拆分块大小]]
notBackedUpSpec 请参考3.2.2.4.1概述
read_limit:: READ SPEED 读速度上限 [WRITE SPEED 写速度上限]
write_limit:: WRITE SPEED 写速度上限参数说明
参数说明ALL备份所有的归档。若不指定则默认为 ALL。FROM LSN指定备份的起始 lsn。UNTIL LSN指定备份的截止 lsn。FROM TIME指定备份的开始的时间点。UNTIL TIME指定备份的截止的时间点。BETWEEN … AND …指定备份的区间。指定区间后只会备份指定区间内的归档文件。DELETE INPUT用于指定备份完成之后是否删除归档操作。DATABASE必选参数。指定备份源库的 INI 文件路径。TO指定生成备份名称。若未指定系统随机生成默认备份名格式为ARCH_LOG_备份时间。其中备份时间为开始备份的系统时间。BACKUPSET指定当前备份集目录。若指定为相对路径例如 BACKUPSET ‘db_bak_01’则在默认备份目录中生成备份集。若不指定命令不写则在默认备份目录中按约定规则生成默认备份集目录。SQL backup database full;DEVICE TYPE指存储备份集的介质类型支持 DISK 和 TAPE默认 DISKPARMS只对介质类型为 TAPE 时有效BACKUPINFO备份的描述信息。MAXPIECESIZE最大备份片文件大小上限以 MB 为单位最小 128MB32 位系统最大 2GB64 位系统最大 128GB缺省为最大取值。LIMIT指定备份时最大的读写文件速度单位为 MB/S默认为 0表示无速度限制。IDENTIFIED BY指定备份时的加密密码WITH ENCRYPTION指定加密类型取值范围 0、1、2。0 表示不加密不对备份文件进行加密处理1默认值表示简单加密对备份文件设置口令但文件内容仍以明文方式存储2表示完全数据加密对备份文件进行完全的加密备份文件以密文方式存储。当不指定 WITH ENCRYPTION 子句时采用简单加密。ENCRYPT WITH指定加密算法。当不指定 ENCRYPT WITH 子句时使用 AES256_CFB 加密算法。COMPRESSED是否对备份数据进行压缩处理。LEVEL 表示压缩等级取值范围 0~90默认值 表示不压缩1 表示 1 级压缩9 表示 9 级压缩。压缩级别越高压缩速度越慢但压缩比越高。若指定 COMPRESSED但未指定 LEVEL则压缩等级默认 1若未指定 COMPRESSED则默认不进行压缩处理。WITHOUT LOG联机数据库备份是否备份联机日志。如果使用则表示不备份否则表示备份。TASK THREAD备份过程中数据处理过程线程的个数取值范围 0~64默认为 4。若指定为 0则调整为 1若指定超过当前系统主机核数则调整为主机核数。线程数TASK THREAD*并行数PARALLEL不得超过 512。PARALLEL指定**并行备份的并行数和拆分块大小**。并行数取值范围 0~128。若不指定并行数则默认为 4若指定为 0 或者 1 均认为非并行备份。若未指定关键字 PARALLEL则认为非并行备份。READ SPEED备份时读速度上限取值范围 0~2147483647单位为 MB/S0 表示无限制。WRITE SPEED备份时写速度上限取值范围 0~2147483647单位为 MB/S0 表示无限制。
2.2 备份步骤
配置归档保证数据库处于脱机状态启动 DMRMAN 命令行工具
2.3 创建普通归档备份
RMANBACKUP ARCHIVE LOG ALL DATABASE /dmdata/data/DAMENG/dm.ini BACKUPSET /dmdata/dmbak/arch_all_bak_01;命令中的 ALL 参数表示执行的备份为备份所有的归档也可以不指定该参数DMRMAN 默认执行的备份类型为 ALL 类型归档备份。 2.4 创建设置条件的归档备份
设置条件的归档备份指**通过设置 LSN 或者时间点控制需要备份归档的范围**。脱机设置条件归档备份的示例如下
RMANBACKUP ARCHIVE LOG LSN BETWEEN 50000 AND 120000 DATABASE /dmdata/data/DAMENG/dm.ini BACKUPSET /dmdata/dmbak/arch_lsn_bak_02;命令中的 LSN BETEEWN start AND end 表示备份 LSN 值在 start 与 end 之间的归档也可以设置 FROM LSN(TIME)或 UNTIL LSN(TIME)。 三、高级数据备份
1、加密备份
DMRMAN 同 disql工具一样可使用加密的方式备份数据库没有权限的用户无法访问加密的备份集。
DMRMAN 备份命令中通过指定 IDENTIFIED BY … WITH ENCRYPTION … ENCRYPT WITH … 命令执行加密备份。其中加密备份相关参数的含义与联机备份中的含义相同。
加密备份过程中参数 IDENTIFIED BY 必须指定参数 WITH ENCRYPTION 和参数 ENCRYPT WITH 可不指定。加密备份时若不指定 WITH ENCRYPTION 参数则该参数默认为 1若不指定 ENCRYPT WITH 参数则该参数默认值为 AES256_CFB。
简单加密(WITH ENCRYPTION 1)
RMANBACKUP DATABASE /dmdata/data/DAMENG/dm.ini BACKUPSET
/dmdata/dmbak/db_bak_for_encrypt_01 IDENTIFIED BY cdb546789;RMANBACKUP DATABASE /dmdata/data/DAMENG/dm.ini BACKUPSET
/dmdata/dmbak/db_bak_for_encrypt_02 IDENTIFIED BY cdb546789 ENCRYPT WITH RC4;复杂加密(WITH ENCRYPTION 2)
RMANBACKUP DATABASE /dmdata/data/DAMENG/dm.ini BACKUPSET
/dmdata/dmbak/db_bak_for_encrypt_01 IDENTIFIED BY cdb546789 WITH ENCRYPTION 2;RMANBACKUP DATABASE /dmdata/data/DAMENG/dm.ini BACKUPSET
/dmdata/dmbak/db_bak_for_encrypt_02 IDENTIFIED BY cdb546789 WITH ENCRYPTION 2 ENCRYPT WITH RC4;若指定了加密密码但加密类型 WITH ENCRYPTION 指定为 0则为非加密备份
RMANBACKUP DATABASE /dmdata/data/DAMENG/dm.ini BACKUPSET
/dmdata/dmbak/db_bak_for_encrypt_03 IDENTIFIED BY cdb546789 WITH ENCRYPTION 0;注意 对于增量备份加密如果基备份存在加密则增量备份使用的加密密码、加密类型和加密算法必须与基备份保持一致如果基备份未进行加密处理则对增量备份使用的加密密码、加密类型和加密算法没有特殊要求。 2、设置跟踪日志文件
DMRMAN 备份时可选择生成跟踪日志文件跟踪日志记录了 SBT 接口的调用过程用户通过查看日志可跟踪备份还原过程。
与生成跟踪日志文件相关的参数有两个TRACE FILE 和 TRACE LEVEL。TRACE FILE 用于指定生成的跟踪日志文件路径。与 disql 工具不同的是DMRMAN 不可在备份时指定参数生成跟踪文件只能使用 CONFIGURE 命令进行事先配置。
使用 CONFIGURE DEFAULT TRACE FILE … TRACE LEVEL … 命令启用 TRACE 功能并设置 TRACE 文件路径以下命令生成 TRACE 文件到/home/dm_trace 目录
RMANCONFIGURE DEFAULT TRACE FILE /home/dm_trace/trace.log TRACE LEVEL 2;2.1 指定TRACE FILE
TRACE LEVEL 1默认值
RMANCONFIGURE DEFAULT TRACE FILE1.log TRACE LEVEL 1;
-- 1.log日志内容为空保存在$DM_HOME/bin/1.log
RMANBACKUP DATABASE /dmdata/data/DAMENG/dm.ini;指定参数 TRACE FILE 但 TRACE LEVEL 值设置为 1 即不启用 TRACE 功能则会生成 TRACE 文件但不会写入 TRACE 信息。 TRACE LEVEL 2
RMAN CONFIGURE DEFAULT TRACE FILE 2.log TRACE LEVEL 2;
-- 2.log日志内容不为空保存在$DM_HOME/bin/2.log
RMAN BACKUP DATABASE /dmdata/data/DAMENG/dm.ini;注意 若 TRACE FILE 使用相对路径日志文件生成在执行码同级目录下**$DM_HOME/bin**。若 TRACE FILE 使用绝对路径日志文件生成在指定的绝对路径。如果指定的 TRACE 文件已存在则报错。 2.2 不指定TRACE FILE
TRACE LEVEL 2
RMAN CONFIGURE DEFAULT TRACE LEVEL 2;
-- 在$DM_HOME/log路径下生成.log文件
RMAN BACKUP DATABASE /dmdata/data/DAMENG/dm.ini; TRACE LEVEL 值设置为 2 即启用 TRACE 功能但若 TRACE FILE 没有指定则系统默认在执行码路径的 log 目录$DM_HOME/log生成 DM_SBTTRACE_年月.log 文件。 四、管理备份
管理备份一个重要的目的是删除不再需要的备份。DMRMAN 工具提供 SHOW、CHECK、REMOVE、LOAD 等命令分别用来查看、校验、删除和导出备份集。
1、备份集查看
DMRMAN 中使用 SHOW 命令可以查看备份集的信息若指定具体备份集目录则会生成相应的备份集链表信息。
1.1 语法
-- 两种语法
SHOW BACKUPSET 备份集目录 [device_type_stmt][RECURSIVE] [database_bakdir_lst_stmt] [info_type_stmt] [to_file_stmt]; |SHOW BACKUPSETS [device_type_stmt] database_bakdir_lst_stmt [info_type_stmt] [use_db_magic_stmt] [to_file_stmt]; device_type_stmt:: DEVICE TYPE 介质类型 [PARMS 介质参数] database_bakdir_lst_stmt:: DATABASE INI_PATH | WITH BACKUPDIR 备份集搜索目录{,备份集搜索目录} | DATABASE INI_PATH WITH BACKUPDIR 备份集搜索目录{, 备份集搜索目录} info_type_stmt:: INFO 信息类型 use_db_magic_stmt:: USE DB_MAGIC db_magic to_file_stmt:: TO 输出文件路径 [FORMAT TXT | XML] 参数说明BACKUPSET查看单个备份集信息若该备份集为增量备份且同时指定 RECURSIVE则显示以该备份集为最新备份集递归显示完整的备份集链表否则仅显示指定备份集本身信息。BACKUPSETS批量查看备份集信息。DEVICE TYPE指存储备份集的介质类型支持 DISK 和 TAPE默认 DISK。PARMS只对介质类型为 TAPE 时有效DATABASE指定数据库 dm.ini 文件路径若指定则该数据库的默认备份目录将作为备份集搜索目录之一。WITH BACKUPDIR备份集搜索目录最大长度为 256 个字节。WITH BACKUPDIR 在 SHOW BACKUPSET 和 SHOW BACKUPSETS 中用法有区别。具体如下1️⃣在 SHOW BACKUPSET 语句中WITH BACKUPDIR 用于为基备份指定备份集搜索目录即当 BACKUPSET 指定的备份为增量备份时WITH BACKUPDIR 用于搜索该增量备份的基备份集。2️⃣在 SHOW BACKUPSETS 语句中WITH BACKUPDIR 用于为基备份和增量备份指定备份集搜索目录即批量查看该目录下符合条件的所有备份集信息。info_type_stmt指定显示备份集信息内容可以组合指定不同信息类型之间用逗号间隔若未指定该项则显示全部。信息类型包括DB显示备份集的数据库信息 META显示备份集的元信息 FILE显示备份集中文件信息如备份数据文件 DBF 和备份片文件 TABLESPACE显示备份集中表空间信息对库备份集和表空间备份集有效 TABLE显示备份集中表信息仅对表备份集有效。use_db_magic_stmtSHOW BACKUPSETS 可以指定仅显示指定 DB_MAGIC 即指定数据库的备份集信息。to_file_stmt指定备份集信息输出的目标文件路径若不指定仅控制台打印。
1.2 备份集信息查看
1.2.1 查看单个备份集信息
RMAN backup database /dmdata/data/DAMENG/dm.ini;
……
Processing backupset /dmdata/dmbak/DB_DAMENG_FULL_20240222_211554_932211
# 显示信息很多用户可根据自身需要只显示部分备份集信息。
RMAN show backupset DB_DAMENG_FULL_20240222_211554_932211;
DB INFO
……
META INFO
……
EP INFO
……
FILE INFO
……
TABLESPACE INFO1.2.2 批量显示备份集信息
SHOW BACKUPSETS…命令用于批量显示指定搜索目录下的备份集信息。如需要查看的多个备份集不在同一个目录下可通过 WITH BACKUPDIR 参数指定多个备份集搜索目录同时查看所有的备份集。
RMAN backup database /dmdata/data/DAMENG/dm.ini backupset /dmdata/dmbak2/full;RMAN show backupsets with backupdir /dmdata/dmbak,/dmdata/dmbak2;1.2.3 查看指定数据库的备份集
如果指定的备份搜索目录下包含不同数据库的备份集而我们只想查看某个特定数据库的所有备份集信息此时可以使用 SHOW BACKUPSETS ... USE DB_MAGIC ... 命令实现。
备份不同数据库实例到同一个目录/dmdata/dmbak
RMAN backup database /dmdata/data/DAMENG/dm.ini backupset db1;
RMAN backup database /dmdata/data/db2/dm.ini backupset db2;查看指定数据库备份集信息获取DB_MAGIC信息
RMAN show backupset db1 info DB;
DB INFO
system path: /dmdata/data/DAMENG
pmnt_magic: 1121452896
src_db_magic: 883368136
db_magic: 883368136
dsc node: 1
……查看指定目录下查看指定目录下数据库/dmdata/data/DAMENG/dm.ini 的所有备份集信息
RMAN show backupsets with backupdir /dmdata/dmbak info db use db_magic 883368136;1.2.4 指定显示备份集信息
SHOW BACKUPSET ... INFO ... 命令可以显示部分备份集信息例如 SHOW BACKUPSET…INFO META 命令可以查看备份集的元数据信息。
RMAN show backupset db1 info db;
RMAN show backupset db1 info meta;
RMAN show backupset db1 info file;
RMAN show backupset db1 info TABLESPACE;
RMAN show backupset db1 info TABLE;1.2.5 以 xml 格式输出备份信息到文件
RMAN show backupset db1 to /dmdata/1.txt format XML;1.3 备份集校验
DMRMAN 中使用 CHECK 命令对备份集进行校验校验备份集是否存在及合法。
CHECK BACKUPSET 备份集目录[DEVICE TYPE 介质类型 [PARMS 介质参数]][DATABASE INI_PATH];检查备份集db1
RMAN check backupset /dmdata/dmbak/db1;
RMAN check backupset /dmdata/dmbak/db1 database /dmdata/data/DAMENG/dm.ini;
check backupset /dmdata/dmbak/db1 database /dmdata/data/DAMENG/dm.ini;
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
check backupset successfully.1.4 删除备份集
DMRMAN 中使用 REMOVE 命令删除备份集可删除单个备份集也可批量删除备份集。单个备份集删除时并行备份中的子备份集不允许单独删除在指定备份集搜索目录中发现存在引用待删除备份集作为基备份的需要执行级联删除默认报错。批量删除备份集时跳过收集到的单独的子备份集。
1.4.1 语法
REMOVE BACKUPSET 备份集目录 [device_type_stmt][database_bakdir_lst_stmt][CASCADE]; |REMOVE [备份集类型] BACKUPSETS [device_type_stmt] database_bakdir_lst_stmt [[UNTIL TIME 截止时间串] | [BEFORE n_day]];device_type_stmt:: DEVICE TYPE 介质类型 [PARMS 介质参数]database_bakdir_lst_stmt:: DATABASE INI_PATH | WITH BACKUPDIR 备份集搜索目录 {, 备份集搜索目录 } | DATABASE INI_PATH WITH BACKUPDIR 备份集搜索目录 {, 备份集搜索目录 } 备份集类型:: DATABASE | TABLESPACE[ ts_name] | TABLE [schema_name.tab_name] | ARCHIVELOG| ARCHIVE LOG 参数说明BACKUPSET查看单个备份集信息若该备份集为增量备份且同时指定 RECURSIVE则显示以该备份集为最新备份集递归显示完整的备份集链表否则仅显示指定备份集本身信息。BACKUPSETS批量查看备份集信息。DEVICE TYPE指存储备份集的介质类型支持 DISK 和 TAPE默认 DISK。PARMS只对介质类型为 TAPE 时有效DATABASE指定数据库 dm.ini 文件路径若指定则该数据库的默认备份目录将作为备份集搜索目录之一。WITH BACKUPDIR备份集搜索目录最大长度为 256 个字节。WITH BACKUPDIR 在 SHOW BACKUPSET 和 SHOW BACKUPSETS 中用法有区别。具体如下 1️⃣在 SHOW BACKUPSET 语句中WITH BACKUPDIR 用于为基备份指定备份集搜索目录即当 BACKUPSET 指定的备份为增量备份时WITH BACKUPDIR 用于搜索该增量备份的基备份集。 2️⃣在 SHOW BACKUPSETS 语句中WITH BACKUPDIR 用于为基备份和增量备份指定备份集搜索目录即批量查看该目录下符合条件的所有备份集信息。CASCADE当目标备份集已经被其他增量备份引用为基备份集默认不允许删除若指定 CASCADE则递归删除所有引用的增量备份。备份集类型DATABASE|TABLESPACE|TABLE|ARCHIVELOG|ARCHIVE LOG指定待删除备份集的类型分别为库级备份、表空间级备份、表级备份以及归档级备份其中 ARCHIVELOG 和 ARCHIVE LOG 等价。若不指定备份集类型则全部删除。指定 TABLESPACE 时若指定目标表空间名则仅会删除满足条件的指定表空间名称的表空间备份集否则删除所有满足条件的表空间备份集。指定 TABLE 时若指定目标表名则仅会删除满足条件的指定表名的表备份集否则删除所有满足条件的表备份集。UNTIL TIME删除备份集生成的最大时间即删除指定时间之前的备份集若未指定则删除所有备份集。BEFORE删除距离当前时间前 n_day 天产生的备份集n_day 取值范围 0~365单位天 backupset_type 1.4.2 删除特定的备份集
使用 REMOVE BACKUPSET ... 命令可删除特定备份集每次只能删除一个备份集。若删除备份集已经被引用为其他备份集的基备份且未指定 CASCADE则报错。
指定路径删除
RMAN remove backupset /dmdata/dmbak/db1;如果备份集在数据库默认备份目录下还可使用以下方式删除备份集
RMAN remove backupset db1 database /dmdata/data/DAMENG/dm.ini; #正确删除
RMAN remove backupset db1; # [-10001]:[错误码:-127]无效的备份集目录[/dmdata/dmbak/db1]如果待删除备份集为其他增量备份的基备份且待删除备份集和增量备份都在数据库默认备份目录下还可使用以下方式删除备份集
RMAN backup database /dmdata/data/DAMENG/dm.ini backupset db1;
RMAN backup database /dmdata/data/DAMENG/dm.ini increment backupset inc;RMAN remove backupset db1 database /dmdata/data/DAMENG/dm.ini;
remove backupset db1 database /dmdata/data/DAMENG/dm.ini;
[-8202]:[/dmdata/dmbak/inc]的基备份不能删除RMAN remove backupset db1 database /dmdata/data/DAMENG/dm.ini cascade; #删除db1和inc两个文件夹1.4.3 批量删除所有备份集
使用 REMOVE ... BACKUPSETS ... 命令可批量删除备份集。批量删除可选择备份集的备份类型备份类型包括数据库备份、表空间备份、表备份以及归档备份不指定备份类型则全部删除。
RMAN remove backupsets with backupdir /dmdata/dmbak #全删
RMAN REMOVE database backupsets with backupdir /dmdata/dmbak; #删数据库备份
RMAN remove tablespace backupsets with backupdir /dmdata/dmbak; #删全部表空间备份1.4.4 批量删除指定时间之前的备份集
REMOVE ... BACKUPSETS ... UNTIL TIME 命令用来批量删除指定时间之前的备份集。通常情况下用户并不想删除指定目录下所有的备份集这时可以选择只删除指定时间之前的备份集。如何确定删除备份的截止时间点需要结合用户的备份计划合理指定。若用户每周做一次完全备份每天进行增量备份那么删除的时间可指定为 7 天前的某个特定时间。假设今天的日期为 2024-2-8要删除 7 天前/dmdata/dmbak 目录下的所有备份在 DMRMAN 中输入以下命令
RMANREMOVE BACKUPSETS WITH BACKUPDIR /dmdata/dmbak UNTIL TIME 2024-2-1 00:00:00;五、数据还原
1、数据库还原
数据库还原分为两个步骤
数据库还原数据库恢复一致性
1.1 数据库还原
使用 RESTORE 命令完成脱机还原操作在还原语句中指定库级备份集可以是脱机库级备份集也可以是联机库级备份集。数据库的还原包括数据库配置文件还原和数据文件还原目前可能需要还原的数据库配置文件包括 dm.ini、dm.ctl、服务器秘钥文件(dm_service.prikey 或者 dm_external.config若备份库指定 usbkey 加密则无秘钥文件)、联机日志文件。
1.1.1 语法
RESTORE DATABASE restore_type FROM BACKUPSET 备份集路径
[device_type_stmt]
[IDENTIFIED BY 密码|密码 [ENCRYPT WITH 加密算法]]
[WITH BACKUPDIR 基备份搜索目录{,基备份搜索目录}]
[MAPPED FILE 映射文件路径][TASK THREAD 任务线程数]
[RENAME TO 数据库名] [USE BAK_MAGIC 备份集魔数];
restore_type::type1|type2
type1::ini_path[TO SHADOW] [WITH CHECK] [REUSE DMINI] [WITHOUT MIRROR][WITHOUT SPACE] [AUTO EXTEND] [OVERWRITE]
type2:: TO system_dbf_dir [TO SHADOW] [WITH CHECK] [OVERWRITE] [WITHOUT MIRROR]
device_type_stmt:: DEVICE TYPE 介质类型 [PARMS 介质参数]参数说明DATABASE指定数据库 dm.ini 文件路径若指定则该数据库的默认备份目录将作为备份集搜索目录之一。BACKUPSET查看单个备份集信息若该备份集为增量备份且同时指定 RECURSIVE则显示以该备份集为最新备份集递归显示完整的备份集链表否则仅显示指定备份集本身信息。DEVICE TYPE指存储备份集的介质类型支持 DISK 和 TAPE默认 DISK。PARMS只对介质类型为 TAPE 时有效IDENTIFIED BY指定备份时使用的加密密码供还原过程解密使用。密码可以用双引号括起来这样可以避免一些特殊字符通不过语法检测。ENCRYPT WITH指定备份时使用的加密算法供还原过程解密使用若未指定则使用默认算法 AES256_CFB。WITH BACKUPDIR用于增量备份的还原中指定基备份的搜索目录。用于增量备份还原中指定基备份的搜索目录最大长度为 256 个字节。若缺省自动在以下路径中搜索CONFIGURE ADD 语句添加的搜索目录、当前备份集目录的上一级目录例如当前增量备份集目录为 BACKUPSET D:\ bakrman\db_bak的路径则上一级目录为D:\bakrman搜索基备份。如果基备份不在上述路径下增量备份必须指定该参数。MAPPED FILE指定存放还原目标路径的映射文件路径。当参数 BACKUPSET 指定的路径和 MAPPED FILE 中指定的路径不一致时以 MAPPED FILE 中指定的路径为主。TASK THREAD指定还原过程中用于处理解压缩和解密任务的线程个数。若未指定则默认为 4若指定为 0则调整为 1若指定超过当前系统主机核数则调整为主机核数。RENAME TO指定还原数据库后是否更改库的名字若指定该参数则将还原后的库改为指定的数据库名默认使用备份集中的 db_name 作为还原后库的名称。USE BAK_MAGIC指定备份集魔数若不指定则默认为 0。使用备份集进行还原恢复时指定的 BAK_MAGIC 需要与备份集的 BAK_MAGIC 一致用户可通过 DMRMAN 工具的 SHOW BACKUPSET 命令查看备份集的 BAK_MAGIC。该参数仅在 DMDPC 环境下有效。TO SHADOW指定该关键字将目标库还原成影子库。WITH CHECK指定还原前校验备份集数据完整性。缺省不校验。REUSE DMINI指定 REUSE DMINI 子句进行数据库还原此时会将备份集中备份的 dm.ini 中除路径相关的 INI 参数外均拷贝到当前 dm.ini 上。WITHOUT SPACE指定还原数据库时不再为数据文件尾部未使用的数据页分配磁盘不指定则默认分配。WITHOUT MIRROR指定还原数据库时不还原镜像文件不指定则默认进行还原。AUTO EXTEND还原数据库时设置文件自动拓展避免指定 WITHOUT SPACE 关键字后由于源库未设置文件自动拓展从而导致恢复过程或从 DDL_CLONE 库还原后更新 DB_MAGIC 时存储空间不足。OVERWRITE还原数据库时存在重名的数据文件时是否覆盖重建不指定则默认报错。 注意 如果使用影子备份集进行还原无论是否指定TO SHADOW关键字目标库都被还原成影子库。如果使用普通备份集进行还原指定TO SHADOW关键字目标库被还原成影子库不指定TO SHADOW关键字目标库被还原成普通库。 还原时指定OVERWRITE选项所有重名的文件和非空目录均会删除重建该过程是无法撤销的。为避免删除重要的文件还原前请务必确保数据库系统路径下未存放无关文件。 1.1.2 使用举例
通过 RESTORE 命令还原后的数据库不可用需进一步执行 RECOVER 命令将数据库恢复到备份结束时的状态。
数据库备份集分为联机和脱机两种类型。通常情况下用户会在联机状态下备份数据库因此下面以联机数据库备份为例说明使用 DMRMAN 如何执行数据库还原操作。
联机备份数据库保证数据库运行在归档模式及 OPEN 状态
SQL BACKUP DATABASE BACKUPSET /dmdata/dmbak/db_full_bak_for_restore;准备目标库。还原目标库可以是已经存在的数据库也可使用 dminit 工具初始化一个新库。如下所示
dminit path/dmdata/data db_nameDAMENG_FOR_RESTORE校验备份集 还原数据库 直接指定还原目标库的 dm.ini 进行数据库还原 RMAN RESTORE DATABASE /dmdata/data/DAMENG_FOR_RESTORE/dm.ini FROM BACKUPSET /dmdata/dmbak/db_full_bak_for_restore;指定 REUSE DMINI 子句进行数据库还原 RMAN RESTORE DATABASE /dmdata/data/DAMENG_FOR_RESTORE/dm.ini REUSE DMINI FROM BACKUPSET /dmdata/dmbak/db_full_bak_for_restore;当使用指定 FROM LSN 生成的库备份集进行数据库还原时存在以下限制 还原目标库必须为正常退出的数据库。在集群环境下源库和目标库必须从属于同一集群且目标库必须为集群中的备库。备份时指定的 FROM LSN 必须小于等于目标库最小的 APPLY_LSN。备份集的 END_LSN即备份结束时系统的 CUR_LSN必须大于等于目标库最大的 APPLY_LSN。备份时指定的 FROM LSN 必须小于等于目标库检查点 LSN。 1.2 数据库恢复一致性
使用 RECOVER 命令完成数据库恢复工作数据库恢复是指重做 REDO 日志。可以是基于备份集的恢复工作也可以是使用本地归档日志的恢复工作。
如果还原后不需要重做日志数据就已经处于一致性状态了例如正常关闭库的脱机备份还原则可以跳过这一步直接进入数据库更新阶段。
数据库恢复是指重做 REDO 日志有两种方式从备份集恢复即重做备份集中的 REDO 日志从归档恢复即重做归档中的 REDO 日志。由于日志重做过程中修改好的数据页首先存入缓冲区缓冲区分批次将修改好的数据页写入磁盘如果在此过程中发生异常中断可能导致缓冲区中的数据页无法写入磁盘造成数据的不一致数据库启动时校验失败所以数据库恢复过程中不允许异常中断。数据库恢复后还需要执行数据库更新操作将数据库调整为可正常工作的库才算完成。下面逐一进行说明。
1.2.1 从备份集恢复
如果备份集在备份过程中生成了日志且这些日志在备份集中有完整备份如联机数据库备份在执行数据库还原后可以重做备份集中备份的日志将数据库恢复到备份时的状态即从备份集恢复。完整的示例如下
启动 DIsql 联机备份数据库
BACKUP DATABASE BACKUPSET /dmdata/dmbak/db_full_bak_for_recover_backupset;准备目标库可以使用备份库也可以重新生成库
重新生成库操作如下
./dminit path/dmdata/data db_nameDAMENG_FOR_RESTORE auto_overwrite1启动 RMAN校验备份
RMAN CHECK BACKUPSET /dmdata/dmbak/db_full_bak_for_recover_backupset;还原数据库
RMAN RESTORE DATABASE /dmdata/data/DAMENG_FOR_RESTORE/dm.ini FROM BACKUPSET /dmdata/dmbak/db_full_bak_for_recover_backupset;恢复数据库。
RMAN RECOVER DATABASE /dmdata/data/DAMENG_FOR_RESTORE/dm.ini FROM BACKUPSET /dmdata/dmbak/db_full_bak_for_recover_backupset;1.2.2 从归档恢复
从归档恢复是利用重做本地归档日志来恢复数据的过程。从归档恢复允许恢复到指定的时间点及指定的 LSN 值。若同时指定了时间点和 LSN则以较早的为结束点。 注意 使用DDL CLONE方式备份的数据库不支持指定归档恢复。 指定归档恢复时不建议使用联机状态下源库的归档此时无法保证归档的完整性。 由于从本地归档恢复允许使用 USE DB_MAGIC 指定待收集归档的 DB_MAGIC那么就会存在跨库恢复情况所以归档日志的正确使用完全由用户保证。因此为了保证用户能正确使用从归档恢复除了下文这两种情况其他情况可能导致数据被破坏不建议用户使用从本地归档恢复。 使用异常退出源库的归档文件进行恢复
数据库运行过程中持续写入 REDO 日志到本地联机日志文件并同步到归档文件。一般认为源库故障后使用备份集和归档文件可以将目标库数据恢复到最新状态这样的假设并不总是成立考虑如下场景
创建数据库 D1操作数据库并执行备份产生备份集 B1继续操作数据库操作过程中数据库故障产生归档 A1。
如果故障发生在 REDO 日志已写入联机日志但未写入归档文件时由于归档文件缺少部分 REDO 日志此时使用备份集 B1 及归档 A1 无法将目标数据库恢复到最新状态。
对于这样的情况需要使用联机日志修复归档后才可使用归档文件将目标数据库恢复到最新状态。
联机备份D1全库
SQL backup database backupset B1;循环插入100W条记录
CREATE TABLE TABLE_3
(i int
);beginfor i in 1..1000000loopinsert into TABLE_3 values(i);if i%50 0 THENcommit;end if;end loop;
end;强杀达梦进程异常退出 准备目标库D2即待还原的库
dminit path/dmdata/data db_nameD2修复D1归档日志
RMAN REPAIR ARCHIVELOG DATABASE /dmdata/data/D1/dm.ini;使用备份集 B1 及归档 A1 将目标库 D2 恢复到最新状态
# 还原数据库到D2
RMAN RESTORE DATABASE /dmdata/data/D2/dm.ini FROM BACKUPSET /dmdata/dmbak/B1;
# 使用归档文件恢复到最新状态
RMAN RECOVER DATABASE /dmdata/data/D2/dm.ini WITH ARCHIVEDIR /dmdata/dmbak/arch;1.3 更新DB_MAGIC
RMANRECOVER DATABASE /dmdata/data/D2/dm.ini UPDATE DB_MAGIC;2、表空间还原
使用 RESTORE 命令完成表空间的脱机还原还原的备份集可以是联机或脱机生成的库备份集也可以是联机生成的表空间备份集。脱机表空间还原仅涉及表空间数据文件的重建与数据页的拷贝。不需要事先置目标表空间为 OFFLINE 状态。
表空间还原后表空间状态被置为 RES_OFFLINE并设置数据标记 FIL_TS_RECV_STATE_RESTORED表示已经还原但数据不完整。
2.1 语法
RESTORE DATABASE ini_path TABLESPACE 表空间名 [with check] [DATAFILE 文件编号 {,文件编号} | 文件路径 {,文件路径}] FROM BACKUPSET 备份集路径 [device_type_stmt] [IDENTIFIED BY 密码|密码] [ENCRYPT WITH 加密算法] [WITH BACKUPDIR 基备份搜索目录 {,基备份搜索目录}] [MAPPED FILE 映射文件路径] [TASK THREAD 线程数];device_type_stmt:: DEVICE TYPE 介质类型 [PARMS 介质参数]使用说明 表空间还原不能是 TEMP 表空间指定文件还原也不能为 TEMP 表空间中文件。表空间还原要求还原目标库与备份库为同一个库否则将报错。还原目标库不能为已经执行过 RESTORE 但未执行过 RECOVER 的库。处于 RES_OFFLINE 或 CORRUPT 状态的表空间不允许指定表空间中数据文件还原。整个还原过程中不会修改数据库本身状态或者调整 CKPT_LSN。不管是 DSC 环境还是单机环境若异常退出需手动指定各节点归档修复后使用各节点完整的归档日志执行还原恢复否则将可能无法恢复到最新状态。若目标库中 SYSTEM 表空间故障则必须优先还原 SYSTEM 表空间。在 DMDSC 环境中进行表空间还原需要先确保所有节点实例都已退出此时在任一节点上使用该节点的备份集均可进行表空间还原操作且只要在一个节点上执行目标表空间还原即可。如果 SYSTEM 表空间处于 ONLINE/OFFLINE 状态且文件丢失则必须要通过库还原修复不支持对其执行表空间还原。 以联机表空间备份集为例展示 DMRMAN 如何完成表空间的还原
联机备份表空间保证数据库运行在归档模式及 OPEN 状态
BACKUP TABLESPACE MAIN BACKUPSET /dmdata/dmbak/ts_full_bak_for_restore;校验备份校验待还原备份集的合法性。校验备份有两种方式联机和脱机此处使用脱机校验
RMAN CHECK BACKUPSET /dmdata/dmbak/ts_full_bak_for_restore;还原表空间。需要注意表空间还原的目标库只能是备份集产生的源库否则将报错。
RMAN RESTORE DATABASE /dmdata/data/DAMENG_FOR_RESTORE/dm.ini TABLESPACE MAIN FROM BACKUPSET /dmdata/dmbak/ts_full_bak_for_restore;恢复表空间
RMAN RECOVER DATABASE /dmdata/data/DAMENG_FOR_RECOVER/dm.ini TABLESPACE MAIN;3、归档还原
使用 RESTORE 命令完成脱机还原归档操作在还原语句中指定归档备份集。备份集可以是脱机归档备份集也可以是联机归档备份集。
3.1 语法
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 参数说明WITH CHECK指定还原前校验备份集数据完整性。缺省不校验。BACKUPSET指定用于还原归档的备份集路径。若指定为相对路径会在 还原目录 指定的 DATABASE 对应的默认数据库备份目录下搜索备份集。例如在 RESTORE ARCHIVE LOG FROM BACKUPSET ‘ARCH_LOG_00’ TO DATABASE ‘D:\HY\DAMENG\dm.ini’ OVERWRITE 2;语句中因为备份集 ARCH_LOG_00 为相对路径所以会在还原目标库 D:\HY\DAMENG 的默认数据库备份目录中搜索 ARCH_LOG_00。如果 还原目录 中指定的是 ARCHIVEDIR则 BACKUPSET 必须指定绝对路径。NOT PARALLEL指定并行备份集使用非并行方式还原。对于非并行备份集不论是否指定该关键字均采用非并行还原。ALL还原所有的归档。若不指定则默认为 ALL。FROM LSNFROM TIME指定还原的起始 LSN 或者开始的时间点。真正的起始点为该 LSN 或该时间点所在的整个归档日志文件作为起始点。例如指定 FROM 10001而归档日志文件 X 的 LSN 为 9000-12000那么就会将该归档日志文件 X 作为起始归档日志文件。UNTIL LSNUNTIL TIME指定还原的截止 LSN 或者截止的时间点。真正的截止点为该 LSN 或该时间点所在的整个归档日志文件作为截止归档日志文件。BETWEEN … AND …ARCHIVEDIR指定还原的目标归档日志目录。DATABASE指定还原目标库的 dm.ini 文件路径将归档日志还原到该库的归档日志目录中。OVERWRITE还原归档时指定归档日志已经存在时的处理方式。可取值 1、2、3。1跳过已存在的归档日志继续其他日志的还原。跳过的日志信息会生成一条日志记录在安装目录的 log 目录中的 dm_BAKRES_年月.log 日志文件中。2直接报错返回。3强制覆盖已存在的归档日志。缺省为 1。
使用说明
联机备份归档保证数据库运行在归档模式及 OPEN 状态
BACKUP ARCHIVE LOG ALL BACKUPSET /dmdata/dmbak/arch_all_for_restore;校验备份校验待还原备份集的合法性。校验备份有两种方式联机和脱机此处使用脱机校验
RMAN CHECK BACKUPSET /dmdata/dmbak/arch_all_for_restore;还原归档。启动 DMRMAN设置 OVERWRITE 为 2如果归档文件已存在会报错。
指定还原的目标归档日志目录
RMAN RESTORE ARCHIVE LOG FROM BACKUPSET /dmdata/dmbak/arch_all_for_restore TO ARCHIVEDIR/dmdata/data/DAMENG_FOR_RESTORE/arch_dest OVERWRITE 2;指定还原目标库的 dm.ini 文件路径
RMAN RESTORE ARCHIVE LOG FROM BACKUPSET /dmdata/dmbak/arch_all_for_restore TO DATABASE /dmdata/data/DAMENG_FOR_RESTORE/dm.ini OVERWRITE 2;4、归档修复
使用 REPAIR 命令完成指定数据库的归档修复归档修复会对目标库 dmarch.ini 中配置的所有本地归档日志目录执行修复。若目标库没有配置本地归档则不执行修复。执行修复时目标库一定不能处于运行状态。一般建议在数据库故障后应立即执行归档修复否则后续还原恢复将会导致联机日志中未刷入本地归档的 REDO 日志丢失届时再利用本地归档恢复将无法恢复到故障前的最新状态。
REPAIR ARCHIVE LOG | ARCHIVELOG DATABASE ini_path;单机环境下确保目标库已经停止工作后执行归档修复 RMAN REPAIR ARCHIVELOG DATABASE /dmdata/data/DAMENG/dm.ini;DSC 环境下需要每个节点停止工作后每个节点独立执行修复操作 # 对于两节点 DSC01、DSC02 执行修复如下
RMAN REPAIR ARCHIVELOG DATABASE /opt/dmdbms/dsc/dm01.ini;RMAN REPAIR ARCHIVELOG DATABASE /opt/dmdbms/dsc/dm02.ini;达梦社区https://eco.dameng.com