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

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 远程数据和批量操作 » 导入和导出数据 » 重建数据库

 

重建参与同步或复制的数据库

本节内容适用于 SQL Anywhere MobiLink 客户端(使用 dbmlsync 的客户端)和 SQL Remote。

如果数据库正在参与同步或复制,则重建该数据库需要特别注意。同步和复制是基于事务日志中的偏移进行的。当重建数据库时,旧事务日志中的偏移不同于新事务日志中的偏移,从而使旧日志不可用。因此,良好的备份习惯在数据库参与同步或复制时尤为重要。

重建参与同步或复制的数据库有两种方法。第一种方法使用 dbunload 实用程序 -ar 选项,以一种不干扰同步或复制的方式执行卸载和重装。第二种方法是一种可执行相同任务的手动方法。

在重建参与 MobiLink 同步的数据库之前,必须同步所有预订。

 ♦  重建参与同步或复制的数据库(dbunload 实用程序)
  1. 关闭数据库。

  2. 将数据库和事务日志文件复制到一个安全位置,从而执行完全脱机备份。

  3. 运行以下 dbunload 命令重建数据库:

    dbunload -c connection-string -ar directory

    connection-string 是拥有 DBA 权限的连接,directory 是在复制环境中用于旧事务日志的目录。该数据库不能有任何其它连接。

    -ar 选项只适用于与个人服务器的连接或通过共享内存与网络服务器的连接。

    有关详细信息,请参见卸载实用程序 (dbunload)

  4. 关闭新数据库,然后执行通常在恢复数据库之后执行的有效性检查。

    有关有效性检查的详细信息,请参见校验数据库

  5. 使用任何需要的生产选项启动数据库。现在可以允许用户访问重装的数据库。

注意

dbunload 实用程序还提供了一些其它选项(可用来调整卸载)和连接参数选项(可用来指定运行中或非运行中数据库以及数据库参数)。请参见卸载实用程序 (dbunload)

 ♦  以手工干预的方式重建参与同步或复制的数据库
  1. 关闭数据库。

  2. 将数据库和事务日志文件复制到一个安全位置,从而执行完全脱机备份。

  3. 运行 dbtran 实用程序,以显示数据库当前事务日志文件的开始偏移和结束偏移。

    记下结束偏移,以便在第 8 步中使用。

  4. 重命名当前事务日志文件,以便在卸载过程中该文件不被修改,然后将此文件放置在 dbremote 脱机日志目录中。

  5. 重建数据库。

    有关此步骤的信息,请参见重建数据库

  6. 关闭新数据库。

  7. 消除新数据库的当前事务日志文件。

  8. 对新数据库使用 dblog,将第 3 步中记录的结束偏移用作 -z 参数,同时将相对偏移设置为零。

    dblog -x 0 -z 0000698242 -ir -is database-name.db
  9. 在运行消息代理时,在它的命令行上为它提供原始脱机目录的位置。

  10. 启动数据库。现在可以允许用户访问重装的数据库。