Oracle数据批量切换到Sybase方案要点详解.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle数据批量切换到Sybase方案 背景 在“中国移动资产管理系统”的试点阶段开发过程中是基于Oracle数据库开发的,在本次推广过程中,期初盘点,也是采用Oracle系统。同时开展Oracle向Sybase改造。在正式上线时,将部署改造后的基于Sybase数据库系统,在初始化阶段需要将盘点时采集在Oracle系统中数据切换到Sybase。 本文将描述数据切换方法、步骤和由于Sybase和Oracle数据库之间的差异需要注意的事项。 概述 数据范围 与盘点相关的信息都将包含在此次数据迁移的范围内,主要包括 用户基本信息 资产信息 盘点信息 盘点后的分析匹配结果 表范围依据 在Sybase表中有的(TABLE_NAME in (select tn from sybasetable)) 在Oracle数据库中有数据的(num_rows 0) 不包含明确确定不需要转移数据的表范围内(aa_notusedtable) 迁移策略 初步测算,需要迁移的表在100量级,利用图形化的客户端工具,Oracle一个表导出,Sybase一个表导入的方式作为一次完整的迁移是不合适的,需要一种批量导出,批量导入,批量验证的方式。 配置系统环境 验证Oacle和Sybase表结构 构建迁移需要的配置文件和脚本 转化Oracle导出前数据 批量卸载Oracle数据 批量载入Syasbe数据 正确性检查 发现错误,修正个别表迁移 补充,修正遗漏数据 较验导入数据量 备份Sybase数据库 恢复Oracle原有数据 详述 配置系统环境 构建Sybase库环境 在本地安装Sybase客户端,需要运行bcp工具 Server属性 Page页16K 字符集CP936 排序 大小写敏感 数据库日志段5G 数据库属性 use master sp_dboption EAM_Test, select into/bulkcopy/pllsort, true 登录的缺省数据库 bcp导入时用户对应的缺省数据库是要导入的库 服务器别名 配置参见“Sybase 服务器别名配置.doc” 验证 isql -U eamtest -P eamtest -S IBM登录成功 IBM就是服务器别名 如本机使用bcp可以不配置别名,以下脚本可去掉-S IBM, 或使用服务器安装时缺省的别名,一般为机器名。 用户 用于切换操作的用户有bcp权限,一般赋予数据库管理员权限 构建Oracle环境 前提 固定需要切换的数据,保证在后续操作中这些业务表的数据不再变动 安装SQL DEVELOPER 3.0 统计Oracle中各表的行数 对每个表运行ANALYZE TABLE AMS_IGNORE_DATA_BAK COMPUTE STATISTICS; 所有表脚本AnalyzeAllTable.sql 确定Oracle中不需要迁移的表 创建aa_notusedtable表,包含不需要数据迁移的表,不管这些表在Oracle中是否有数据。 sybase中表结构数据 创建SybaseTable表,导入Syabse表结构数据,创建比对Oracle和Sybase表结构视图 v_so, 创建不需要切换数据的表aa_notusedtable CreateSybaseMetaDate.sql(示例是河南数据,因此owner中为’HENAM’,按实际情况修改) 由于Oracle中COUNT和RULE不作为关键字,可以在列名中使用,Sybase不可以,作以下替换COUNT ==》COUNT_NO,RULE ==》CODE_RULE,这个转换包含在v_so中 配置批量导出Oracle表到txt文件 参见“将Oracle数据库中表数据批量转化成dsv格式文件.doc” 由于Sybase的bcp导入功能中不支持带引号的字符串,但支持行、列分割符是字符串,因此以“#@$”代替常用的单字符分割符合“ ”、“,”、“\t”、“|”以防止Oracle数据库中值本身就带有这些符号 特殊字符中不要包含需要操作系统转义的字符“\”、“-”、“/”、“%” 、“””、“’” 先下载一个带日期的表(如:AMS_APPLY_SYSTEM_ITEM),验证下载的dsv文件中日期格式正确“2011/07/26 15:00:10” 检验Oracle和Sybase表结构 以下SQL示例是河南数据,因此Oracle中owner中为’HENAM’,按实际情况修改 -S IBM根据实际的Sybase服务器别名修改 表结构完全一样 列数相同,且列顺序相同 select TN from v_SO where TN in (select TABLE_NAME from sys.all_all_tables s

文档评论(0)

妈妈王子 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档