DM数据库备份恢复之物理备份恢复 for Linux

本篇主要讲解使用脱机工具 DMRMAN 进行备份还原
如果需要进行配置系统请先阅读上一篇
地址链接:https://blog.csdn.net/ince130/article/details/126343684

使用DMRMAN命令的前提

1 使用 DMRMAN备份归档需要设置归档,否则会报错。
2 备份时需要关闭数据库实例

1.归档文件配置
在Linux环境中需要先检查dm.ini文件中ARCH_INI 项目是否开启

命令 cat /data/DAMENG/dm.ini|grep ARCH_INI

[dmdba@dm01 bin]$ cat /data/DAMENG/dm.ini|grep ARCH_INI
ARCH_INI = 1 #dmarch.ini

提示:如果ARCH_INI=0则需要修改 修改之后需要重启数据库生效

接下来配置dmarch.ini

[dmdba@dm01 bin]$ vi /data/DAMENG/dmarch.ini
[ARCHLIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/DAMENG/arch #本地归档存放路径
ARCH_FILE_SIZE = 1024 #单个归档大小,单位MB
ARCH_SPACE_LIMIT = 51200 #归档上限,单位MB

提示:

2.数据库关闭

进入DM_HOME/bin 目录

[dmdba@dm01 dmdbms]$ cd $DM_HOME/bin

查看DmServerDMSERVER 是否运行

[dmdba@dm01 bin]$ ./DmServiceDMSERVER status
DmServiceDMSERVER (pid 35024) is running.

关闭DmServiceDMSERVER

[dmdba@dm01 bin]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]

使用DMRMAN命令备份

每次备份都要指定数据库的dm.ini文件 否则无法备份
每次备份都要指定备份的目录 否则无法备份

示例命令:backup database ‘/data/DAMENG/dm.ini’ full backupset ‘/data/DAMENG/bak’;

RMAN> backup database '/data/DAMENG/dm.ini' full backupset '/data/DAMENG/bak';
backup database '/data/DAMENG/dm.ini' full backupset '/data/DAMENG/bak';
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[43955], file_lsn[43955]
Processing backupset /data/DAMENG/bak
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
backup successfully!
time used: 00:00:04.024

注1:可以使用静默方式运行dmrman

有些需要SHELL脚本中运行dmrman命令时 借助非交互可以实现将备份恢复语句保存在文本中
在dmrman 中输入help 或者在运行时输入help 会弹出具体用法

RMAN> help
version: 03134283914-20220901-168571-20009
格式: ./dmrman KEYWORD=value
例程: ./dmrman CTLFILE=/opt/dm7data/dameng/res_ctl.txt
必选参数:
关键字 说明
CTLFILE 指定执行语句所在的文件路径
CTLSTMT 指定待执行语句
DCR_INI 指定dmdcr.ini路径;若未指定且当前目录中dmdcr.ini存在,则使用当前目录中的dmdcr.ini。
可单独使用,也可与其他参数配合使用
HELP 打印帮助信息

注2:可以指定恢复到某个时间点

在实际运行中需要恢复到某个时间中需要特定时间点且不能关闭数据库(闪回功能)
这里以T1表修改数据量之前的状态为时间点对照

2.1 使用disql命令登陆到DM数据库中运行如下语句并记录时间 假设时间点为 2022-10-11 14:00

[dmdba@dm03 bin]$ ./disql
disql V8
用户名:
密码:
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 1.987(ms)
SQL> CREATE TABLE T1(C1 INT);
操作已执行
已用时间: 5.404(毫秒). 执行号:800.
SQL> INSERT INTO T1 VALUES(1);
影响行数 1
已用时间: 0.917(毫秒). 执行号:801.
SQL> COMMIT;
操作已执行
已用时间: 0.820(毫秒). 执行号:802.

2.2 使用disql命令备份数据库

SQL> backup database full backupset ‘/home/dmdba/bak’;

2.3 使用disql命令登陆到DM数据库中运行如下语句并记录时间 假设时间点为 2022-10-11 14:20

SQL> INSERT INTO T1 VALUES(2);
影响行数 1
已用时间: 0.917(毫秒). 执行号:801.
SQL> COMMIT;
操作已执行
已用时间: 0.820(毫秒). 执行号:802.

2.4 停止数据库服务并使用DMRMAN工具还原数据

SQL> shutdown normal;
操作已执行

使用dmrman 工具还原

[dmdba@dm03 bin]$ ./dmrman
dmrman V8
RMAN> restore database ‘/data/DAMENG/dm.ini’ from backupset ‘/home/dmdba/bak’;
restore database ‘/data/DAMENG/dm.ini’ from backupset ‘/home/dmdba/bak’;
file dm.key not found, use default license!
Global parameter value of LIKE_OPT_FLAG is illegal, use max value!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
restore successfully.
time used: 00:00:02.555

2.5 将数据库恢复到2022-10-11 14:00前

RMAN> recover database ‘/data/DAMENG/dm.ini’ with archivedir ‘/data/DAMENG/arch’ until time ‘2022-10-11 14:00’;
recover database ‘/data/DAMENG/dm.ini’ with archivedir ‘/data/DAMENG/arch’ until time ‘2022-10-11 14:00’;
Global parameter value of LIKE_OPT_FLAG is illegal, use max value!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[231172], file_lsn[231172]
[Percent:21.56%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]
recover successfully!
time used: 465.634(ms)
RMAN> recover database ‘/data/DAMENG/dm.ini’ update db_magic;
recover database ‘/data/DAMENG/dm.ini’ update db_magic;
Global parameter value of LIKE_OPT_FLAG is illegal, use max value!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[231213], file_lsn[231213]
recover successfully!
time used: 00:00:01.079

2.6 重启数据库并查询T1表

[dmdba@dm03 bin]$ ./disql
disql V8
SQL> select * from T1;
行号 C1


1 1
已用时间: 95.512(毫秒). 执行号:500.

DM社区地址

https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值