处理从Oracle迁移到DB2 for z/OS过程中的锁定问题策略

从 Oracle 数据库迁移到 IBM DB2 on z/OS 并非完全无缝,必须进行精心策划。由于两种数据库之间存在锁定差异,因此当从 Oracle 向 DB2 on z/OS 迁移时,管理员可能会面临各种问题(参见表 1)。不过,这些问题在很大程度上是可以缓解的。

Oracle 与 DB2 on z/OS 之间的主要锁定行为差异之一在于:Oracle 不会在阅读时对行进行任何锁定,而 DB2 却会。这种差异可能导致出现锁等待和相关问题(如从 Oracle 向 DB2 迁移的应用程序中出现死锁和超时)的几率增加。

&">nbsp; Oracle DB2 on z/OS 1 除非 FOR UPDATE 子句明确要求,否则读取查询不会对行执行任何锁定。 默认情况下,读取查询持有共享级锁。 2 只有行级锁可以隐式执行。如果需要,可以显式锁定整个表。 默认锁为页面级锁,但也可以在行、表、表空间和 LOB 级别上应用锁。 3 不存在锁升级概念。 如果锁数目增加,则可以执行锁升级。升级结果会促使行级锁升级为表级锁和页面级锁,
然后再升级到表空间级锁,这样可降低锁数目。 4 由于不存在未提交读取概念,
所以无法执行脏读。 可以执行未提交读取,并且脏读是读取不带共享级锁的行的一种方法。

表 1. Oracle 与 DB2 on z/OS 之间的关键锁定差异

要处理锁定问题,需要在数据库、应用程序和操作级别上实施迁移策略。

数据库级策略

以下几种类型的数据库和设计更改有助于缓解锁定问题:

 行级锁。覆盖默认的 DB2 页面级锁设置并进行重组,以便表运用行级锁定提高并发性。行级锁应当谨慎使用,因为锁数增加可能会导致开销增加,如果未能妥善处理,则势必会造成锁升级增加。

 索引和查询优化。读取查询(可能需要执行表扫描)不会造成 Oracle 问题,却会导致 DB2 on z/OS 出现问题,因为读取查询会锁定整个表。为了缓解这个问题,需要确保已经优化了所有查询的索引和访问路径,从而避免不必要的表扫描,尤其是在线交易过程中访问的表扫描。

 分区。在 DB2 for z/OS 中引入分区表空间后,并发性将得到大幅提升,批量运行尤为明显。通过确定分区键并根据键值范围将数据分别置于不同的分区,可以将数据划分为不同的分区。在进行批处理时,可以根据分区键值启动多个线程,这样不同线程就可以访问不同分区并提供更高的并发性。

应用程序级策略

某些关键8639.html">应用程序设计更改可能有助于缓解锁定问题,这些更改包括:

 跳过锁定数据。您可能遇到过这样一种情况:同一表执行不同的事务,您只需访问所有给定表中当前未锁定的行。在这些情况下,DB2 提供了一个选项,通过使用 SELECT、UPDATE 和 DELETE 子句中的 KIP LOCKED DATA 选项仅查询未锁定的行。此选项只有在设置游标稳定性 (CS) 和读取稳定性 (RS) 隔离级别的情况下才适用,并且仅适用于行级锁和页面级锁。

 未提交读取。在某些情况下,如果读取查询响应包含未提交数据是可以接受的,那么请尝试使用 WITH UR 选项在 DB2 中读取查询,因此它不具有任何共享锁。对于用户验收测试或生产区域内的应用程序测试人员和业务分析师,此选项在运行用户查询时十分有用。这些查询可能与应用程序查询彼此抗衡,因而,运行采用了 WITH UR 子句的用户查询可能需要避免出现这种状况。

 表访问顺序。由于并行事务表的访问顺序不当,从 Oracle 向 DB2 for z/OS 迁移时也又可能发生锁争用现象。使访问顺序一致有助于避免发生这种问题。例如,如果事务 1 先访问表 A,再访问表 B,后续事务访问同样的表时也应当采用相同的顺序。

操作级策略

由于同一表执行不同类型的工作负载(例如,批处理和在线工作负载同时访问表,或者不同批次同时访问表),因此可能发生争用现象。在这些情况下,一种方法是执行操作级更改,如重新安排发生冲突的事务。同时也可以在非高峰期(当在线工作负载不运行)时运行批处理工作负载。如果两个批次并行运行,则尝试一前一后运行,或者设置依赖关系,以便一个工作负载无法在另一工作负载运行时运行,反之亦然。

结束语

Oracle 与 DB2 on z/OS 之间存在一些主要锁定差异,因此,当应用程序从 Oracle 向 DB2 迁移时,可能会导致锁定问题。不过,正如本文所述,我们可以在数据库、应用程序和操作级别上执行一些方案,极大地缓解可能出现的任何问题。

时间: 2024-10-27 21:46:38

处理从Oracle迁移到DB2 for z/OS过程中的锁定问题策略的相关文章

DB2 for z/OS中LOB(Large Object)对象使用介绍

match为了存储一些复杂的文件.图像和视频,DB2 for OS/390 Version 6 引入了LOB(Large Object)技术,用于支持小于2G的单个LOB对象,同时允许单一LOB列共存储65536 TB的数据.DB2支持以下三种类型的LOB对象: BLOB(BInary Large Object):二进制的LOB对象,用于存储图像.声音以及视频: CLOB(Character Large Object): 字符LOB对象,用于存储字符数据: DBCLOB(Double Byte

z/OS 系统中软件产品卸载过程

SMP/E是z/OS系统中的一个工具,用于管理z/OS及其相关产品的安装和追踪这些产品的相关修正程序.目前,很多文章已经介绍了如何使用SMP/E来安装z/OS上的相关产品.而本文则着重介绍如何使用SMP/E来卸载z/OS上已安装的软件产品. z/OS 系统上的一个软件产品由一个或多个FMID(Function Modification Identifier)组成.卸载z/OS上的一个软件产品就 是要在系统中删除这个产品的FMID,删除其相关的所有数据集及文件系统.SMP/E提供了一个简单的命令R

Oracle 10g RAC集群安装部署过程中如何安装RAC集群套件

一.首先解压集群套件包: gunzip 10201_clusterware_linux_x86_64.gz cpio -idmv < 10201_clusterware_linux_x86_64.cpio 解压放置的地方需要有oracle用户使用的权限 二.开始安装oracle RAC集群套件, 2.2.1.安装之前首先关闭两个节点的防火墙,Selinux不然是无法通过安装的 2.2.2.安装之前修改系统版本,来欺诈oracle数据库,然后执行xhost+ 2.2.3.完成上面的配置之后,使用o

从Oracle迁移到SQL Server的陷阱

在把Oracle查询转换为SQL Server的时候要特别当心一些不容易注意到的问题.我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对ANSI SQL-92标准进行了扩展以提供额外的支持力度.你所创建的应用程序几乎都要用到这些补充特性.本文就对最常用的.非标准的Oracle扩展进行了说明,同时还要介绍下如何对这些扩展进行转化以用在SQL Server环境下. 列的选择 用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL

IBM Business Process Manager on z/OS简介说明

IBM Business Process Manager 是整个面向服务架构 (SOA) 的一部分,它结合了简单性.易用性和任务管理功能,同时支持企业集成和事务流程管理需求.在 BPM 发行版本 7.5.0.1 之前,使用 WebSphere Lombardi Edition 开发的流程应用程序无法在 z/OS 平台上运行.另一个限制是,现有的 WebSphere Lombardi Edition 服务器无法将 DB2® on z/OS 用作产品数据库. WebSphere Process Se

针对IBM z/OS V1.9的技术使用支持

已采购IBM z/OS® V1.9 的组织可以利用针对z/OS V1.9 的IBM 生命周期扩展将z/OS 支持扩展到服务结束日期之后的两年.但是,该服务不包括使用支持,如"如何做"和诊断问题.您可能需要另外花时间迁移为更新的z/OS 发行版.缺少有关z/OS 使用支持的内部专业知识以及缺陷支持解决方案有限的覆盖范围都可能导致停机时间延长并中断您的业务环境."IBM 软件支持服务-针对z/OS V1.9 使用支持的服务扩展"可以提供针对IBM z/OS V1.9 的

z/OS操作系统可执行文件简介

z/OS是当前IBM大型主机上运行的最先进最现代化的操作系统.z/OS的前身是著名的OS/360操作系统,从其1964年发布以来,到今年(2013年)9月份将要发布的的z/OS V2R1已经经历了半个世纪的演变.z/OS系列的主机操作系统以其高可靠性(Reliability).高可用性(Availability)和高服务性(Serviceability),以及I / O处理能力和向后兼容(Backword compatibility)著称.在z/OS操作系统上面,可执行文件的变迁完美的诠释了大型

z/OS CIM 的安全机制及配置

1.概述 安全性一直是主机非常重要的一个方面,绝大多数主机的客户对安全性方面都有非常高的需求.z/OS CIM 虽然是基于一个开源的项目OpenPegasus,但是结合主机在安全性能方面的优势,对OpenPegasus自身安全体系进行了扩展,使CIM满足了用户在该方面的需求. SAF/RACF 是z/OS 上主要的安全管理接口和软件模块,本文将主要结合SAF/RACF讲述z/OS CIM 如何实现各个模块的安全访问以及如何进行配置. 2.安全机制概述 在z/OS中,CIM 服务器要求每个发送请求

z/OS LE对程序运行时参数的支持

z/OS 操作系统中Language Environment(LE) 组件为应用程序提供了一组强大的运行时参数(run- time option : RTO)支持.对于开发人员来说,通过在应用程序中设置恰当的RTO,不仅可以快速查看运行时环境数据,提高程序调试的效 率:而且还能够设置LE提供的一系列Callable Services,快速处理异常和中断. 1 RTO分类 LE RTO 主要分为系统环境(eg. ENV),文件(eg. FILEHIST),堆栈管理(eg. HEAP,  HEAPP