ITPub博客

首页 > 数据库 > 国内数据库 > dmbackup和dmrestore使用脱机工具进行备份还原

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

原创 国内数据库 作者:1209082587 时间:2020-10-12 15:13:58 0 删除 编辑

备份数据库

语法:

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31424253/viewspace-2726327/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: dislq 备份实战
请登录后发表评论 登录
全部评论

注册时间:2016-12-29

  • 博文量
    35
  • 访问量
    28261