Informix移植Oracle方法论.pptx
《Informix移植Oracle方法论.pptx》由会员分享,可在线阅读,更多相关《Informix移植Oracle方法论.pptx(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、王敏桥王敏桥 PTS Oracle C基于基于Informix 应用系统的移植应用系统的移植主题主题q基于基于Informix应用系统分析应用系统分析qOracle 与与 Informix的异同的异同q移植工具移植工具Migration Workbenchq应用移植专题应用移植专题:ESQL/C的移植的移植q具体问题解答具体问题解答例子:例子:Informix 银行应用系统分析银行应用系统分析分支ScoUnix+informix(NO ScoUnix+informix(NO Windows NT)Windows NT)PB+SP/4GL/ESQLPB+SP/4GL/ESQL应用。应用。Cust
2、omized Customized 通讯平台通讯平台二级二级.一级.WebServerWebServer信息发布信息发布Netscape Server/IISNetscape Server/IIS+Web Datablade+Web DatabladeAIX/HPUX.+informixAIX/HPUX.+informixPB+SP/4GL/ESQLPB+SP/4GL/ESQL应用。应用。CustomizedCustomized通讯平台通讯平台Informix 的缺陷的缺陷q逐步降低的市场份额q分布式事物处理不完善q缺乏Internet/Intranet的解决方案q2001年4月被IBM收购用
3、户面临新的选择?移植到移植到Oracle的理由的理由q更大的市场q成熟的技术q更好的性能q全面解决方案qInternet计算环境下的新的计算结构q强有力的支持移植方法论移植方法论q采用传统的自顶向下法,而不是需要反复的快速原型法采用传统的自顶向下法,而不是需要反复的快速原型法q需求的采集、分析和设计通常需要需求的采集、分析和设计通常需要2到到10周时间周时间q移植最简单的部分是安装脚本、方案和数据移植最简单的部分是安装脚本、方案和数据q方案、结构和应用的修改不要包含在移植项目中方案、结构和应用的修改不要包含在移植项目中q不要同时做其它的移植工作(操作系统,语言)不要同时做其它的移植工作(操作系
4、统,语言)移植方法论移植方法论移植方法论的生命周期移植方法论的生命周期移植调查表移植调查表 在客户现场完成调查表。小的项目也可以远在客户现场完成调查表。小的项目也可以远程完成。程完成。项目评估项目评估/计划计划-项目评估项目评估/计划可以在现场或远程完成。计划可以在现场或远程完成。方案、应用和数据移植的设计方案、应用和数据移植的设计 完成分析和设计阶段。完成分析和设计阶段。实施实施 开始移植工作。开始移植工作。单元测试单元测试 通常包含在实施过程中。通常包含在实施过程中。系统测试系统测试客户验收测试客户验收测试性能测试性能测试正式发布正式发布Sechema Object 比较比较qDataba
5、seqTablespaseqUserqTableqGlobal Temp TableqPL/SQL ProcedureqPL/SQL FunctionqPackageOracleOracleInformixInformixqDatabaseqDatabaseqUserqTableqTemporary TableqStore ProcedureqStore Procedureq-Sechema Object 比较比较qAfter TriggersqBefore TriggersqSynonymsqSequencesqViewqMaterialized ViewOracleOracleInform
6、ixInformixqTriggersqTriggersqSynonymsqSerial DatatypeqViewq-不同数据类型的比较不同数据类型的比较uSerialuCharuDatatime/DateuByte/Text不同数据类型的比较不同数据类型的比较uInformix中serial类型支持最大到214748367的整数,并且始终加1。ucreate table tbl1(serial_column serial,ename char(15)uinsert into tbl1(serial_column,ename)value(0,scott)SerialSerialuOracle
7、中可用一个number(10)类型和一个Sequence来模拟ucreate table tbl1(serial_column number(10),ename char(15)ucreate sequence tbl1_serialuinsert into tbl1(serial_colume,ename)values(tbl1_serial.nextval,scott)不同数据类型的比较不同数据类型的比较Informix u支持最大到32767个字符CharCharOracle uchar 最大到 2000uvarchar2 最大到 4000 ulong 2GuCLOB 4G不同数据类型的
8、比较不同数据类型的比较Informixu1/100000秒Datetime/DateDatetime/DateOracle u年月日时分秒uDate+IntegeruOracle 9i后支持timestamp类型不同数据类型的比较不同数据类型的比较InformixuByteuTextByte/TextByte/TextOracle uLong Row BLOBuLong CLOBqOracle:连接到连接到 q其它数据库其它数据库:连接到连接到 ALTER SESSION SET CURRENT_SCHEMA=CREATE USER DEFAULT TABLESPACE Oracle与其它数据
9、库与其它数据库连接方式不同连接方式不同qOracle采用多版本并存控制来支持读一致性,不需要读记录采用多版本并存控制来支持读一致性,不需要读记录锁。锁。读操作和写操作不会相互阻碍。读操作和写操作不会相互阻碍。真正的行级锁真正的行级锁较少的较少的INSERT,UPDATE写冲突写冲突锁不会升级锁不会升级Oracle与其它数据库与其它数据库事务处理方式不同事务处理方式不同Oracle与其它数据库与其它数据库事务处理方式不同事务处理方式不同q其它数据库其它数据库 允许应用程序开发员选择不同的隔离级别允许应用程序开发员选择不同的隔离级别“Read Committed”和和“Serializable”采
10、用采用读记录锁读记录锁来来提供读一致性。但这会导致阻碍写操作。提供读一致性。但这会导致阻碍写操作。“Read uncommitted”允许允许脏读脏读来减少这种问题。来减少这种问题。当记录数增加时锁会升级当记录数增加时锁会升级锁是在内存中管理的锁是在内存中管理的一些数据库至今仍用页级锁一些数据库至今仍用页级锁Oracle与其它数据库与其它数据库事务处理方式不同事务处理方式不同qinformix(缺省为自动提交缺省为自动提交)必须指定必须指定“Begin Transaction”qOracle(缺省为隐含的事务缺省为隐含的事务)每个每个DML都有隐含的都有隐含的“Begin Transactio
11、n”必须输入必须输入“commit”或或“rollback”Oracle与其它数据库与其它数据库临时表不同临时表不同qOracle大部分情况下不需要临时表大部分情况下不需要临时表Oracle优化器可以处理非常复杂的查询,因此可以重写优化器可以处理非常复杂的查询,因此可以重写SQL语句来避语句来避免使用临时表免使用临时表Oracle9i以上版本支持以上版本支持 ANSI Global Temporary Tables q其它数据库使用临时表:其它数据库使用临时表:简化查询简化查询结果累积结果累积其它原因其它原因没有游标没有游标4 个表个表 join 的限制的限制Oracle与其它数据库与其它数据
12、库应用编程不同应用编程不同qSQL语法不同语法不同Oracle9i 后支持后支持 ANSI SQL(outer joins,case,)其它不同处其它不同处系统表、系统存储过程系统表、系统存储过程(sp_),variable 全局变量全局变量的使用的使用Workbench可以解决一些服务器端的不同可以解决一些服务器端的不同客户端如果有问题的话需要重写代码客户端如果有问题的话需要重写代码Oracle与其它数据库与其它数据库存储过程不同存储过程不同q不同的数据库使用不同的语言不同的数据库使用不同的语言q一些数据库大量使用存储过程一些数据库大量使用存储过程可以预编译来提高性能可以预编译来提高性能qO
13、racle采用采用PL/SQL 和和 Java,可以执行外部可以执行外部C程序,也可从程序,也可从PL/SQL中调用中调用 Web Services Informix SPL转为转为 Oracle PL/SQLOracle与其它数据库与其它数据库存储过程不同存储过程不同 错误处理错误处理qOracle 遵循遵循 PL/1 和和 Java 标准标准qinformix出错后可以继续执行出错后可以继续执行 错误可能被忽略错误可能被忽略qOracle错误可以错误可以“thrown”,你可以抓住你可以抓住“catch”它们它们(EXCEPTION WHEN)可以选择忽略或继续处理可以选择忽略或继续处理O
14、racle与其它数据库与其它数据库存储过程不同存储过程不同 Packages 和和 FunctionsqPackages类似类似Java PackagesHave Java Interface definitions where only the stored procedure signature is definedAllows stored procedure that perform similar functionality to be packaged togetherqFunctions can return a value stored procedures can notst
15、ored procedure are for return results setsfunctions can be executed as part of a SQL statementOracle与其它数据库与其它数据库存储过程不同存储过程不同 触发器触发器qinformix在一个在一个trigger中定义中定义before和和after trigger有限制只能执行插入、删除、修改和存储过程语句有限制只能执行插入、删除、修改和存储过程语句qOracle可执行任何可执行任何PL/SQL代码代码Have row and statement,before and after triggers数
16、据库一级的触发器数据库一级的触发器SQL Differencesfrom clause is not mandatory Oracle equivalent:from dual SQL DifferencesSELECT zipcode1,3,customer_num FROM customerORDER BY zipcodeSubstring,index 1 to 3Oracle equivalent:select substr(zipcode,1,3).SQL DifferencesSELECT UNIQUE city,state,zipcode FROM customerUNIQUE=D
17、ISTINCTOracle equivalent:SELECT DISTINCT city,state,zipcode FROM customerSQL Differencesselect FIRST 10 a,b from tabl First x number of rows of the result set.Oracle equivalent:select a,b from tabl where ROWNUM=10Select first 10 a,b from tablA union select a,c from tableCNote:This select first 10 ro
18、ws of the union results.SQL Differencesselect.where fielda MATCHES somethingSimilar to LIKE,use different wildcard charactersq*=%(zero or more characters)q?=_ (single character)q,default escape character,you can specify by ESCAPE xq ,Evaluates to a single character or range of characters A-H specifi
19、es any single letter from A through H,inclusive.SQL Differences some functionsqDAY(col):the number of the day of the monthEXTRACT(DAY FROM col)qMONTH(col):number of the monthEXTRACT(MONTH FROM col)qCURRENT:datetime type value of currentsysdateqTODAY:date typeCURRENT_DATEqDBSERVERNAME,SITENAME:the da
20、tabase server nameSQL Differencesselect into TEMP tablex from.This will create a temporary table(tablex)and insert the query result into it.Oracle Equivalent:Create a global temporary table first,and the statement change to:insert into tablex select from Or,if in stored procedure,use a nested table.
21、移植工具移植工具 Migration Workbenchq1998年年10月第一版产品发布月第一版产品发布q100%用用Java开发开发q免费与免费与Oracle数据库一起发布,可在数据库一起发布,可在OTN上下载上下载q最新版本最新版本10.1.0.4 支持支持:SQL Server6.5/7.0/2000Sybase11/12Access2.0/95/97/2000MySQL3/4/5DB2 UDB6/7.1/7.2Infomix7.3/9.1/9.2/9.3/9.4SQL Developer Migration最新版本最新版本2.1 支持支持:SQL Server7.0/2000/200
22、5Sybase12/15Access97/2000/2002/2003MySQL3/4/5.0DB2 LUW 7/8/9Teradata 12移植工具移植工具 Migration Workbench可移植的可移植的Informix对象对象qTables and DataqConstraintsqIndexesqViewsqGroups/RolesqUsersqPrivilegesqStored ProceduresqTriggersqESQLqDatabase移植工具移植工具 Migration Workbench 先决条件先决条件q支持支持Oracle 8.1.5以上版本以上版本q先安装先安
23、装Migration Workbench的核心软件的核心软件q再安装所需的再安装所需的plug-inq配置配置Oracle Thick JDBC 驱动驱动q配置其他数据库配置其他数据库ODBC 驱动驱动(对于对于Informix,需需Informix带的带的JDBC驱动驱动)移植工具移植工具 Migration Workbench 连接连接Oracle Migration WorkBenchOther ServerOracleJDBC/ODBC BridgeODBCJDBC OCINET*8移植工具移植工具 Migration Workbench-DatabasesqInformix中多个中多
24、个Databases被整合为一个被整合为一个DatabaseqInformix中原有的多个中原有的多个users被保留被保留qInformix中的命名与中的命名与Oracle保留字冲突的保留字冲突的 Workbench会自动解决会自动解决q在在Oracle中对原有的中对原有的Database分别建一个分别建一个Tablespace移植工具移植工具 Migration Workbench 步骤步骤q1选择资料库所在的服务器选择资料库所在的服务器q2选择源数据库选择源数据库q3导入并映射数据源模型导入并映射数据源模型q4手工修改映射选项手工修改映射选项q5选择目标数据库选择目标数据库q6选择要移植
25、的对象类型选择要移植的对象类型q7创建用户、表,装载表数据,创建其它数据库对象创建用户、表,装载表数据,创建其它数据库对象 CaptureWizardMigrationWizardMigration Workbench 日志日志q日志信息将被保留下来日志信息将被保留下来q可随时查看转换中遇到的问题可随时查看转换中遇到的问题应用移植概述应用移植概述对于以下几种应用,Oracle有相应的移植工具:Informix ESQL/CInformix SPLInformix 4GL应用移植应用移植-ESQL/CMigration Workbench支持ESQL/C到PRO*C的转换支持所有的基本SQL语句
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Informix 移植 Oracle 方法论
限制150内