将 Sybase 12.5 迁移至 Oracle 11g

来源:互联网 发布:算法的复杂度分析 编辑:程序博客网 时间:2024/06/07 08:09

目的

本教程展示了如何使用Oracle SQL Developer将 Sybase12.5 迁移到 Oracle 11 g(脱机捕获,仅包含表和数据)。

  • 引用了Oracle教程:Sybase 迁移

http://www.oracle.com/technetwork/cn/products/migration/sybase-085571-zhs.html#start


主题(主要操作步骤)

 - 概述 - 先决条件 - 创建mwrep用户 - 创建迁移库 - 捕捉Sybase导出文件 - 检查转换和离线数据移动的偏好 - 转换Oracle模型 *(- 解决存储过程转换失败) *(- 解决存储过程转换限制) - 生成和执行脚本创建Oracle数据库对象 - 迁移数据 *(- 解决编译问题) *(- 运行时问题的解决) - 测试转移的表和数据

*(-xxx):本教程未涉及的操作步骤


概述

什么是 Oracle SQL Developer?
Oracle SQL Developer是一个免费的图形工具,提高工作效率,简化了数据库开发任务。使用Oracle SQL Developer可以浏览数据库对象,运行SQL语句,编辑和调试PL / SQL语句和运行报告。
使用Oracle SQL Developer迁移工作台,可以快速迁移第三方数据库至Oracle。

数据库迁移过程中有四个主要步骤:

这里写图片描述


先决条件

在执行本教程之前,应该拥有以下先决条件:

  1. 安装Oracle 10g或更高版本,或Oracle Database XE
  2. 下载Oracle SQL Developer
  3. 安装并创建了ASE数据库并包含数据(用于测试)
  4. 已知Sybase的用户名,密码,数据库名和服务名
    (本机信息:User: sa,Pwd: “”,Dbname: ASE1119t,Server: KEVINCISA)

创建mwrep用户

1.登录Oracle SQL Developer,创建一个system用户的连接

这里写图片描述

2.登录该连接,打开新的SQL脚本窗口执行以下语句,以创建mwrep用户并赋予权限

这里写图片描述

CREATE USER MWREP IDENTIFIED BY mwrep DEFAULT TABLESPACE USERSTEMPORARY TABLESPACE TEMP;GRANT CONNECT, RESOURCE, CREATE SESSION, CREATE VIEW TO MWREP;

3.连接并以mwrep用户登录

这里写图片描述


创建迁移库

1.右键单击mwrep_orcl连接并选择“移植资料档案库>关联移植资料档案库”

这里写图片描述

关联进程:

这里写图片描述

这里写图片描述

这里写图片描述

完成关联后,左边菜单栏为出现以下界面:

这里写图片描述


捕捉Sybase导出文件

1.创建数据库捕获脚本:“选择菜单栏中的移植>第三方数据库脱机捕获>创建数据库捕获脚本”

这里写图片描述

2.选择脚本路径和数据库版本,并生成

这里写图片描述

生成提示:

这里写图片描述

3.捕获Sybase数据库

这里写图片描述

4.使用命令提示符移至脚本目录,执行脚本:[script file] [username] [password] [dbname] [server name]

SYB12_OFFLINE_CAPTURE.BAT sa "" ASE1119t KEVINCISA
执行成功提示

这里写图片描述

在捕获文件夹中会出现master和ASE1119t的文件夹以及文件夹内生成了相应数据库dat文件:

这里写图片描述

5.加载已经捕获了数据库的脚本

这里写图片描述

6.选中“sybase12.ocp”
这里写图片描述

加载完毕:

这里写图片描述

在捕获的模型处会显示已经捕获的模型:

这里写图片描述


检查转换和离线数据移动的偏好

按照以下偏好设置转换选项:

1.标识符选项:去掉“启用加引号的标识符”的勾选

这里写图片描述

2.生成选项:勾选下列选项

这里写图片描述

3.更改:脱机日期掩码和时间戳掩码

将日期掩码更改为:

Mon dd yyyy HH:mi:ssAM

将时间戳掩码更为:

Mon dd yyyy HH:mi:ss:ff3AM

这里写图片描述


转换Oracle模型

1.右击捕获模型中的Sybase12,点击“转换为Oracle模型”

这里写图片描述

转换完成:

这里写图片描述

转换的模型中显示了已转换的Oracle模型:

这里写图片描述


## (- 解决存储过程转换失败) ##*
## (- 解决存储过程转换限制) ##*


生成和执行脚本创建Oracle数据库对象

1.右键单击“转换的模型>Sybase12”并选择“生成

这里写图片描述

生成Oracle数据对象成功:

这里写图片描述

2.使用system用户编译生成的SQL语句

这里写图片描述

3.SQL语句创建了相应的用户,使用该用户连接登录

这里写图片描述

该用户中包含了从Sybase转换来的表结构,但是不包含数据:

这里写图片描述


迁移数据

1.生成数据移动脚本:“转换的模型>Sybase12”,右击“生成数据移动脚本”

这里写图片描述

2.选择脚本的存放路径

这里写图片描述

3.脚本生成后提示(包含捕获表的数量)

这里写图片描述

脚本文件夹下相应生成了Sybase的数据文件:

这里写图片描述

4.在脚本文件夹下,使用脚本unload_script.bat在命令提示符下获取Sybase的数据:
[script file] [username] [password] [server name]

unload_script.bat sa "" KEVINCISA

这里写图片描述

数据导出成功:

这里写图片描述

5.在将数据导入Oracle之前,先修改一下导入脚本oracle_ctl.bat对应的Oracle用户名和密码

这里写图片描述

6.执行数据导入脚本

这里写图片描述

导入成功提示:

这里写图片描述

7.回到Oracle SQL Developer,刷新表,得到导入的数据

这里写图片描述


## (- 解决编译问题) ##*
## (- 运行时问题的解决) ##*


测试转移的表和数据

转移至PL/SQL Developer下查看导入的用户,表以及数据(个人习惯)

这里写图片描述


*由于本人不是很熟悉Sybase,关于存储过程以及其他函数的转换就不写了,只是转移了表和数据。

0 0