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

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

 

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

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

前提条件

DBA 特权。

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

上下文和注释

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

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

注意

可以使用其它 dbunload 选项来指定正在运行或没有运行的数据库以及数据库参数。

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

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

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

    dbunload -c connection-string -ar directory

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

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

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

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

 ♦ 以手动干预的方式重建参与同步或复制的数据库
  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. 启动数据库。现在可以允许用户访问重装的数据库。

结果

数据库已被重装并重新启动。

下一步

无。

 另请参见