nohup ./command.sh > output 2>&1 &

  

SQL迁移到ORACLE实例

日常运维中,我们经常会有数据库不同类型的迁移,比较多的就是从sql server迁移到oracle 的情况,前一阶段正好有一个类似的项目进行,我将其中的一些注意事项记录下来。

一、迁移的方案

之前也进行过sql -> oracle的迁移,使用过sql server的dts也单独自己写过sqlloader脚本,但是两种方案都不是很满意,dts经常出错,sqlldr的手工编辑很费劲,稍不注意就会写错。

这次参考了http://www.cnblogs.com/hiizsk/archive/2011/07/10/2102452.html

使用ORACLE SQL DEVELOPER进行了操作,效果不错。

以下有几个需要特别注意的事情,提前说,很重要的。

  1. ORACLE SQL DEVELOPER不是pl/sql developer,这个要注意啊
  2. ORACLE SQL DEVELOPER的版本问题,上面地址参考文档或者从oracle官方站点下载的我都没有试验成功,反而到是一个比较老的版本3.0.04的版本试验成功了,在文档最后我提供了下载,这个版本是没有jre的,对应的是6不是7啊,请自行安装,在首次运行的时候提示指定jre6的路径,指定对了就可以正常运行了。
  3. 上面文档中没有提及怎么导入,这个是非常重要的,需要将导出的文档上传到服务器执行。
  4. 编码,这个是折腾我最多的内容,因为sql server2008 R2不支持bcp的utf-8导出,但是oracle 生产机现在基本都是al32utf8的,所以需要手工将导出的data文件夹的内容转码到utf-8.EditPlus有一个批量转码的功能,非常好用对小文件批量操作很好,我的480多个文件基本都是靠它完成的。对于大于100M以上的文件editplus完全hang不住,只能使用ultraedit,我用它执行2G多的一个文件,几分钟搞定。

二、实际步骤

此步骤很多参考绝殇 的内容啊,版权是他的啊。我在其中补充和修正了一些内容。

  1.  第一部分:获取工具

不建议去oracle官网下载,虽然支持到oracle 12C,反正我是没用它弄好我的sql server 2008 R2到oracle 11G 的转换,能使用的人如果成功告诉我下。

直接到文档最后下载提供的内容即可,注意自行安装jre6

    2.   下载SQL SERVER的驱动程序

绝殇说的”点击菜单帮助,选择检查更新,弹出检查更新向导窗口”我一直没成功,我只好自己自行下载了jtds-1.2.2-dist,这个我也提供了下载。关联方式如下

启动develop -----工具-----首选项-------数据库-----第三方jdbc驱动程序,添加条目选中jtds的文件,然后重启develop即可。

  1. 连接oraclesql,建立账户

基本和文档一样(不清楚脚本见http://www.cnblogs.com/hiizsk/archive/2011/07/10/2102452.html),这里多说一句,默认新创建的用户的默认表空间是user,我不建议这样,新建立一个表空间,然后建立的MIGRATONS用户的表空间使用新建的,尽量不要影响默认表空间。

另外后面脚本执行完毕后,创建的表的默认空间也是user,这个时候导入数据前建议在新建一个表空间,将这些表移动到新表空间如newtbs。

Select 'alter table '||table_name||' move tablespace newtbs;' from user_all_tables;

3. 数据库移植向导等

完全可按照文档执行,最后一步也是脱机即可。

(1)SqlServer中的架构到Oracle中的模式,名称的处理

这部分不用这么处理,后面我有更好的办法,跳过

(2)转移数据

从这部分后,文档语焉不详,其实这才是执行导入容易出错的地方。首先导出数据执行unload_script [server] [username] [password]

这个执行可以在本机使用cmd执行,注意看下生成的目录结构如下

导出数据可以在2014-09-28_17-02-42下执行unload_script.bat

我的项目导出10G左右大概在十几分钟即可。

接下来就是转码工作了,在上图的data目录中,选中文件使用editplus或者ultraedit就可以把文件转码到utf8格式。

(3)导入数据

把全部的文件上传到linux服务器(你的oracle不会运行在windows下吧?)

(1) 修改shell文件

修改dbo文件下的oracle_ctl.sh文件

增加

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

注意这里的值是你目的oracle的nls值,可以自行查询

如果您的文件中有类似我的超过500M的大文件,修改默认的sqlldr语句

默认:

sqlldr $1/$2 control=control/dbo_jzprod.uf_bud_payoutdetthird.ctl log=log/dbo_jzprod.uf_bud_payoutdetthird.log

在后面增加下面的语句采用平行append方式,跳过索引

 direct=true parallel=true skip_index_maintenance=true

(2) 修改control文件

如果你使用了上面的direct=true的数据,那对应的control文件也需要修改,如上面的dbo_jzprod.uf_bud_payoutdetthird,control文件在control目录下,如:

load datainfile 'data/dbo_jzprod.CARDCOMBINATIONDETAIL.dat'"str '<EORD>'"into table dbo_jzprod.CARDCOMBINATIONDETAILfields terminated by '<EOFD>'trailing nullcols

需要在into 之前增加APPEND

(3) 执行

执行shell,可能大家觉得非常简单,但是也需要有些注意事项

./**.sh 没问题,但是我们需要注意,我们需要执行dbo目录下的shell

因为默认的developer给我们生成了很多层的sh,我们需要执行最内层的sh

3.1:^M的问题:

我们编辑的sh,执行会报错,vi会发现内部的每行最后存在一个^M

使用如下代码即可。

 :1,$ s/^M//g

^M 输入方法: ctrl+V ,ctrl+M

3.2:后台运行

直接运行shell需要时间比较长,我们采用nohup后台进程运行的方式

nohup ./command.sh > output 2>&1 &

注意这里回车exit一直到退出此进程,然后重新启动一个新进程

Tail –f output观测实际的进展即可。

3.3 最后导出成功后,需要重建索引并且迁移到单独的表空间,对lob字段单独表空间存储等

oracle sql developer:http://pan.baidu.com/s/1hq7oIUg

jtds:http://pan.baidu.com/s/1sjO7vop

转载于:https://www.cnblogs.com/tippoint/p/4001593.html

SQL迁移到ORACLE实例相关推荐

  1. 新建oracle数据库 环境查询,Oracle单实例数据库迁移到Oracle RAC 环境之(2)--实施篇...

    Oracle单实例数据库迁移到Oracle RAC 环境之(2)--实施篇 系统环境: 操作系统:RedHat EL55 Oracle : Oracle 11.2.0.1.0 集群软件:Oracle ...

  2. Oracle RAC迁移到单实例(通过备份集手动恢复)

    该文章为网络资源整理,仅供个人学习笔记用途,如有侵权请联系删除! 实验环境 操作系统:centos6.8 源端:RAC11.2.0.4 (10.16.35.131/132) 目标端:Oracle 软件 ...

  3. 应用程序的数据库从Sql Server迁移到Oracle

    应用程序的数据库从Sql Server迁移到Oracle 迁移案例一:数据库: Sql Server 2008到Oracle 9i 工具: Sybase PowerDesiner 12 试用版, PL ...

  4. Oracle实例迁移_真实场景实操

    背景 环境: oracle为11.2版本 Linux-Centos6.5操作系统. 现状: 两台主机198,197 ,均已安装了oracle服务端. 其中198上已经创建了两个实例,197上只有orc ...

  5. sqldeveloper mysql迁移_通过SQL Developer工具将MySQL数据库内容迁移至Oracle的步骤

    通过SQL Developer工具将MySQL数据库内容迁移至Oracle的步骤 发布时间:2020-06-08 15:52:18 来源:51CTO 阅读:210 作者:三月 本篇文章给大家主要讲的是 ...

  6. oracle 图片 显示不出,Sql Server 中image类型迁移到Oracle 中Blob类型出现图片显示不出来,why????请博客们帮忙 | 学步园...

    我现在在一项目中碰到这么一个问题 Sql Server 中image类型迁移到Oracle Blob类型出现图片显示不出来,我在Sql Server 中看了一条image数据 如下: 1.Sql Se ...

  7. RAC 实例 迁移到 单实例 -- 使用导出导入

    昨天整理做了用导出导入的方法,将Oracle 单实例 迁移到 RAC 实例的实验. 今天来做一个用导出导入的方法将RAC 实例迁移到 Oracle 单实例. 方法都差不多. 只不过顺序倒过来了. Or ...

  8. Oracle 实例管理

    Oracle实例(instance)是一组Oracle后台进程和内存结构的集合.后台进程主要包括SMON,  PMON, DBWR, CKPT 和 LGWR 等:内存结构包括数据库高速缓冲区.重做日志 ...

  9. Mysql迁移到Oracle方法

    目录 1简介... 1 2 准备... 1 2.1 环境说明... 1 3 安装... 2 4 配置... 2 5 使用... 2 5.1 验证实验... 2 5.2 问题分析... 4 6 延展.. ...

最新文章

  1. C++返回字符串函数的几种实现方法
  2. 自定义分页 html,MVC 自定义HtmlHelper帮助类型之分页
  3. 2017-10-08 前端日报
  4. Ubuntu 18.04环境下Django的安装配置图文详解
  5. mysql -e 导出_mysql 导出数据导入数据
  6. 油猴脚本使用方法与管理插件方法+开发插件与安装插件的方法
  7. cad直线和圆弧倒角不相切_数控加工中心如何使用任意角度倒角C和倒圆角R功能的编程...
  8. CAT的Client端初始化
  9. 原创超简单代码(1.21.50)
  10. Vue上传文件 iview Upload UI 组件上传组件
  11. 爬虫之上传文件,request如何上传文件
  12. button标签定义type属性
  13. 统计学——数据的分类
  14. 将各种格式flv,avi,mp4等的文件,转码成MP4(无音频)
  15. 杂谈2008—关于游戏和游戏的那些事
  16. Pycharm配置——解释器(interpreter)
  17. 互信息的深度理解(总结的不错值得一看)
  18. 致敬即将到来的web3.0
  19. 参加UI培训课程学什么
  20. 在麒麟V10服务器上安装与运行金蝶AAS中间件

热门文章

  1. POCO C++库导游【转】
  2. 草地排水-网络流dinic
  3. KindEditor在eclipse里的配置方法
  4. Qt之QParallelAnimationGroup
  5. 【poj3358】消因子+BSGS 或 消因子+欧拉定理 两种方法
  6. WPF的ListBox的数据绑定,但需要添加控件在里面的时候
  7. NET sturct值类型
  8. CentOS 国内yum源
  9. javascript基础系列:javascript中的变量和数据类型(一)
  10. PAT乙级(Basic Level)真题--跟奥巴马一起编程(15)