以下过程介绍了如何自动恢复统一数据库。要手工应用事务日志,请参见手工恢复统一数据库。
创建数据库和事务日志文件的副本。此过程假定先前已备份了数据库文件,并且现在可用(例如在磁带上)。
将数据库 (.db) 文件的最新备份副本(而非 事务日志文件)从磁带恢复到临时目录中。
在该临时目录中:
启动数据库,同时使用 -ad 选项应用事务日志。
当您指定 -ad 选项时,数据库服务器会在指定目录中为数据库查找事务日志。然后,它根据事务日志偏移确定应用日志的正确顺序。
将当前事务日志复制到临时目录中。
启动数据库并应用当前事务日志。
关闭数据库服务器。
备份数据库和事务日志。
将数据库和事务日志文件复制到适当的生产目录中。
以正常方式重新启动系统。
所有新活动将附加到当前事务日志中。
假设您拥有一个名为 c:\dbdir\cons.db 的统一数据库文件、一个事务日志文件 c:\dbdir\cons.log 以及一个事务日志镜像文件 d:\mirdir\cons.mlg。
假定您使用以下命令每周执行完全备份:
dbbackup -c "UID=DBA;PWD=sql" -r -n e:\backdir |
假定您还使用以下命令每天执行增量备份:
dbbackup -c "UID=DBA;PWD=sql" -r -n -t e:\backdir |
此命令将事务日志 cons.log 备份到目录 e:\backdir 中。这时,该事务日志文件被重命名为 datexx.log(其中 date 为当前日期,xx 为序列中的下一组字母),这样,一个新的事务日志便启动了。目录 e:\backdir 随后将使用第三方实用程序进行备份。
在这种情况下,可使用指向已重命名的事务日志文件的可选目录来运行消息代理 (dbremote)。例如:
dbremote -c "UID=DBA;PWD=sql" c:\dbdir |
在每周备份后的第三天,数据库文件因磁盘块错误而损坏。
替换 c:\ 驱动器。
备份事务日志镜像文件 d:\mirdir\cons.mlg。
创建一个用于执行恢复的临时目录。在本示例中,该目录名为 c:\recover。
将数据库文件 cons.db 的最新备份恢复到 c:\recover\cons.db 中。
将备份的事务日志复制到 c:\dbdir 中。
应用已重命名的事务日志:
dbeng11 c:\recover\cons.db -ad c:\dbdir |
将当前事务日志 d:\mirdir\cons.log 复制到恢复目录中,得到 c:\recover\cons.log。
使用以下命令启动数据库:
dbeng11 c:\recover\cons.db |
关闭数据库服务器。
从 c:\recover 中备份已恢复的数据库和事务日志。
将文件从 c:\recover 复制到相应的生产目录:
将 c:\recover\cons.db 复制到 c:\dbdir\cons.db。
将 c:\recover\cons.log 复制到 c:\dbdir\cons.log 和 d:\mirdir\cons.mlg。
以正常方式重新启动系统。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |