注册
达梦远程备份还原
培训园地/ 文章详情 /

达梦远程备份还原

植物大战僵尸 2026/10/16 90 0 0

达梦远程备份

1.背景

希望DMRMAN支持远程物理备份和恢复功能。

2.简介

本特性支持提供一种支持集中管理的备份方式,支持将备份集生成到辅助实例,以降低备份集管理与维护的复杂性。

3.说明

3.1.辅助实例

一般部署在专门的存储节点,和普通实例一样,也可对外提供数据库服务,启动服务时添加启动参数AUXILIARY_MODE=1说明该库作为辅助实例启动。目前仅支持辅助实例是普通的单机数据库。

3.2.备份语句

指定device type remote,指明备份至远程节点。

3.3.版本要求

V8.1.4.5及以上版本

3.4.语法讲解

3.4.1.拓展备份还原语法

设备类型DEVICE TYPE不再限定为“DISK”和“TAPE”,支持自定义的设备类型。DEVICE TYPE:指存储备份集的介质类型,默认为DISK;PARMS:第三方存储介质参数。
如果备份、还原时指定DEVICE TYPE为第三方存储介质,则可以通过指定PARMS关键字传递第三方可识别的自定义字符串。使用第三方提供的动态库时,用户层应用不受影响。默认DEVICE TYPE为DISK,使用达梦自带SBT磁盘存储。

3.4.2.增加支持辅助实例。

辅助实例是在远程机器部署的数据库实例,一般部署在专门的存储节点,用于集中管理备份生成的备份集;辅助实例只能是普通的单机数据库,不支持数据守护、MPP、DSC、DPC及多副本等集群环境。部署辅助实例后,远程数据库实例备份还原时可通过授权用户连接到该辅助实例,支持写入、读取、管理远程机器上的备份集。

3.4.3.远程备份支持相关功能

根据DM SBT接口规范实现SBT动态库libdmsbtrio.so(Windows环境为dmsbtrio.dll),执行备份还原操作时连接到远程辅助实例,支持在远程机器集中管理维护备份集。远程备份与还原存在以下约束与限制,使用远程备份还原与在本地存储设备上进行备份还原基本一致,只在备份还原语句选项上存在限制。备份集路径BACKUPSET关键字指定备份集路径,远程备份还原,备份集路径存在以下限制:
1.长度在1-256字符之间
2.只能是Unix风格的相对路径
3.不能使用”~”引用用户工作目录
4.不能使用”.”引用当前工作目录
5.不能使用”…”引用上级工作目录
6.不能包含空白字符、”#”
介质类型
DEVICE TYPE必须指定为REMOTE。
介质参数
PARMS关键字提供连接辅助实例的必要参数,格式如下:
PARMS ‘<REMOTE介质参数>’
<REMOTE介质参数>::= [USER = <辅助实例用户名>;]
[PASSWORD = <辅助实例用户口令>;]
SVC_NAME = <辅助实例服务名> | {<辅助实例IP>[:<辅助实例端口号>]}
USER:指定辅助实例用户名,指定用户必须是具有BACKUP DATABASE权限。若不指定,则根据服务名使用wallet中存放的用户名。
PASSWORD:指定辅助实例用户口令。若不指定,则根据服务名使用wallet中存放的口令。
SVC_NAME:指定辅助实例连接串,连接串可以指定服务名,也可以直接指定辅助实例IP和端口号。指定服务名时,需要提前在dm_svc.conf中配置,指定辅助实例IP地址,如果是IPv6地址需使用[]包含,例如[fe80::1e6f:65ff:fed1:3724%6]。

4.辅助实例配置

4.1.测试版本

测试版本为DM8.1.4.170 pack11
image.gif

4.2.创建辅助实例

4.2.1.初始化辅助实例

使用 dminit工具初始化辅助实例
./dminit path=/dmdata db_name=DMBAK_DB port_num=5237 page_size=32 extent_size=32 log_size=256 sysdba_pwd=DMDBA_hust4400 sysauditor_pwd=DMDBA_hust4400
image.gif

4.2.2.配置远程备份路径

限制辅助实例只能读写 BAK_PATH目录下的备份集。用户可以在做好存储规划后,手动修改辅助实例的 INI 参数 BAK_PATH为存储设备挂载路径。例如,修改为:/dmdata/dmbak
image.gif
可以配置多个备份通道到不同的存储设备,优化备份性能。辅助实例如果要支持该优化方式,需将相关存储设备挂载到BAK_PATH下的子目录,否则将无法被辅助实例访问。
辅助实例支持访问 ASM,只需将 BAK_PATH配置为 ASM路径,例如:+DMDATA/data/dm_bak, 同 时 启 动 辅 助 实 例 时 传 入 启 动 参 数DCR_INI指定 DCR文件路径。

4.2.3.启动辅助实例

从帮助看如果带有auxiliary_mode参数的版本才能以辅助实例启动。
image.gif

以后台启动辅助实例
nohup ./dmserver /dmdata/DMBAK_DB/dm.ini auxiliary_mode=1 &
image.gif

4.3.备份还原示例

4.3.1.备份路径注意事项

备份路径只能是在INI参数BAK_PATH下指定的相对路径,不支持绝对路径写法。即便该路径在BAK_PATH下但使用绝对路径写法也是不支持的。
backup database full backupset '/dmdata/dmbak/db1/remote_bak02' device type remote parms 'user=SYSDBA;password=DMDBA_hust4400;svc_name=192.168.3.22:5237;';

提示:无效的备份目录
image.gif

查看目录确实存在
image.gif

4.3.2.联机备份

登录数据库执行如下备份sql进行远程联机备份操作。
SQL>backup database full backupset 'db1/remote_bak01' device type remote parms 'user=SYSDBA;password=DMDBA_hust4400;svc_name=192.168.3.22:5237;';
image.gif

在远程服务的INI参数BAK_PATH中配置的目录/dmdata/dmbak中按上述备份语句指定的backupset参数中生成了db1/remote_bak01备份文件。
image.gif

4.3.3.脱机备份

关闭数据库后使用dmrman工具进行脱机备份操作。
./dmrman ctlstmt="backup database '/dmdata/TEST_BAK_DB/dm.ini' full backupset 'db1/remote_bak02' device type remote parms 'user=SYSDBA;password=DMDBA_hust4400;svc_name=192.168.3.22:5237;'"
image.gif

在远程服务的INI参数BAK_PATH中配置的目录/dmdata/dmbak中按上述备份语句指定的backupset参数中生成了db1/remote_bak02备份文件。
image.gif

4.3.4.查看备份信息

使用dmrman工具对远程备份集进行查看。
RMAN> show backupset 'db1/remote_bak01' device type remote parms 'user=SYSDBA;password=DMDBA_hust4400;svc_name=192.168.3.22:5237;';
image.gif

4.3.5.校验备份

通过dmrman工具对远程备份进行校验。
check backupset 'db1/remote_bak01' device type remote parms 'user=SYSDBA;password=DMDBA_hust4400;svc_name=192.168.3.22:5237;';
image.gif

4.3.6.远端备份集还原至本地

整体恢复命令与其他恢复方式相同,只不过需要增加远端服务实例连接信息。

4.3.6.1.从远端备份还原

./dmrman ctlstmt="restore database '/dmdata/TEST_BAK_DB/dm.ini' overwrite from backupset 'db1/remote_bak02' device type remote parms 'user=SYSDBA;password=DMDBA_hust4400;svc_name=192.168.3.22:5237;'"
image.gif

4.3.6.2.从远端备份恢复

./dmrman ctlstmt="recover database '/dmdata/TEST_BAK_DB/dm.ini' from backupset 'db1/remote_bak02' device type remote parms 'user=SYSDBA;password=DMDBA_hust4400;svc_name=192.168.3.22:5237;'"
image.gif

4.3.6.3.更新数据库db_magic

./dmrman ctlstmt="recover database '/dmdata/TEST_BAK_DB/dm.ini' update db_magic"
image.gif

4.3.6.4.启动实例

恢复正常,启动无异常。
./dmserver /dmdata/TEST_BAK_DB/dm.ini
image.gif
image.gif

4.3.6.5.删除远端备份集

./dmrman ctlstmt="remove backupset 'db1/remote_bak02' device type remote parms 'user=SYSDBA;password=DMDBA_hust4400;svc_name=192.168.3.22:5237;'"

5.附录

备份管理相关系统过程与函数总结如下:
SF_BAKSET_BACKUP_DIR_ADD:添加备份目录。
SF_BAKSET_BACKUP_DIR_REMOVE:删除内存中指定的备份目录。
SF_BAKSET_BACKUP_DIR_REMOVE_ALL:删除内存中全部的备份目录。
SF_BAKSET_CHECK:对备份集进行校验。
SF_BAKSET_REMOVE:删除指定设备类型和指定备份集目录的备份集。
SF_BAKSET_REMOVE_BATCH:批量删除满足指定条件的所有备份集。
SF_BAKSET_REMOVE_BATCH_S:批量安全删除满足指定条件的所有库级备份集。
SF_BAKSET_REMOVE_BATCH_N:批量删除满足指定条件的所有备份集,并保留用户指定个数的库级完全备份集。
SP_DB_BAKSET_REMOVE_BATCH:批量删除指定时间之前的数据库备份集。
SP_TS_BAKSET_REMOVE_BATCH:批量删除指定表空间对象及指定时间之前的表空间备份集。
SP_TAB_BAKSET_REMOVE_BATCH:批量删除指定表对象及指定时间之前的表备份集。
SP_ARCH_BAKSET_REMOVE_BATCH:批量删除指定条件的归档备份集。

备份管理相关动态视图总结如下:
V$BACKUPSET:显示备份集基本信息。
V$BACKUPSET_DBINFO:显示备份集的数据库相关信息。
V$BACKUPSET_DBF:显示备份集中数据文件的相关信息。
V$BACKUPSET_ARCH:显示备份集的归档信息。
V$BACKUPSET_BKP:显示备份集的备份片信息。
V$BACKUPSET_SEARCH_DIRS:显示备份集搜索目录。
V$BACKUPSET_TABLE:显示表备份集中备份表信息。
V$BACKUPSET_SUBS:显示并行备份中生成的子备份集信息。
V$BACKUP_MONITOR:显示当前备份任务实时监控信息。
V$BACKUP_HISTORY:显示最近 100条备份监控信息。
V$BACKUP_FILES:显示当前备份任务待备份数据文件列表。
SF_BAKSET_BACKUP_DIR_ADD添加备份目录仅对当前会话有效。

调用删除备份等函数或查看动态视图时要先调用SF_BAKSET_BACKUP_DIR_ADD添加备份目录,否则仅搜索默认备份路径下的备份集。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服