您的位置:首页 > 其它

达梦(4)脱机备份恢复

2014-01-07 14:51 169 查看
达梦的脱机备份按理说应当很简单,可事实是消耗了我大把的时间。唉。 国产的软件公司是不是都很缺钱,缺人?

 没人更新文档或在论坛上之类做些例子,不做好推广,没人用怎么做得起市场来?

    不过唯一值得称道的是他们的客户QQ群还是很给力的。我周日弄的,遇到问题提了下问题,马上有人回答。

其实达梦脱机备份设计的很简单,在文档<<DM_DBA>>这份pdf档的275页。它举了个例子.
DMBACKUP TYPE=FULL INI_PATH=c:\dmdata\dameng\dm.ini NAME=test

你按它说的步骤,
1.停掉服务,
Windows下: DM服务查看器 -> 停掉对应实例服务就行了
Linux下: 停掉./dmserver 就行了。


2.执行备份
DMBACKUP  INI_PATH=C:\dmdbms\data\DAMENG\dm.ini NAME=DMSERVER
第一次可以成功,
但第二次执行就会报错。 你重启服务,再停掉再试,也会一样。
原因是参数"NAME"实际上相当于Oracle RMAN中的备份集名称。达梦数据库把这个当作
一个备份集的唯一标识。所以当你第二次执行时,数据库会认为这个备份名已存在。
而我误认为这个name是数据库名字。 
好吧,我承认是我理解有误,但第二个问题就不关我事了。

我尝试用"BAKFILE_PATH"参数,将备份放到指定的一个文件中。
命令如下:
DMBACKUP  INI_PATH=C:\dmdbms\data\DAMENG\dm.ini NAME=DMSERVER8  BAKFILE_PATH='c:\dmtest\xcl.bak';

结果老是报"-8018"错误 
C:\dmdbms\bin>DMBACKUP  INI_PATH=C:\dmdbms\data\DAMENG\dm.ini NAME=DMSERVER8  BAKFILE_PATH='c:\dmtest\xcl.bak';
backup V7.1.2.215-Build(2013.11.08-36626trunc)
Global parameter value of HA_OTHER_INST_PORT is illegal, use max value!
无效的备份路径名, backup error code : -8018
backup time used: 2967.504(ms)

解决方法是: 
将NAME参数放在BAKFILE_PATH后面
C:\dmdbms\bin\dmbackup.exe  INI_PATH=C:\dmdbms\data\DAMENG\dm.ini  BAKFILE_PATH=C:\dmtest\xcl.bak NAME=DMSERVER8
这个问题因为我一直在怀疑BAKFILE_PATH参数是不是输入得不对,尝试了很多种方法。文档和网上也没查到相关的说明。最后还是达梦客户群
的人解答的。据说是因为代码更新很快,定制化也多,做不来过,所以文档更新不即时造成的。虽无语,不过也感觉到国产数据库日子过得不错啊。单子这
么多,据说已卖到国外了。

C:\Users\XCL>C:\dmdbms\bin\dmbackup.exe INI_PATH=C:\dmdbms\data\DAMENG\dm.ini BAKFILE_PATH=C:\dmtest\xcl.bak NAME=DMSERVER8
backup V7.1.2.215-Build(2013.11.08-36626trunc)
Global parameter value of HA_OTHER_INST_PORT is illegal, use max value!
start backup tablespace: SYSTEM.
start backup file: C:\dmdbms\data\DAMENG\SYSTEM.DBF, pages: 1280
end backup file: C:\dmdbms\data\DAMENG\SYSTEM.DBF

end backup tablespace: SYSTEM.

start backup tablespace: ROLL.
start backup file: C:\dmdbms\data\DAMENG\ROLL.DBF, pages: 0
end backup file: C:\dmdbms\data\DAMENG\ROLL.DBF

end backup tablespace: ROLL.

start backup tablespace: MAIN.
start backup file: C:\dmdbms\data\DAMENG\MAIN.DBF, pages: 0
end backup file: C:\dmdbms\data\DAMENG\MAIN.DBF

end backup tablespace: MAIN.

start backup tablespace: BOOKSHOP.
start backup file: C:\dmdbms\data\DAMENG\BOOKSHOP.DBF, pages: 0
end backup file: C:\dmdbms\data\DAMENG\BOOKSHOP.DBF

end backup tablespace: BOOKSHOP.

backup fun end time used: 1928.889(ms)
backup successfully!
backup time used: 3797.014(ms)

C:\Users\XCL>

恢复

首先看参数:

C:\Users\XCL>C:\dmdbms\bin\dmrestore.exe help

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

例程: DMRESTORE  INI_PATH=c:\dm7data\dameng\dm.ini FILE=c:\dm7data\backup\test.bak

必选参数: FILE

关键字              说明(默认)

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

INI_PATH            服务器的ini文件路径

FILE                备份文件

MAPPED_FIL          当指定res_type为4时,输出备份文件的映射信息到该文件

TIME                恢复到的时间点

ARCHIVE_DIR         备份时的归档目录 格式 (dir1,dir2,dir3,...)

BACKUP_DIR          备份文件存放路径,用于搜索备份文件 格式 (dir1,dir2,dir3,...)

DATAFIL_PATH        恢复时指定文件路径 (id1,path1,id2,path2,id3,path3,...)

MIRROR_PATH          恢复时指定镜像文件路径  (id1,path1,id2,path2,id3,path3,...)

PARALLEL_DIR        并行映射文件所在的完整目录名

RES_TYPE            还原类型(0,1,2,3,4) 0:备份文件还原,1:备份文件显示,2:归档文件还原,3:单步增量还原,4:输出备份映射文件。

END_LSN             还原到指定的LSN

LOG                 还原的日志输出文件

HELP                打印帮助信息

然后,发现要保留下面文件,然后运行恢复命令才能恢复出来,否则老是提示少文件,这个和Oracle之类还真不一样。

就是说能删的只有 BOOKSHOP.DBF DAMENG目录  trace目录  arch目录 

这有啥用?

删得只剩下这些文件,少一个恢复时都会报错,文档没解释,真不解

C:\dmdbms\data\DAMENG>dir
驱动器 C 中的卷是 OS
卷的序列号是 C8C0-48C4

C:\dmdbms\data\DAMENG 的目录

2014/01/07 16:43 <DIR> .
2014/01/07 16:43 <DIR> ..
2014/01/07 16:01 67,108,864 DAMENG01.log
2014/01/07 16:01 67,108,864 DAMENG02.log
2014/01/03 10:51 5,632 dm.ctl
2014/01/03 15:02 22,214 dm.ini
2014/01/04 10:48 127 dmarch.ini
2014/01/03 10:50 633 dm_service.prikey
2014/01/07 16:01 10,485,760 SYSTEM.DBF
7 个文件 144,732,094 字节
2 个目录 65,555,996,672 可用字节

执行恢复

C:\dmdbms\data\DAMENG>C:\dmdbms\bin\dmrestore.exe INI_PATH=C:\dmdbms\data\DAMENG\dm.ini file=C:\dmtest\dmcold.bak
restore V7.1.2.215-Build(2013.11.08-36626trunc)
Global parameter value of HA_OTHER_INST_PORT is illegal, use max value!

backup DMSERVER10 info:
backup sig: BA
backup tool version: 12595
backup db name: DAMENG
backup db magic: 1388717456
backup name: DMSERVER10
backup type: full
backup level: offline
backup range: database
backup description:
compressed level: 0
rac node: 0
page check: 0
length in char: 0
backup time: 2014-01-07 14:34:20
page size: 8 KB
extent size: 16
case sensitive: 1
log page size: 512 B
unicode flag: 0
data version: 0x70008
sys version: V7.1.2.215-Build(2013.11.08-36626trunc)
enable policy: 0
parallel type: 0
parallel info len: 0
backup db fil num: 4
archive flag: 1
after backup LSN: 25337

file_seq file_path size(KB)
1 C:\dmtest\dmcold.bak 16384

file_seq file_path mirror_path
1 C:\dmdbms\data\DAMENG\SYSTEM.DBF
2 C:\dmdbms\data\DAMENG\ROLL.DBF
3 C:\dmdbms\data\DAMENG\MAIN.DBF
4 C:\dmdbms\data\DAMENG\BOOKSHOP.DBF

Continue?[Y/N]:y
restore bak_file: C:\dmtest\dmcold.bak ...
start restore database...
start restore file: C:\dmdbms\data\DAMENG\SYSTEM.DBF(SYSTEM), pages: 278
end restore file: C:\dmdbms\data\DAMENG\SYSTEM.DBF(SYSTEM)
start restore file: C:\dmdbms\data\DAMENG\ROLL.DBF(ROLL), pages: 617
end restore file: C:\dmdbms\data\DAMENG\ROLL.DBF(ROLL)
start restore file: C:\dmdbms\data\DAMENG\MAIN.DBF(MAIN), pages: 4
end restore file: C:\dmdbms\data\DAMENG\MAIN.DBF(MAIN)
start restore file: C:\dmdbms\data\DAMENG\BOOKSHOP.DBF(BOOKSHOP), pages: 133
end restore file: C:\dmdbms\data\DAMENG\BOOKSHOP.DBF(BOOKSHOP)
end restore database data files.

restore finished, code = 0!

restore successfully!
restore time used: 3654.514(ms)
恢复成功后
C:\dmdbms\data\DAMENG>dir
驱动器 C 中的卷是 OS
卷的序列号是 C8C0-48C4

C:\dmdbms\data\DAMENG 的目录

2014/01/07  16:44    <DIR>          .
2014/01/07  16:44    <DIR>          ..
2014/01/07  16:44       157,286,400 BOOKSHOP.DBF
2014/01/07  16:44        67,108,864 DAMENG01.log
2014/01/07  16:44        67,108,864 DAMENG02.log
2014/01/07  16:44             5,632 dm.ctl
2014/01/07  16:44            22,214 dm.ini
2014/01/04  10:48               127 dmarch.ini
2014/01/07  16:44               156 dminst.sys
2014/01/07  16:44             2,131 dmrestore.log
2014/01/07  16:44               633 dm_service.prikey
2014/01/07  16:44       134,217,728 MAIN.DBF
2014/01/07  16:44       134,217,728 ROLL.DBF
2014/01/07  16:44        10,485,760 SYSTEM.DBF
2014/01/07  16:44        10,485,760 TEMP.DBF
13 个文件    580,941,997 字节
2 个目录 65,117,458,432 可用字节


MAIL: xcl_168@aliyun.com

BLOG: http://blog.csdn.net/xcl168
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息