暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

达梦数据库DM8+异机恢复+不同目录结构

原创 范伟林 2023-05-17
659

前言

企业备份永远是最重要的,尤其是一个有效的备份,达梦异机恢复主要用到dmrman这个工具,本文适用于备份集恢复校验,系统迁移,灾难恢复等;下面进行详细过程演示。

一、安装DB软件

软件安装比较简单,这里进行省略

二、拷贝备份集

[dmdba@william backup]$ ll
total 0
drwxr-xr-x 2 dmdba dinstall 49 May 17 16:29 arch_0517
drwxr-xr-x 2 dmdba dinstall 86 May 17 16:29 full_0517
drwxr-xr-x 2 dmdba dinstall 75 May 17 17:01 incre_0517

Note:提前拷贝好备份集到目标机环境

三、创建数据目录

mkdir /data
mkdir /data/arch
chown dmdba.dinstall -R /data

Note:可以自定义恢复数据目录

四、创建空实例

[dmdba@william backup]$ dminit PATH=/data DB_NAME=testdb INSTANCE_NAME=testdb SYSDBA_PWD=dameng1234 SYSAUDITOR_PWD=dameng1234 PORT_NUM=5521
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire in 14 day(s) on 2023-05-31
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /data/testdb/testdb01.log


 log file path: /data/testdb/testdb02.log

write to dir [/data/testdb].
create dm database success. 2023-05-17 16:32:39

Note:达梦数据库恢复比较特别,需要一个空实例,可以理解是辅助实例

五、还原数据文件

[dmdba@william ~]$ dmrman
dmrman V8
RMAN> 
restore database '/data/testdb/dm.ini' from backupset '/home/dmdba/backup/incre_0517' with backupdir '/home/dmdba/backup/full_0517';RMAN> 
restore database '/data/testdb/dm.ini' from backupset '/home/dmdba/backup/incre_0517' with backupdir '/home/dmdba/backup/full_0517';
[Percent:0.00%][Speed:0.00M/s][Cost:00:00:01][Remaining:00:00:00]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.737
RMAN>

Note:有多个增量可以持续还原

六、还原归档日志

RMAN> restore archive log from backupset '/home/dmdba/backup/arch_0517' to archivedir '/data/arch';
restore archive log from backupset '/home/dmdba/backup/arch_0517' to archivedir '/data/arch';

restore successfully.
time used: 145.645(ms)
RMAN>

Note:任意时间恢复需要利用到归档进行

七、恢复数据库

刷增量

RMAN> recover database '/data/testdb/dm.ini' from backupset '/home/dmdba/backup/incre_0517';
recover database '/data/testdb/dm.ini' from backupset '/home/dmdba/backup/incre_0517';
file dm.key not found, use default license!
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[32323], file_lsn[32323]
EP:0 total 0 pkgs applied, percent: 0%
EP:0 total 1 pkgs applied, percent: 20%
EP:0 total 2 pkgs applied, percent: 40%
EP:0 total 3 pkgs applied, percent: 60%
EP:0 total 4 pkgs applied, percent: 80%
EP:0 total 5 pkgs applied, percent: 100%
recover successfully!
time used: 00:00:02.389

刷归档

RMAN> recover database '/data/testdb/dm.ini' with archivedir '/data/arch';
recover database '/data/testdb/dm.ini' with archivedir '/data/arch';
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[32335], file_lsn[32335]
recover successfully!
time used: 434.801(ms)
RMAN>

Note:可以看到lsn号推进了;数据库recover这一步可以指定任意的lsn和时间戳进行恢复

八、更新数据库magic

RMAN> recover database '/data/testdb/dm.ini' update db_magic;
recover database '/data/testdb/dm.ini' update db_magic;
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[32335], file_lsn[32335]
recover successfully!
time used: 00:00:01.106
RMAN>

Note:可以理解为Oracle的resetlogs

九、注册服务启动

[root@william root]# cd /opt/dm8/dmdbms/script/root
[root@william root]# ./dm_service_installer.sh -t dmserver -p testdb -dm_ini /data/testdb/dm.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicetestdb.service to /usr/lib/systemd/system/DmServicetestdb.service.
Finished to create the service (DmServicetestdb)
[root@adm25 root]# systemctl start DmServicetestdb
[root@adm25 root]# systemctl status DmServicetestdb
● DmServicetestdb.service - DM Instance Service(DmServicetestdb).
   Loaded: loaded (/usr/lib/systemd/system/DmServicetestdb.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2023-05-17 17:14:04 CST; 5s ago
  Process: 1522 ExecStart=/home/dmdba/dmdbms/bin/DmServicetestdb start (code=exited, status=0/SUCCESS)
 Main PID: 1546 (dmserver)
    Tasks: 51
   CGroup: /system.slice/DmServicetestdb.service
           └─1546 /home/dmdba/dmdbms/bin/dmserver path=/data/testdb/dm.ini -noconsole

May 17 17:13:49 adm25 systemd[1]: Starting DM Instance Service(DmServicetestdb)....
May 17 17:14:04 adm25 DmServicetestdb[1522]: [37B blob data]
May 17 17:14:04 adm25 systemd[1]: Started DM Instance Service(DmServicetestdb)..
[root@adm25 root]#

Note:为了实例管理起来方便,可以进行服务的注册,root进行操作

十、数据库验证

[dmdba@william ~]$ disql sysdba/dameng1234@localhost:5521

Server[localhost:5521]:mode is normal, state is open
login used time : 2.266(ms)
disql V8
SQL> 
SQL> select CKPT_LSN,CUR_LSN,DB_MAGIC from v$rlog;

LINEID     CKPT_LSN             CUR_LSN              DB_MAGIC            
---------- -------------------- -------------------- --------------------
1          32335                33698                863246300

used time: 0.937(ms). Execute id is 401.
SQL> select PATH,STATUS$ from v$datafile;

LINEID     PATH                    STATUS$    
---------- ----------------------- -----------
1          /data/testdb/SYSTEM.DBF 1
2          /data/testdb/ROLL.DBF   1
3          /data/testdb/TEMP.DBF   1
4          /data/testdb/MAIN.DBF   1
5          /data/testdb/FWL01.DBF  1
6          /data/testdb/FWL02.DBF  1

6 rows got

used time: 0.923(ms). Execute id is 601.
SQL>
SQL> select * from fwl.t_oem;

LINEID     EMNO        EMNAME EMJOB
---------- ----------- ------ -----
1          1           aa     bb
2          2           aa     bb
3          3           aa     bb
4          4           aa     bb

used time: 1.171(ms). Execute id is 402.
SQL>


Note:可以看到数据库是正常的

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论