分享!!!Oracle数据转移(转储)的方案

freddy2003 2004-12-16 04:51:44
花了两个小时,写了一点技术总节,与大家分享。望大家多提的意见。!!!
----非经个人同意,不得转载,只作个人参考。如要转载,请注明出处-----

Oracle数据转移(转储)的方案
(Fred Zhang编写—2004-12-16)

一. Oracle数据转移(转储)的方法
Oracle数据转移(转储)的方法可以有以下几种,由于源数据库与目的数据库的格式有不同种类,所以在数据转储时,有的时候可能可以使用其中的好几种方法,有的时候可能只能用其中的一种方法,有的时候可能要用其中的几种方法搭配使用才能完成,不管怎么样,只要熟悉以下各种方法,所有的Oracle数据转移(转储)都可以用这几种方法来完成。下面先介绍方法,然后再介绍搭配使用方案。

方法一:用Imp/exp:
导出
exp user/password@数据ID owner=方案名 file=c:\a.dmp log=c:\a.log
文件就在C:下
导入:
在你的数据库导入
先建一用户user
imp user/password@数据ID file=c:\a.dmp log=c:\a.log full=y

方法二:用SQL Server中的DTS工具:
只要在DTS中设定好源数据库,与目的数据库就可以了

方法三:用Oracle的工具:Oracle migration workbench

方法四:用Oracle的工具:SQLLDR

方法五:用SQL语句:
两个表T1,T2之间复制,如果T2表结构还没有生成:
create table 方案名2.T2 as select * from方案名1.t1;
两个表T1,T2之间复制,如果且T2表结构已经生成时:
insert into方案名2.t2 select * from方案名1.t1;

二. 常见方法的搭配使用方案
1. 同一方案下数据转移(转储):用方法五
2. 同一台电脑中,不同方安案下数据转移(转储):用方法五
3. 不同电脑下数据转移(转储):
方法一+方法五
方法二
方法三
4. 相同的操作系统,不同数据库类型下(如Oracle与DB2之间)数据转移(转储):
方法二
方法三
5. 不同的操作系统(如Windows与UNIX),相同的数据库类型下(都是Oracle)数据转移(转储):
方法一+方法五
方法三
6. 不同的操作系统(如Windows与UNIX),不同数据库类型下(如Oracle与DB2之间)数据转移(转储):
方法三
7. Txt文件,Excel文件, Dat文件与Oracle之间的转移(转储):
方法二
方法三
方法四

三. 总节
1. 以上各种方法与搭配使用方案虽然已基本包括所有可能的出现的情况,但在实际使用的过程中可能会出现一些变化,这就要我们灵活运用。
2. 在实际使用的过程中可能会出现用其中一种方法不成功,我们要多种方法尝试。
3. 在实际使用的过程中要注意执行效率的问题。比如在数据量太大的时候(5GB),exp/imp就要花比较长的时间。
4. 要注意使用的方便性,比如SQL Server的DTS比Oracle的Oracle migration workbench。
...全文
524 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
junyh 2004-12-17
  • 打赏
  • 举报
回复
好东东,thanks
liuyi8903 2004-12-17
  • 打赏
  • 举报
回复
多谢楼主:)顶!
tian00weiwei 2004-12-17
  • 打赏
  • 举报
回复
请问楼主,我曾经用法二希望解决从sqlserver到oracle的数据库迁移问题。结果是,改动非常麻烦,需要一个表一个表地改脚本和他的操作框里的文字:情况:
1。sqlserver给的脚本是create table "a",表名都用双引号括起来了,这个在oracle今后的开发是麻烦,所有涉及表名的地方都要加“”才能引用。
2。我整理了脚本,把建库的脚本在oracle跑通了,剩下的问题是把sqlserver的数据传给oracle ,结果用法二,比如预导表a,而ora的结果是:select * from 结果(以这个为名又建了一个表)
以上问题应该怎么处理?
freddy2003 2004-12-17
  • 打赏
  • 举报
回复
TO:pjy998(jieky)
先建立一个连接(dblink),然后就可以用方法五:用SQL语句:
pjy998 2004-12-17
  • 打赏
  • 举报
回复
收藏,順便問下,遠程端為8i,本機為9i該如何把數據導入到本機啊,
我只是想在本機上弄個測試環境。
在sqlnet.ora上的內容為:
#NAMES.DEFAULT_DOMAIN = mycompany.com

#NAME.DEFAULT_ZONE = world

NAMES.DEFAULT_DOMAIN = world

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES)

我每次只能使用一邊的(注釋掉mycompany.com才能用word,反過來一樣)怎樣才能讓其可以同時使用。
當然我不想換成word域
tomhuang 2004-12-17
  • 打赏
  • 举报
回复
正需要,收藏!
gogowhy 2004-12-17
  • 打赏
  • 举报
回复

收藏~
zh430 2004-12-17
  • 打赏
  • 举报
回复
xuexi
fuxia 2004-12-16
  • 打赏
  • 举报
回复
写的好,收藏
freddy2003 2004-12-16
  • 打赏
  • 举报
回复
Oracle数据转移(转储)的方案
(Fred Zhang编写—2004-12-16)

一. Oracle数据转移(转储)的方法
Oracle数据转移(转储)的方法可以有以下几种,由于源数据库与目的数据库的格式有不同种类,所以在数据转储时,有的时候可能可以使用其中的好几种方法,有的时候可能只能用其中的一种方法,有的时候可能要用其中的几种方法搭配使用才能完成,不管怎么样,只要熟悉以下各种方法,所有的Oracle数据转移(转储)都可以用这几种方法来完成。下面先介绍方法,然后再介绍搭配使用方案。

方法一:用Imp/exp:
导出
exp user/password@数据ID owner=方案名 file=c:\a.dmp log=c:\a.log
文件就在C:下
导入:
在你的数据库导入
先建一用户user
imp user/password@数据ID file=c:\a.dmp log=c:\a.log full=y

方法二:用SQL Server中的DTS工具:
只要在DTS中设定好源数据库,与目的数据库就可以了

方法三:用Oracle的工具:Oracle migration workbench

方法四:用Oracle的工具:SQLLDR

方法五:用SQL语句:
两个表T1,T2之间复制,如果T2表结构还没有生成:
create table 方案名2.T2 as select * from方案名1.t1;
两个表T1,T2之间复制,如果且T2表结构已经生成时:
insert into方案名2.t2 select * from方案名1.t1;

二. 常见方法的搭配使用方案
1. 同一方案下数据转移(转储):用方法五
2. 同一台电脑中,不同方安案下数据转移(转储):用方法五
3.不同电脑下数据转移(转储):
方法一+方法五
方法二
方法三
4.相同的操作系统,不同数据库类型下(如Oracle与DB2之间)数据转移(转储):
方法二
方法三
5. 不同的操作系统(如Windows与UNIX),相同的数据库类型下(都是Oracle)数据转移(转储):
方法一+方法五
方法三
6.不同的操作系统(如Windows与UNIX),不同数据库类型下(如Oracle与DB2之间)数据转移(转储):
方法三
7. Txt文件,Excel文件, Dat文件与Oracle之间的转移(转储):
方法二
方法三
方法四

三. 总节
1.以上各种方法与搭配使用方案虽然已基本包括所有可能的出现的情况,但在实际使用的过程中可能会出现一些变化,这就要我们灵活运用。
2.在实际使用的过程中可能会出现用其中一种方法不成功,我们要多种方法尝试。
3.在实际使用的过程中要注意执行效率的问题。比如在数据量太大的时候(5GB),exp/imp就要花比较长的时间。
4.要注意使用的方便性,比如SQL Server的DTS比Oracle的Oracle migration workbench要方便。
zhaokeke2004 2004-12-16
  • 打赏
  • 举报
回复
支持一下

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧