2026/6/20 8:29:17
网站建设
项目流程
建设银行官方网站诚聘英才,网站当电话线,四库一平台怎么查建造师业绩,网络稿件投稿平台在国产化替代浪潮下#xff0c;Oracle数据库向国产数据库迁移已成为企业数字化转型的核心任务之一。但迁移过程中#xff0c;兼容性适配、迁移成本管控、业务连续性保障三大核心痛点#xff0c;往往让企业陷入“不敢迁、不会迁、迁后出问题”的困境。KingbaseES凭借丰富的Or…在国产化替代浪潮下Oracle数据库向国产数据库迁移已成为企业数字化转型的核心任务之一。但迁移过程中兼容性适配、迁移成本管控、业务连续性保障三大核心痛点往往让企业陷入“不敢迁、不会迁、迁后出问题”的困境。KingbaseES凭借丰富的Oracle兼容特性搭配KDTS、KFS等专属工具能大幅降低迁移门槛——多数场景下导出脚本无需大幅修改甚至可直接复用。本文结合实战经验从痛点出发拆解Oracle迁移至KingbaseES的完整流程、核心内容与关键步骤助力企业高效完成迁移落地。本文将聚焦迁移全流程先明确迁移核心痛点对应的解决思路再逐一拆解实操环节兼顾理论逻辑与落地细节适用于数据库运维、开发及架构师参考。主要迁移内容在实际应用中Oracle数据库的迁移包含数据库迁移、用户迁移、数据迁移和应用程序迁移这些内容必须严格按照顺序进行迁移否则可能会导致迁移受阻。数据库是各种SQL和PL/SQL数据库对象的存放容器用户是这些对象的管理者和使用者。因此在进行数据迁移前必须先迁移数据库、用户。迁移应用程序前需检查数据库对象迁移是否完成完成后才能开始迁移应用程序因为在应用程序中可能会访问和操作前面迁移的数据库对象。数据库、用户和模式迁移启动目标数据库后在目的数据库KingbaseES上创建与源数据库Oracle同名的数据库、用户,并授予新建用户使用该数据库和新建模式的权限。另外所创建数据库的字符集应与Oracle数据库字符集一致。如果KingbaseES已有同名数据库则登录该数据库后则只需创建同名用户。Oracle数据迁移确定使用在线迁移还是离线迁移根据不同需要制定不同给的迁移策略使用KDTS 和 KFS 完成数据库迁移。应用程序移植应用程序移植是指将Oracle API方式或嵌入式SQL方式的应用程序迁移至KingbaseES。它主要包括接口驱动程序和连接方法的迁移以及Oracle扩展或私有的、且KingbaseES未兼容的API迁移。通常该项任务的工作量较少。在实际应用中应用程序迁移与移植系统测试与调试通常交叉进行。关键迁移步骤应用系统从Oracle数据库迁移至KingbaseES数据库需要健全的项目团队和全面细致的项目执行过程。通常将一个Oracle数据库迁移至KingbaseES主要包括迁移评估、 迁移准备、 数据迁移、 应用迁移和测试与调试迁移后的系统5个步骤。迁移评估包含确定迁移目标、 评估迁移任务、 组建迁移团队三个阶段迁移准备需要准备好迁移环境并进行数据库和用户迁移。下面分别对上述各个步骤进行详细说明。迁移评估确定迁移目标开始迁移前应根据用户的实际需求确定迁移目标。这些目标诸如迁移Oracle数据库的规模。迁移Oracle数据库对象的种类和特征如简单和复杂迁移对象所占比例等。迁移的难易程度如是否迁移大对象是否迁移大量约束等。迁移的工期要求。迁移中业务系统是否可以处于停止服务状态。对目标系统的技术指标要求诸如平台、版本、应用编程接口、工具、可用性、安全性和性能指标要求等。明确迁移目标以后即可开始迁移任务评估。评估迁移任务迁移前对迁移的可行性、工作量、难易程度和工作进度等进行充分评估是为了降低迁移过程中的未知风险。通常迁移评估主要包括以下内容迁移技术指标如迁移业务压力和性能指标等。迁移数据规模如迁移各类数据库对象的数量PL/SQL程序的规模等。迁移中KingbaseES不支持功能的种类和数量。迁移的约束种类和数量。迁移过程中可能遇到的其他问题。在Oracle迁移中常用的评估模板如下表所示项目描述Oracle数据库版本8.1.7.4操作系统版本Windows 2000/2003 Server服务器型号 CPU配置 内存RAM 磁盘Disk Profile联想/SUN服务器个数# of Servers1或2用户数/天# Users/Day 事务量/天# Transactions /Day几十/天当前数据库大小 数据库增长速率#GB/month目标用户Schema几个GB应用方式OLTP/OLAPOLTP应用服务器中间件无客户端应用类型 C/SB/SC/S客户端应用编程语言Delphi7客户端应用连接接口ODAC/ADO是否深入SQL应用无监控工具无备份方式Exp/imp其它工具备份软件等无高可用要求较高高可用配置方案VCS或单机项目描述迁移分析日期20220105下午迁移分析人员KingbaseES版本ABCOracle 版本 OracleSchema11.1.7.4Oracle DB Size (GB)几个GBOracle Schema Size (MB)几个GB类型小计备注Function7较少用Index有LOB有最大到几十MB主要是照片、word、视频较少Materialized View有10Procedure25Sequence有10Table1660约束较多Table Partition无Trigger30JOB无Package无Package Body无Type无View200Synonym300对象共计类型小计备注CHECK OR NOT NULLFOREIGN KEYPRIMARY KEYUNIQUE KEYOTHER约束共计特性小计备注数据压缩无索引组织表无维度Dimensions无物化视图无存储概要无高级队列无空间数据管理无全文搜索无数据库链接无数据复制无RAC无逻辑Standby无物理Standby无自动存储管理 ASM无自动工作负载信息库 AWR无共计组建迁移团队Oracle数据库迁移团队的成员至少应具备以下的知识与技能熟悉Oracle和KingbaseES的SQL语言和PL/SQL语言特性以及相关的KingbaseES Oracle兼容特性。熟悉Oracle和KingbaseES的各种应用编程接口以及相关的KingbaseES Oracle兼容特性。熟悉Oracle和KingbaseES的相关客户端工具以及这些工具间的相同点和异同点。迁移准备准备迁移环境在完成迁移评估后迁移工程师需要开始准备迁移环境这些准备工作诸如部署目的数据库服务器 部署目的数据库服务器应遵循以下原则目的数据库服务器的CPU、内存、网络环境等硬件应尽量采用较高的配置。如果需要迁移的Oracle数据库系统规模较大如超过1GB则建议把Oracle和KingbaseES部署在不同的物理机器上。为确保迁移效率应尽量把KingbaseES和Oracle服务器部署到同一局域网内。获取并安装必要的软件 迁移前应获取并安装如下软件Oracle数据库系统、KingbaseES数据库系统、PL/SQL Developer、JDBC和ODBC驱动程序、C语言开发工具、OCI软件、DCI软件、TPC-C测试工具、LoadRunner等。如果迁移数据规模较大建议对安装的KingbaseES数据库服务器进行适当的优化如增大shared_buffer大小、预先创建较大的日志文件预先申请足够的表空间数据库文件等。完成上述准备工作后迁移工程师便可开始Oracle数据库迁移工作了。获取 Oracle数据库的相关信息 迁移前应获取源数据库Oracle服务名及迁移的数据规模信息。其中前者用于PL/SQL Developer工具的登录操作后者用于估算数据迁移时间和设计迁移方案。Oracle数据库基本信息获取源Oracle数据库的IP地址实例名网络服务端口号用户名/密码在目标KingbaseES上创建与源Oracle用户如scott同名的用户scott。创建与源Oracle如ORCL同名的数据库ORCL属主为scott。创建与源Oracle与用户名相同t同名的模式scott属主为scott。查询Oracle数据库编码方式select userenv(language) from dual; USERENV(LANGUAGE) SIMPLIFIED CHINESE_CHINA.ZHS16GBK查看表数据量大小查看当前用户在Oracle中的表大小按从大到小排序单位GB。select segment_name,bytes/1024/1024/1024 from user_segments where segment_typeTABLE order by bytes desc ; XFJXX 16.046875 XFRXX 7.779296875 PCK 7.4375 BLFSXX 5.0625 XFSXXX 2.3125 DFGZXX 1.3359375 FJB 0.53125 TSJXX 0.078125检查数据库日期格式时间的默认格式为ISO, MDY在配置文件中添加datestyle ‘ISO,YMD’ 修改为年月日的格式99会改为1999在某项目中迁移数据时遇到服务器报错迁移工具中断迁移停滞oracle数据库中有日期“0099-09-30 00:00:00”迁移工具输出为“99-09-30 00:00:00”KingbaseES中将99识别为月份报错ERROR: date/time field value out of range--即使没有报错也会出现错误 set ora_date_sytle true; CREATE TABLE T_DATE(COL DATE); INSERT INTO T_DATE VALUES(11-10-10 10:10:10); SELECT * FROM T_DATE; COL --------------------- 2010-11-10 10:10:10 (1 row)配置KingbaseES的Oracle兼容开关 根据实际情况应对目的数据库KingbaseES进行适当的Oracle兼容配置。通常应配置以下会话级兼容参数1nls_length_semantics设定char类型字段默认单位是byte还是char。此外标识符最大长度以此值为单位。如果它为char则标识符最大长度为63个char否则为63byte。在KingbaseES系统参数nls_length_semantics缺省值是CHAR需要与待迁移的Oracle相同。Oracle字符类型的 byte|char 属性的默认值是由 Oracle 提供的数据库参数NLS_LENGTH_SEMANTICS决定的可通过下方语句进行查询select value from nls_database_parameters where parameter NLS_LENGTH_SEMANTICS; VALUE BYTE如果未修改可能会出现迁移char类型时由于数据库存储的类型不同导致迁移的数据存在多余空格的情况。2search_path模式搜索路径。例如search_path为$USER,SCOTT,PUBLIC时系统将首先搜索与登录用户同名的模式对象然后搜索SCOTT模式对象最后搜索PUBLIC模式对象。3default_with_oidsOID伪列开关。KingbaseES的OID伪列可兼容Oracle的ROWID伪列。因此如果Oracle迁移对象有ROWID伪列则建议用OID伪列替代。配置目的库KingbaseES性能参数 为了提高迁移速度应对目的库KingbaseES进行性能优化配置。例如根据迁移数据规模的大小迁移前可预先创建适当大小的数据和日志文件。开始迁移之前根据待迁移数据库的大小保证KingbaseES数据目录所在位置有足够的空间。2根据KingbaseES服务器硬件配置的实际情况调整shared_buffers大小默认是128M建议调整为内存的1/4大小。数据库、用户和模式迁移数据库、用户迁移主要包括以下内容获取源Oracle数据库的IP地址、实例名、网络服务端口号、用户名/密码等信息。在目标KingbaseES数据库上使用 Ksql 或 Kstudio 工具上执行如下操作创建与源Oracle用户同名的用户例如创建与Oracle同名的scott用户。创建与源Oracle同名的数据库例如创建与Oracle同名的ORCL数据库它的属主为scott。若同名数据库存在可以使用其他的数据库名称若使用了新的数据库名称则需要修改应用程序的连接串中的数据库名称。KingbaseES 默认initdb就是Oracle兼容模式。数据迁移Oracle 向 KingbaseES进行数据迁移需使用以下工具KingbaseES 数据迁移工具 KDTS 动态加载待迁移的数据库访问接口方便用户按照需求指定和使用。异构数据源之间的数据迁移支持Oracle9i、10g、11g、12c、19c到KingbaseES的数据迁移。KingbaseES 数据同步工具 KFS 支持同、异构数据源之间的数据迁移。KingbaseES 数据同步工具 KFS 支持结构迁移、支持全量数据迁移、支持列名映射支持数据迁移过滤在配置数据任务时可以对迁移的表配置where条件、通过匹配的where条件过滤需要迁移的数据。一般而言不同的迁移方式需要用到不同的迁移工具:离线迁移使用 KDTS 即可完成 Oracle 的完整迁移。在线迁移需要先使用 KDTS 完成历史状态迁移然后使用 KFS 完成数据的在线追平。下述分别介绍使用离线迁移方式和在线迁移方式迁移数据的步骤离线迁移用户可使用KDTS进行数据的离线迁移KDTS提供了两种形态WEB、SHELL用户可根据需要进行选择以下章节将分别介绍WEB、SHELL版本进行oracle迁移的具体步骤。WEB迁移步骤创建源数据库连接创建数据库连接界面如下填写数据源信息包括“连接名称”、“数据库类型”、“数据库版本”、“服务器地址”、“端口”、“用户名”、“密码”、“数据库”、“连接参数”。创建目标数据库连接创建数据库连接界面如下填写数据源信息包括“连接名称”、“数据库类型”、“数据库版本”、“服务器地址”、“端口”、“用户名”、“密码”、“数据库”、“驱动”、“URL”、“连接参数”。新建迁移任务KDTS采用向导页的方式指导用户新建迁移任务简单易用用户依次配置“选择数据源”-“选择模式”-“选择迁移对象”-“配置参数”即可快速配置一个迁移任务。选择数据源填写自定义任务名称任务名称不能重复选择“源数据库”和“目标数据库”或者选择“新建数据源”后使用。选择模式选择需迁移的模式如需选择模式在系统模式中可选中“包含系统模式”复选框的表、视图、序列、函数、存储过程、程序包、同义词。当模式较多时也可以通过左上方的查询框进行检索。 请至少选择一种模式否则将收到错误提示以至于不能完成新建任务。选择迁移对象通过已选模式选择需要迁移数据的表模式较多时可在已选模式搜索框内输入模式名关键字进行快速检索。可迁移此模式下全部表也可以指定或排除部份表当选择“包含指定表”或“排除指定表”时请通过“从列表选择”、“从文件导入”或者在输入框内输入表名将数据添加到包含列表中若未添加数据则会提示错误导致无法进行下一步并完成新建任务。点击“包含指定表”时也可选择多种方式。可直接在输入框内填写表名多个表用“”分割回车确认“从列表选择”可在模式中选择指定表若需“从文件导入”可点击“下载导入模板”根据导入模板规则填写然后从文件导入该模板。当需要“排除指定表”时同指定部份表相同操作但结果相反。从列表选择表时可选择对应模式、检索表名关键字、数据条数限制进行快速检索对应的表。点击“添加”按钮后加入到已选列表当想要移除部份表时可以选择对应的表点击“移除”按钮取消表。选择完成后点击确定。配置参数迁移工具提供了一系列配置参数用于迁移方案的个性化配置满足多种迁移场景。配置参数分为“迁移配置”、“数据类型映射”、“线程配置”三个方面。以下以迁移配置为例介绍各参数的含义。其他配置项请参考工具-迁移工具章节描述。表默认处理方式包括两个复选框项“建表/重建表”、“导入数据”迁移到KingbaseES数据库是否需要建表或者重建表以及是否只迁移表结构而不迁移数据的选择根据实际需求选择合适的选项默认是全选。表排序依据对迁移的表进行排序可通过“按行数和大字段大小交替”、“行数”、“大小进行排序”默认是按行数和大字段大小交替。表数据读取和写入对表数据的读取和写入制定规则可操作项包括“源库游标读取记录数”默认是100、“批量写入目标库记录数”默认是1000、“每次批量提交大小”默认是100MB、“LOB字段预读取大小”默认是4000Byte。大表拆分阈值依据对大表进行拆分迁移设置拆分界限。非对象设置包含“主键”、“检查约束”、“唯一约束”、“外键”、“索引”、“触发器”、“自动转换对象名”可以根据自己的需求选择是否迁移这些非对象数据默认是全选。数据库连接数设置可以限制迁移程序对源数据库和目标数据库的最大连接数默认是100。执行迁移任务可将此任务作为预迁移任务点击“保存”或者作为执行任务点击“保存并迁移”。迁移完成后任务状态将变成迁移完成迁移结束“状态”栏显示“成功”则迁移任务成功。迁移失败迁移结束“状态”栏显示“失败”则迁移任务失败。失败后可点击详情查看日志有助于解决问题。查看迁移报告及问题处理迁移完成后需要确认执行结果包括迁移数据量是否有错误发生可以通过迁移日志和迁移结果进行查看。“迁移日志”打印迁移任务执行后的日志具体可分为“系统日志”、“Error日志”、“Info日志”。“迁移结果”功能的工作区包括“任务执行批次”、“迁移对象”、“总数”、“成功数”、“失败数”、“略过数”、“操作”可以查看历史迁移任务执行的每次记录以及每次迁移的对象、成功数、失败数、查看失败任务的错误日志。SHELL迁移步骤工程目录说明使用SHELL方式进行迁移需要对工程文件有一定了解bin: 启动脚本conf: 配置文件doc: 帮助文档drivers: 数据库连接驱动注意不同版本驱动的存放目录差别详见readme.mdjdk: jdkkdms: kdms程序lib: 程序包logs: 日志result: 迁移报告JDK安装下载与KDTS安装服务器相匹配的JDK需要匹配操作系统和CPU架构如Liunx/AArch64、Linux/x64、Windows/x64等版本选择JDK 11或更高。下载地址: https://jdk.java.net/archive/ 将下载的JDK解压到KDTS-CLI/jdk目录下即可。备注请使用解压版本的JDK以免安装JDK影响服务器上的其它应用。不要把当前的JDK加入系统环境变量以免影响服务器上的其他应用。如果需要使用服务器上已有的JDK配置bin/startup.shWindows平台为startup.bat中的JAVA_PATH即可。配置数据库连接信息配置步骤分为3步激活配置文件、配置数据库连接、配置相关参数。1进入KDTS-CLI/conf目录下打开application.yml文件根据源库类型设置当前激活的源库配置active: oracle如下所示在正确设置application.yml中的active项后打开对应配置文件datasource-oracle.yml按实际运行环境进行配置即可。2配置源端数据库连接信息、目标数据库连接信息。编辑conf/datasource-oracle.yml文件编辑源端和目标端连接信息包括url、driver-class-name、username、password信息如下图所示3 配置要迁移的源库模式数据库对象涉及到的参数见下图4 迁移配置参数说明编辑conf/datasource-oracle.yml文件有多个配置参数可灵活使用。以下列举常用的配置参数。fetch-size源数据库游标读取记录数在一定范围内增加该值可提升读取效率但会增加内存开销。table-with-large-object-fetch-size源数据库含大对象数据表的游标读取记录数此参数针对有大对象字段的表。large-table-split-threshold-rows大表拆分阈值行数当表的行数超过此值时将对表进行拆分每块的记录数为此值和表总记录数除以“拆分最大块数”中的最大值。large-table-split-threshold-size大表拆分阈值大小单位为M当表的数据大小普通字段大对象字段超过此值时将对表进行拆分。large-table-split-condition-file大表拆分条件定义文件优先于按行数和大小拆分。table-data-filter-condition-file表数据过滤条件定义文件。use-kdms是否使用kdms做转换视图、函数、存储过程、包、触发器。kdms-urlkdms访问地址前提是use-kdms: true。write-batch-size目标数据库表数据批量提交记录数.write-batch-size-big-lob目标数据库表数据批量提交记录数特指大对象数据。drop-existing-object是否默认删除目标库中已存在的对象如表、视图等。truncate-table是否默认清空目标库中已存在的表数据。rename-object目标数据库对象重命名除表名、列名外的其他对象: pk、fk、constraint、unique constraint、index 等。useDbmsStats是否使用数据库系统统计信息如表的记录数、大小等。useManualScript是否使用手工脚本。useKdms是否使用kdms做转换视图、函数、存储过程、包、触发器。kdmsUrlkdms访问地址。kdmsSourceDbTypekdms源数据库类型。kdmsTargetDbTypekdms目标数据库类型。readDataTimeout读数据超时时长单位毫秒0表示永不超时。maxRetries最大重试次数。retryInterval重试间隔毫秒。readDataCanResume读数据中断后能否恢复。characterNeedDecoding字符是否需要解码处理类似Oracle字符集为US7ASCII、WE8ISO8859P1等时迁移中文乱码的问题。encodingCharset编码字符集字符集为US7ASCII、WE8ISO8859P1设置为ISO-8859-1。decodingCharset解码字符集字符集为US7ASCII、WE8ISO8859P1设置为GB18030。decodingBytes是否解码字节字符集为US7ASCII时设为true。dataCompareBufferSize源端数据对比缓冲区大小行数。dataCompareAlgorithm数据对比摘要算法。maximumPoolSize源数据库最大连接数。线程相关设置可根据实际服务器配置按比例调整如果与目标数据库运行在同一服务器上应将绝大部分资源分配给数据库。进入 KDTS-CLI/conf目录下打开:kb-thread-config.xml如下图所示数据迁移属于IO密集型操作涉及网络络IO和磁盘IO的交互一旦发生IO线程就会处于等待状态当IO结束数据准备好后线程才会继续执行。为提升数据迁移的效率可以多设置⼀些线程池中线程的数量避免任务等待线程可以去做更多的迁移任务提高并发处理效率。但不是线程数设置的越高效率就越高线程上下文切换是有代价的。 对于对于IO密集型线程数的设置公式为线程数 CPU核心数/(1-阻塞系数) 其中阻塞系数一般为0.8~0.9之间取0.9则双核CPU 2/(1-0.9) 2064核2路CPU 64*2/(1-0.9) 1280启动脚本进入 KDTS-CLI/bin 目录下编辑: startup.sh检查JDK的路径是否正确JAVA_PATH${BASE_PATH}/jdk设置JVM内存系统默认自动获取JVM内存参数若需手动调整JVM参数font stylecolor:rgb(68, 73, 80);background-color:rgb(246, 247, 248);JAVA_OPT-server -Dfile.encodingUTF-8 -Dconfig.path$\{CONFIG_DIR\} -Xmx16g -Xms16g/font主要是:font stylecolor:rgb(68, 73, 80);background-color:rgb(246, 247, 248);-Xmx16g -Xms16g/font参数启动运行脚本进入 KDTS-CLI/bin目录执行: ./startup.sh 。查看迁移报告及问题处理可以在运行日志kdts_plus_***.log中查看到迁移整个过程的信息包括任务启动、迁移进程、结果汇总。可查看result下的迁移结果在形如“result/2021-12-02_15-15-15/Sehcma1”目录下index.html–报告主页面detail_XXX.html–XXX详细信息如表结构、表数据、表主键等FailedScript–失败脚本目录IgnoredScript–略过脚本目录SuccessScript–成功脚本目录在迁移过程中一旦某个对象创建失败KDTS会将该对象的创建sql保留到本次迁移任务文件夹下的FailedScript目录下*.sql文件用户可以手动修改后通过Ksql或者KStudio工具手动执行。在线迁移在线迁移过程中为保障异构数据库数据同步且客户业务不停机需要一个中间数据库与源端数据库版本相同的单实例数据库做媒介迁移存量数据。操作的过程分两部分。先将存量数据迁移至中间数据库上然后KDTS迁移工具进行初始数据搬迁或通过ETL进行初始数据搬迁至异构数据库目标数据库中。待上一步操作完成从指定断点开始启动KFS源端正常启动目标端的KFS程序在已经有KFS运行的情况下可能需要重置KFS。备注在迁移源库存量数据时避免做以下操作1). 运行大型批处理操作会降低复制速率。2). 备份时执行DDL操作将导致DML和DDL之间存在锁问题源端数据库备份获取当前数据库一致性scn号alter system checkpoint global; select checkpoint_change# from v$database; 假设获取的值为200725471该scn号将用作启动KFS起始的scn号。创建备份目录(需要sysdba权限)create directory dump_dir as d:/dump_dir; grant read,write on directory dump_dir to kfs_user;完整备份数据库在单实例oracle数据库服务器上执行导出用户kfs_user的内容expdp kfs_user/123456 schemaskfs_user directorydump_dir flashback_scn200725471 dumpfileDBNAME_20220511.dump存量数据迁移在中间库中创建备份目录(需要sysdba权限)create directory dump_dir as E:/dump_dir; grant read,write on directory dump_dir to kfs_user;将源端备份的数据文件拷贝至E:/dump_dir目录下将备份的数据还原至中间库impdp kfs_user_new/123456 directory dump_dir remap_schemakfs_user:kfs_user_new table_exists_actionreplace dumpfile DBNAME_20220511.dump使用数据迁移工具KDTS将中间库的数据搬迁至目标数据库。启动KFS完成数据追平备注若KFS之前已经部署运行则源端和目标端需要先执行重置命令fsrepctl –service XXX reset -all –y确认中间表、kufl文件等被清除。 KFS部署参考《Kingbase FlySync 安装部署手册》。源端操作先启动KFS到offline状态replicator start offline。再使用ONLINE命令将源端的KFS完全启起来执行ONLINE命令时需要指定-from-event参数参数值为备份数据库时查询的scn值。replicator start offline fsrepctl -service oracle online -from-event ora:200725471: 200725471目标端操作启动目标端KFS等待数据追平。提示追平的判断方法:[hesh1-105 ~]$ fsrepctl services Processing services command… NAME VALUE ---- -----appliedLastSeqno: 3 //若源端无新数据产生则源端和目标端相同 appliedLatency : 0.297 //若源端无新数据产生延迟时间为0 role : master serviceName : postgresql serviceType : local started : true state : ONLINE Finished services command…多次迁移若项目开发过程中需要定期从一个指定的源数据库迁移到目的数据库中 那么根据迁移时源数据库和应用的状态决定离线迁移还是在线迁移。同时由于是多次迁移需要考虑每次迁移时数据库对象的定义是否需要迁移 若不需要则只迁移数据就可以使用 KDTS 和 KFS 都支持只迁移数据 若每次迁移时需要迁移对象定义则:1对于定义发生变更的表选择迁移定义和数据。可使用 KDTS的“迁移部分表”功能完成,详细步骤可参考 迁移工具 。2对于定义没有发生变更的表只同步数据即可。可使用 KDTS的“按条件迁移”功能完成,详细步骤可参考 迁移工具 。应用代码迁移服务器应用代码迁移数据迁移后需要迁移应用系统中用到的服务器应用代码例如 PL/SQL。KDTS 已经完成了存储过程函数包等 PL/SQL对象的迁移 只需要关注应用代码中用到的匿名块的代码的迁移。KingbaseES 的 plsql 语言和Oracle的plsql高度兼容 需要关注如下2点package中Oracle 允许存在同名同参数的存储过程和函数KingbaseES 不支持需要重命名为不同名字。KingbaseES 不支持 Object type的方法的连续调用例如不支持 方法1.方法2.方法3 需要改写为var1 : 方法1; var2 : var1.方法2 var3 : var2.方法3客户端应用代码迁移在应用编程接口方面KingbaseES与Oracle兼容程度较高所以一般情况下应用程序迁移比较容易。应用程序迁移通常应和迁移后的系统测试同时进行。这样可及时修改测试过程中发现的问题。通常在应用程序可采用API方式访问和操纵数据库该方式通过数据库厂商提供的各种标准应用编程接口在应用程序中与数据库进行交互。常用的应用编程接口如JDBC和ODBC等。目前大多数数据库厂商均提供很多标准的数据库API及其驱动程序。在实际应用中应首先加载驱动程序。加载成功后利用API函数与数据库交互并完成对数据库数据的操作。ODBC对于使用ODBC的应用程序应创建 KingbaseES ODBC 数据源然后修改应用程序中连接数据库的用户名、密码等。此外在Windows系统下对于OLEDB、ADO和NDP则不需创建数据源。Windows数据源配置具体配置参数解释请参考 KingbaseES客户端编程接口指南-ODBC 。Linux数据源配置首先检查 ODBC Driver 是否已经安装。在系统中找到 odbcinst.ini 文件和/usr/bin/odbcinst 对应的 odbcinst.ini 在 /etc 目录下和 /usr/local/bin/odbcinst 对应的 odbcinst.ini 在 /usr/local/etc 目录下。在odbcinst.ini 文件中查找 [KingbaseES 9 ODBC Driver] 这一项。如果没有则参考增加如下内容[KingbaseES 9 ODBC Driver] Description KingbaseES 9 ODBC Driver for Linux Driver /opt/Kingbase/Odbc/lib/kdbodbcw.so 增加odbc.ini文件内容如下 [kingbase] Description KingbaseES Driver KingbaseES 9 ODBC Driver Servername 127.0.0.1 Port 54321 Username SYSTEM Password MANAGER Database TEST具体配置参数解释请参考 KingbaseES客户端编程接口指南-ODBC 。移植Oracle OCI应用程序KingbaseES支持OCI的大部分常用接口。具体参见手册 KingbaseES客户端编程接口指南-DCI 。其它应用框架其它应用框架的使用请参照客户端编程开发框架的使用指南。如无说明请及时联系KingbaseES支持工程师。测试与调试迁移后的系统任何一个成熟的应用系统如果代码、尤其是关键代码变动后则应进行全面细致的测试。类似的更换新的后台数据库系统以后也应对迁移后的数据库系统进行全面的功能和性能测试。功能测试和排错功能测试是指对迁移后的数据库系统的每一个模块和功能进行全面的系统回归测试用以确保新系统各个功能的正确性。因此完成数据库对象和应用程序迁移后应对迁移后的系统进行全面的功能测试并对测出问题及时分析、排查和修改。对那些很难定位的问题请及时联系KingbaseES支持工程师。性能测试和调优迁移后的系统性能测试和调优是在完成迁移得系统功能测试后和系统上线前在实际或模拟生产数据上对迁移后的系统进行的性能测试和调优。迁移后的系统性能测试和调优的主要步骤如下构造测试数据若条件允许的话建议构造与实际生产数据规模相同的数据并模拟构造未来一年、两年、五年或更长生命周期的数据进行测试。部署测试软硬件环境根据测试数据规模的大小配置适当的测试软硬件环境。**性能测试**既可采用手动方式也可利用TPCC测试工具、LoadRunner等工具对迁移后的系统进行自动测试。性能调优对未达到性能指标的功能模块及其SQL语句进行优化并给出相关建议。通常性能测试效果与测试数据规模、软硬件配置等因素密切相关。因此建议性能测试时测试数据规模、软硬件配置应尽量与将来的实际生产环境一致。必要时在未来一年、两年、五年等不同模拟数据规模场景下应分别测试迁移后的系统的性能指标用以保证钱以后的系统未来仍能具有良好的性能表现。