SQL1750 - SQL1999
SQL1750C 发生了故障,已导致针对类型为 表类型 的表 表名 的操作 操作名称 终止,这可能会产生无效或不一致的数据。日志条目标识。
说明
结果可能是无效或不一致的数据,或者是所期望数据的一部分。
以下是运行时标记:
- 操作名称
处理类型,例如 INSERT。
- 表名
尝试对其执行操作的表的名称。
- 表类型
标识该表是 Hadoop 表还是 HBase 表。
- 日志条目标识
日志条目标识由以下三个部分组成:
- 一个三字母前缀,指示哪个日志文件包含诊断详细信息。
- 一个三位数字,指示日志文件所在的数据库分区。
- 一个标识,打印在日志文件中相关诊断详细信息的附近。
例如,操作可能是针对 HBase 表的 INSERT。您可以使用一个 INSERT 语句将 HBase 数据的多个文件插入到 HBase 表。但是,插入操作不是原子操作,无法回滚。因此,如果装入数据时发生错误,那么某些数据会遗留在表中。如果表包含索引,那么这些索引可能会与表中的数据不同步。
用户响应
通过使用 日志条目标识 中的信息,找到相应日志文件中的诊断详细信息。可以使用以下语句从日志中检索该错误的文本:
SELECT * FROM Table
(SYSHADOOP.LOG_ENTRY('log-entry-id'));
如果操作是 INSERT 操作,请确定哪些数据未完全插入,然后再次插入这些数据,或者删除该表,然后再次启动 INSERT 操作。
sqlcode:-1750
sqlstate:58041
SQL1751N 最终获得的数据库分区组将不包含可以在分区映射中使用的任何节点。
说明
数据库分区组必须至少包含一个可在分区映射中使用的节点。如果已将节点添加至不带表空间的数据库分区组,那么不能将它包括在分区映射中,因为没有用于在数据库分区组上定义的表空间的容器。如果将一个节点像另一节点一样地添加,并且另一节点在数据库分区组上的所有表空间中都没有容器,那么任何一个节点都不能包括在分区映射中。
用户响应
不能删除数据库分区组中的所有节点,至少应保留一个节点。如果已在数据库分区组中定义了表空间,但是没有表,那么必须确保至少有一个节点有容器可用于所有表空间。
sqlcode:-1751
sqlstate:428C0
SQL1752N 不能在数据库分区组 数据库分区组 中创建表空间。
说明
当且仅当表空间为系统临时表空间时,才能指定数据库分区组 IBMTEMPGROUP。
用户响应
对于系统临时表空间,指定数据库分区组 IBMTEMPGROUP。对于其他表空间类型,指定一个不是 IBMTEMPGROUP 的数据库分区组。
sqlcode:-1752
sqlstate:429A1
SQL1753N 数据库分区 数据库分区号 没有用于在数据库分区组 IBMTEMPGROUP 中定义的所有系统临时表空间的容器。
说明
一个数据库分区必须为在此数据库的数据库分区组 IBMTEMPGROUP 中定义的所有系统临时表空间定义了容器之后,才能将此数据库分区包括在数据库分区组中。
用户响应
发出 ALTER TABLESPACE 语句,以在每个数据库分区上为数据库中的每个系统临时表空间添加容器。
sqlcode:-1753
sqlstate:57052
SQL1754N 索引表空间或长表空间与主表空间不在同一数据库分区组中。
说明
在 CREATE TABLE 语句中指定的所有表空间必须属于同一数据库分区组。
用户响应
确保在 CREATE TABLE 语句中指定的所有表空间属于同一数据库分区组。
sqlcode:-1754
sqlstate:42838
SQL1755N 数据库分区 数据库分区号 没有用于在数据库分区组 数据库分区组名 中定义的所有表空间的容器。
说明
数据库分区组中的所有表空间都必须在所有数据库分区上定义容器。否则,在数据库分区组的重新分发中或在 ALTER DATABASE PARTITION GROUP 语句的 LIKE DBPARTITIONNUM 子句中不应该包含该数据库分区。
用户响应
请发出 ALTER TABLESPACE 语句以将容器添加至此数据库分区上的所有表空间中。
SQL1756N 多个子句指定了容器,而没有 ON DBPARTITIONNUMS 子句。
说明
对于 CREATE TABLESPACE,只能指定一次不附带 ON DBPARTITIONNUMS 子句的 USING 子句。
对于 ALTER TABLESPACE,只能指定一次不附带 ON DBPARTITIONNUMS 子句的 ADD 子句。
未处理该语句。
用户响应
更正该语句,然后重新发出该语句。
sqlcode:-1756
sqlstate:428B1
SQL1757N 丢失了没有 ON DATABASE PARTITION 子句的 USING 子句。
说明
在 CREATE TABLESPACE 语句中,每个 USING 子句都指定了 ON DATABASE PARTITION 子句。但是,并不是包括了数据库分区组中的所有数据库分区,因此并不是数据库分区组中的所有数据库分区都有容器。
未处理该语句。
用户响应
确保指定了没有 ON DATABASE PARTITION 子句的 USING 子句,或者在 ON DATABASE PARTITION 子句中,数据库分区组中的每个数据库分区都被包括了一次。
sqlcode:-1757
sqlstate:428B1
SQL1758W 未指定给特定节点的容器不被任何节点的表空间使用。
说明
ALTER TABLESPACE 和 CREATE TABLESPACE 语句包括对数据库分区组中所有数据库分区的容器规范。后面没有紧接着 ON DATABASE PARTITION 子句的容器规范是冗余的,并且已被忽略。
已处理该语句。
用户响应
如果在某些节点中需要这些容器,那么发出 ALTER TABLESPACE 语句以添加必需的容器。
sqlcode:+1758
sqlstate:01589
SQL1759W 需要重新分发数据库分区组,以更改数据库分区组 数据库分区组名 中对象的数据库分区,从而在数据库分区中包括某些添加的数据库分区或者排除某些已删除的数据库分区。
说明
此警告指示:使用 ALTER DATABASE PARTITION 或 ALTER TABLESPACE 语句进行的更改未导致数据库分区组的分区映射被更改。仅当没有使用在数据库分区组中定义的任何表空间定义的表或正在删除的数据库分区不在分区映射中时,数据库分区组的分区映射才能被这些语句立即更改。
在下列情况下将发出此警告:
- 使用 ALTER DATABASE PARTITION ADD DATABASE PARTITION 语句添加了一个或多个数据库分区
- 使用 ALTER DATABASE PARTITION DROP DATABASE PARTITION 语句删除了一个或多个数据库分区
- 为表空间添加了多个容器,而数据库分区不需要使用更多的容器。
对于所有这些情况,已经使用数据库分区组中的表空间来定义了一个表。
用户响应
如果想要数据库分区包括或排除数据库分区,那么发出 REDISTRIBUTE DATABASE PARTITION 命令或 API。另一种方法是删除数据库分区组中使用表空间的所有表。
sqlcode: +1759
sqlstate:01618
SQL1760N 用于定义存储过程 过程名称 的 CREATE PROCEDURE 或 ALTER MODULE 语句必须包含有效的 LANGUAGE 子句、EXTERNAL 子句和 PARAMETER STYLE 子句或者包含 SQL 过程主体。
说明
在用于定义过程 过程名称 的 CREATE PROCEDURE 或 ALTER MODULE 语句中,缺少必需的子句。必须指定 LANGUAGE 子句、EXTERNAL 子句和 PARAMETER STYLE 子句。由于只有 SQL 过程允许发布原型,因此必须对模块中定义的外部过程进行全面指定。
如果正在定义 SQL 过程,那么除非正在使用 ALTER MODULE 的 PUBLISH 操作来定义 SQL 过程原型,否则必须包括 SQL 过程主体。
用户响应
添加缺少的子句,然后再次尝试。
sqlcode:-1760
sqlstate:42601
SQL1761N 未对缓冲池 缓冲池名 定义数据库分区组 数据库分区组。
说明
还没有为缓冲池定义表空间的数据库分区组。不能创建或改变表空间以组合使用数据库分区组和缓冲池。
无法处理该语句。
用户响应
可执行的操作为:
- 指定已定义了表空间的数据库分区组的缓冲池。
- 改变缓冲池以添加表空间的数据库分区组。
- 如果要执行 CREATE TABLESPACE,那么指定为缓冲池定义的数据库分区组。
sqlcode:-1761
sqlstate:42735
SQL1762N 不能与数据库相连,因为没有足够的空间可用来分配活动的日志文件。
说明
没有足够的磁盘空间可用来分配活动的日志文件。原因可能包括:
- 用来存储恢复日志的设备上没有足够的可用空间。
- 如果启用了用户出口,那么用户出口程序可能会因不正确的路径、不正确的安装目录、共享违例或其他问题而失败。
- 如果已启用日志归档,那么日志归档方法可能未起作用或者目标不可访问。
用户响应
原因:
- 确保设备上有足够的空间用于主日志,因为 DB2 可能需要额外的空间来分配新的日志,以便使数据库启动时至少具有 LOGPRIMARY 日志文件。不要删除恢复日志以释放空间,即使它们看起来不活动。
- 通过手动调用用户出口程序来确保它正确运行。复查样本用户出口源代码中提供的有关编译和安装用户出口程序的指示信息。确保归档目标路径已存在。
- 请确保日志归档方法在正常运行。如果遇到了错误,那么可以在 db2diag.log 文件中找到更多信息。
在万不得已的情况下,尝试减小 LOGPRIMARY 和/或 LOGFILSIZ 数据库配置参数的值,以便使用更小的一组活动日志文件。这将减少对磁盘空间的需求。
在确定和更正问题之后,重新发出连接语句。
SQL1763N 由于 原因码 原因,使得用于 表空间名称 表空间的 ALTER TABLESPACE 语句无效。
说明
在 ALTER TABLESPACE 语句中指定的各个子句互相之间不能一起使用。
- 1
CONVERT TO LARGE 子句必须由它自己指定。
- 2
BEGIN NEW STRIPE SET 容器子句不能与任何其他容器子句(ADD、DROP、EXTEND、REDUCE 或 RESIZE)一起指定。
- 3
当从表空间中添加或除去空间时:
- 如果每个容器的大小都增大,那么可以在同一条语句中使用 EXTEND 和 RESIZE。
- 如果每个容器的大小都减小,那么可以在同一条语句中使用 REDUCE 和 RESIZE。
- 不能在同一条语句中使用 EXTEND 和 REDUCE,除非它们指向不同的数据库分区。
- 不能在同一条语句中使用 ADD 以及 REDUCE 或 DROP,除非它们指向不同的数据库分区。
- 不能在同一条语句中使用 DROP 以及 EXTEND 或 ADD,除非它们指向不同的数据库分区。
- 4
改变自动存储器管理的表空间时,不能将容器子句与 REDUCE 选项一起使用。
- 5
改变非自动存储器管理的表空间时,必须指定容器子句。
- 6
无法将临时表空间和系统管理表空间(SMS)转换为使用自动存储器。
- 7
数据库中没有存储器组。
- 8
无法使用 ALTER TABLESPACE 语句将具有 DEVICE 容器的数据库管理表空间(DMS)转换为使用自动存储器。
- 9
REBALANCE 子句必须由它自己指定。
- 10
只能将 REDUCE MAX 子句或者带有指定大小子句的 REDUCE 与具有“可回收存储器”属性并且由自动存储器管理的表空间配合使用。
- 11
没有“可回收存储器”属性的表空间不能使用子句来减小或者降低高水位标记。
- 12
必须指定附带 MAX 子句、数值、PERCENT 或 STOP 子句的 REDUCE 选项,以及附带 STOP 子句的 LOWER HIGH WATER MARK 选项,并且运行时不能再指定任何其他选项,也不能同时指定这两个选项。
- 13
不能将 ADD、DROP、RESIZE、EXTEND、REDUCE、LOWER HIGH WATER MARK 和 BEGIN_STRIPE_SET 子句与 MANAGED BY AUTOMATIC STORAGE 子句或 USING STOGROUP 子句一起使用。
- 14
改变自动存储器混合表空间时,无法指定 USING STOGROUP 子句。
用户响应
- 1
在它自己的 ALTER TABLESPACE 语句中发出 CONVERT TO LARGE 子句。
- 2
如果使用相同语句中的 BEGIN NEW STRIPE SET 容器操作和其他操作,那么将 BEGIN NEW STRIPE SET 操作移到它自己的 ALTER TABLESPACE 语句中。
- 3
如果在表空间中添加页和除去页,那么使用两个 ALTER TABLESPACE 语句。
- 4
从 ALTER 语句中除去容器子句,然后重新发出该语句。
- 5
指定包含要减少的容器列表的容器子句,然后重新发出该语句。
- 6
要转换使用自动存储器的临时表空间,创建一个新的由自动存储器管理的临时表空间,然后删除旧的临时表空间。要从系统管理表空间转换为由自动存储器管理的表空间,必须手动移动所有数据。
- 7
使用 CREATE STOGROUP 语句创建存储器组。仅当创建了存储器组时,才能由自动存储器来管理表空间。
- 8
要将使用 DEVICE 容器的数据库管理表空间转换为由自动存储器来管理,请执行下列步骤:
- 执行表空间或数据库级别的已重定向的复原操作。
- 发出带有 USING AUTOMATIC STORAGE 选项的 SET TABLESPACE CONTAINERS 命令。
- 9
在 REBALANCE 子句自己的 ALTER TABLESPACE 语句中发出此子句。
- 10
将表空间转换为由自动存储器来管理,并确保在使用 REDUCE MAX 子句或者带有指定大小子句的 REDUCE 之前表空间具有“可回收存储器”属性。
- 11
表空间必须具有“可回收存储器”属性,您才能使用子句来减小或者降低高水位标记。
- 12
在每个 ALTER TABLESPACE 语句中只使用单个子句来减小或者降低高水位标记。
- 13
除去 ALTER 语句中的 ADD、DROP、RESIZE、EXTEND、REDUCE、LOWER HIGH WATER MARK 或 BEGIN_STRIPE_SET 子句,然后重新发出该语句。
- 14
发出 REBALANCE 子句,以便表空间中仅包含自动存储器容器。完成重新平衡操作之后,发出带有 USING STOGROUP 子句的 ALTER TABLESPACE 语句。
sqlcode:-1763
sqlstate:429BC
SQL1764N ALTER TABLESPACE 语句中 RESIZE 操作指定的大小小于表空间容器的当前大小。
说明
使用 RESIZE 操作在 ALTER TABLESPACE 语句中指定的大小小于表空间容器的当前大小。您仅可增大容器的大小。
用户响应
指定比表空间容器的当前大小值大的大小。
sqlcode:-1764
sqlstate:560B0
SQL1765W 更新成功完成。但是,在辅助数据库服务器上可能未恢复索引创建、重新创建或重组。
说明
当启用了 HADR 时,建议将数据库配置参数 LOGINDEXBUILD 设置为 ON,并将数据库或数据库管理器配置参数 INDEXREC 设置为 RESTART 或 ACCESS。否则,当前或将来的主数据库服务器上的任何索引创建、重新创建或重组在当前或将来的辅助数据库服务器上将不会使用 HADR 进行恢复。不能恢复的那些索引将被标记为无效,当要访问索引时,在 HADR 接管过程结束时或者在 HADR 接管过程之后将隐式地重建这些索引。
用户响应
要启用完整日志记录,更新数据库配置参数 LOGINDEXBUILD 或者发出 SQL 语句 ALTER TABLE LOG INDEX BUILD ON。要启用重做已记录的任何索引构建操作,将配置参数 INDEXREC 更新为 RESTART 或 ACCESS。
SQL1766W 成功地完成该命令。但是,在 HADR 启动之前未启用 LOGINDEXBUILD。
说明
如果在 HADR 启动之前未将数据库配置参数 LOGINDEXBUILD 设置为 ON,那么当前或将来的主数据库服务器上的任何索引创建、重新创建或重组在当前或将来的辅助数据库服务器上将不会使用 HADR 进行恢复。
用户响应
要启用完整日志记录,将数据库配置参数 LOGINDEXBUILD 设置为 ON。
SQL1767N 不能完成启动 HADR。原因码:原因码。
说明
不能完成启动 HADR。与原因码相对应的解释是:
- 1
当发出 START HADR AS STANDBY 命令时,数据库未处于前滚暂挂或正在前滚状态。
- 2
不能对 HADR 备用数据库发出 START HADR AS PRIMARY。
- 3
不能对活动数据库发出 START HADR AS STANDBY。
- 9
正对活动 HADR 备用数据库执行数据库升级。
- 98
未安装有效的 HADR 许可证。命令未成功完成。
- 99
在多分区实例环境中发出了该命令。
用户响应
与原因码对应的用户响应是:
- 1
从主数据库的备份映像或分割镜像重新初始化备用数据库,然后重新发出 START HADR AS STANDBY 命令。
- 2
如果要将备用数据库更改为主数据库,发出 TAKEOVER 命令。
- 3
如果要将主数据库更改为备用数据库,从当前备用数据库发出 TAKEOVER 命令。如果要将标准数据库更改为备用数据库,必须首先取消激活该数据库。
- 9
必须先在主数据库和备用数据库上完成升级处理,并取消激活备用数据库,才能重新发出该命令。
- 98
获取并安装有效的 HADR 许可证,然后重新提交该命令。
- 99
在多分区实例环境中,不支持 HADR 功能部件。
SQL1768N 无法启动 HADR。原因码:原因码。
说明
与原因码对应的说明是:
- 1
不可恢复数据库,因为正在使用循环日志记录。
- 2
数据库启用了无限活动日志记录。
- 3
数据库启用了 DATALINKS。
- 4
hadr_local_host 配置参数的条目无效。
- 5
hadr_local_svc 配置参数的服务名称无效。
- 6
hadr_remote_svc 配置参数的服务名称无效。
- 7
在 HADR 超时时间间隔内,主数据库无法与其备用数据库建立连接。有多种情形可能导致此错误情况。例如,如果主数据库的 hadr_timeout 配置参数或 hadr_peer_window 配置参数的值与备用数据库的该配置参数的值不相同,那么会返回此消息并且原因码为 7。
- 8
下列其中一个或多个 HADR 数据库配置参数的值为 NULL:
- hadr_local_host 或 hadr_local_svc
- DB2 pureScale 之外的环境中的 hadr_remote_host、hadr_remote_svc 或 hadr_remote_inst。
- DB2 pureScale 环境中的 hadr_target_list。
- 9
数据库配置为使用原始日志。但是,HADR 不支持对数据库日志文件使用原始 I/O(直接磁盘访问)。
- 10
命令由于 STOP HADR 命令、取消激活数据库或内部错误而被 HADR 关闭所中断。
- 11
hadr_remote_host、hadr_local_host 或 hadr_target_list 配置参数所指定的条目未解析为相同的 IP 格式。
- 12
hadr_remote_host 配置参数的条目无效。
- 13
至少需要具备一个常规缓冲池,才能启动 HADR 备用数据库。缓冲池由于内存不足而无法启动。
- 14
hadr_target_list 配置参数的条目不包含 hadr_remote_host 和 hadr_remote_svc 配置参数中指定的对。
- 15
hadr_target_list 配置参数的条目无法解析为有效的 TCP/IP 地址。
- 16
为 hadr_target_list 配置参数指定的条目的格式不正确。
- 17
如果 hadr_syncmode 配置参数是 SUPERASYNC,那么只能将 hadr_replay_delay 配置参数设为非零值。
- 18
在 HADR 主数据库上,只能将 hadr_replay_delay 配置参数设为 0。
- 19
不能作为主数据库启动,因为已检测到另一主数据库。
- 20
在 DB2 pureScale 环境中,hadr_syncmode 数据库配置参数不能是 SYNC 或 NEARSYNC。
- 21
hadr_local_svc 配置参数所指定的值与客户机/服务器通信端口冲突。
- 22
hadr_local_svc 配置参数所指定的值与快速通信管理器 (FCM) 通信端口冲突。
- 23
hadr_local_svc 配置参数所指定的值与集群高速缓存工具 (CF) 通信端口冲突。
- 24
无法分配 DB2 注册表变量 DB2_HADR_SOSNDBUF 指定的 TCP 套接字缓冲区。
- 25
无法分配 DB2 注册表变量 DB2_HADR_SORCVBUF 指定的 TCP 套接字缓冲区。
- 26
表空间不可用。
- 27
在 DB2 pureScale 环境中,hadr_peer_window 数据库配置参数不能设置为 0。
- 28
主数据库与备用数据库之间的 SSL 通信失败。导致此故障的原因可能是:
- 数据库配置参数 HADR_SSL_LABEL 设置为无效证书名称
- SSL_SVR_KEYDB 配置参数或 SSL_SVR_STASH 配置参数未设置为有效值。
- 29
启用自动故障转移后,hadr_syncmode 数据库配置未设置为 SYNC 或 NEARSYNC。
- 98
未安装有效的 HADR 许可证。命令未成功完成。
- 99
在 HADR 启动期间发生了内部错误。
用户响应
与原因码对应的用户响应是:
- 1
数据库必须是可恢复的数据库。通过将数据库配置参数 logarchmeth1 或 logarchmeth2 设为除 OFF 之外的值来激活日志归档。对数据库进行脱机备份以使此数据库可恢复,然后重新发出此命令。
- 2
禁用无限活动日志记录并重新发出该命令。
- 3
更新数据库管理器配置文件,以便将 DATALINKS 设为 NO,然后重新发出该命令。
- 4
请确保可以将配置参数 hadr_local_host 映射至与本地主机相关联的一个 IPv4 或 IPv6 地址。
- 5
请确保将 hadr_local_svc 配置参数设为有效的服务名称。对于 Unix 平台,编辑 /etc/services 文件。对于 Windows,编辑 %SystemRoot%\system32\drivers\etc\services。另外,可以为此参数指定文字端口号。
- 6
请确保 hadr_remote_svc 配置参数的值是有效的服务名称。对于 Unix 平台,编辑 /etc/services 文件。对于 Windows,编辑 %SystemRoot%\system32\drivers\etc\services。另外,可以为此参数指定文字端口号。
- 7
执行以下故障诊断步骤:
- 检查旧备用数据库是否已作为主数据库或独立数据库运行。为避免潜在脑裂场景,如果主数据库无法建立与备用数据库的连接,那么主数据库不会启动。如果旧备用数据库已作为主数据库运行,请考虑启动旧主数据库作为新备用数据库。
- 发出 START HADR DATABASE ON dbname AS STANDBY 以将旧主数据库转换为新备用数据库。
- 或者,通过新主数据库的备份映像,将旧主数据库重新初始化为新备用数据库。
- 如果未对备用数据库执行强制接管(又称为故障转移)操作,并且备用数据库未作为主数据库或独立数据库运行,请检查 HADR 状态和配置。
- 确保备用数据库联机并且已作为备用数据库启动(使用“db2pd -db dbname -hadr”或 MON_GET_HADR)。
- 确认在主数据库和备用数据库上正确设置了 hadr_target_list、hadr_local_host、hadr_local_svc、hadr_remote_inst、hadr_remote_host 和 hadr_remote_svc 数据库配置参数。
- 确保网络正常工作,并且主/备用主机可通过 TCP/IP 相互访问(考虑使用系统“ping”实用程序 ping 远程主机和 svc/端口)。
- 检查 db2diag.log 文件以了解是否存在其他错误消息指示主数据库和备用数据库上存在不兼容配置设置。
- 确保主数据库和备用数据库的配置参数 hadr_timeout 的值相同。
- 确保主数据库和备用数据库的配置参数 hadr_peer_window 的值相同。
- 确保 hadr_timeout 配置参数设置为表示足够在主数据库与备用数据库之间建立连接和握手的时间的值。
- 如果备用数据库脱机并且无法启动(因为备用系统故障或其他灾难),请强制启动主数据库。
- 对主数据库发出 START HADR DATABASE ON dbname AS PRIMARY BY FORCE。
- 或者,对主数据库发出 STOP HADR 命令。
- 检查旧备用数据库是否已作为主数据库或独立数据库运行。为避免潜在脑裂场景,如果主数据库无法建立与备用数据库的连接,那么主数据库不会启动。如果旧备用数据库已作为主数据库运行,请考虑启动旧主数据库作为新备用数据库。
- 8
确保下列 HADR 数据库配置参数在需要处为非 NULL 值:
- hadr_local_host
- hadr_local_svc
- hadr_remote_host
- hadr_remote_svc
- hadr_remote_inst
- hadr_target_list
您可以使用 GET DATABASE CONFIGURATION 命令来确定这些 HADR 配置参数的当前值。
- 9
将数据库重新配置为对日志文件只使用文件系统存储器,而不是使用原始 I/O(直接磁盘访问)设备。
- 10
找出 HADR 关闭的原因,如果有必要,请重新发出 START HADR 命令。
- 11
请确保配置参数 hadr_local_host、hadr_remote_host 和 hadr_target_list 采用相同的 IP 格式(IPv4 或 IPv6),或者可以将它们解析为相同的格式。
- 12
请确保可以将配置参数 hadr_remote_host 映射至 IPv4 或 IPv6 地址。
- 13
请确保已正确配置 dbheap 配置参数,并且对于已定义的缓冲池大小,系统有足够的可用内存。然后再次尝试该操作。如果您需要更改 HADR 备用上缓冲池的大小,那么需要从包含新缓冲池大小的主数据库,使用备份映像执行新数据库复原操作。
- 14
对于 hadr_remote_host 和 hadr_remote_svc 配置参数指定的 host:service 对,请确保配置参数 hadr_target_list 具有相应的条目。
- 15
请确保 hadr_target_list 配置参数指定的所有条目都是有效的 host:service 对。
- 16
请确保配置参数 hadr_target_list 的条目的格式正确。
- 17
将配置参数 hadr_replay_delay 设为 0,或者将 hadr_syncmode 配置参数更改为 SUPERASYNC。
- 18
请确保将 HADR 主数据库的配置参数 hadr_replay_delay 设为 0。
- 19
确定应成为主数据库的数据库。删除另一主数据库或尝试将其转换为备用数据库。如果两个数据库都应该是主数据库,那么应从它们各自的 hadr_target_list 中移除彼此,以使它们成为独立数据库。
- 20
将 hadr_syncmode 数据库配置参数设为 ASYNC 或 SUPERASYNC。
- 21
更新 hadr_local_svc 或 svcename 配置参数所指定的值,让 hadr_local_svc 使用的 TCP 端口不在端口范围 svcename 到 svcename + 1 之间(包括首尾值)。
- 22
更新 hadr_local_svc 数据库配置参数或系统服务名称,以使 hadr_local_svc 使用的 TCP 端口未位于服务名称 DB2_instance 和 DB2_instance_END 定义的端口之间(包含端点),其中“instance”是数据库管理器实例的名称。要更新系统服务名称,请编辑 /etc/services 文件(Unix 平台)或 %SystemRoot%\system32\drivers\etc\services (Windows)。
- 23
更新 hadr_local_svc 数据库配置参数或系统服务名称,让 hadr_local_svc 使用的 TCP 端口不在下列服务名称对所定义的端口之间(包括首尾值):
- DB2CA_instance_CMD 和 DB2CA_instance_CMD_END
- DB2CA_instance_NOTIFY 和 DB2CA_instance_NOTIFY_END
- DB2CA_instance_MGMT 和 DB2CA_instance_MGMT_END
在这些服务名称中,“instance”表示数据库管理器实例的名称。要更新系统服务名称,请编辑 /etc/services 文件(Unix 平台)或 %SystemRoot%\system32\drivers\etc\services (Windows)。
- 24
检查是否正确设置了 DB2 注册表变量 DB2_HADR_SOSNDBUF。它不应超过可用内存或系统级别套接字缓冲区大小限制。
- 25
检查是否正确设置了 DB2 注册表变量 DB2_HADR_SORCVBUF。它不应超过可用内存或系统级别套接字缓冲区大小限制。
- 26
请参阅 db2diag.log 以标识不可用表空间。请解决根本原因并确保表空间的存储空间可用。必要时,使用 RESTORE DATABASE 或 ROLLFORWARD DATABASE 命令来恢复受影响的表空间。否则,可删除不再需要的表空间。
- 27
在 DB2 pureScale 环境中,将 hadr_peer_window 数据库配置参数设置为 0。
- 28
确保数据库配置参数 HADR_SSL_LABEL 及数据库管理器配置参数 SSL_SVR_KEYDB 和 SSL_SVR_STASH 设置为有效值。更新 SSL_SVR_KEYDB 配置参数或 SSL_SVR_STASH 配置参数后,停止数据库管理器然后重新启动。
- 29
将 hadr_syncmode 数据库配置更改为 SYNC 或 NEARSYNC,或通过 db2haicu 禁用自动故障转移。
- 98
获取并安装有效的 HADR 许可证,然后重新提交该命令。
- 99
如果问题仍然存在,请与 IBM 支持机构联系。
SQL1769N 不能完成停止 HADR。原因码:原因码。
说明
与原因码对应的说明是:
- 1
对标准数据库发出了该命令。
- 2
对活动 HADR 备用数据库发出了该命令。
- 3
命令由于 STOP HADR 命令、取消激活数据库或内部错误而被 HADR 关闭所中断。
- 98
未安装有效的 HADR 许可证。命令未成功完成。
- 99
在多分区实例环境中发出了该命令。
用户响应
与原因码相对应的用户响应是:
- 1
由于 HADR 未在此数据库上运行,那么不需要执行任何操作。验证指定的数据库别名是否正确。
- 2
用户应该取消激活该数据库,然后重新发出该命令。
- 3
如果命令由于另一 STOP HADR 命令而中断,那么不需要进一步执行操作。否则,确保启动了数据库实例并重新发出 STOP HADR 命令。
- 98
获取并安装有效的 HADR 许可证,然后重新提交该命令。
- 99
在多分区实例环境中,不支持 HADR 功能部件。
SQL1770N 不能完成接管 HADR。原因码:原因码。
说明
TAKEOVER HADR 命令失败。与原因码相对应的解释是:
- 1
仅当 HADR 备用数据库处于下列其中一种状态时,才能进行非强制接管(角色切换):
- 对等状态
- 方式为 SUPERASYNC 的远程同步复制状态。
- 辅助远程同步复制状态(仅在 DB2 pureScale 环境中适用)
- 2
HADR 备用数据库尝试进行强制接管。如果有任何日志流处于本地同步复制状态,那么不允许进行强制接管。
- 3
从联机备份创建了备用数据库,并且在重放该备用数据库到日志中该备份的终点之前尝试了接管。
- 4
对标准数据库或 HADR 主数据库发出了命令。
- 5
对不活动的备用数据库发出了该命令。
- 6
从主数据库切换到备用数据库时出错。
- 7
接管期间发生了通信错误。
- 8
由于在主数据库或备用数据库中遇到有冲突的命令(START HADR、STOP HADR、ACTIVATE DATABASE 或 DEACTIVATE DATABASE)或者内部错误,因此尝试的接管失败。
- 9
HADR 备用数据库尝试通过指定 PEER WINDOW ONLY 命令参数来进行强制接管。但是接管失败,因为备用数据库尝试强制接管时它并不处于对等窗口中。在备用数据库上未配置对等窗口,或者在备用数据库上配置的任何对等窗口之外尝试了强制接管。
- 10
TAKEOVER HADR 命令在 DB2 高可用性环境中运行。集群管理器返回了一个使接管操作无法完成的错误。接管操作失败。参与接管操作的 DB2 高可用性灾难恢复 (HADR) 数据库将保持处于尝试接管操作前所处的状态。
- 11
不允许对启用了重放延迟的 HADR 备用数据库进行接管(强制接管或者非强制接管)。
- 12
HADR 备用数据库尝试了非强制接管(角色切换)。在 DB2 pureScale 环境中,如果主数据库上的任何成员处于成员崩溃恢复 (MCR) 暂挂或进行中状态,那么不允许进行非强制接管。
- 15
不允许对正在升级的 HADR 备用数据库进行接管(强制接管或者非强制接管)。
- 98
未安装有效的 HADR 许可证。命令未成功完成。
- 99
在多分区实例环境中发出了该命令。
用户响应
与原因码对应的用户响应是:
- 1
等待日志流达到允许的条件,然后重试接管操作。替代方法是使用 TAKEOVER HADR 命令的 BY FORCE 选项来执行故障转移。BY FORCE 选项将允许在范围更广的条件下进行接管,但可能会导致数据丢失,并且不会将主数据库更改为备用数据库。
- 2
等待日志流完成本地同步复制,然后重试接管操作。
- 3
允许备用数据库花费更多时间达到联机备份的末尾,然后重新发出该命令。
- 4
标准数据库或 HADR 主数据库不支持此命令。只对 HADR 备用数据库发出该命令。
- 5
激活备用数据库,然后发出接管命令。
- 6
请参阅两个 HADR 数据库分区上的数据库日志以了解产生此消息的可能原因。数据库分区的角色可能尚未更改。检查这两个数据库分区的 hadr_db_role 数据库配置参数的值。
- 7
请参阅两个 HADR 数据库上的数据库日志以了解产生此消息的可能原因。可通过检查 hadr_db_role 配置参数值来确定此项。
执行角色切换时可能存在问题。
- 如果数据库角色未更改,请在备用项上重新发出 TAKEOVER HADR 命令。
- 如果两个数据库的角色都为 STANDBY,请在要用作主项的数据库上发出带 BY FORCE 选项的 TAKEOVER HADR 命令。
- 8
等待有冲突的命令完成,对于内部错误,请等待数据库关闭。检查主数据库和备用数据库的 HADR 角色。启动数据库,然后重试接管(如果您仍想执行此操作)。
- 9
要在对等窗口之外强制接管备用数据库,在不使用 PEER WINDOW ONLY 参数的情况下重新发出 TAKEOVER HADR 命令。尽管支持在对等窗口之外强制接管备用数据库,但是在对等窗口之外接管时丢失事务的风险更大。
如果主数据库失败,而您又不想在对等窗口之外强制接管备用数据库,原因是这样做存在丢失数据或事务的风险,那么应考虑对主数据库故障作出与强制接管不同的其他响应。
在具有主数据库和备用数据库的高可用性解决方案中,对主数据库故障作出响应的一种常见策略是让备用数据库接管对失败主数据库执行的数据库操作。但是,也可以采用其他策略对主数据库故障作出响应,这些策略包括:修复并重新启动失败的主数据库,而不是对备用数据库进行故障转移。尽管此修复并重新启动策略比故障转移策略对用户应用程序的数据库解决方案可用性造成的负面影响更大,但是它也具备其他优点,例如,丢失数据或事务的风险更低。
- 10
复审集群管理器诊断信息以确定集群管理器所返回的错误。如果可能,请修复集群管理器以消除错误原因并再次运行 TAKEOVER 命令。
- 11
通过将 hadr_replay_delay 配置参数设置为 0 来禁用重放延迟,并重新发出 TAKEOVER HADR 命令。
- 12
等待成员完成成员崩溃恢复,然后重试接管操作。
- 15
- 如果并非立即需要连接至此数据库,请等待 UPGRADE DATABASE 命令在主数据库上完成,并留出时间以允许备用数据库重放从主数据库发送的所有升级日志记录,然后重新发出该命令。
- 如果需要立即连接至此数据库,请发出 STOP HADR 命令以将 HADR 角色切换为 STANDARD。
- 98
获取并安装有效的 HADR 许可证,然后重新提交该命令。
- 99
在多分区实例环境中,不支持 HADR。
SQL1771N 不可恢复数据库不能用作 HADR 主数据库或 HADR 备用数据库。
说明
不能对 HADR 主角色或备用角色中的数据库使用循环日志记录。HADR 要求可恢复的数据库。
用户响应
要么将数据库转换为标准角色,要么不使用循环日志记录。
SQL1772N 不能对 HADR 主数据库或 HADR 备用数据库启用无限活动日志记录。
说明
不能对 HADR 主角色或备用角色中的数据库使用无限活动日志记录。
用户响应
要么将数据库转换为标准角色,要么不使用无限日志记录。
SQL1773N 该语句或命令失败,因为其需要使用允读的 HADR 备用数据库上不支持的功能。原因码:原因码。
说明
该语句或命令失败。与原因码对应的解释是:
- 1
使用了除 UR 之外的隔离级别,并且已关闭 DB2_STANDBY_ISO 注册表变量。
- 2
查询尝试访问无效索引。
- 3
尝试对允许读取的 HADR 备用数据库执行查询,并且该查询存在以下其中一个问题:
- 该查询尝试使用无法在对允许读取的 HADR 备用数据库执行的查询中使用的数据类型。
- 该查询尝试使用未在数据库表中存储为直接插入数据的 LOB 或 XML 值。
- 4
查询尝试访问已创建临时表或已声明临时表。
- 5
尝试对 HADR 备用数据库执行写操作。
- 6
操作尝试对 HADR 备用数据库执行隐式重新绑定。
- 7
尝试查询 HADR 备用数据库上按列组织的表。
- 8
尝试在 HADR 备用数据库上执行 SET INTEGRITY 语句。
用户响应
与原因码对应的用户响应是:
- 1
HADR 备用数据库只支持 UR 隔离级别。请将隔离级别更改为 UR,或者将 DB2_STANDBY_ISO 注册表变量设置为 UR 以启用强制自动隔离功能。
- 2
系统不会自动重建 HADR 备用数据库的无效索引。请将 HADR 主数据库的 LOGINDEXBUILD 数据库配置参数设置为 ON,以使 HADR 备用数据库的索引保持与主数据库的索引同步。
- 3
更改查询,以使其不使用任何无法在 HADR 备用数据库上读取的数据类型,并且不查询不是直接插入的 XML 和 LOB 值。
- 4
更改查询,以使其不访问已创建临时表或已声明临时表。
- 5
将此语句或命令更改为不需要执行写操作,或者连接到 HADR 主数据库以执行写操作。
- 6
连接到 HADR 主数据库以重新绑定程序包。
- 7
针对主数据库上按列组织的表发出查询。
- 8
在 HADR 主数据库上发出 SET INTEGRITY 语句。
sqlcode:-1773
sqlstate:51045
SQL1774N 不能对 HADR 主数据库或 HADR 备用数据库发出表空间复原或前滚命令。
说明
不允许对 HADR 主数据库或 HADR 备用数据库进行表空间级别复原或前滚。
用户响应
请将数据库转换为标准角色,然后对该数据库发出复原命令或前滚。
如果目标是恢复主数据库上丢失的数据,而备用数据库上提供了要复原的数据,那么应考虑运行 TAKEOVER 命令来将备用数据库转换为主数据库而不是复原主数据库的表空间。
SQL1775N 未创建 HBase 表,因为 TERMINATED BY 字符 分隔符 无效。
说明
在 TERMINATED BY 子句中使用的分隔符只能指定为一个单字节 ASCII 字符。指定的分隔符 分隔符 包含多个字符,或者由一个多字节 Unicode 字符组成。
用户响应
为此选项指定有效值。
sqlcode:-1775
sqlstate:530AE
SQL1776N 不能对 HADR 数据库发出此命令。原因码:原因码。
说明
与原因码相对应的解释是:
- 1
HADR 备用数据库不支持该命令。
- 2
当 HADR 数据库在接管期间切换角色时,不允许发出连接请求。
- 3
HADR 备用数据库不支持 UPGRADE DATABASE 命令。
- 4
当“仅回放”窗口处于活动状态时,不允许向 HADR 备用数据库发出连接请求。但是,在回放对备用数据库执行的 DDL 或维护操作时,“仅回放”窗口处于活动状态。
- 5
在备用数据库到达上一次激活的备用数据库的最高回放日志位置之前,不允许向 HADR 备用数据库发出连接请求。
- 6
此数据库是旧的主数据库。此数据库无法启动,因为备用数据库已通过强制接管来成为新的主数据库。
- 7
对 DB2 pureScale 集群重新启动备用回放时,无法处理此命令。
- 9
正在进行数据库升级时,不允许向 HADR 备用数据库发出连接请求。
用户响应
与原因码对应的用户响应是:
- 1
考虑在备用数据库上启用读取以允许客户机连接,或者连接到主数据库以执行此操作。
- 2
完成接管操作之后,重试连接至需要的数据库。请注意,由于接管操作将重新确定主数据库的角色,因此,您需要的数据库现在可能在另一台服务器(不是它在接管之前所位于的服务器)上处于活动状态。
- 3
对主数据库发出 UPGRADE DATABASE 命令,然后在数据库升级成功后重新创建备用数据库。
- 4
连接至 HADR 主数据库,或者等待备用数据库上的“仅回放”窗口进入不活动状态。
- 5
在回放到达上一次激活的备用数据库的最高回放日志位置时,重新发出此命令。请检查 db2diag.log 以获取此位置。使用“db2pd -hadr”命令获取当前回放位置。
- 6
决定适用响应时,考虑以下场景:
6.1) 如果 HADR 主数据库正在另一服务器上运行,那么此服务器上的数据库应作为 HADR 备用数据库启动。请执行以下步骤:
- 对此服务器上的数据库发出 START HADR AS STANDBY 命令。
- 通过检查 db2pd -hadr 命令的 HADR_CONNECT_STATUS 字段或对 HADR 主数据库执行 MON_GET_HADR() 表函数,验证此新 HADR 备用数据库是否建立了与 HADR 主数据库的连接。请注意,如果无法建立连接,那么 HADR 主数据库上的管理通知日志中也会报告 ADM12513E 消息。
- 如果此新 HADR 备用数据库无法建立与 HADR 主数据库的连接,那么需要根据 HADR 主数据库的备份映像完全重新初始化此新 HADR 备用数据库。请参阅标题为“初始化高可用性灾难恢复 (HADR)”的 IBM Db2 Knowledge Center 文章。
6.2) 如果 HADR 主数据库未在另一服务器上运行(或无法运行),那么此服务器上的数据库应作为 HADR 主数据库启动。请执行以下步骤:
- 对此服务器上的数据库发出 STOP HADR 命令。
- 如果希望在此服务器上将数据库作为 HADR 主数据库启动之前在另一服务器上建立 HADR 备用数据库,请参阅标题为“初始化高可用性灾难恢复 (HADR)”的 IBM Db2 Knowledge Center 文章。
- 在此服务器上对数据库发出 START HADR AS PRIMARY 命令(如果还没有任何 HADR 备用数据库运行,请使用 START HADR AS PRIMARY BY FORCE 命令)。
- 7
在重新启动回放完成后,重新发出此命令。
- 9
确保在主数据库上发出 UPGRADE DATABASE 命令,并等待至备用数据库不再处于“升级中”状态,然后重新发出该命令。
sqlcode:-1776
sqlstate:08004
SQL1777N 已启动 HADR。
说明
当对已经采用期望角色运行的数据库发出 START HADR 命令时产生了此错误。
用户响应
不需要执行任何操作。
SQL1778N 未创建或变更 HBase 表,因为列映射无效。原因码:原因码。列名或映射名:名称。
说明
运行时标记 名称 表示 SQL 列或 HBase 列映射的名称。
原因码 是指示错误原因的数字值:
- 1
SQL 列“<name>”未映射到 HBase 列。必须在 HBase COLUMN MAPPING 子句中指定所有 SQL 列。
- 2
在多个 HBase COLUMN MAPPING 列中映射了 SQL 列“<name>”。不能在多个 HBase COLUMN MAPPING 子句中指定同一 SQL 列。
- 3
在 COLUMN MAPPING 子句中多次提供了 HBase 键或列限定符名称。
- 4
未在 CREATE TABLE(HBASE) 语句中指定 KEY 列映射。在未指定行键的情况下,无法创建 HBase 表。
用户响应
更正 HBase 列映射中的错误,然后重新发出该语句。
sqlcode:-1778
sqlstate:530AF
SQL1779N 无法装入类型为 类的类型 的 Java 类 类名。日志条目标识
说明
找不到在 类的类型 或类引用中指定的 Java 类 类名。
类的类型 指示类的上下文,例如 SERDE、INPUTFORMAT、OUTPUTFORMAT 或 STORAGE HANDLER。
标记 日志条目标识 中的日志标识由以下三个部分组成:
- 一个三字母前缀,指示哪个日志文件包含诊断详细信息。
- 一个三位数字,指示日志文件所在的数据库分区。
- 一个标识,打印在日志文件中相关诊断详细信息的附近。
用户响应
检查所指定类名的拼写,并确保 Big SQL 可以访问包含该类的 JAR 文件。
通过使用 日志条目标识 运行时标记中的信息,找到相应日志文件中的诊断详细信息。可以使用以下语句从日志中检索该错误的文本:
SELECT * FROM
Table
(SYSHADOOP.LOG_ENTRY('log-entry-id'));
sqlcode:-1779
sqlstate:46503
SQL1780N 未创建此表,因为带有代码页和整理的数据库不支持某种指定功能。指定不受支持的功能的子句:子句。数据库代码页:代码页。数据库整理:整理。
说明
代码页是一种映射,用于确定字符的内部表示方式。整理用于确定字符的比较方式(例如,用于排序或合并)。数据库的代码页和整理是在创建数据库时设置的,不能更改。
对于某些代码页和整理,某种功能受到限制。
如果数据库代码页和整理不支持尝试创建的表将使用的功能,那么会返回此消息。
用户响应
通过下列其中一种方式对此错误作出响应:
- 请移除指定的功能,然后重新发出 SQL 语句。
- 要使用所指定功能,请删除数据库,然后重新创建带有支持此功能的代码页和整理的数据库
sqlcode:-1780
sqlstate:560DB
SQL1781N 解析密钥库配置文件时发生错误。原因码:原因码。
说明
解析密钥库配置文件是为了设置具有密钥库的数据库管理器实例。
如果解析密钥库配置文件时由于下列其中一种原因而发生错误,那么会返回此消息:
- 1
配置文件中的行无效。
- 2
配置文件中的行太长。
- 3
在配置文件中遇到 EOF 条件。
- 4
无法打开配置文件。
- 5
无法读取配置文件。
- 6
配置文件中缺少或者未设置某个参数。
- 7
配置文件中的某个参数具有无效值。返回此消息并且原因码为 7 时,该参数的名称将包括在运行时标记值中。
- 8
配置文件中的某个参数与另一参数有冲突。返回此消息并且原因码为 8 时,这些参数的名称将包括在运行时标记值中。
用户响应
更正密钥库配置文件中的所有错误,然后重新运行该命令。
SQL1782N 此命令或操作失败,因为访问集中式密钥管理器时遇到了错误。原因码:原因码。
说明
如果 KEYSTORE_TYPE 数据库管理器配置参数为 KMIP,那么 DB2 本机加密将加密密钥存储在集中式密钥管理器中。要使用此功能,必须执行下列设置和配置任务:
- 配置集中式密钥管理器以存储加密对象,例如,私钥。
- 在 DB2 服务器与集中式密钥管理器之间配置 SSL。
- 创建集中式密钥管理器配置文件。
- 配置 DB2 数据库管理器以使用集中式密钥管理器配置文件(通过设置加密配置参数,例如,KEYSTORE_TYPE 和 KEYSTORE_LOCATION)。
如果数据库管理器无法连接至集中式密钥管理器或执行下列其中一种操作时从集中式密钥管理器返回错误,那么会返回此消息:
- 创建加密数据库
- 创建数据库的加密备份映像
- 复原加密备份映像
- 针对加密数据库发出 DB2 命令(例如,db2cklog)
原因码更具体地指示了失败的原因:
- 1
不允许自动创建新的主密钥和主密钥标签。
- 2
KEYSTORE_LOCATION 数据库管理器配置参数中指定的集中式密钥管理器配置文件不存在。
- 3
未提供密码(未隐藏打开 SSL 密钥库所需的密码,并且未在命令中提供密码)。
- 4
提供的密码(隐藏的密码或在命令中提供的密码)无效,无法访问 SSL 密钥库文件。
- 5
遇到了 SSL 错误。返回此消息并且原因码为 5 时,该 SSL 错误将包括在运行时标记值中。
- 6
集中式密钥管理器遇到了认证错误。
- 7
集中式密钥管理器遇到了授权错误。
- 8
集中式密钥管理器遇到了 KMIP 错误。
用户响应
请根据原因码解决问题,然后重新发出该命令:
- 1
集中式密钥管理器配置文件中的 ALLOW_KEY_INSERT_WITHOUT_KEYSTORE_BACKUP 参数设置为 false。可在集中式密钥管理器中创建新的主密钥和主密钥标签并在命令上指定该主密钥密钥标签,或将 ALLOW_KEY_INSERT_WITHOUT_KEYSTORE_BACKUP 设置为 true。
- 2
将 KEYSTORE_LOCATION 数据库管理器配置参数设置为有效的文件名。
- 3 和 4
通过下列其中一种方式为 DB2 服务器提供用于访问 SSL 密钥库文件的有效密码:
- 重新创建隐藏项文件
- 提供密钥库密码作为命令的自变量
- 5
在 SSL 错误列表(网址为 http://www-01.ibm.com/support/knowledgecenter/SSAL2T_8.1.0/com.ibm.cics.tx.doc/reference/r_gskit_error_codes.html)中查看该错误。更正导致该 SSL 错误的问题,然后重新发出该命令。如果该 SSL 错误继续发生,请与 IBM 软件支持机构联系以获取帮助。
- 6
查看 db2diag 诊断日志文件中显示的认证错误,更正导致认证错误的问题,然后重新发出该命令。
- 7
查看 db2diag 诊断日志文件中显示的授权错误,更正导致授权错误的问题,然后重新发出该命令。
- 8
查看 db2diag 诊断日志文件中显示的 KMIP 错误,更正导致 KMIP 错误的问题,然后重新发出该命令。如果已设置 DEVICE_GROUP 配置参数并且所使用密钥库并非 IBM Security Key Lifecycle Manager (ISKLM),请从配置文件中移除该参数。
SQL1783N 此命令或操作失败,因为访问 PKCS #11 密钥管理器时遇到了错误。原因码:原因码。
说明
如果 KEYSTORE_TYPE 数据库管理器配置参数为 PKCS11,那么 DB2 本机加密将加密密钥存储在 PKCS #11 密钥管理器中。要使用此功能,必须执行下列设置和配置任务:
- 配置 PKCS #11 密钥管理器以存储加密对象,例如,私钥。
- 配置 PKCS #11 供应商库以访问 PKCS #11 密钥管理器。
- 创建 PKCS #11 密钥库配置文件。
- 通过设置加密配置参数(例如 KEYSTORE_TYPE 和 KEYSTORE_LOCATION),配置 DB2 数据库管理器以使用 PKCS #11 密钥库配置文件。
如果数据库管理器无法连接至 PKCS #11 密钥管理器或执行下列其中一种操作时从 PKCS #11 密钥管理器返回错误,那么会返回此消息:
- 创建加密数据库
- 创建数据库的加密备份映像
- 复原加密备份映像
- 针对加密数据库发出 DB2 命令(例如,db2cklog)
原因码更具体地指示了失败的原因:
- 1
KEYSTORE_LOCATION 数据库管理器配置参数中指定的 PKCS #11 密钥库配置文件不存在。
- 2
未提供密码(未隐藏访问 PKCS #11 密钥库所需的密码,并且未在命令中提供密码)。
- 3
提供的密码(隐藏的密码或在命令中提供的密码)无效,无法访问 PKCS #11 密钥库。
- 4
提供的密码(隐藏的密码或在命令中提供的密码)被锁定。
- 5
提供的密码(隐藏的密码或在命令中提供的密码)已到期。
- 6
提供的密码(隐藏的密码或在命令中提供的密码)未初始化。
- 7
PKCS #11 密钥管理器遇到了意外错误。此错误包含在运行时标记值中。
- 8
无法装入 PKCS #11 密钥库配置文件中指定的 PKCS #11 供应商库。
- 9
提供的主密钥标签已存在于 PKCS #11 密钥库中。
- 10
PKCS #11 密钥库中存在多个具有相同标签的对象。
- 11
PKCS #11 密钥库处于写保护状态。
- 12
PKCS #11 密钥库中不存在可用的槽。
- 13
找不到由槽标签或槽标识指定的 PKCS #11 槽。
- 14
用户无权在 PKCS #11 密钥库中执行该命令或操作。
用户响应
请根据原因码解决问题,然后重新发出该命令:
- 1
将 KEYSTORE_LOCATION 数据库管理器配置参数设置为有效的文件名。
- 2 和 3
通过下列其中一种方式为数据库服务器提供用于访问 PKCS #11 密钥库的有效密码:
- 重新创建隐藏项文件
- 提供 PKCS #11 密钥库密码作为命令的自变量
- 4、5 和 6
更正 PKCS #11 密钥管理器中的密码的状态,然后重新发出该命令。
- 7
查看 db2diag 诊断日志文件中显示的 PKCS #11 密钥管理器错误,更正导致该错误的问题,然后重新发出该命令。
- 8
查看 db2diag 诊断日志文件中显示的错误,更正导致该错误的问题,然后重新发出该命令。
- 9
如果未指定主密钥标签,请重新发出该命令。否则,请使用可用的供应商实用程序执行相应的对象管理操作,然后重新发出该命令。
- 10
可以使用可用的供应商实用程序执行相应的对象管理操作,然后重新发出该命令,也可以重新发出该命令并指定另一主密钥标签。
- 11
可能不允许对处于写保护状态的 PKCS #11 密钥库执行某些操作。使用可用的供应商实用程序查看那些操作。
- 12
检查配置和功能,以使用可用的供应商实用程序连接至 PKCS #11 密钥库。
- 13
验证提供的槽标签或槽标识是否正确,然后重新发出该命令。
- 14
查看 db2diag 诊断日志文件中显示的授权错误,更正导致授权错误的问题,然后重新发出该命令。
SQL1784N 该操作失败,因为数据库对象已在更高代码级别进行了修改并且无法从当前代码级别访问。数据库对象名称:对象名称。对象代码级别标记:标记 1。当前代码级别标记:标记 2。
说明
在下列情况下将返回此消息:
- 您正在使用位于特定版本或修订包级别(代码级别 B)的数据库软件,并且在运行该软件时修改了数据库对象 X。
- 您后退至之前代码级别 A。
- 在代码级别 A 上运行时,您尝试访问对象 X。
遇到代码级别问题的数据库对象列示在运行时令牌 对象名称 中。运行时令牌 标记 1 和 标记 2 供 IBM 支持人员在必要时使用。
用户响应
- 再次应用较高修订包代码级别(说明中描述的“代码级别 B”)。
- 如果需要执行后退操作,请删除运行时令牌 对象名称 中指定的对象,后退至之前修订包代码级别(说明中描述的“代码级别 A”),然后重新创建该对象。
SQL1785N 未处理该语句,因为扩展索引与当前产品级别不兼容。索引标识:索引标识。表标识:表标识。表空间标识:表空间标识。
说明
可使用索引扩展以指定数据库管理器如何对用户定义的数据类型建立索引。通过发出 CREATE INDEX EXTENSION 语句创建索引扩展。对包含用户定义的数据类型的表创建索引时,可通过在 CREATE INDEX 语句中添加 EXTEND USING 子句来指定用于管理该索引的索引扩展。使用索引扩展的索引通常称为扩展索引。
如果语句所访问的表包含的扩展索引是在应用当前数据库产品级别前创建的,那么会返回此消息。
用户响应
通过发出 db2updv111 命令来更新扩展索引,然后重新发出该语句。
sqlcode:-1785
sqlstate:55019
SQL1786N DB2START 处理失败,因为 netmon.cf 文件无效。
说明
成员或 CF 无法启动,因为未正确配置 /var/ct/cfg/netmon.cf 文件。
用户响应
查看诊断 (db2diag) 日志文件以确定 /var/ct/cfg/netmon.cf 文件中的配置错误。
更正配置错误。停止然后重新启动对等域,随后重新发出 db2start 命令。
SQL1790W 找不到页大小至少为 页大小、许可使用授权标识 授权标识 的缺省表空间。
说明
过程 NNSTAT 未能创建 SYSPROC.FED_STATS 表来保存已运行的语句的历史记录。找不到具有足够页大小(至少为 页大小)的表空间。
用户响应
确保存在页大小至少为 页大小 的表空间。
sqlcode:+1790
sqlcode:01670
SQL1791N 指定的服务器定义、模式或昵称不存在。
说明
过程 NNSTAT 接受将服务器定义、模式和昵称作为输入,但是找不到这些对象中的一个或多个对象。
用户响应
指定现有的服务器定义、模式或昵称,然后重新提交该语句。
sqlcode:-1791
sqlstate:42704
SQL1792W 由于远程目录与本地目录之间的模式不一致,因此,未彻底更新指定昵称的统计信息。
说明
更改了远程模式。自从创建昵称以来,更改了远程表或视图或者它的其中一列或列数据类型。
用户响应
创建新的昵称并重新提交该语句。
sqlcode:+1792
sqlcode:01669
SQL1800N 将指向结构 sqle_request_info 的无效指针传送给了目录管理命令/API。
说明
作为参数传送给目录管理命令/API 的、指向结构 sqle_request_info 的指针无效。对于“客户机配置助手”的请求,此指针不能为 NULL。
用户响应
指定一个指向 sqle_request_info 的有效指针并重新提交该命令。
SQL1801N 无效的请求类型。
说明
此命令不支持指定的请求类型。
用户响应
- SQLE_CCA_REQUEST - 用于编目和打开扫描命令的 CCA 目录节点请求
- SQLE_DAS_REQUEST - 用于编目和打开扫描命令的 DAS 目录节点请求
- SQLE_CND_REQUEST - 用于 CCA 和 DAS 目录条目的打开扫描命令
SQL1802N 没有任何条目属于请求类型。
说明
节点目录中没有任何条目是按给定的请求类型来编目的。
用户响应
编目具有相同请求类型的条目,再重新提交该命令。
SQL1803N 无法对正在使用的 CLI 动态 SQL 程序包执行所请求操作,或者无法对任何程序包执行所请求操作(处于“无程序包锁定”方式时)。受影响程序包为 pkgschema.pkgname_0Xcontoken
说明
禁止尝试修改程序包。此情况可能由下列其中一个原因导致:
- 该程序包是 CLI 动态 SQL 程序包(程序包模式为 NULLID,并且程序包名称以 SYSSH、SYSSN、SYSLH 或 SYSLN 开头),如果工作单元中的另一应用程序当前正在使用该程序包,那么不允许执行操作(重新绑定程序包、删除程序包或使程序包失效)。
- 数据库管理器当前正在以“无程序包锁定”方式运行。已通过将 DB2_APM_PERFORMANCE 注册表环境变量设置为“ON”来激活此方式。
在“无程序包锁定”方式下,以下操作类因为对程序包的影响而被阻止执行:
- 使程序包失效的操作。
- 使程序包不工作的操作。
- 绑定、重新绑定(显式或隐式)或删除程序包。
因为所请求操作将通过下列其中一种方式影响程序包 pkgschema.pkgname_0Xcontoken,所以该操作被禁止。
用户响应
- 如果该程序包是 CLI 动态 SQL 程序包,那么仅应在没有其他活动连接使用 CLI 程序包时尝试此操作。
- 如果“无程序包锁定”处于活动状态,请不要在“无程序包锁定”方式下尝试被禁止操作。为了执行请求的操作,必须退出“无程序包锁定”方式。这是通过取消设置 DB2_APM_PERFORMANCE 环境注册表变量来完成的。为了使变量更改生效,必须停止然后再重新启动数据库管理器。
sqlcode:-1803
sqlstate:57056
SQL1804N 无法对当前连接执行此语句,因为该连接已经有一个活动语句,而数据源尚不支持对单个连接执行多个活动语句。联合数据源名称:数据源名称。
说明
可以通过将 DB2_ONE_REQUEST_PER_CONNECTION 服务器选项设置为 'Y',从而将联合数据源配置为与仅支持对连接执行一个活动语句的 ODBC 驱动程序配合使用。通常,如果您正在使用可支持对连接执行多个活动语句的 ODBC 驱动程序,那么根本就不应设置 DB2_ONE_REQUEST_PER_CONNECTION 服务器选项,或者应当将它设置为 'N'。
对于已将 DB2_ONE_REQUEST_PER_CONNECTION 服务器选项设置为 'Y' 的联合数据源,如果尝试对一个连接执行多个语句,那么会返回此消息。
用户响应
通过下列其中一种方式对此错误作出响应:
- 对于任何连接,一次仅执行一个语句。
- 通过使用 ALTER SERVER 语句并将 DB2_ONE_REQUEST_PER_CONNECTION 服务器选项设置为 'N',从而支持对一个连接同时执行多个语句:
ALTER SERVER <server-name> OPTIONS( ADD DB2_ONE_REQUEST_PER_CONNECTION 'N')
sqlcode:-1804
sqlstate:57064
SQL1805N 未处理插入、更新或删除操作,因为此操作采用昵称的方式不受支持。
说明
昵称是应用程序用来引用数据源对象(例如,表或视图)的标识。在联合环境中,要引用存在于联合系统中但并不存在于联合数据库中的对象,必须使用昵称或三部分名称。
在联合环境中,要在插入、更新或删除操作中使用昵称,存在一些限制。这些限制包括下列示例:
- 嵌套在大型 SQL 语句的子句中的 INSERT、UPDATE 或 DELETE 语句不能引用昵称。
- 用于执行插入、更新或删除操作的 SQL 过程不能引用昵称。
- 位于触发器主体中的插入、更新或删除操作不能引用昵称。
如果尝试在插入、更新或删除操作中采用其中一种不受支持的方式来使用昵称,就会返回此消息。
用户响应
请通过下列其中一种方式对此消息作出响应:
- 要更新存在于联合系统中、但是并不存在于联合数据库中的数据源对象,请使用除了复合 SQL 语句、SQL 过程或触发器之外的方法。
- 从复合 SQL 语句、SQL 过程或触发器中移除对于昵称或者由三部分组成的联合名称的插入、更新或删除操作。
sqlcode:-1805
sqlstate:429A9
SQL1806N 两阶段落实事务失败,这是因为此事务分布在联合服务器拓扑中,而这种拓扑对于两阶段落实事务无效。
说明
在用于两阶段落实事务的 X/Open 分布式事务处理 (DTP) 模型中有多个组件:
- 事务标识
- 事务管理器
- 资源管理器
在联合系统中,还有另外一个组件:
- 联合服务器成为联合事务管理器
联合事务管理器代表事务管理器执行一些事务管理功能,并使用 XA 接口与事务管理器进行通信。联合事务管理器接收来自客户机或事务管理器的两阶段落实请求,又向联合数据源发送联合两阶段落实请求。
如果一个联合服务器 B 接收来自另一个联合服务器 A 的联合两阶段落实请求,而联合服务器 B 必须向联合数据源 C 发送联合两阶段落实请求,那么会返回此消息。
用户响应
- 请复查失败的事务以及失败事务中涉及到的联合服务器和远程数据源的拓扑。
- 请修改联合服务器和远程数据源的拓扑,以使得没有任何联合服务器必须在同一事务中既接收联合两阶段落实请求,又向数据源发送联合两阶段落实请求。
sqlcode:-1806
sqlstate:25503
SQL1807N 对联合数据源执行 SQL 语句失败,因为所指定的数据源不支持该 SQL 语句的某些部分。联合数据源名称:数据源名称。不受支持的子句:子句。
说明
不同的联合数据源支持不同的 SQL 语句语法。如果尝试使用所指定联合数据源不支持的 SQL 语法或 SQL 子句,或者 SQL 语法或 SQL 子句与所指定联合数据源的当前配置不兼容,那么会返回此消息。
可能会由于下列原因而返回此消息:
- 尝试对联合数据源执行 SQL 语句时,为某个值指定了 DEFAULT 关键字,然而此联合数据源不支持执行其查询语言语法中具有 DEFAULT 关键字的 SQL 语句。
- 尝试对联合数据源打开可更新的游标,然而此联合数据源已配置为不允许执行插入、更新或删除操作。具体来说,对一个其 DB2_IUD_ENABLE 服务器选项设置为 'N' 的数据源执行了包含 FOR UPDATE OF 子句的语句。
用户响应
请根据返回此消息的原因对此消息作出响应:
- 如果该语句包括 DEFAULT 关键字,那么重写该语句,使其不带 DEFAULT 关键字,然后再次执行该语句。
- 如果您正在尝试打开游标,请采用下列其中一种方式作出响应:
- 如果要为其创建游标的语句并不用于插入、更新或删除数据,那么作为只读游标来重新创建游标。
- 使用以下命令并通过将 DB2_IUD_ENABLE 设置为 'Y' 来启用插入、更新和删除操作:
ALTER SERVER <server-name> OPTIONS( ADD DB2_IUD_ENABLE 'Y')将此数据源配置为允许执行插入、更新和删除操作之后,重新创建游标。
SQL1808N 执行 SQL 语句失败,因为查询优化器生成了对于联合环境无效的存取方案。原因码:原因码。
说明
存取方案指定一系列操作的顺序,这些操作是用于访问在解析可说明语句时所需数据的操作。每当编译了可说明的 SQL 语句或 XQuery 语句,查询优化器就会生成存取方案。
如果优化器已经生成了对于联合环境无效的存取方案,就会返回此消息。原因码会指出存取方案的哪一方面无效:
- 1
找不到谓词的某一部分。
- 2
该语句包括定位更新操作或定位删除操作。定位更新或删除操作是用于修改结果集数据的更新或删除操作。定位更新和删除操作需要使用游标。
- 3
在昵称的列中找不到某个元素。
此信息是关于存取方案的哪些方面无效,仅对于 IBM 技术支持人员有用。
用户响应
通过执行下列步骤,对此错误作出响应:
- 重写此语句,以使优化器创建另外的存取方案。
- 再次执行此语句。
- 如果此语句在重写之后仍然失败,请收集诊断信息并与 IBM 支持机构联系以获取帮助。
sqlcode:-1808
sqlstate:58004
SQL1809N 可信包装器中的插入、更新或删除操作失败,因为在此包装器的主体中,查询的一部分必须在本地进行求值。包装器名称:包装器名称。
说明
不支持在本地数据库分区中执行引用昵称或者由三部分组成的联合名称的插入、更新或删除操作。
对于使用可信包装器在本地数据库分区中查询某个表的 SQL 语句,在尝试打开该语句的结果集中的可更新游标时,就会返回此消息。
用户响应
通过下列其中一种方式对此错误作出响应:
- 如果不需要执行插入、更新或删除操作,那么以只读方式重新打开此游标。
- 在 DB2_FENCED 包装器选项设置为 'Y' 的情况下,使用 ALTER WRAPPER 语句来改变此包装器,使其不再可信,然后重新打开此游标。
SQL1810N 未执行 INSERT 或 UPDATE 语句,或者无法打开游标,因为该语句中既包含一些必须在本地求值的元素,也包含一些必须远程求值的元素。
说明
在联合环境中,有许多因素会影响 SQL 语句的组成部分是在本地求值还是远程求值,下面是一些影响因素的示例:
- 有时候,SQL 语句的组成部分是在本地执行而不是远程执行,因为查询优化器确定在本地执行效率会更高。
- 其他时间,SQL 语句的组成部分是在本地执行,因为它们无法在远程数据源进行求值。例如:
- 如果一个语句中的表达式包含远程数据源不支持的函数或语法,那么必须在本地对此语句进行求值。
- 附带 VALUES 子句的 INSERT 语句和附带 SET 子句的 UPDATE 语句都必须在本地进行求值。
在下列情况下将返回此消息:
- 尝试对一个引用了联合数据源中的表的查询的结果集执行定位更新,但是该查询中的表达式只能在本地进行求值。
- 尝试执行的语句中既包含一些只能在本地求值的元素,也包含一些只能远程求值的元素。
用户响应
通过下列其中一种方式对此错误作出响应:
- 将该语句改变为既不使用带有 VALUES 子句的 INSERT 语句,也不使用带有 SET 子句的 UPDATE 语句,然后再次执行该语句。
- 如果尝试打开结果集中的游标时返回了此消息,并且不需要执行更新或删除操作,那么以只读方式重新打开此游标。
- 改变该语句,使其不包含数据源不支持的元素,从而让联合数据库将该语句发送至联合数据源,而不在本地对该语句进行求值。
SQL1812W 列 列名 的长度从 远程列长度 减少至 列长度。
说明
发出 CREATE NICKNAME 语句时,联合服务器对该远程数据源对象中的每个列或字段定义本地数据类型。为改进查询处理的性能,列 列名 的远程列长度 远程列长度 减少至 列长度。远程表包含超过 列长度 字节的长值时,可能发生截断。
用户响应
检查远程表并确定使用大规模类型(例如,STRING 或 BINARY)的列。在昵称的本地列规范中,使用 ALTER NICKNAME 语句更改对应上一步中确定的列的列数据类型。确保列大小足以容纳远程数据源中的数据。
sqlcode:+1812
sqlstate:0169E
SQL1815N 当数据库分区功能处于启用状态时,XML 数据不支持联合功能。
说明
当数据库分区功能处于启用状态时,您不能为包含 XML 数据类型列的远程表创建昵称。
用户响应
要对 XML 数据使用联合功能,请在未启用数据库分区功能的情况下创建新的数据库实例。
sqlcode:-1815
sqlstate:55076
SQL1816N 不能使用包装器 包装器名 来访问您尝试为联合数据库定义的数据源的 类型或版本(服务器类型 服务器版本)。
说明
指定的包装器不支持想要定义的数据源的类型或版本。
用户响应
请参阅文档以了解哪个包装器支持您想定义的数据源的类型和版本。确保已经通过 CREATE WRAPPER 语句向联合数据库注册了该包装器。然后,对 CREATE SERVER 语句重新编码以使它指定此包装器,然后再次运行 CREATE SERVER 语句。
sqlcode:-1816
sqlstate:560AC
SQL1817N CREATE SERVER 语句不标识您想为联合数据库定义的数据源的 类型或版本。
说明
当 CREATE SERVER 语句引用您指定的包装器时,它还必须标识要为联合数据库定义的数据源的 类型或版本。
用户响应
在 CREATE SERVER 语句中对 类型或版本 选项进行编码,以便它指定要定义的数据源的 类型或版本。然后再次运行 CREATE SERVER 语句。
sqlcode:-1817
sqlstate:428EU
SQL1818N 未能处理您提交的 ALTER SERVER 语句。
说明
在工作单元中,ALTER SERVER 语句的前面是一个 SELECT 语句,该 SELECT 语句引用 ALTER SERVER 语句所引用的数据源(或数据源的类别)中表或视图的昵称。
用户响应
让该工作单元结束;然后重新提交 ALTER SERVER 语句。
sqlcode:-1818
sqlstate:55007
SQL1819N 未能处理您提交的 DROP SERVER 语句。
说明
在工作单元中,DROP SERVER 语句的前面是一个 SELECT 语句,该 SELECT 语句引用 DROP SERVER 语句所引用的数据源(或数据源的类别)中的表或视图的昵称。
用户响应
让该工作单元结束;然后重新提交 DROP SERVER 语句。
sqlcode:-1819
sqlstate:55006
SQL1820N 对 LOB 值的操作失败。原因码:原因码。
说明
- 没有足够的缓冲区空间用来存储 LOB 值。
- 远程数据源不支持对 LOB 数据类型的当前操作。
- 超过了某些内部编程限制。
用户响应
减小 LOB 的大小或替换正在应用于 LOB 数据类型的函数。在万不得已的情况下,从语句中除去 LOB 数据类型。
sqlcode:-1820
sqlstate:560A0
SQL1821W 可能更改了检索到的 LOB 值。
说明
LOB 值是以延迟的检索为基础求得的。在首次访问 LOB 值与实际检索到该值的时间段内,该值可能已更改。
用户响应
在 SYSSERVEROPTIONS 中将“deferred_lob_retrieval”设置为“N”,重新提交您的查询或忽略警告。
sqlcode:+1821
sqlstate:01621
SQL1822N 从数据源 数据源名 中接收到了意外错误代码 错误代码。相关联的文本和标记为 标记。
说明
引用数据源时,联合服务器从未映射至 DB2 等价数据源的数据源中接收到意外的错误代码。
- 4901 尝试打开多于 15 个游标
- 4902 行大小超过 32K 限制
如果数据源不可用,可能也会返回此错误。
用户响应
确保数据源可用,然后通过找出该数据源中指定的错误的相应消息正文和更正操作,从而标识并更正该问题的根本原因。
sqlcode:-1822
sqlstate:560BD
SQL1823N 服务器 服务器名 中不存在数据类型 数据类型名 的数据类型映射。
说明
尝试创建对象的昵称。该对象有一列或多列的类型是联合服务器当前不知道的。消息中列示了未知类型的名称。
用户响应
使用 CREATE TYPE MAPPING 语句创建指定服务器上的指定类型名的映射。
sqlcode:-1823
sqlstate:428C5
SQL1824W 此 UNION ALL 的操作数中的一些基本表可能是相同的表。
说明
昵称可以引用远程基本表、远程视图、远程别名/同义词或远程昵称。如果 UNION ALL 视图的两个操作数引用不同的昵称,那么它们可能潜在地指向同一个表(如果不是这两个操作数都被认为是远程基本表)。发出此消息是用于警告用户:通过两个操作数进行更新/删除可能会更新/删除一个远程基本表两次。
用户响应
验证是否所有操作数都指向不同的远程表。如果两个操作数指向同一远程基本表,应考虑发出回滚以取消更新/删除操作。
sqlcode:+1824
sqlstate:01620
SQL1825N 对联合数据源执行 SQL 语句失败,因为该语句的某些部分在联合环境中不受支持。联合数据源名称:数据源名称。原因码:原因码。
说明
在联合系统中使用 INSERT、UPDATE 或 DELETE 语句时存在一些限制。
原因码指出了返回此消息的特殊原因:
- 1
尝试通过联合数据库插入、更新或删除 LOB 数据。
- 2
尝试对一个通过 UNION ALL 子句创建的视图执行插入、更新或删除操作。
用户响应
根据原因码对此消息作出响应:
- 1
通过所指定的数据源中的本机接口对此数据源执行插入、更新或删除 LOB 数据。
- 2
重写此语句,以使插入、更新或删除操作不使用 UNION ALL 视图,然后再次执行该语句。
sqlcode:-1825
sqlstate:429A9
SQL1826N 对系统目录对象 对象名 中的列 列名 指定了无效值 值。
说明
对系统目录对象 对象名 中的列 列名 指定了无效值 值。
无法处理该语句。
用户响应
请参阅 SQL Reference 以获取指定系统目录对象中的指定列的有效值。更正该语句,然后重新发出该语句。
sqlcode:-1826
sqlstate:23521
SQL1827N 未定义从本地授权标识 授权标识 至服务器 服务器名 的用户映射。
说明
尝试删除或改变未定义的用户映射。
用户响应
如果它是 ALTER USER MAPPING 语句,那么首先使用 CREATE USER MAPPING 语句来创建用户映射。然后,改变用户映射。如果它是 DROP USER MAPPING 语句,那么不需要执行额外操作,因为用户映射不存在。
sqlcode:-1827
sqlstate:42704
SQL1828N 没有为远程服务器 服务器名 或一组远程服务器定义服务器选项 选项名:服务器类型 服务器类型、版本 服务器版本 和协议 服务器协议。
说明
尝试删除或改变未定义的服务器选项。
用户响应
如果它是 ALTER SERVER 语句,那么首先使用 CREATE SERVER 语句创建服务器选项。然后,改变服务器选项。如果它是 DROP SERVER 语句,那么无需任何额外操作,因为服务器的服务器选项不存在。
sqlcode:-1828
sqlstate:42704
SQL1829W 联合服务器接收到来自数据源 服务器名称 的警告消息 警告代码。相关联的文本和标记为 标记。
说明
在数据源 服务器名称 处发生了未知警告 警告代码。该消息的标记是 标记。
用户响应
请使用数据源的诊断信息来确定是否要执行任何可能的更正操作。
sqlcode:+1829
sqlstate:0168O
SQL1830N 必须在使用 EXPRESSION AS 子句的谓词规范之前指定 RETURNS 子句。
说明
在包括 EXPRESSION AS 子句的 PREDICATE 子句之前,未指定 RETURNS 子句。RETURNS 子句可能已经包括在谓词规范之后或缺少该子句。
无法处理该语句。
用户响应
指定 CREATE FUNCTION 语句时,将 RESULTS 子句置于 PREDICATE 子句之前。
sqlcode:-1830
sqlstate:42627
SQL1831N 不能更新子表 子表名 的表统计信息。
说明
该语句尝试更新定义为子表的表 子表名 的 NPAGES、FPAGES 或 OVERFLOW 的统计信息值。对于类型表,只能使用表层次结构的根表来更新这些统计信息。
无法处理该语句。
用户响应
更新表层次结构的根表而不是子表的目录统计信息。
sqlcode:-1831
sqlstate:428DY
SQL1832N 不能使用例程 例程名 来定义过滤器,因为它被定义为 SQL 函数。
说明
在用户定义的谓词规范或索引扩展定义的 FILTER 子句中指定了例程(函数或方法)例程名。不能用 LANGUAGE SQL 来定义该例程。
无法处理该语句。
用户响应
指定一个不是用 LANGUAGE SQL 定义的例程。
sqlcode:-1832
sqlstate:429B4
SQL1833N 无法在端口 端口号 上建立与远程“扩展搜索服务器”主机名 的连接,或此连接已终止。
说明
“Extended Search 包装器”尝试在端口 端口号 上连接至远程“Extended Search 服务器”主机名,但未能建立连接,或者远程服务器已终止了该连接。
用户响应
验证远程“Extended Search 服务器”的“主机名”和“端口号”。并且,检查“Extended Search 服务器”是否已启动并正在运行。
SQL1834N 用户定义的列 列名 与包装器 包装器名 的固定列完全相同,但它使用另一种数据类型。
说明
CREATE NICKNAME 语句或 ALTER NICKNAME 语句包含一个用户定义的列,其名称与包装器 包装器名 的固定列相同,但使用不同的数据类型。
用户响应
不要在 CREATE NICKNAME 语句的列定义中指定包装器 包装器名 的固定列。但是,如果指定了固定列,那么固定列名和数据类型/数据类型长度必须与固定列定义相匹配。不允许改变固定列名或数据类型。
SQL1835N 在远程“扩展搜索服务器”扩展搜索主机名 上找不到类型为 对象类型 的“扩展搜索”对象 对象名。
说明
在远程“Extended Search 服务器”es-主机名 上找不到类型为 对象类型 的 Extended Search 对象 对象名。
用户响应
验证该对象名在此服务器上是否已定义并且具有类型 对象类型。
SQL1836N 在用户定义的列 列名 与远程 Extended Search es-主机名 上的字段名之间不存在列映射。
说明
选项 DATASOURCE 或选项 CATEGORY 中指定的数据源都没有包含与用户定义的列 列名 完全相同的字段名。
用户响应
- 选项 DATASOURCE 中指定的任何数据源
- 选项 CATEGORY 中指定的类别中的数据源。
SQL1837N 不能删除 选项类型 的对象 对象名 的必需选项 选项名。
说明
某些选项对联合是必需的。不能删除该选项。
用户响应
请参阅此数据源的联合文档以确定是否可以将该选项设置为另一个值。可能有必要删除相关联的对象。
sqlcode:-1837
sqlstate:428GA
SQL1838N 搜索语句 语句 不是有效的 Extended Search 查询。
说明
Extended Search 包装器尝试处理所列示的搜索语句,但由于语法不正确,因此查询失败。
用户响应
更正搜索语句并再次提交请求。请查阅文档,以了解有关使用“Extended Search 昵称”创建有效 SQL 搜索语句的信息。
SQL1839N 一个或多个搜索参数无效。
说明
Extended Search 包装器尝试使用指定的搜索参数,但它们对 Extended Search 无效。
用户响应
请查阅《IBM DB2 Life Sciences Data Connect 规划、安装和配置指南》(『Extended Search 包装器』部分),以了解有关如何编写有效 SQL 语句的信息。
SQL1840N 不能将 选项类型 选项 选项名 添加至 对象名 对象。
说明
不能添加该选项。某些选项是由对象设置的,您不能对其进行添加或覆盖。
用户响应
请参阅此数据源的联合文档。确定对与此对象相关联的选项有效的操作。
sqlcode:-1840
sqlstate:428GA
SQL1841N 不能对 对象名 对象更改 选项类型 的选项 选项名 的值。
说明
不能更改该选项值。某些选项是由对象设置的,您不能对其进行添加或覆盖。
用户响应
请参阅此数据源的联合文档。确定对与此对象相关联的选项有效的操作。可能有必要删除相关联的对象,然后使用新选项值再次创建该对象。如果产生此消息以响应 SET SERVER OPTION 语句,那么可能有必要使用 ALTER SERVER 语句。
sqlcode:-1841
sqlstate:428GA
SQL1842N 在 文本 附近找到的对象 对象名 的类型为 选项类型 的选项 选项名 无效。原因码:原因码。
说明
指定选项的语法无效或者不能将该选项设置为指定值。原因码提供了有关该错误的更多信息。原因码为:
- 01
意外的字符。
- 02
找不到需要的元素名称或属性名称。
- 03
引用后需要最小/最大出现次数。
- 04
在属性名中找到多个冒号。
- 05
最小/最大出现次数不是整数值。
- 06
最小/最大出现次数超出范围。
- 07
最小出现次数大于最大出现次数。
- 08
列模板选项中的引用不是“列”。
- 09
名称空间规范中丢失了“=”定界符。
- 10
名称空间规范中缺少开始或结束引号。
- 11
模板中存在重复引用。
- 12
当数据库管理器实例为 32 位实例时,不允许使用包装器选项 选项名。
- 13
两个包装器选项或选项值不兼容。仅当“DB2_FENCED”设置为“Y”时,包装器选项 选项名 才有效。
- 14
包装器选项 选项名 在此特殊平台上不受支持。
- 15
包装器无法装入至此特定平台上的 DB2 线程引擎,因为它不是线程安全的。
- 16
wait-time 参数的最小有效值为 1000 毫秒。
用户响应
请参阅此数据源的联合文档。确定正确的选项语法并重新编码该语句。原因码为:
- 01
检查指定位置附近的选项值并更改或移除无效字符。
- 02
检查指定位置附近的选项值并更正语法。
- 03
确保范围规范“[最小,最大]”跟在模板选项值中每个引用的后面。
- 04
模板仅支持一个名称规范级别。移除额外的规范。
- 05
确保范围规范的最小出现次数值和最大出现次数值是整数。
- 06
确保范围规范“[最小,最大]”的值在此数据源的允许范围内。
- 07
更正范围规范。确保第一个数字小于或等于第二个数字。
- 08
将列模板选项值中的引用替换为标记“列”。
- (09,10)
使用格式“名称 =“规范””重新编码名称空间选项值。
- 11
重新编码该模板。确保没有重复引用。
- 12
不要对 32 位数据库管理器实例指定包装器选项 选项名。
- 13
检查“DB2_FENCED”包装器选项的选项值。
- 14
参阅 SQL Reference 以验证您想要的包装器选项。为此数据源安装并使用 64 位客户机。
- 15
为“DB2_FENCED”包装器选项指定值“Y”。
- 16
使用 wait-time 的有效值再次发出该语句。
sqlcode:-1842
sqlstate:42616
SQL1843N 昵称名.列名 昵称列不支持 运算符名 运算符。
说明
某些数据源限制可以对昵称列指定的运算符。
用户响应
请参阅此数据源的联合文档。重新编码该语句并除去或更改无效表达式。然后再次提交该语句。
sqlcode:-1843
sqlstate:429BP
SQL1844W 在远程数据源与联合服务器之间截断了列 列名 的数据。
说明
在远程数据源与联合服务器之间传送数据时截断了字符。截断可以在许多情况下发生。某些这些情况包括不正确的昵称列定义(列对于远程数据源列数据太小)或存在限制由远程数据源返回的数据大小的转换或类型强制类型转换函数。
用户响应
要更正此问题,检查该语句以找到可能正限制从远程数据源返回的数据大小的任何类型强制类型转换或转换函数。如果该语句包含这些函数,那么重新编码该语句以允许从数据源返回更大的数据。然后再次提交该语句。如果该语句不包含这些函数,或者如果更正函数不更正该问题,那么检查 DB2 目录的昵称中的本地列规范。通过使用 ALTER NICKNAME 语句或 DROP NICKNAME 和 CREATE NICKNAME 语句,更改列规范以确保列大小足够大,以致能够容纳远程数据源返回的数据。
sqlcode:+1844
sqlstate:01004
SQL1846N 对象名-1 对象的 选项类型-1 选项 选项名-1 与 对象名-2 对象的 选项类型-2 选项 选项名-2 相冲突。
说明
已经指定了两个或更多个不兼容的选项或选项值。
用户响应
请参阅此数据源的联合文档。确定可以对此对象指定的有效选项。然后对该语句进行重新编码并再次提交。
sqlcode:-1846
sqlstate:42867
SQL1847N 对象名 对象类型 的模板替换错误。原因码:原因码。附加文本和标记 文本。
说明
在构建 XML 文档期间,包装器在将值替换到模板中时遇到了问题。这可能是由昵称级别与列级别的模板之间的冲突导致的。原因码为:
- 01
在模板中找不到引用名。附加文本标识缺少的引用。
- 02
不能将属性引用替换为元素内容。附加文本标识出错的引用。
用户响应
请参阅此数据源的联合文档。在 db2diag 日志文件中可能记录了其他诊断信息。如果有必要,请使用 ALTER NICKNAME 语句更正模板语法。然后再次提交原始语句。
sqlcode:-1847
sqlstate:428G9
SQL1860N 表空间 表空间名 与表空间 表空间名 不兼容。原因码:原因码。
说明
由于下列其中一种原因,指定的表空间不兼容:
- 1
一个分区表的所有表空间(数据、长型和索引)必须位于同一个数据库分区组中。
- 2
分区表的数据表空间必须全部是 SMS、全部是常规 DMS 或者全部是大型 DMS。分区索引的索引表空间必须全部是常规 DMS 或全部都是大型 DMS。
- 3
所有数据表空间的页大小必须相同。所有索引表空间的页大小必须相同。所有长表空间的页大小也必须相同。但是,数据表空间、索引表空间和长表空间的页大小可以互不相同。
- 4
每个数据表空间的扩展数据块大小都必须与其他数据表空间的扩展数据块大小相同。每个索引表空间的扩展数据块大小都必须与其他索引表空间的扩展数据块大小相同。所有用于存储长数据的表空间的扩展数据块大小也必须相同。但是,用于不同用途的表空间的扩展数据块大小不必匹配。
- 5
必须将一个分区表的长数据与所有数据分区的数据存储在同一个表空间中,或者必须将它存储在大型表空间中,每个大型表空间都与相应数据分区的表空间不同。如果使用了 LONG IN 子句来指定一个表空间与数据表空间不同,但它又不是大型表空间,就将发生此错误。如果常规表空间与数据表空间完全相同(即,在 LONG IN 子句是多余的情况下,因为它仅仅指定数据表空间,这与完全省略了 LONG IN 时的缺省行为相同),那么 LONG IN 只能用来指定常规表空间。
用户响应
指定与该表的其他表空间相匹配的表空间。
sqlcode:-1860
sqlstate:42838
SQL1870N 未能将一行插入到范围集群表中,因为键序列列超出了范围。
说明
未能将一行插入到范围集群表中,因为键序列值超出了定义的范围。
用户响应
- 可以删除并在启用了 WITH OVERFLOW 选项的情况下重新创建范围集群表。这将创建一个可以处理超出范围的记录的范围集群表,但是并不保证排序并且具有更高的锁定意义。
- 可以删除并使用将包括此记录的新范围定义来重新创建范围集群表。
- 可以定义一个对范围集群表记录执行 UNION ALL 的视图,并创建一个包含独立的超出范围的记录的表。然后应在视图中管理插入、更新、删除、合并和查询。
sqlcode:-1870
sqlstate:23513
SQL1871N 在范围集群表上不支持此函数。原因码:原因码。
说明
某些函数在范围集群表上不可用。原因码:
- 1
VALUE COMPRESSION 和 COMPRESS SYSTEM DEFAULT 不可用。
- 2
不能对范围集群表创建集群索引。
- 3
不支持添加列。
- 4
不支持 SET DATA TYPE。
- 5
不支持更改 PCTFREE。
- 6
不支持更改 APPEND 方式。
- 7
不能更改列属性。
- 8
不支持类型表。
- 10
在用来定义包含范围集群表的表空间的数据库分区组上不支持以下命令:ALTER TABLESPACE, REDISTRIBUTE DATABASE PARTITION GROUP。
- 11
不支持 LOAD 实用程序。
- 12
不支持“表重组”。
- 13
不支持“表截断”。
- 14
不能使用类型为 XML 的列。
- 15
不支持 COMPRESS YES。
- 17
当进行了在分区的数据库环境中创建范围集群表的尝试,且 CREATE TABLE 语句中指定的分布键和序列键之间的关系有问题时,会返回本原因码。问题是:使用 DISTRIBUTE BY HASH 子句指定的分布键不是使用 ORGANIZE BY KEY SEQUENCE 子句指定的序列键列的单个列子集。
以下示例说明分布键和序列键之间的这个关系:
示例 1:分布键是序列键的单个列子集。
CREATE TABLE ... ORGANIZE BY KEY SEQUENCE (colA, colB) ... DISTRIBUTE BY HASH (colA)示例 2(错误):分布键不是序列键的单个列子集。
CREATE TABLE ... ORGANIZE BY KEY SEQUENCE (colA, colB) ... DISTRIBUTE BY HASH (colC)- 18
当进行了创建范围集群的具体化查询表的尝试,且在 CREATE TABLE STATEMENT 中指定 DISALLOW OVERFLOW 子句时,会返回本原因码。不能阻止将键值在已定义范围之外的记录插入到范围集群的具体化查询表中。
- 19
随机分发表不受支持。
用户响应
如果此表需要不可用的函数,那么应考虑不使用 ORGANIZE BY KEY SEQUENCE 子句来创建该表。如果该表已经存在,那么将需要删除该表然后再重新创建该表。原因码:
- 1
移除 VALUE COMPRESSION 子句或 COMPRESS SYSTEM DEFAULT 子句。
- 2
从 CREATE INDEX 语句中移除 CLUSTER 关键字。
- 3
要添加一列,必须删除该表然后再使用附加列创建该表。
- 4
从 ALTER TABLE 语句中移除 SET DATA TYPE 子句。
- 5
从 ALTER TABLE 语句中移除 PCTFREE 子句。
- 6
从 ALTER TABLE 语句中移除 APPEND 子句。
- 7
要更改列属性,必须删除该表然后再使用新的列属性来创建该表。
- 8
不要将类型表定义与 ORGANIZE BY KEY SEQUENCE 子句配合使用。
- 10
要改变或重新分发用来定义包含范围集群表的表空间的数据库分区组,请执行以下步骤:
- 在不属于您想要改变或重新分发的数据库分区组的表空间中删除或重新创建范围集群表。
- 再次调用 ALTER TABLESPACE 命令或 REDISTRIBUTE DATABASE PARTITION GROUP 命令。
- 11
考虑使用 IMPORT 实用程序而不使用 LOAD 实用程序。可以使用数据的子集同时发出多个 IMPORT 命令来提高性能。还应考虑使用并行插入应用程序,它们会填充键序列范围的不同区域。
- 12
“范围集群表”不需要进行表重组。
- 13
删除然后重新创建表。
- 14
移除使用数据类型 XML 定义的列,或者使用另一种受支持的数据类型。
- 15
移除 COMPRESS YES 子句。
- 17
要在分区的数据库环境中创建范围集群表,请对 CREATE TABLE 语句进行下列其中一个更改,并再次执行该语句:
- 使用 DISTRIBUTE BY REPLICATION 子句,而非 DISTRIBUTE BY HASH 子句。
- 使用 DISTRIBUTE BY HASH 子句指定单个列作为分布键,该列是序列键中使用 ORGANIZE BY KEY SEQUENCE 子句指定的列的其中一个。
- 18
再次执行 CREATE TABLE 语句,而不指定 DISALLOW OVERFLOW 子句。
- 19
移除 DISTRIBUTE BY RANDOM 子句。
sqlcode:-1871
sqlstate:429BG
SQL1880N 包装器 包装器名 和/或联合数据源 服务器名 不支持将 选项名 用作游标 对象名 的 选项类型 选项。
说明
使用联合数据源 服务器名 上的包装器 包装器名 来访问昵称的游标 游标名 是使用类型为 选项类型 的选项 选项名 声明的,但包装器或数据源本身不支持此选项。
无法打开该游标。
用户响应
不要使用此选项来打开该游标。
sqlcode:-1880
sqlstate:428EE
SQL1881N 未设置服务器选项,因为该选项在要使用它的上下文中无效。选项:选项名。选项类型:选项类型。要应用选项的对象:对象名。
说明
可通过对 CREATE SERVER 语句、ALTER SERVER 语句或 SET SERVER 语句指定选项来配置联合服务器。某些联合服务器选项对所有数据源有效,某些联合服务器选项仅对某些数据源有效。
如果指定了无效服务器选项,那么会返回此消息。服务器选项可能因为不同原因无效,包括以下示例原因:
- 指定的选项可能不存在
- 指定的选项可能对该数据源类型无效
- 指定的选项可能对特定数据源无效
- 指定的选项可能对该数据库对象无效
用户响应
请查看适用于该数据源的服务器选项,然后在指定有效选项的情况下再次执行该语句。
sqlcode:-1881
sqlstate:428EE
SQL1882N 不能将 对象名 的 选项值 设置为 选项类型 选项 选项名。
说明
您指定的值缺少正确的定界符,或者无效。
用户响应
参阅 SQL Reference 以验证您想要的值。然后修正并重新提交要运行的语句。务必将值定界在单引号中。
sqlcode:-1882
sqlstate:428EF
SQL1883N 选项名 是 对象名 需要的 选项类型 选项。
说明
未指定 DB2 处理您提交的语句所需要的选项。
用户响应
查阅文档以了解您要运行的语句所必需的选项。然后修正并重新提交此语句。
sqlcode:-1883
sqlstate:428EG
SQL1884N 对 对象类型 对象 对象名 多次指定了 选项名 选项。
说明
您输入了多次引用同一选项的语句。
用户响应
重新编码该语句以便它只引用一次您想要的选项。然后再次提交该语句。
sqlcode:-1884
sqlstate:42853
SQL1885N 已对 对象名 定义 选项类型 选项 选项名。
说明
您对已有值的选项输入了值。
用户响应
查询适当的目录视图以确定选项当前设置为什么值。如果选项值与您想要的值不用,那么重新编码该语句,使 SET 关键字跟着 OPTIONS 关键字。确定哪个目录视图包含此选项的一些选项。
sqlcode:-1885
sqlstate:428EH
SQL1886N 操作类型 操作无效,因为尚未对 对象名 定义 选项类型 的选项 选项名。
说明
您尝试更改或删除尚未对您正在使用的数据源、数据源类型或数据库对象定义的选项的值。
用户响应
如果在想要运行的语句中指定了 SET,那么重新编码该语句,省略 SET 或者将它替换为 ADD(ADD 是缺省值);除去任何不正确的 DROP 子句。然后再次提交该语句。
sqlcode:-1886
sqlstate:428EJ
SQL1887N SPECIFICATION ONLY 子句是必需的。
说明
昵称的 CREATE INDEX 语句必须具有 SPECIFICATION ONLY 子句。
用户响应
添加 SPECIFICATION ONLY 子句,然后重新提交该语句。
sqlcode:-1887
sqlstate:42601
SQL1888N 端口号 端口号 无效。
说明
在“更新备用服务器”命令上指定的端口号无效。值不是一个数字或者它的长度无效。值的长度必须为 1 到 14 个字符,且不能全为空白。
用户响应
验证端口号被指定为数值并且其长度不超过 14 个字符。
使用有效的端口号重新提交该命令。
SQL1889W 忽略了更新备用服务器请求。
说明
只能将请求应用于数据库服务器。
用户响应
在数据库服务器中发出该请求。
SQL1890N 主机名 主机名 无效。
说明
在“更新备用服务器”命令上指定的主机名无效。值长度必须是 1 到 255 个字符,且不能全为空白。
用户响应
验证主机名的长度不超过 255 个字符。
以有效的主机名重新提交该命令。
SQL1891N 主机名参数的地址无效。
说明
应用程序使用的地址对于主机名参数无效。指向未分配缓冲区或缓冲区中字符串的地址没有 NULL 终止符。
无法处理该命令。
用户响应
更正应用程序,以便使用正确的地址并且输入字符串以 NULL 结束。
SQL1892N 端口号参数的地址无效。
说明
应用程序使用的地址对于端口号参数无效。指向未分配缓冲区或缓冲区中字符串的地址没有 NULL 终止符。
无法处理该命令。
用户响应
更正应用程序,以便使用正确的地址并且输入字符串以 NULL 结束。
SQL1900N 已成功完成该命令。
说明
命令行实用程序成功地完成了该命令。
用户响应
不需要执行任何操作。
SQL1901N 命令的语法不正确。
说明
命令行实用程序不能处理该命令。
用户响应
更正然后重新提交该命令。