怎样将oracle数据库中的一个表导入到另一个服务器数据库中

怎样将oracle数据库中的一个表导入到另一个服务器数据库中,第1张

主要通过几下命令:

exp/imp

expdp/impdp

dblink

spool/sqlldr

pl/sql导出insert语句

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

1、创建pfile

create pfile from spfile;

2、关闭数据库

shutdown immediate

3、移动文件,并且准备一个文件列表(控制文件、数据文件、联机日志文件)。

4、记事本修改pfile内容,将控制文件位置改为新文件位置。

5、使用修改后的pfile启动到mount状态

startup mount pfile='xxxx';

6、逐个修改数据文件位置

alter database rename file 'D:\oracle\product\1020\oradata\orcl\system01dbf' to 'e:\xxx\system01dbf';

注:临时表空间的文件可以不用管,回头删了重新创建即可。

7、打开数据库。

alter database open;

8、根据新的pfile重新创建spfile

create spfile from pfile='xxxx';

9、完毕。

1、 运行MySQL Migration Toolkit,一路“Next”到“Source Database”,在Database System中选择Oracle Database Server,如果第一次使用会告之要求加载驱动程序ojdbc14jar。

加载驱动程序之后,界面将变成如下的形式,在其中填写Oracle数据库的连接信息,按“Next”继续。

2、 在Target Database中默认Database System为MySQL Server,在Connection Parameters中填写相应的MySQL数据库的连接信息,按“Next”继续。

3、进行数据库连接测试,测试通过后按“Next”到Source Schemata Selection,点选准备进行数据迁移的Schemata后按“Next”继续。

4、在Object Type Selection,点Detailed selection按钮,在下方左侧列表中选择不进行迁移的表,将其放入右侧列表中,即左侧列表剩余的表都将进行数据迁移。选择好之后按“Next”继续。

5、

在Object Mapping的Migration of type Oracle Schema,如果要设置参数,点Set

Parameter按钮。如果默认数据库表为UTF8的话,则选择Multilanguage;如果默认数据库表为GBK的话,则需要选择User

defined,并在下方填写charset=gbk, collation=gbk_general_ci。Migration of type

Oracle Table中要设置参数点Set Parameter按钮。如果默认数据库表为UTF8的话,则选择Data

consistency/multilanguage;如果默认数据库表为GBK的话,则需要选择User

defined,并在下方填写addAutoincrement=yes, charset=gbk,

collation=gbk_general_ci, engine=INNODB。选择好之后按“Next”继续。

6、再到Manual

Editing,在这里可以修改建表脚本。由于Oracle与MySQL之间语法规则的差异,通常需要对脚本的数据类型以及默认值进行调整,比如

Oracle中通常会对Timestamp类型的数据设置默认值sysdate,但在MySQL中是不能识别的。在Filter中选择Show All

Objects,然后在Migrated

Objects中选择要修改脚本的表,再点击左下方的Advanced就可以进行脚本编辑了。修改完之后点击右侧Apply

Changes按钮保存,按“Next”继续。

7、然后一路“Next”,如果没有提示出错的话,就可以将指定表中的数据导入MySQL了。如果有提示出错信息,则需要返回到Manual Editing处对脚本重新进行修改。

要补充一点,在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet

are not

allowed”。这是由于MySQL数据库有一个系统参数max_allowed_packet,其默认值为1048576(1M),可以通过如下语句

在数据库中查询其值:

show VARIABLES like '%max_allowed_packet%';

修改此参数的方法是在mysql文件夹找到myini文件,在myini文件[mysqld]中添加一行:

max_allowed_packet=16777216

重启MySQL,这样将可以导入不大于16M的数据了,当然这数值可以根据需要作调整。

迁移主要有两个工作:

1

根据Sql

Server数据库生成创建Oracle数据库的脚本

2

修改代码中的SQL语句

根据Sql

Server数据库生成创建Oracle数据库的脚本

1

用PowerDesiner将Sql

Server数据库反向工程生成物理数据模型

2

根据反向工程生成的物理数据模型创建逻辑模型

3

再根据逻辑模型生成Oracle数据库版本的物理模型

4

根据Oracle数据库版本的物理模型生成Oracle数据库创建脚本

5

按照Oracle命名规则和数据类型定义修改Oracle数据库创建脚本

6

在PL/SQL

Developer中执行以检验其正确性

修改代码中的SQL语句

1

Sql

Server中经常用方括号把表名和字段名括起来,

到Oracle中要把这些方括号都去掉

2

将参数变更前的"@"符号改为":"符号

3

将Sql

Server专有的方法和函数替换成Oracle相应的方法和函数

4

在PL/SQL

Developer中执行SQL语句以检验其正确性

转换过程中的常见问题

1

表名和字段名使用了Oracle中的关键字

2

Sql

Server中的NVARCHAR数据类型可存4000个汉字,

Oracle中的NVARCHAR/NVARCHAR2数据类型只能存2000个汉字

3

索引名称和外键名称超过了30个字符

1exp/imp:可针对整个数据库对象、用户对象、指定表等进行。(需控制重复对象,数据表停用状态下进行)

2sqlldr:对某个或几个表的特定资料导出为文本文件,再用sqlldr导入。(文本格式要正确,控制较复杂,效率低)

3建立两个数据库间链接,直接用insert或copy语句迁移,也是针对少数表进行。(可在数据库使用状态下进行)

怎么在oracle库复制数据到另外一个oracle库

: 1、exp导出表,然后imp导入表; 2、两个数据库之间连接使用DBLink,在其中一个数据库里就可以访问另一个数据库的表了。

停数据库

将要迁移的数据文件copy到其他目录

启动数据库到nomount或mount状态(具体是nomount还是mount状态忘了,startup到什么状体就什么状态)

使用rman重新rename数据文件

rename完成后open数据库

大致就以上目录。

以上就是关于怎样将oracle数据库中的一个表导入到另一个服务器数据库中全部的内容,包括:怎样将oracle数据库中的一个表导入到另一个服务器数据库中、如何将ORACLE数据库数据文件迁移到其它目录、如何将数据导入oracle数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10138399.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存