备份数据库
语法:
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/ ,如需转载,请注明出处,否则将追究法律责任。