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 Anywhere 服务器 - SQL 的用法 » 远程数据和批量操作 » 导入和导出数据

 

重建数据库

重建数据库是一种特殊类型的导入和导出,涉及卸载和重装整个数据库。重建(卸载/装载)和抽取过程用于重建数据库、从现有数据库的一部分创建新数据库以及消除未使用的空闲页。

如果要重建数据库,使其升级为更新版本的 SQL Anywhere,请参见升级 SQL Anywhere

可以从 Sybase Central 或使用 dbunload 实用程序重建数据库。

注意

最好在重建数据库前对其进行备份,特别是选择使用重建的数据库替换原始数据库时。

有关详细信息,请参见备份和数据恢复

导入和导出的结果是数据进出数据库。导入将数据读入数据库。导出将数据写出数据库。信息通常以另一个非 SQL Anywhere 数据库为来源或目的地。

如果指定了加密选项 -ek、-ep 或 -et,reload.sql 文件中的 LOAD TABLE 语句必须包括加密密钥。硬编码密钥会危及安全性,所以 reload.sql 文件中的一个参数指定加密密钥。使用 Interactive SQL 执行 reload.sql 文件时,必须将加密密钥指定为参数。如果未在 READ 语句中指定密钥,Interactive SQL 会提示您输入密钥。请参见Interactive SQL 实用程序 (dbisql)

装载和卸载操作会从 SQL Anywhere 数据库中提取数据和模式,然后将数据和模式放回 SQL Anywhere 数据库。卸载过程产生数据文件和一个 reload.sql 文件,后者包含重新创建完全相同的表所需的表定义。运行 reload.sql 脚本可重新创建这些表并将数据装载回这些表。

重建数据库是一项耗时的操作,并需要大量磁盘空间。同样,当卸载和重装数据库时,数据库无法使用。出于这些原因,除非目的明确,否则不建议在生产环境中重建数据库。

从一个 SQL Anywhere 数据库到另一个

重建通常将数据从 SQL Anywhere 数据库中复制出来,然后将这些数据重装回 SQL Anywhere 数据库。卸载和重装是关联的,因为通常同时执行这两个任务,而不是只执行其中的一个。

重建与导出

重建不同于导出,其不同之处在于重建过程除了导出并导入数据之外,还导出并导入表定义和模式。重建过程的卸载部分产生文本格式数据文件和包含表定义和其它定义的 reload.sql 文件。可以运行 reload.sql 脚本重新创建这些表并将数据装载到这些表中。

有关详细信息,请参见内部与外部卸载和重装

如果使用 SQL Remote 或 MobiLink,则考虑抽取数据库(从旧数据库创建新数据库)。请参见抽取数据

重建复制数据库

重建数据库的过程取决于该数据库是否参与复制。如果数据库参与复制,则必须在整个操作过程中保留事务日志偏移,因为 Message Agent 和 Replication Agent 需要此信息。如果数据库不参与复制,则重建过程会简单一些。

另请参见

重建数据库的原因
重建不参与同步或复制的数据库
重建参与同步或复制的数据库
使用 dbunload 实用程序重建数据库
使用 UNLOAD TABLE 语句重建数据库
导出表数据或表模式
重装数据库
重建数据库时最小化停机时间