a) 只有DB2 UDB Enterprise Server Edition ( ESE )支持 HADR ,但 HADR 不能支持分区数据库( Database Partitioning Feature , DPF )。
b) 主数据库和备用数据库必须运行在相同的操作系统版本上,并且DB2 UDB 的版本也必须一致,除非短暂的软件升级过程。
c) 主数据库和备用数据库的位大小必须一致(32 位或 64 位)。
d) 不能在备用数据库上进行备份操作
e) 备用数据库是不能访问的,客户端程序无法连接备用数据库。
f) 日至归档操作只能在主数据库上进行。带有COPY NO 选项的 LOAD 命令是不支持的
g) 主数据库和备用数据库必须是一对一的。
h) HADR不能使用循环日志
i) HADR不复制数据库配置参数、共享库、 DLL 、 UDF 或存储过程
注意以上是 9.5版本的 DB2 限制,从 DB2 9.7.1 开始支持了 HADR 备机可读。
j) 除非已启用“ 在备用数据库上读取 ” ,否则客户机无法与备用数据库连接。 “ 在备用数据库上读取 ” 可让客户机连接至活动备用数据库及发出只读查询。
k) 如果已启用“ 在备用数据库上读取 ” ,那么不允许在备用数据库上执行写入日志记录的操作;只有读取客户机可以连接至活动备用数据库。
l) 如果已启用“ 在备用数据库上读取 ” ,那么不允许在备用数据库上执行修改数据库内容的写入操作。将不支持尝试修改数据库对象的任何异步线程(例如 Just In Time Statistics ( JITS )和自动重建索引)和实用程序。 JITS 和自动重建索引不应在备用数据库上运行。
m) 只能由当前主数据库执行日志归档。
n) 只能对当前主数据库运行自调整内存管理器(STMM )。在主数据库启动或备用数据库通过接管而转换为主数据库后,直到第一个客户机连接生效, STMM EDU 才可能启动。
o) 在备用数据库上不支持备份操作。
p) 未进行日志记录的操作(例如对数据库配置参数和恢复历史记录文件所作的更改)不会被复制到备用数据库。
q) 不支持指定了 COPY NO 选项的装入操作。
r) HADR 不支持对数据库日志文件使用原始 I/O (直接磁盘访问)。如果 HADR 是通过 START HADR 命令启动的,或者在配置了 HADR 的情况下激活(重新启动)数据库,并且检测到原始日志,那么相关联的命令将失败。
s) 对于一阶段落实,HADR 数据库可以充当联合服务器(事务管理器)或数据源(资源管理器)。对于两阶段落实, HADR 数据库只能充当数据源。
注意:即使是 V9.7.1版本已经支持并开启了备库可读特性,依然存在以下限制:
a. 不允许在备用数据库上执行写入操作。在此上下文中,写入操作是修改目录、表和索引等永久数据库对象的操作。在备用数据库上执行写入操作会返回错误(SQL1773N 原因码 5 )。特别是,不能执行会导致在备用数据库上生成日志记录的任何操作。
b. 在重放 DDL 日 志记录或维护操作期间( 仅重放时间 ),用户连接无法访问备用数据库。有关更多信息,请参阅活动备用数据库上的仅重放时间。
c. 当备用数据库处于本地同步复制状态时,用户连接无法访问该数据库。尝试连接此状态的客户机将收到错误(SQL1776N 原因码 1 )。
d. 在备用数据库上只支持未落实的读(UR )隔离级别。请求更高隔离级别的应用程序、语句或子语句将收到错误( SQL1773N 原因码 1 )。有关更多信息,请参阅活动备用数据库上的隔离级别。
e. 不会将实例级别审计配置复制到备用数据库。必须使 用 db2audit 工具确保实例级别审计设置在主数据库和备用数据库上是相同的。
f. 在备用数据库上不支持已声明临时表 (DGTT) 。在备用数据库上尝试创建或访问它们将收到错误( SQL1773N 原因码 4 )。
g. 创建临时表 (CGTT) 只能创建在主数据库上,且它们的定义会被复制到备用数据库。但是,在备用数据库上不支持访问 CGTT ,尝试创建或访问它们将收到错误( SQL1773N 原因码 4 )。
h. 在主数据库上创建“ 创建临时表 ”(CGTT) 将触发备用数据库上的仅重放窗口。
i. 在备用数据库上不能访问最初未进行日志记录(NLI )表。在备用数据库上尝试读取 NLI 表的应用程序将收到错误( SQL1477N )。
j. 备用数据库上的查询只能使用 SMS 系统临时表空间。在备用数据库上执行使用 DMS 系统临时表空间的查询可能会导致错误( SQL1773N 原因码 5 )。
k. 不能查询下列数据:XML 、大对象 (LOB) 、长字段( LF )、基于这些数据类型的其中一种的单值类型和结构化类型列。尝试查询这些数据类型将收到错误( SQL1773N 原因码 3 )。
l. 在备用数据库上不支持说明工具(db2exfmt 、 db2expln 和 Visual Explain )和 db2batch 工具( SQL1773N 原因码 5 )。如果要分析只读工作负载的性能,那么首先应在主数据库上运行这些工具,在主数据库上对工作负载进行必要的优化,然后将优化后的工作负载移至备用数据库。
m. 在备用数据库上不支持程序包的显式绑定及重新绑定和隐式重新绑定。尝试运行引用失效对象的静态程序包及这些程序包的隐式重新绑定将导致错误(分别为 SQL1773N 原因码 5 和 6 )。应该转为在主数据库上绑定程序包,并在将更改复制到备用数据库后,在备用数据库上运行程序包。
n. 在备用数据库上不支持自调整内存管理器(STMM )。如果要调整备用数据库(以适合运行只读工作负载或以在接管后执行良好),那么必须手动调整。
o. 主数据库上的工作负载管理器(WLM ) DDL 语句将在备用数据库上重放,但它们在备用数据库上不会生效;但是,存在于数据库备份(用于建立备用数据库)中的任何定义在启用了读取的备用数据库上将是活动的。
p. 在备用数据库上不支持创建和改变序列。同样,不能使用 NEXT VALUE 表达式来生成序列中的下一个值。
q. 在备用数据库上不支持无效对象的运行时重新验证。
r. 不能将备用数据库配置为 Federation Server 。
s. 在备用数据库上不支持备份和归档操作。
t. 在备用数据库上不支持停顿操作。