达梦数据库使用dmrman迁移

该文档目的是通过,一次全备,多次增量备份和多次增量恢复来模拟达梦数据库在搬迁中实现最小化停机时间。

一、环境主备

源数据库服务器:172.16.121.172

目标数据库服务器:172.16.121.107

1、初始化源数据库

dminit  path=/u01/dm8/data/hiszj INSTANCE_NAME=hiszj PORT_NUM=5238

2、后台启动源数据库

nohup dmserver /u01/dm8/data/hiszj/DAMENG/dm.ini > /u01/dm8/data/hiszj/hiszj.log &

3、源数据库开归档

mkdir -p /u01/dm8/data/hiszj/arch  #创建归档目录

alter database mount;
alter database archivelog;
ALTER DATABASE ADD ARCHIVELOG 'DEST = /u01/dm8/data/hiszj/arch, TYPE = local,FILE_SIZE = 100, SPACE_LIMIT = 2048';
alter database open;
select arch_mode from v$database;
select arch_name,arch_type,arch_dest,arch_file_size from v$dm_arch_ini;
alter system switch logfile;

SQL> select file_name,tablespace_name,bytes/1024/1024,AUTOEXTENSIBLE from dba_data_files;

行号     FILE_NAME                             TABLESPACE_NAME BYTES/1024/1024      AUTOEXTENSIBLE
---------- ------------------------------------- --------------- -------------------- --------------
1          /u01/dm8/data/hiszj/DAMENG/MAIN.DBF   MAIN            128                  YES
2          /u01/dm8/data/hiszj/DAMENG/SYSTEM.DBF SYSTEM          74                   YES
3          /u01/dm8/data/hiszj/DAMENG/TEMP.DBF   TEMP            10                   YES
4          /u01/dm8/data/hiszj/DAMENG/ROLL.DBF   ROLL            128                  YES

4、源数据库建表空间、用户、并插入数据

sysdba账号:

disql sysdba/SYSDBA:5238

create tablespace tbs01 datafile '/u01/dm8/data/hiszj/DAMENG/tbs_data_01.DBF' size 100;

create user chen identified by chenchen123 default tablespace tbs01;
grant public,resource,dba to chen;

conn chen/chenchen123:5238   #切换到chen账号


create table t01 as select * from sysobjects;
create table tt1(id number,name varchar(32));
insert into tt1 values(1,'name1');
insert into tt1 values(2,'name2');
insert into tt1 values(3,'name3');
insert into tt1 values(4,'name4');
insert into tt1 values(5,'name5');
insert into tt1 values(6,'name6');
insert into tt1 values(7,'name7');
insert into tt1 values(8,'name8');
insert into tt1 values(9,'name9');
insert into tt1 values(10,'name10');
commit;

SQL> select table_name from user_tables;

行号     TABLE_NAME
---------- ----------
1          T01
2          TB_TEST1

5、源库第一次全量和增量备份

disql SYSDBA/SYSDBA:5238
backup database backupset '/u01/dm8/backup/hiszjbk'; #会自动创建testbk新目录
backup database increment with backupdir '/u01/dm8/backup' backupset '/u01/dm8/backup/hiszj_inc_back'; 

6、复制到目标端

scp -r hiszj_inc_back 172.16.121.107:/u01/dm8/backup/.
scp -r hiszjbk  172.16.121.107:/u01/dm8/backup/.

注意:这里目标端的备份文件目录和源端一致。

7、第二次插入数据并增量备份

disql chen/chenchen123:5238

SQL> create table t02 as select * from t01;
SQL> create table t03 as select * from sysobjects;
SQL> alter system switch logfile;

disql SYSDBA/SYSDBA:5238
backup database increment with backupdir '/u01/dm8/backup' backupset '/u01/dm8/backup/hiszj_inc1_back'; 
scp -r hiszj_inc1_back 172.16.121.107:/u01/dm8/backup/.

8、第三次插入数据并增量备份

disql chen/chenchen123:5238
create table t04 as select * from t01;
create table t05 as select * from t01;
alter system switch logfile;

disql SYSDBA/SYSDBA:5238
backup database increment with backupdir '/u01/dm8/backup' backupset '/u01/dm8/backup/hiszj_inc2_back'; 
scp -r hiszj_inc2_back 172.16.121.107:/u01/dm8/backup/.

二、数据库迁移恢复

1、目标端初始化数据库


 dminit path=/u01/dm8/data/hiszj INSTANCE_NAME=hiszj PORT_NUM=5238

初始化后,目标端数据库不需要启动

2、多次恢复数据库


dmrman
restore database '/u01/dm8/data/hiszj/DAMENG/dm.ini' from backupset '/u01/dm8/backup/hiszjbk';
restore database '/u01/dm8/data/hiszj/DAMENG/dm.ini' from backupset '/u01/dm8/backup/hiszj_inc_back';
restore database '/u01/dm8/data/hiszj/DAMENG/dm.ini' from backupset '/u01/dm8/backup/hiszj_inc1_back';
recover database '/u01/dm8/data/hiszj/DAMENG/dm.ini' from backupset '/u01/dm8/backup/hiszj_inc1_back';  ##针对最后一个restore做recover即可
recover database '/u01/dm8/data/hiszj/DAMENG/dm.ini' update db_magic;
exit;

3、打开数据库,可看到恢复到第2次增量备份后的数据。
dmserver /u01/dm8/data/hiszj/DAMENG/dm.ini    #前台启动数据库

disql chen/chenchen123:5238

select table_name from user_tables;

Ctrl+c,关闭数据库

4、继续恢复数据库
restore database '/u01/dm8/data/hiszj/DAMENG/dm.ini' from backupset '/u01/dm8/backup/hiszj_inc2_back';
recover database '/u01/dm8/data/hiszj/DAMENG/dm.ini' from backupset '/u01/dm8/backup/hiszj_inc2_back';
recover database '/u01/dm8/data/hiszj/DAMENG/dm.ini' update db_magic;

dmserver /u01/dm8/data/hiszj/DAMENG/dm.ini    #前台启动数据库

disql chen/chenchen123:5238

select table_name from user_tables;

#打开数据库后,发现数据完全一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值