Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Remote » SQL Remote 部署和管理 » SQL Remote 管理

 

手工恢复统一数据库

以下过程介绍了如何通过将各个事务日志应用到数据库来恢复统一数据库。要使 SQL Anywhere 数据库服务器自动恢复统一数据库,请参见自动恢复统一数据库

♦  使用 -a 选项恢复数据库
  1. 创建数据库和事务日志文件的副本。此过程假定先前已备份了数据库文件,并且现在可用(例如在磁带上)。

  2. 创建一个临时目录。

  3. 将数据库 (.db) 文件的最新备份(而 事务日志文件)从磁带恢复到临时目录中。

    在该临时目录中:

    1. 启动数据库的备份副本。

    2. 使用 -a 选项应用旧事务日志。

    3. 关闭数据库。

    4. 使用当前事务日志和 -a 选项启动数据库,以应用事务并更新数据库文件。

    5. 关闭数据库。

    6. 备份数据库。

  4. 将数据库复制到生产目录中。

  5. 启动数据库。

    所有新活动将附加到当前事务日志中。

示例:逐一应用事务日志

假设您拥有一个名为 c:\dbdir\cons.db 的统一数据库文件、一个事务日志文件 c:\dbdir\cons.log 以及一个事务日志镜像文件 d:\mirdir\cons.mlg

假定您每周执行完全备份,并且使用以下命令每天执行增量备份:

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 驱动器上的介质故障中恢复:
  1. 备份事务日志镜像文件 d:\mirdir\cons.mlg

  2. 创建一个用于执行恢复的临时目录。在本示例中,该目录名为 c:\recover

  3. 将数据库文件 cons.db 的最新备份恢复到 c:\recover\cons.db 中。

  4. 按顺序应用已重命名的事务日志,如下所示:

    dbeng11 -a c:\dbdir\dateAA.log c:\recover\cons.db
    dbeng11 -a c:\dbdir\dateAB.log c:\recover\cons.db
  5. 将当前事务日志 d:\mirdir\cons.log 复制到恢复目录中,得到 c:\recover\cons.log

  6. 使用以下命令启动数据库:

    dbeng11 c:\recover\cons.db
  7. 关闭数据库服务器。

  8. c:\recover 中备份已恢复的数据库和事务日志。

  9. 将文件从 c:\recover 复制到相应的生产目录:

    • c:\recover\cons.db 复制到 c:\dbdir\cons.db

    • c:\recover\cons.log 复制到 c:\dbdir\cons.logd:\mirdir\cons.mlg

  10. 以正常方式重新启动系统。

另请参见