dmbackup和dmrestore使用脱机工具进行备份还原

备份数据库

语法:

DMBACKUP KEYWORD=value

 

确认 DM 数据库服务器已停止后,使用dmbackup 进行备份

如:

DMBACKUP TYPE=FULL INI_PATH=c:\dmdata\dameng\dm.ini NAME=test_fullbak

 

还原数据库:

脱机库还原支持无备份文件的还原,原理就是利用归档文件,在目标库上执行REDO操作,把库还原到指定的时间点或者LSN。限制条件是:

1)目标库和归档必须是源自同一个库;

2)必须保证源库的归档是完整,否则会出现不可预知的错误,即要保证备份之后产生的归档是完整的。要利用归档还原,需要利用备份文件还原一个目标库,修改目标库 db_magic 和源库中归档文件的 db_magic 一致。然后就可以执行还原操作了。

 

库 db_magic 的修改可以使用 dmmdf 工具。

dmmdf 工具可以修改 TYPE 中指定的文件中的信息,例如 db_magic。

语法:

dmmdf KEYWORD=value

具体参数详看官方文档:

 

dmmdf 工具的使用,举例说明:

dmmdf.exe TYPE=1 FILE=d:\data\DAMENG\SYSTEM.dbf

dmmdf.exe TYPE=2 FILE=d:\data\DAMENG\DAMENG01.log

dmmdf.exe TYPE=3 FILE=d:\data\DAMENG\bak\dmdb.bak

dmmdf.exe TYPE=4 FILE=d:\data\DAMENG\bak\bset\nbak.meta dmmdf.exe TYPE=5 FILE=d:\data\DAMENG\bak\bset\nbak.bak dmmdf.exe TYPE=6 FILE=d:\data\DAMENG\bak\bset

dmmdf.exe TYPE=7 FILE=d:\data\DAMENG\arch DB_MAGIC_SRC=4734373 DB_MAGIC_DST=4734366

 

DMRESTORE 还原工具的用法如下:

DMRESTORE KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

--------------------------------------------------------------------------------------------------

使用备份文件还原:

利用备份文件 c:\dmdata\backup\test.bak 还原数据库

DMRESTORE INI_PATH=c:\dmdata\dameng\dm.ini FILE=c:\dmdata\backup\test.bak

 

利用归档文件 c:\dmdata\arch 还原数据库

第一步,修改目标库中的 db_magic。

--原备份库为 D:\tmp1\DAMENG,新还原的库为 D:\tmp2\DAMENG 

1.使用 DMMDF 工具查看源备份库中 db_magic。

dmmdf type=1 file=D:\tmp1\DAMENG\system.dbf 查看到 db_magic 为 1375075864。记下。

2.使用 DMMDF 工具查看目标库中 system.dbf 的 db_magic。

dmmdf type=1 file=D:\tmp2\DAMENG\system.dbf --查看到 db_magic 为 1375251734。

输入 1 后,出现 Please input new value: 输入:1375075864。

3.使用 DMMDF 工具查看目标库中 DAMENG01.log 的 db_magic。

dmmdf type=2 file=D:\tmp2\DAMENG\DAMENG01.log --查看到 db_magic 为 1375257160。

输入 7 后,出现 Input the new value:

输入:1375075864。

至此,修改完毕。

第二步,还原数据库

DMRESTORE INI_PATH=c:\dmdata\dameng\dm.ini ARCHIVE_DIR=(c:\dmdata\arch) SHOW_BAK_INFO=2

 

--------------------------------------------------------------------------------------------------

使用归档日志还原

DMRESTORE INI_PATH=c:\dmdata\dameng\dm.ini FILE=c:\dmdata\backup\test.bak ARCHIVE_DIR = c:\dmdata\dameng\arch

--------------------------------------------------------------------------------------------------

还原到指定时间点或LSN

 

 DMRESTORE INI_PATH=c:\dmdata\dameng\dm.ini FILE=c:\dmdata\backup\test.bak TIME="2011-9-25 15:20:20" ARCHIVE_DIR = c:\dmdata\dameng\arch

 

 DMRESTORE INI_PATH=c:\dmdata\dameng\dm.ini FILE=c:\dmdata\backup\test.bak END_LSN=20000 ARCHIVE_DIR = c:\dmdata\dameng\arch

--------------------------------------------------------------------------------------------------

使用并行映射文件还原

利用并行备份文件 c:\dmdata\backup\test.bak 还原数据库,并行映射文件为E:\bak.parallel。

DMRESTORE INI_PATH=c:\dmdata\dameng\dm.ini FILE=c:\dmdata\backup\test.bak PARALLEL_DIR=E:\bak.parallel

 

--------------------------------------------------------------------------------------------------

使用不同库归档恢复数据库

使用不同库的归档恢复数据库,应用场景如下:

1. 创建一个源库 D;

2. 做一个备份 B;

3. 在 D 上做一些操作,目的是生成一些归档 A; 4. 创建一个新库D2;

5. 用 B+A 还原恢复;

6. 在 D2 上做一些操作,生成一些归档 A2;

7. 现在有了 B,A,A2, 理论上应该可以恢复出一个最新状态的 D2。

 

 

对应上述场景,操作步骤如下:

1.初始化源库和目标库,待备份和还原。

--D

dminit path=e:\tmp\del1 

--D2

dminit path=e:\tmp\del2

2.源库配置归档并启动,归档路径为 e:\tmp\del1\dameng\arch。 

dmserver e:\tmp\del1\dameng\dm.ini

3.备份源库,可以联机或脱机备份,这里以联机为例,备份文件为 B。

backup database bakfile 'e:\tmp\db_del1_bak_01.bak';

4.操作源数据库,生成一些归档 A。

drop table test;

create table test(c1 int);

insert into test values(1); commit;

select * from test;

 

5.利用源库的备份及归档还原数据库到 D2。

dmrestore ini_path=e:\tmp\del2\dameng\dm.ini file=e:\tmp\db_del1_bak_01.bak ARCHIVE_DIR=e:\tmp\del1\dameng\arch

6.配置归档,启动数据库 D2,并执行一些操作生成归档 A2,归档路径为e:\tmp\del2\dameng\arch。

dmserver e:\tmp\del2\dameng\dm.ini 

insert into test values(2); 

insert into test values(3); 

commit;

select * from test;

查询结果:

行号        C1

1        1

2        2

3        3

 

7.关闭数据库 D2,利用备份文件 B、归档 A、A2 还原数据库到 D2。

利用B+A还原目标库

dmrestore ini_path=e:\tmp\del2\dameng\dm.ini file=e:\tmp\db_del1_bak_01.bak ARCHIVE_DIR=e:\tmp\del1\dameng\arch

查看归档A2的db_magic。

c:\dmdbms\bin>dmrachk.exe arch_fil=E:\TMP\del2\DAMENG\arch\ARCHIVE_LOCAL1_20151123102621688.log 

arch_db_magic : 1448245568

 

修改目标库D2的db_magic与A2的一致,A2的db_magic为1448245568。

dmmdf E:\TMP\del2\DAMENG\SYSTEM.DBF 1 

dmmdf E:\TMP\del2\DAMENG\DAMENG01.log 2

 

利用归档A2恢复

dmrestore ini_path=e:\tmp\del2\dameng\dm.ini ARCHIVE_DIR=e:\tmp\del2\dameng\arch res_type=2

 

8.启动数据 D2 查看结果。

select * from test;

行号        C1

1        1

2        2

3        3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值