WEB开发网
开发学院数据库DB2 DB2 V9.7 高可用性灾难恢复中的备机可读 阅读

DB2 V9.7 高可用性灾难恢复中的备机可读

 2010-07-30 00:00:00 来源:WEB开发网   
核心提示: 3. 在 SQL 语句中指定隔离级别,例如:清单 10. 在 SQL 语句中设置隔离级别$db2"SELECT*FROMtestWITHUR"...3record(s)selected.通常来说,DB2 V9.7 高可用性灾难恢复中的备机可读(7),在 SQL 语句中设置的隔

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 的在线文档。关于备机可读环境下不支持的操作,请参考本文的第五部分:不支持的操作。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:DB 可用性 灾难

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接