设为首页 收藏本站
查看: 979|回复: 0

[经验分享] 移植SQL server数据库对象到Oracle的操作说明

[复制链接]

尚未签到

发表于 2018-10-17 12:00:21 | 显示全部楼层 |阅读模式
  移植之平台和相关工具
  OS:Windows Vista
  DBMS:Sql Server 2005 Plus Oracle 10g for Vista
  Migration Tool:Oracle Sql developer 1.5.3.57.83
  Sql Develper和Migration Workbench简单介绍
  以下是摘自Oracle官网:
  Ⅰ Oracle SQL Developer 是一个免费的图形化数据库开发工具。使用 SQL Developer,您可以浏览数据库对象、运行 SQL 语句和 SQL 脚本,并且还可以编辑和调试 PL/SQL 语句。您还可以运行所提供的任何数量的报表,以及创建和保存您自己的报表。SQL Developer 可以提高工作效率并简化数据库开发任务。
  SQL Developer 可以连接到任何 9.2.0.1 版和更高版本的 Oracle 数据库,并且可以在 Windows、Linux 和 Mac OSX 上运行。
  Ⅱ Oracle SQL Developer 移植工作台是重新开发的新工具,它极大地扩展了原来的 Oracle 移植工作台的功能和可用性,可以将 Microsoft Access、Microsoft SQL Server 和 MySQL 数据库移植到 Oracle。
  移植之驱动配置
  1) 检查下你装的Sql Developer的版本,我的是Oracle Sql developer 1.5.3。因为这个工具是免费的,之前我在1.2版本上测试没有通过,所以这里强调下。
  2) 就是配置Sql Developer的运行环境,因为如果设置不好,我们将不能连接第三方数据库(非oracle数据库),本文指的就是sql server 2005.
  背景知识1:不加载驱动之前,如果我们新建立一个数据库连接时,会出现如下窗口。这里可以连接的数据库
  仅仅是Oracle和Access (即是两种默认的数据库)
  见图(一)
DSC0000.jpg

  图(一)
  怎么可以让SQL Developer可以访问其它数据库?
  答案是:添加JDBC 驱动,使其可以访问诸如MS SQL、My Sql、Sybase等数据库.
  添加三方数据库支持的方法
  点击sql developer的菜单的 选项→ 工具(Tools)→ 首选项(Prefences).见图(二)。
DSC0001.jpg

  图(三)
  2 解压刚刚下载的jtds-1.2.2-dist,确认该文件夹下有名称为jtds-1.2.2.jar的文件。
  3 这个jtds-1.2.2.jar就是上面提到的添加项目 对应的文件。
  4 添加过程见图(四)
DSC0002.jpg

  图(四)
  ********************************************************************************************************************************
  至此我们仅仅是做了可以建立sql server的连接的准备工作,(My sql,Sybase等的下载相关驱动见下说明)。
  My sql 的JDBC驱动下载链接如下:
  http://dev.mysql.com/downloads/connector/j/5.0.html
  mysql-connector-java-5.0.4.tar.gz(或.zip)压缩包内含有个mysql-connector-java-5.0.4-bin.jar的文件.
  Sybase的JDBC驱动 下载链接如下:
  http://www.sybase.com/detail?id=1009805
  或则点击Sybase中国官网的链接,如下:
  http://www.sybase.com.cn/gvswse/site/china/downloads/evaluation.jsp
  对应的下列条款
  jConnect 4.5 and 5.5 for JDBC
  真正的开始
  以上只是配置Oracle Sql Developer可以连接Sql server(MS SQL),这是前提.之下的才是移植的步骤
  Step 1 :creat a sql server connect
  方法同建立Oracle的连接类似,这里不再赘述。截图见图(五):
DSC0003.jpg

  图(五)
  补注:这里可能出现连接到sql server2005报错的现象(Faiture-Cannot connect to Microsoft SQL Server on localhost). 请确定你打开了sql server的1433端口(默认).
  方法如下:
  如果你的OS是Vista的,请先切换控制面板到经典视图.... ....控制面板 →  管理工具 → 计算机管理 → 服务与应用程序(左侧选项) → SQL Server 2005 Network Configuration(点开上一步的节点) → 设置TCP/IP属性(右边面板处) → 点击IP address 选项 → 设置IPAll中的TCP Port为1433 → 确定后 重新启动SQL Server服务即可.
  ① 验证1433端口打开的方法:
  Win(微表)+R(或则 点击开始→运行) → 输入CMD → netstat/na → 即可以查看1433端口有没有打开..
  ② 验证sql developer连接到sql server
  输入完连接名(比如sa@sqlserver),用户名(比如SA),密码,主机名(比如localhost)及端口(比如1433)后,如果你点击Retrieve database后,右边的下拉框可以选择数据库,则证明连接成功了.
  ③再小注 默认如果不Retrieve database,则连接的是Master数据库
  Step 2 Create user with system permission
  建立个Oracle的system帐号(或则具有类似sys权限的用户)连接
  建立此连接的用途:
  Ⅰ执行创建下面要用到用户的migration的SQL语句。
  Ⅱ 执行移植过程中产生的DDL语句
  Ⅲ 以及验证整个过程是不是成功,见图(六)
DSC0004.jpg

  图(六)
  Step 3 create migration user
  方法:
  在Step 2的连接状态下,执行以下Sql 代码
  --Creating user migration

  CREATE USER migration>  DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
  GRANT CONNECT, RESOURCE, CREATE VIEW, CREATE PUBLIC SYNONYM
  TO migration WITH ADMIN OPTION;

  GRANT>
  ALTER ANY TABLE,>  COMMENT ANY TABLE, CREATE ANY SEQUENCE, CREATE ANY TABLE,
  CREATE ANY TRIGGER, CREATE ROLE, CREATE TABLESPACE,
  CREATE USER, DROP ANY SEQUENCE, DROP ANY TABLE,
  DROP ANY TRIGGER, DROP TABLESPACE, DROP USER,
  DROP ANY ROLE, GRANT ANY ROLE, INSERT ANY TABLE,
  SELECT ANY TABLE, UPDATE ANY TABLE
  TO migration;
  --解决用户migration不能登录的问题
  GRANT CREATE SESSION TO migration WITH ADMIN OPTION;
  step 4 create migration connect and link a repository
  完成step 3之后,创建migration连接(用户名migration 密码migration)方法和step 2类似。
  创建Repository的方法,sql developer→Migration→Repository Management→Create Repository
  关联Repository的方法,右击Migration_test(我的migration帐号的连接名)→选择Migration Repository→
  Associate Migration Repository。见下图(七)
DSC0005.jpg

  图(七)
  Step 5 Capture Microsoft Sql Server
  这时你右击之前建立的sql server的连接(我的例子名称是liang_server)→选择Capture Microsoft Sql Server
  这时你再看左边栏下的Captured models,将多了个下图样的节点
DSC0006.jpg

  图(八)
  Step 6 Convert to Oracle model
  右击Step 5刚刚建立的Capture models→选择Convert to Oracle model,这时左边栏的Converted models将多个节点。见下图(九)
DSC0007.jpg

  图(九)
  Step 7 Generate Sqls
  右击Step 6下的Converted model→点击Generate(生成Oracle能识别的SQL语法)→执行该DDL语句
  (在之前建立的System帐号的连接下做,或则有类似sys system权限的帐号连接),见图(十)
DSC0008.jpg

  图(十)
  小注:这里将生成一个和oracle对应的用户,比如我的用户名是Dbo_testshen,密码和用户名一致。
  当然自己可以修改该脚本 并执行。
  这时,表结构已经在该用户下产生了。如果你迫不及待要看此结构。可以通过以下语法去查看(System连接状态下)
  Desc dbo_testshen.testa.
  将会显示出testa表的结构。
  Step 8 Create new connect
  建立Step 7中生成的了Oracle用户的连接,方法类似Step 2.我这里生成的用户是Dbo_testshen,不再详说。
  Step 9 Move Data
  右击Step 6下的Converted model(转移数据至Oracle中)→选择Move Data。如下图(十一、十二)
DSC0009.jpg

  图(十一)
  ↓         ↓          ↓

  图(十二)
  Step 10 Test
  点击Ok,并做测试(查看数据是否转移到Oracle中)
  Test Case 1:
  select table_name from user_tables(Sql语句如下)
  结果如下:
  TABLE_NAME
  ------------------------------
  CSVIMP
  FORYOU
  MYTESTFORMATFILES
  TEST_REPLACE
  TESTA
  TESTB
  TESTC
  TESTFULLJOIN1
  TESTFULLJOIN2
  FORTEST
  TESTDATATABLE
  TB22
  DOG_TEST
  13 rows selected
  Test Case 2:
  select * from testb;
  结果如下:
  EMPID                  EMPADDR
  ---------------------- --------------------
  1                      上海
  2                      淮南
  3                      合肥
  4                      黄山
  OverOverOverOverOverOverOverOverOverOverOverOverOverOverOverOverOverOverOver
  ---对应DBO用户...
  updated 12 30
  Updated 09/03/24


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-622781-1-1.html 上篇帖子: SQL Server常用的几种启动方式 下篇帖子: 如何在本地网络中查找所有可用的SQL Server实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表