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 » SQL 语句 » SQL 语句 (A-D)

 

ALTER DATABASE 语句

此语句用于升级数据库、为数据库打开或关闭 jConnect 支持、校准数据库、更改事务日志和事务日志镜像文件名或强制镜像服务器接管数据库。

如果对当前正在镜像的数据库服务器执行 ALTER DATABASE UPGRADE 语句,将会返回一条错误消息。

语法 1 - 升级组件或恢复对象
ALTER DATABASE UPGRADE 
[ PROCEDURE ON ]
[ JCONNECT { ON | OFF } ]
语法 2 - 执行校准
ALTER DATABASE {
 CALIBRATE [ SERVER ]
 | CALIBRATE DBSPACE dbspace-name
 | CALIBRATE DBSPACE TEMPORARY
 | CALIBRATE GROUP READ
 | CALIBRATE PARALLEL READ
 | RESTORE DEFAULT CALIBRATION
}
语法 3 - 更改事务日志和事务日志镜像名称
ALTER DATABASE dbfile
ALTER [ TRANSACTION ] LOG {
{ ON [ log-name ] [ MIRROR mirror-name ] | OFF }
[ KEY key ]
语法 4 - 更改数据库所有权
ALTER DATABASE 
{ dbname FORCE START
| SET PARTNER FAILOVER }
参数
  • PROCEDURE 子句   在数据库中删除并重新创建所有 dbo 和 sys 拥有的过程。

  • JCONNECT 子句   要允许 jConnect JDBC 驱动程序访问系统目录信息,请指定 JCONNECT ON。这将会安装提供 jConnect 支持的系统对象。如果要排除 jConnect 系统对象,请指定 JCONNECT OFF。只要不访问系统信息,您就仍然可以使用 JDBC。缺省情况下,JCONNECT 为 ON。

    如果要变更在 Windows Mobile 上使用的数据库,请参见在 Windows Mobile 上使用 jConnect

  • CALIBRATE [ SERVER ] 子句   校准除临时 dbspace 外的所有 dbspace。此子句还执行由 CALIBRATE PARALLEL READ 完成的工作。

  • CALIBRATE DBSPACE 子句   校准指定的 dbspace。

  • CALIBRATE DBSPACE TEMPORARY 子句   校准临时 dbspace。

  • CALIBRATE GROUP READ 子句   在临时 dbspace 上执行组读取校准。向临时 dbspace 写入大型工作表,然后使用不同的组读取大小来为文件的读取计时。如果向临时表添加空格超出了连接的限制,或高速缓存大小不足以使用最大内存大小进行校准,则校准失败并返回错误消息。

  • CALIBRATE PARALLEL READ 子句   为所有 dbspace 文件校准设备的并行 I/O 容量。CALIBRATE [ SERVER ] 子句也会执行此校准。

  • RESTORE DEFAULT CALIBRATION 子句   将磁盘传送时间 (DTT) 模型恢复为基于典型硬件和配置设置的内置缺省值。

  • ALTER [TRANSACTION] LOG 子句   更改事务日志或事务日志镜像文件的文件名。如果未指定 MIRROR mirror-name,此子句将为新事务日志设置一个文件名。如果数据库当前没有使用事务日志,它会开始使用一个。如果数据库已在使用事务日志,则它会改为将新文件用作其事务日志。

    如果已指定 MIRROR mirror-name,此子句将为新事务日志镜像设置一个文件名。如果数据库当前没有使用事务日志镜像,则它会开始使用一个。如果数据库已在使用事务日志镜像,则它会改为将新文件用作它的事务日志镜像。

    您也可以使用此子句关闭事务或事务日志镜像。例如,ALTER DATABASE LOG OFF。

  • KEY 子句   指定用于事务日志或事务日志镜像的加密密钥。如果在高度加密的数据库上使用 ALTER [TRANSACTION] 子句,则必须指定加密密钥。

  • dbname FORCE START 子句   强制当前作为镜像服务器的数据库服务器接管数据库。此子句可从过程或事件内部执行,并且必须在连接到镜像服务器上的实用程序数据库时执行。请参见强制数据库服务器成为主服务器

  • SET PARTNER FAILOVER 子句   启动从主服务器到镜像服务器的数据库镜像故障转移。此语句必须在连接到主服务器上的数据库时执行,并且可从过程或事件内部执行。执行此语句时,到数据库的全部现有连接都将关闭,包括执行此语句的连接。如果此语句包含在过程或事件中,它后面的其它语句将不会执行。请参见启动主服务器上的故障转移

注释

语法 1   可以使用 ALTER DATABASE UPGRADE 语句取代升级实用程序来升级或更新数据库。这也适用于维护版本。运行此语句后,您应该重新启动数据库。通常情况下,数据库的各个次版本之间的改动仅限于补充的数据库选项和小的系统表以及过程更改。ALTER DATABASE UPGRADE 语句会将系统表升级到当前版本并添加任何新数据库选项。如有必要,它还会删除并重新创建所有系统过程。通过指定 PROCEDURE ON 子句可以强制重建系统过程。

还可以使用 ALTER DATABASE UPGRADE 语句将设置和系统对象恢复到最初安装时的状态。

但通过执行 ALTER DATABASE UPGRADE 语句并不能提供要求对数据库文件进行物理重组的功能。这些功能包括索引增强和数据存储方面的改进。要获得这些增强的好处,您必须卸载并重装数据库。请参见重建数据库

小心

在升级前,应始终对该数据库文件进行备份。如果在升级现有文件时升级失败,则这些文件将无法使用。有关备份数据库的信息,请参见备份和数据恢复

要使用 jConnect JDBC 驱动程序访问系统目录信息,请指定 JCONNECT ON(缺省值)。如果不打算包含 jConnect 系统对象,请指定 JCONNECT OFF。设置 JCONNECT OFF 并不会从数据库中删除 jConnect 支持。此外,只要不访问系统目录信息,仍可以使用 JDBC。如果随后下载了更新版本的 jConnect,可通过执行(或重新执行) ALTER DATABASE UPGRADE JCONNECT ON 语句升级数据库中的旧版本。请参见在数据库中安装 jConnect 系统对象

语法 2   语法 2 用于重新校准优化程序所使用的 I/O 开销模型。这将更新磁盘传送时间 (DTT) 模型,它是开销模型使用的磁盘 I/O 的数学模型。当重新校准 I/O 开销模型时,数据库服务器不能用作其它用途。另外,计算机上的所有其它活动必须是空闲的。重新校准数据库服务器是一项资源开销巨大的操作,可能需要一些才能时间完成。建议您保留缺省设置。

当使用 CALIBRATE PARALLEL READ 子句时,对于少于 10000 页的 dbspace 文件不执行并行校准。虽然数据库服务器在校准操作期间会自动挂起其所有活动,但并行校准应在同一计算机上没有进程消耗重要资源的情况下执行。校准之后,可使用扩展数据库属性 IOParallelism 检索 dbspace 文件上所允许的最大并行 I/O 操作估计次数。请参见DB_EXTENDED_PROPERTY 函数 [System]

当存在大量相似的硬件安装时,要避免重复且耗时的重复校准活动,可分别使用 sa_unload_cost_model 和 sa_load_cost_model 系统过程,通过先卸载校准然后再应用(装载)到另一数据库,以此来重新使用校准。请参见sa_unload_cost_model 系统过程sa_load_cost_model 系统过程

语法 3   可以使用 ALTER DATABASE 语句更改与数据库文件相关联的事务日志和事务日志镜像的名称。这些更改与事务日志 (dblog) 实用程序所做的更改相同。您可以在连接着该实用程序数据库或另一数据库(具体是哪个数据库取决于 -gu 选项的设置)时执行此语句。如果您要更改某个加密数据库的事务日志或事务日志镜像,则必须指定一个密钥。如果数据库正使用审记,则无法停止使用事务日志。关闭审计之后,可停止使用事务日志。在过程、触发器、事件或批处理中不支持此语法。

语法 4   ALTER DATABASE ...FORCE START 必须从镜像服务器(而非主服务器)运行。如果尝试对未镜像的数据库或当前处于活动状态并由此服务器所拥有的数据库执行 ALTER DATABASE ... FORCE START 语句,则会产生错误。另外,如果主服务器仍与镜像服务器相连接,则会给出一个错误。请参见数据库镜像简介

权限

对于语法 1 和 2,必须具有 DBA 权限,并且必须是唯一的数据库连接。Windows Mobile 上不支持 ALTER DATABASE UPGRADE。

对于语法 3,必须具有事务日志所在目录的文件权限,且数据库必须未运行。

对于语法 4,必须具有 -gk 服务器选项指定的权限。

副作用

自动提交

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例

以下示例禁用 jConnect 支持:

ALTER DATABASE UPGRADE JCONNECT OFF;

以下示例将与 demo.db 关联的事务日志文件名设置为 newdemo.log

ALTER DATABASE 'demo.db'
   ALTER LOG ON 'newdemo.log';