达梦的脱机备份按理说应当很简单,可事实是消耗了我大把的时间。唉。 国产的软件公司是不是都很缺钱,缺人?
没人更新文档或在论坛上之类做些例子,不做好推广,没人用怎么做得起市场来?
不过唯一值得称道的是他们的客户qq群还是很给力的。我周日弄的,遇到问题提了下问题,马上有人回答。
其实达梦脱机备份设计的很简单,在文档>这份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 .2014/01/07 16:43 ..2014/01/07 16:01 67,108,864 dameng01.log2014/01/07 16:01 67,108,864 dameng02.log2014/01/03 10:51 5,632 dm.ctl2014/01/03 15:02 22,214 dm.ini2014/01/04 10:48 127 dmarch.ini2014/01/03 10:50 633 dm_service.prikey2014/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.bakrestore 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: babackup tool version: 12595backup db name: damengbackup db magic: 1388717456backup name: dmserver10backup type: fullbackup level: offlinebackup range: databasebackup description:compressed level: 0rac node: 0page check: 0length in char: 0backup time: 2014-01-07 14:34:20page size: 8 kbextent size: 16case sensitive: 1log page size: 512 bunicode flag: 0data version: 0x70008sys version: v7.1.2.215-build(2013.11.08-36626trunc)enable policy: 0parallel type: 0parallel info len: 0backup db fil num: 4archive flag: 1after backup lsn: 25337file_seq file_path size(kb)1 c:\dmtest\dmcold.bak 16384file_seq file_path mirror_path1 c:\dmdbms\data\dameng\system.dbf2 c:\dmdbms\data\dameng\roll.dbf3 c:\dmdbms\data\dameng\main.dbf4 c:\dmdbms\data\dameng\bookshop.dbfcontinue?[y/n]:yrestore bak_file: c:\dmtest\dmcold.bak ...start restore database...start restore file: c:\dmdbms\data\dameng\system.dbf(system), pages: 278end restore file: c:\dmdbms\data\dameng\system.dbf(system)start restore file: c:\dmdbms\data\dameng\roll.dbf(roll), pages: 617end restore file: c:\dmdbms\data\dameng\roll.dbf(roll)start restore file: c:\dmdbms\data\dameng\main.dbf(main), pages: 4end restore file: c:\dmdbms\data\dameng\main.dbf(main)start restore file: c:\dmdbms\data\dameng\bookshop.dbf(bookshop), pages: 133end 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 .2014/01/07 16:44 ..2014/01/07 16:44 157,286,400 bookshop.dbf2014/01/07 16:44 67,108,864 dameng01.log2014/01/07 16:44 67,108,864 dameng02.log2014/01/07 16:44 5,632 dm.ctl2014/01/07 16:44 22,214 dm.ini2014/01/04 10:48 127 dmarch.ini2014/01/07 16:44 156 dminst.sys2014/01/07 16:44 2,131 dmrestore.log2014/01/07 16:44 633 dm_service.prikey2014/01/07 16:44 134,217,728 main.dbf2014/01/07 16:44 134,217,728 roll.dbf2014/01/07 16:44 10,485,760 system.dbf2014/01/07 16:44 10,485,760 temp.dbf 13 个文件 580,941,997 字节 2 个目录 65,117,458,432 可用字节
