《数据库技术》课件-第8章国产数据库的迁移与适配技术_第1页
《数据库技术》课件-第8章国产数据库的迁移与适配技术_第2页
《数据库技术》课件-第8章国产数据库的迁移与适配技术_第3页
《数据库技术》课件-第8章国产数据库的迁移与适配技术_第4页
《数据库技术》课件-第8章国产数据库的迁移与适配技术_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章国产数据库的迁移与适配技术

数据迁移与适配的工作方法与流程达梦数据库迁移方法

人大金仓数据库迁移方法信创数据迁移与适配概述基础知识与技能概述学习目标8.1信创数据迁移与适配概述8.1.1数据库迁移与适配的概念1数据库迁移适配是指,将现有非国产商业数据库或开源数据库(如MySQL、ORACLE、SQLServer、PostgreSQL等)整体迁移至国产信创数据库中(如达梦、人大金仓、神舟通用、万里开源等),并通过国产中间件完成与上层应用系统的兼容性适配,保证其功能、性能、可靠性、稳定性等各项指标与迁移前一致。8.1信创数据迁移与适配概述8.1.2迁移与适配的重要性22.提升兼容性在不同信创CPU的技术路线上,安装不同的操作系统、数据库、中间件,软件在其上能够安装运行,这是要满足兼容性。1.提高性能和可移植性当应用场景的业务规模扩大或者现有系统的负载增加时,原有的数据库和应用可能无法满足需求。数据库和应用迁移可以帮助将数据和应用程序迁移到更强大和可靠的系统中,从而提高性能和可移植性。3.提高数据可用性和灾备能力数据库和应用迁移可以将数据备份和冗余存储在不同的地理位置,提高了数据的可用性和灾备能力。在面对自然灾害、硬件故障或系统崩溃等意外情况时,企业可以快速恢复数据,并保证业务的持续运行。4.促进业务持续发展数据库和应用迁移为企业提供了更大的灵活性和可扩展性,使其能够更快地实施新的业务策略和创新。通过将数据和应用迁移到现代化的平台上,企业可以更好地支持数字化转型和业务变革,增强竞争优势。8.2基础知识与技能概述8.2.1数据库的知识与能力储备1(1)熟悉国产化和非国产化主流硬件和操作系统,掌握网络、存储等基础理论知识语法。(2)掌握数据库基础知识,包括SQL语言、模式、范式、事务、锁等。(3)了解数据库常规运维技能,包括部署、备份、高可用、监控、迁移、排障、巡检等。(4)了解数据库性能调优技能,包括慢查询分析、索引优化、参数调优等。8.2基础知识与技能概述8.2.2数据整理2数据整理是将原系统数据整理为系统转换程序能够识别的数据。数据整理大致分为两个阶段:第一阶段就是将不同类型来源数据采集备份到统一的数据库中;第二阶段就是将原始数据进行整理,按照不同的要求分类进入不同的中间数据库,为数据转换提供中间数据。数据整理过程采用了以下方法:1.确保原始数据的完整性在进行数据整理之前,我们先需要对原始采集数据进行备份。备份的目的有两个:一个是统一数据库,便于数据转换,另一个就是为以后数据追根溯源提供参考依据。2.数据分级过滤策略数据分级过滤就是把数据按照不同的数据级别进行分类整理进入不同的中间数据库中。本系统中我们把数据分为三个级别:废弃数据、待调整数据、可转换数据。废弃数据就是该部分数据的存在对系统资源造成浪费的数据,并且会影响以后系统的运行。待调整数据就是该部分数据严重影响新系统的运行,必须进行人工调整后,方可进行数据转换。可转换数据就是该部分数据不需做任何处理,基本满足数据转换的要求或者是该部分数据新系统建议调整,但是不影响系统的运行,可以等新系统运行后再调整,这样可以为数据转换工作节省很多时间。8.2基础知识与技能概述8.2.2数据整理2数据整理是将原系统数据整理为系统转换程序能够识别的数据。数据整理大致分为两个阶段:第一阶段就是将不同类型来源数据采集备份到统一的数据库中;第二阶段就是将原始数据进行整理,按照不同的要求分类进入不同的中间数据库,为数据转换提供中间数据。数据整理过程采用了以下方法:3.借助数据整理相关工具数据整理非常艰巨,涉及的数据量很大,通过人工检查是不可能完成的,因此必须利用相关的数据整理工具完成数据整理。包括数据整理工具和数据纠错工具。数据整理工具负责将原始备份数据库中的数据进行分类进入不同的中间数据库;数据纠错工具负责提供友好、方便的工具界面供用户方相关人员完善和纠正错误数据。4.利用中间库作为桥梁由于原系统和新系统的数据库结构可能不一样,所以采用中间库作为衔接新旧系统数据的重要桥梁,对于建立新旧系统的对照关系很重要。一旦业务人员对新系统中某项转换数据存在疑问的情况下,就可以通过中间库的关联,顺利找出原数据。8.2基础知识与技能概述8.2.3数据转换3数据转换就是将整理后的数据,依照对照表的要求进行转换,并写入到新系统。这个过程可以通过交换系统实现。1.设计数据移植方案设计数据移植方案主要包括以下几个方面工作:研究历史数据的结构、来源、数据项定义、取值等现状,研究新旧数据库结构的差异,评估和选择数据移植的软硬件平台、选择数据移植方法、选择数据备份和恢复策略、设计数据移植和测试方案等。2.源数据库数据清理对于一个运行已久的数据库,主要存在三种数据库垃圾:数据库对象垃圾、数据库权限垃圾、数据垃圾。数据库对象的清理不是一件容易的工作,需有认真负责的态度,要有耐力,任何错误的清理不仅会造成前端不能运行,而且将会造成数据的丢失。所以清理数据库对象也许需要一个安全、准确,可很快恢复的方法。首先要认识数据库资源,包括数据库对象,如表、数据库事件、过程、函数,数据库结构关系,在此基础上结合运行系统,确认数据库垃圾,制定合理的垃圾清理方案,达到清理垃圾的目的。主要方法是对数据库数据进行整合和分解,整合相关数据减少数据的重复,分解数据则可是数据团体更趋向合理,当然整合和分解要以适合新设计的数据库结构为基础,以便简化转化程序。8.2基础知识与技能概述8.2.3数据转换3数据转换就是将整理后的数据,依照对照表的要求进行转换,并写入到新系统。这个过程可以通过交换系统实现。3.进行数据模拟移植根据设计的数据移植方案,建立一个模拟的数据移植环境,它既能仿真实际环境又不影响实际数据,然后在数据模拟移植环境中测试数据移植的效果。数据模拟移植前也应按备份策略备份模拟数据,以便数据移植后能按恢复策略进行恢复测试。4.测试数据模拟移植根据设计的数据移植测试方案测试数据模拟移植,也就是检查数据模拟移植后数据和应用软件是否正常,主要包括:数据一致性测试、应用软件执行功能测试、性能测试、数据备份和恢复测试等。8.2基础知识与技能概述8.2.3数据转换3数据转换就是将整理后的数据,依照对照表的要求进行转换,并写入到新系统。这个过程可以通过交换系统实现。5.准备实施数据移植数据模拟移植测试成功后,在正式实施数据移植前还需要做好以下几个方面工作:进行完全数据备份、确定数据移植方案、安装和配置软硬件等。6.正式实施数据移植按照确定的数据移植方案,正式实施数据移植。8.3数据迁移与适配的工作方法与流程8.3.1工作量评估1当计划把一个非信创的源数据库系统移植到国产目标数据库环境时,如果不做评估或评估不充分,则整个移植工作会存在很多的潜在风险,额外增加移植工程师的工作量并且无法确认移植完成时间。因此,移植前对移植的可行性、工作量、难易程度和工作进度等进行充分评估是非常必要的。通常,移植评估主要包括以下内容:1.移植技术指标,如移植业务压力和性能指标等。2.移植数据规模,如移植各类数据库对象的数量,PL/SQL程序的规模等。3.移植中目标数据库不支持功能的种类和数量。4.移植的约束种类和数量。5.移植过程中可能遇到的其他问题。8.3数据迁移与适配的工作方法与流程8.3.1工作量评估1评估模板8.3数据迁移与适配的工作方法与流程8.3.2团队建立2目标数据库的服务支持团队是否成熟,管理是否完善,是否有完善的应用移植方法是信创数据库迁移的关键。任何一个高效、成功的项目都应具备一个健全和良好的团队。如果没有这样团队互相配合和支持,那么源数据库移植将可能存在巨大的风险。所以,组建一个高效的移植团队是非常必要的。那么,移植团队的组成人员应具备哪些条件呢?他们应至少具备以下的知识与技能:1.熟悉源数据库和目标数据库的SQL语言和PL/SQL语言特性,以及相关的兼容特性。2.熟悉源数据库和目标数据库的各种应用编程接口,以及相关的兼容特性。3.熟悉源数据库和目标数据库的相关客户端工具,以及这些工具间的相同点和异同点。由这些优秀人员组建的团队是高效移植至信创数据库的可靠保障。8.3数据迁移与适配的工作方法与流程8.3.3目标数据库分析3考察目标数据库的产品能力是否可以替换源数据库,主要包括以下几个方面:1、使用的源数据库的对象,目标数据库是否可以支持重点考察目标数据库对数据库、表空间、模式、用户和角色的支持,可以通过如下表格来进行评估。8.3数据迁移与适配的工作方法与流程8.3.3目标数据库分析32、使用的源数据库的访问接口(SQL/PLSQL),目标数据库是否可以支持重点考察目标数据库SQL语句和PL/SQL的常用语法与源数据库的差异,可以通过如下表格来进行评估:8.3数据迁移与适配的工作方法与流程8.3.3目标数据库分析33、使用的开发接口和开发框架,目标数据库是否支持重点考察目标数据库对应用系统的编程接口、开发框架和数据库连接池的支持能力,可以通过如下表格来进行评估:8.3数据迁移与适配的工作方法与流程8.3.3目标数据库分析34、使用的第三方产品或者组件,目标数据库是否支持重点考察目标数据库与承载应用系统的国产软硬件产品的适配情况,包括CPU、存储、操作系统、中间件、备份软件、办公OA、报表、安全邮件、流版签、信息安全、地理信息等多类的主流信创产品。5、目标数据库是否支持源系统的高可用方案重点考察目标数据库是否与源数据库的高可用方案能保持一致。6、目标数据库是否可以满足应用系统的性能需要重点考察目标数据库在指定国产CPU上的性能表现,并确定有可能需要优化应用程序的处理,完成性能的联合解决方案;考察目标数据库是否支持性能分析和调优手段。8.3数据迁移与适配的工作方法与流程8.3.4迁移实施方案制定4在进行数据迁移之前,我们首先需要明确迁移的目的和范围,然后可以根据以下最佳实践进行迁移:(1)统一数据存储方式和数据结构:确保要迁移的数据格式和存储方式一致,这样可以降低数据迁移的复杂度和风险。(2)确定数据迁移时间和范围:对于大规模的数据迁移,我们需要在合适的时间段内迁移数据,并尽量减少对业务运营的影响。同时,我们也需要确定迁移的数据范围,以避免迁移无关的数据。(3)确保数据安全:在数据迁移的过程中,我们需要采取适当的安全措施来保护敏感数据,例如加密和采用安全传输协议。这样可以最大程度地降低数据泄露和损坏的风险。(4)测试迁移数据:在完成数据迁移后,我们需要进行系统测试,以确保数据的质量和系统的稳定性。在测试过程中,我们应该验证数据的一致性,并解决可能出现的问题。8.3数据迁移与适配的工作方法与流程8.3.4迁移实施方案制定4为了保证数据迁移的安全和可靠性,我们可以采用以下技术保障措施:(1)自动化数据迁移过程:采用自动化迁移工具可以减少人为错误,提高数据迁移的可靠性和效率。(2)数据备份:在进行数据迁移之前,我们需要先备份原始数据,以防止数据丢失或损坏。(3)实施数据迁移策略:针对不同的数据类型和应用,我们可以制定相应的数据迁移策略,以确保数据的完整性和一致性。接下来我们从具体迁移方法的角度,详细介绍国产达梦和人大金仓数据库产品的应用迁移支撑体系,以及应用迁移的过程。8.4达梦数据库迁移方法8.4.1迁移前的准备1(2)DECIMAL类型语法:DECIMAL[(精度[,标度])]功能:与NUMERIC相似。(3)DEC类型语法:DEC[(精度[,标度])]功能:与DECIMAL类型相同。(4)NUMBER类型语法:NUMBER[(精度[,标度])]功能:与NUMERIC类型相同。8.4达梦数据库迁移方法8.4.1迁移前的准备1(1)统计oracle数据库基础信息--统计页大小selectname,valuefromv$parameterwherename='db_block_size';--查询编码格式select*fromv$nls_parametersawherea.PARAMETER='NLS_CHARACTERSET';8.4达梦数据库迁移方法8.4.1迁移前的准备1(2)统计oracle数据中的对象--根据指定用户统计用户下的各对象类型和数目selectobject_type,count(*)fromall_objectswhereowner='OA8000_DM2015'groupbyobject_type;--创建移植辅助表,统计指定用户下所有的对象并插入到辅助表中createtableoracle_objects(obj_ownervarchar(100),obj_namevarchar(100),obj_typevarchar(50));insertintooracle_objectsselectowner,object_name,object_typefromall_objectswhereowner='OA8000_DM2015';select*fromoracle_objects;8.4达梦数据库迁移方法8.4.1迁移前的准备1(3)统计oracle表数据量--创建移植辅助表,统计每个表的数据量并插入到移植辅助表中createtableoracle_tables(tab_ownervarchar(100),tab_namevarchar(100),tab_countint);begin forrecin(selectowner,object_namefromall_objectswhereowner='OA8000_DM2015'andobject_type='TABLE')loop begin executeimmediate'insertintooracle_tablesselect'''||rec.owner||''','''||rec.object_name||''',count(*)from'||rec.owner||'.'||rec.object_name; exceptionwhenothersthen dbms_output.putline(rec.owner||'.'||rec.object_name||'getcounterror'); end; endloop;end;select*fromoracle_tables;8.4达梦数据库迁移方法8.4.2常规对象及数据迁移2常规对象指的是序列、表和视图。这些都可以通过达梦提供的数据迁移工具从ORACLE完整的迁移到达梦数据库。1.制定迁移计划根据前面分析的情况,制定迁移计划:(1)选择合理的迁移顺序:先迁移序列、再迁移表、最后迁移视图(2)对于数据量大的表单独迁移(3)对于分区表如果数据量没有超过1亿建议迁移成普通表,在分区列上创建索引(4)对于大字段较多的表,需要修改批量的行数,以免造成迁移工具内存溢出。8.4达梦数据库迁移方法8.4.2常规对象及数据迁移22.序列对象迁移序列对象一般不依赖其他模式对象,而被其他如表、过程所依赖,所以一般迁移过程中,最先迁移序列对象。迁移序列方法如下:(1)使用DTS工具迁移序列,此方法适用于批量迁移序列对象。DTS工具使用方法可参考帮助主题。(2)从源Oracle中获取序列定义,在目的库手动执行序列创建,此方法适用于所需迁移对象较少,或者对方法一中迁移出错的序列单独处理。8.4达梦数据库迁移方法8.4.2常规对象及数据迁移23.表对象迁移(1)一次性迁移对于表比较少,数据量不大的系统,可以通过DTS采取一次性迁移,全部选中即可。(2)分批次迁移对于表比较多,数据量大的系统,建议先迁移小表再进行大表的迁移,迁移时最好不用快速装载功能。8.4达梦数据库迁移方法8.4.2常规对象及数据迁移24.视图对象迁移普通视图对象迁移(1)使用DTS工具迁移视图,此方法适用于批量迁移视图对象。DTS工具使用方法可参考帮助-帮助主题。(2)从源Oracle中获取视图定义,在目的库手动创建视图,此方法适用于所需迁移对象较少,或者对方法一中迁移出错的视图单独处理。物化视图对象迁移使用DTS工具迁移物化视图,此方法适用于批量迁移物化视图对象。从源Oracle中获取物化视图定义,在目的库手动创建物化视图,此方法适用于所需迁移对象较少,或者对a方法中迁移出错的物化视图单独处理。8.4达梦数据库迁移方法8.4.3核对移植结果3统计达梦数据基础信息--统计页大小selectpage;--通过编码格式selectunicode;--统计大小写敏感参数selectcase_sensitive;8.4达梦数据库迁移方法8.4.3核对移植结果3统计达梦数据中的对象以及表数据量根据指定用户统计用户下的各对象类型和数目selectobject_type,count(*)fromall_objectswhereowner='OA8000_DM2015'groupbyobject_type;统计指定用户下所有的对象,并记录到新的记录表中createtabledm_objects(obj_ownervarchar(100),obj_namevarchar(100),obj_typevarchar(50));insertintodm_objectsselectowner,object_name,object_typefromall_objectswhereowner='OA8000_DM2015';8.4达梦数据库迁移方法8.4.3核对移植结果3统计每个表的数据量到表数据记录表createtabledm_tables(tab_ownervarchar(100),tab_namevarchar(100),tab_countint);begin forrecin(selectowner,object_namefromall_objectswhereowner='OA8000_DM2015'andobject_type='TABLE')loop begin executeimmediate'insertintodm_tablesselect'''||rec.owner||''','''||rec.object_name||''',count(*)from'||rec.owner||'.'||rec.object_name; exceptionwhenothersthen printrec.owner||'.'||rec.object_name||'getcounterror'; end; endloop;end;select*fromdm_tables;8.4达梦数据库迁移方法8.4.3核对移植结果3对比达梦数据库中对象和oracle库中对象以及数据量差异比对对象,找出没有迁移的对象:select*fromoracle_objectswhere(obj_owner,obj_name)notin(selectobj_owner,obj_namefromdm_objects)--andobj_type='TABLE';比对表数据量,找出数据量不相等的表:selecta.tab_owner,a.tab_name,a.tab_count-b.tab_countfromoracle_tablesa,dm_tablesbwherea.tab_owner=b.tab_owneranda.tab_name=b.tab_nameanda.tab_count-b.tab_count<>0;8.4达梦数据库迁移方法8.4.3核对移植结果3数据核对完成无问题后,应进行一次全库的统计信息更新工作。统计信息更新脚本示例如下:DBMS_STATS.GATHER_SCHEMA_STATS('HNSIMIS',--HNSIMIS为模式名100,FALSE,'FORALLCOLUMNSSIZEAUTO');8.4达梦数据库迁移方法8.4.4应用代码移植4应用移植一般包括:需修改连接串、URL、数据库方言、SQL语句、配置JNDI。数据库迁移到达梦数据库之后,应用需要对应适配迁移到达梦数据库中,针对应用移植到达梦数据库采用以下修改方式:URL连接串修改方式如下://定义DMJDBC驱动串StringjdbcString="dm.jdbc.driver.DmDriver";//定义DMURL连接串StringurlString="jdbc:dm://localhost:5236";8.4达梦数据库迁移方法8.4.4应用代码移植4数据库方言配置方式如下:<properties> <propertyname="hibernate.dialect"value="org.hibernate.dialect.DmDialect"/> <propertyname="hibernate.connection.driver_class"value="dm.jdbc.driver.DmDriver"/> <propertyname="hibernate.connection.url"value="jdbc:dm://localhost:5236"/> <propertyname="hibernate.connection.username"value="TEST"/> <propertyname="hibernate.connection.password"value="123456789"/></properties>8.4达梦数据库迁移方法8.4.4应用代码移植4如果数据库是集群,则需要配置dm_svc.conf,配置内容如下:TIME_ZONE=(480)LANGUAGE=(cn)SHRSG=(10.212.133.11:5236,10.212.133.12:5236)最后将dm_svc.conf文件放在/etc/目录下。8.4达梦数据库迁移方法8.4.4应用代码移植4JAVA接口驱动包:达梦JDBC驱动分为DMJdbcDriver14、DMJdbcDriver15、DMJdbcDriver16,分别对应Jdk1.4、Jdk1.5、(Jdk1.6\jdk1.7);达梦7dialect驱动分为DmDialect-for-hibernate2.0.jar、DmDialect-for-hibernate2.1.jar、DmDialect-for-hibernate3.0.jar、DmDialect-for-hibernate3.6.jar、DmDialect-for-hibernate4.0.jar。分别对应hibernate2.0、2.1、3.0、3.6、4.0;达梦数据库提供不同hibernate和jdk版本的方言包,用户可根据开发环境选择对应的方言包版本,相关方言包驱动在如下目录;Jdbc驱动包路径:\%DM_HOME%\jdbc\dialect驱动包路径:\%DM_HOME%\jdbc\dialect\8.4达梦数据库迁移方法8.4.4应用代码移植4修改配置//定义DMJDBC驱动串StringjdbcString="dm.jdbc.driver.DmDriver";//定义DMURL连接串StringurlString="jdbc:dm://SHRSG?comOra=true";--集群的服务名连接方式//StringurlString="jdbc:dm://127.0.0.1:5236";--单机连接方式//如果使用了hibernate,需要进行dialect的配置修改,如下:hibernate.dialect=org.hibernate.dialect.DmDialect8.4达梦数据库迁移方法8.4.4应用代码移植4DOTNET接口使用OCI连接达梦数据库,需要用到DM的文件列表(在\%DM_HOME%\bin目录下可以找到)如下:DmProvider.dll,DmProvider.dll。8.4达梦数据库迁移方法8.4.5系统测试及优化5数据库和应用系统移植完毕后开启sql日志,对系统进行全面测试,排除移植过程中错误的地方,对慢的sql语句进行优化,开启日志的方法如下:--设置SQL过滤规则,记录全部的SQLSELECT

SF_SET_SYSTEM_PARA_VALUE('SQL_TRACE_MASK','1',0,1);--排查错误的时候也可以设置过滤规则为23,只记录报错的SQLSELECT

SF_SET_SYSTEM_PARA_VALUE('SQL_TRACE_MASK','23',0,1);--开启SQL日志:SP_SET_PARA_VALUE(1,'SVR_LOG',1);在功能测试和性能测试的时候可以开启SQL日志,然后通过日志分析工具从执行时间和执行次数两个维度对SQL日志进行分析,生产分析结果,然后根据分析结果对系统性能进行优化。使用日志分析工具时最好采用32k页大小的达梦数据库作为分析库。8.4达梦数据库迁移方法8.4.5系统测试及优化58.5人大金仓数据库迁移方法8.5.1迁移前的准备1(1)Oracle数据库基本信息获取源Oracle数据库的:1)IP地址;2)实例名;3)网络服务端口号;4)用户名/密码。在目标KingbaseESV8R2上:1)创建与源Oracle用户(如scott)同名的用户(scott);2)创建与源Oracle(如ORCL)同名的数据库(ORCL),属主为scott;3)创建与源Oracle(与用户名相同t)同名的模式scott,属主为scott。Oracle兼容模式下,使用查询分析器或isql工具创建用户scott,则省略此步。使用企业管理器创建用户scott,此步则不能省略。8.5人大金仓数据库迁移方法8.5.1迁移前的准备1(2)大小写是否敏感oracle默认大小写不敏感,而KingbaseV8R2默认大写,可以在初始化数据库的时候进行修改。./initdb-D/home/kingbase/Kingbase/ES/V8/data-USYSTEM-Atrust--locale=C--case-insensitive(3)查询Oracle数据库编码方式selectuserenv('language')fromdual; USERENV('LANGUAGE') SIMPLIFIEDCHINESE_CHINA.ZHS16GBK【Kingbase初始化设置编码方式】--encoding=GBK(支持GBKUNICODEASCII)8.5人大金仓数据库迁移方法8.5.1迁移前的准备1(4)查看表数据量大小查看当前用户在Oracle中的表大小,按从大到小排序(单位GB)selectsegment_name,bytes/1024/1024/1024fromuser_segmentswheresegment_type='TABLE'orderbybytesdesc;XFJXX 16.046875XFRXX 7.779296875PCK 7.4375BLFSXX 5.0625XFSXXX 2.3125DFGZXX 1.3359375FJB 0.53125TSJXX 0.0781258.5人大金仓数据库迁移方法8.5.1迁移前的准备1(5)在oracle上查看有哪些表为分区表(分区表不能使用EasyTransferTool进行迁移)select*fromuser_tableswherepartitioned='YES';8.5人大金仓数据库迁移方法8.5.1迁移前的准备1(6)检查数据库日期格式时间的默认格式为:ISO,MDY在配置文件中添加:datestyle='ISO,YMD'修改为年月日的格式(99会改为1999)在信访局迁移数据时遇到:服务器报错,迁移工具中断,迁移停滞oracle数据库中有日期"0099-09-3000:00:00",迁移工具输出为"99-09-3000:00:00",KingbaseES中将99识别为月份报错:ERROR:date/timefieldvalueoutofrange--即使没有报错也会出现错误setora_date_sytle=true;CREATETABLET_DATE(COLDATE);INSERTINTOT_DATEVALUES('11-10-1010:10:10');SELECT*FROMT_DATE;COL2010-11-1010:10:10(1row)8.5人大金仓数据库迁移方法8.5.1迁移前的准备1

配置源数据库数据源

配置目标数据库数据源8.5人大金仓数据库迁移方法8.5.2数据迁移2由于人大金仓EasyTransferTool工具提供了简单易用的图形化UI,方便用户操作使用,因此在完成上述准备工作以后,用户可进行数据迁移,具体步骤如下:首先进行数据库连接设置,这里要注意下面两个参数的设置。(1)“超时时间”指通过JDBC方式连接数据库的最大响应时间,单位时秒,如果超过这个时间数据库依旧没有响应回报出连接超时异常。最大值时10000,默认是5。(2)“最大并发数”指执行数据迁移时的最大线程数量,默认是2最大值是10。8.5人大金仓数据库迁移方法8.5.2数据迁移2在迁移工具EasyTransferTool【首选项】-【数据类型映射】选项卡中,提供了几种数据库类型到KingbaseES的数据类型映射关系,用户可以使用默认的类型映射,如果有未涉及的类型或者某一个类型映射有偏差用户可以自己通过图形页面进行修改。8.5人大金仓数据库迁移方法8.5.2数据迁移2非表对象设置,默认时均不选择,即只迁表定义和表数据。此外,从Oracle到KingbaseES的迁移中,除表定义和表数据外,用户还可选视图、索引、外键、缺省、检查约束、唯一性约束和序列等非表对象进行自动迁移。数据迁移工具不支持异构数据库间的存储过程和触发器的迁移。它们的移植需要根据KingbaseES和其它数据库之间的语法差异手工改写后再在KingbaseES服务器上执行后建立。8.5人大金仓数据库迁移方法8.5.2数据迁移2在上述配置工作完成以后,可执行Oracle到KingbaseES的数据迁移。在执行自动迁移的过程中,使用者必须及时查看迁移日志并进行问题处理。控制台视图可以显示用户的操作日志和迁移日志,其中迁移日志可以持久化本地,用户可以在资源管理器中找到本次迁移的日志文件。文件中包含创建表的sql、迁移过程、创建主键sql和所有非表对象创建的sql语句;还包括迁移异常信息。在迁移过程中一旦某个对象创建失败,DTS会将该对象的创建sql保留到本次迁移任务文件夹下的ErrorScripts目录中,用户可以手动修改后通过ksql或者对象管理工具手动执行。8.5人大金仓数据库迁移方法8.5.3应用代码移植31.服务器应用代码移植数据移植后,需要迁移应用系统中用到的服务器应用代码,例如PLSQL。EasyTransferTool已经完成了存储过程,函数,包等PL/SQL对象的迁移,只需要关注应用代码中用到的匿名块的代码的迁移。KingbaseES的plsql语言和Oracle的plsql高度兼容,但需要关注如下2点:(1)package中Oracle允许存在同名同参数的存储过程和函数,KingbaseES不支持,需要重命名为不同名字。(2)KingbaseES不支持Objecttype的方法的连续调用,例如不支持方法1.方法2.方法3,需要改写为var1:=方法1;var2:=var1.方法2;var3:=var2.方法3;8.5人大金仓数据库迁移方法8.5.3应用代码移植32.客户端应用代码移植在应用编程接口方面,KingbaseES与Oracle兼容程度较高,所以,一般情况下,应用程序迁移比较容易。应用程序迁移通常应和移植系统测试同时进行。这样可及时修改测试过程中发现的问题。如何在一个应用程序中访问和操作数据库呢?通常,可采用API方式:该方式通过数据库厂商提供的各种标准应用编程接口在应用程序中与数据库进行交互。常用的应用编程接口如JDBC和ODBC等。目前,大多数数据库厂商均提供很多标准的数据库API及其驱动程序。在实际应用中,应首先加载驱动程序。加载成功后,利用API函数与数据库交互并完成对数据库数据的操作。例如对于使用ODBC的应用程序,应创建与Oracle同名的KingbaseESODBC数据源,然后修改应用程序中连接数据库的用户名、密码等。此外,在Windows系统下对于OLEDB、ADO和NDP,则不需创建数据源。如果是在Linux环境下,则首先检查ODBCDriver是否已经安装。在系统中找到odbcinst.ini文件,和/usr/bin/odbcinst对应的odbcinst.ini文件是在位于/etc的目录下,和/usr/local/bin/odbcinst对应的odbcinst.ini文件是在位于/usr/local/etc目录下。在odbcinst.ini文件中查找[KingbaseES8ODBCDriver]这一项。8.5人大金仓数据库迁移方法8.5.3应用代码移植3如果没有,则参考增加如下内容:[KingbaseES8ODBCDriver]

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论