条件:
1. 调用SP_BACKUP_COPY_BEGIN前需设置当前连接AUTO_COMMIT为FALSE,关闭
事务自动提交。
2. SP_BACKUP_COPY_BEGIN和SP_BACKUP_COPY_END必须在同一连接中执行。
3. 每次调用SP_BACKUP_COPY_END前必须先调用SP_BACKUP_COPY_BEGIN,否则
将报错。
4. 调用SP_BACKUP_COPY_BEGIN和SP_BACKUP_COPY_END之间不能执行CREATE
TABLESPACE操作。
拷贝数据库三个步骤:
1.拷贝开始前,记录系统各节点BEGIN_LSN/BEGIN_SEQ信息,以确定恢复阶段日志重做的起点。
开 始 拷 贝 前 , 调 用 系 统 过 程 SP_BACKUP_COPY_BEGIN 记 录 当 前 系 统
BEGIN_LSN/BEGIN_SEQ信息。
SQL> SP_BACKUP_COPY_BEGIN();
2) 开始拷贝数据库,使用常规方式拷贝数据库文件到新的目录。
拷贝数据库文件到备份目录,拷贝数据库文件时,必须包含配置文件( dm.ini)、 控制文件(dm.ctl)、 秘钥文件(dm_service.prikey)、 联机日志文件(DAMENG01.log和DAMENG02.log)以及数据文件(*.DBF)。
3.拷 贝 结 束 后 , 调 用 系 统 过 程 SP_BACKUP_COPY_END , 记 录 系 统 各 节 点
END_LSN/END_SEQ信息,以在恢复结束后校验数据完整性。该过程同时生成一个仅包含
meta文件的空备份集,并将记录的信息填充到该文件。
SP_BACKUP_COPY_END(path varchar)中path参数指定备份集绝对路径,当参数
为相对路径时,将在默认备份目录下生成该备份集。
SQL> SP_BACKUP_COPY_END('/dbdata/copy_bak');
4.还原数据库操作
4.1.dm.ini文件的路径修改 端口修改5237
4.2将dm.ctl文件转为文本文件dmctl.txt
[dmdba@dbtest copy_db]$ dmctlcvt TYPE=1 SRC=/dbdata/copy_db/dm.ctl DEST=/dbdata/copy_db/dmctl.txt
DMCTLCVT V8
convert ctl to txt success!
4.3修改dmctl.txt中的路径参数。将原始路径修改为拷贝副本所在的路径。
4.4将修改完成后的dmctl.txt转为二进制文件dm.ctl,并替换原始dm.ctl文件。
[dmdba@dbtest copy_db]$ dmctlcvt TYPE=2 SRC=/dbdata/copy_db/dmctl.txt DEST=/dbdata/copy_db/dm.ctl
DMCTLCVT V8
convert txt to ctl success!
5.还原操作
5.1启动DMRAMN
5.2利用源库的归档日志将副本恢复到最新状态
5.3恢复成功后更新副本DB_MAGIC
6.启动数据库
7.登录验证
达梦技术社区:https://eco.dameng.com