DB2 V9.7 高可用性灾难恢复中的备机可读
2010-07-30 00:00:00 来源:WEB开发网3. 在 SQL 语句中指定隔离级别,例如:
清单 10. 在 SQL 语句中设置隔离级别
$ db2 "SELECT * FROM test WITH UR"
...
3 record(s) selected.
通常来说,在 SQL 语句中设置的隔离级别优先级最高,其次是应用程序中使用 SET CURRENT ISOLATION 命令设置的隔离级别,最后才是在绑定时使用的隔离级别,也就是说,在语句中设置的隔离级别,会覆盖当前应用 SET CURRENT ISOLATION 命令所设置的隔离级别;而当前应用 SET CURRENT ISOLATION 命令设置的隔离级别,会覆盖在绑定时设定的隔离级别。
高可用性灾难恢复中备机可读的隔离级别
现在,回到高可用性灾难恢复的备机可读功能的主题上来。在备机可读环境下,只读的应用程序只能使用未提交读(UR,即“脏读”)来读取数据,并且该隔离级别不能改变。原因很简单,高可用性灾难与恢复的基础是数据库日志的传输(Log Shipping)。主数据库上的数据操作会产生数据库日志,这些日志通过 TCP/IP 传输到备机数据库,备机数据库通过重做这些操作,重现在主数据库上的数据操作,实现隔离级别的重要工具——锁,并没有从主数据库传递到备机数据库上,因而在备机数据库进行日志重做的时候,也就无法对数据库对象施加锁保护。这时候只读的应用程序连接到备机数据库上,必然只能以未提交读(UR)的隔离界别读取数据,无法用其他更高级别的隔离级别来。
备机可读的环境下,备机数据库不支持第一种指定隔离级别的方式,因为绑定(bind)实质上是一种写操作。如果在备机上运行带有写操作的命令,会得到错误 SQL1773N,原因代码 5,该错误消息的具体含义,请参考 DB2 LUW Information Center V9.7 的在线文档。关于备机可读环境下不支持的操作,请参考本文的第五部分:不支持的操作。
- ››可用性测试方法:卡片分类法
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
- ››DB2 存储过程中如何使用 Optimization Profile
- ››DB2 pureScale 新特性 -- Member Restart
- ››DB2 Express-C 9.7.2 新增特性
- ››DB2 9.7 新特性 - 内联 LOB 的使用
更多精彩
赞助商链接