- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- MSL防潮等级-J-STD-020(湿度敏感等级分类解说).docx VIP
- 湖北省襄阳市保康县第一中学2021年高一地理期末试题含解析.docx VIP
- 小学数学新苏教版三年级上册全册教案(2025秋新版).doc
- 202X年幼儿园安全教育主题班会 春风为伴 安全与我童行 课件PPT.pptx VIP
- 2025年高考化学二轮复习课件 第01讲 钠及其重要化合物.pdf VIP
- 危重症患者护理案例分析.docx VIP
- 2025年高考化学二轮复习课件 第03讲 镁、铝及其重要化合物.pdf VIP
- 2025年高考化学二轮复习课件 第03讲 氮及其重要化合物.pdf VIP
- 2025至2030爆炸物探测扫描仪行业发展趋势分析与未来投资战略咨询研究报告.docx
- 浙江省J12共同体联盟2024-2025学年九年级上学期期中语文试题(含答案).pdf VIP
文档评论(0)