为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:麒麟10
【CPU】:
【问题描述】*:在学习达梦的备份与还原过程中,产生了一些疑问,需要资深的DBA给解惑一下。以下是我的背景和疑问:
背景:
1.数据库开启了归档
2.数据库做了一个联机的全库备份
疑问:
1.假如我需要做一次数据库的还原与恢复,在recover database过程中需不需要指定with archivedir选项?
2.什么时候需要指定with archivedir选项?
3.什么时候需要update db_magic?
感觉学的有些混乱,希望能通过社区把我的问题理清楚。
首先,你做了全库联机备份。
那你还原的时候首先使用这个全库备份进行restore(restore相当于把备份文件做了解压),restore后再recover(recover相当于解压后把备份期间数据库执行的操作执行了一遍。后面生成的归档日志是不会重演的),如果这时候update db_magic的话,相当于给库重新改了个名,跟原来的区分开,直接就能用了。
然后,因为你开了归档,当你recover时执行完你的全库备份集后,还可以根据保留的归档再次recover,相当于把数据库的操作再往后推进,得到更新的数据。(可以指定时间或者LSN号等)

是否指定with archivedir是看需要恢复到什么时间点。比如说我全备的时间是5月14日10点的,那么我要恢复到5月14日10点就不需要指定with archivedir。而如果说我想恢复到5月15日的11点,就需要指定with archivedir。
简单来说with archivedir用于应用归档日志将数据库向前推进至最新或指定时间点。
还原-恢复-更新魔术是标准的恢复流程,update db_magic作用是为当前数据库生成一个新的DB_MAGIC值,是这个库独有的身份信息用来区别还原之前库的