如何将数据从一个数据库复制到另一个数据库?

时间:2012-11-27 23:49:22

标签: database oracle testing backup sqlplus

我在不同服务器上有2个具有相同架构的DB。 我需要将表T中的数据复制到不同服务器和网络中的测试数据库中的同一个表T.

最简单的方法是什么? 我听说数据可以转储到平面文件而不是插入到数据库中。它是如何工作的? 可以使用sqlplus和oracle数据库来实现吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

使用Oracle导出将整个表导出到文件,将文件复制到serverB并导入。

http://www.orafaq.com/wiki/Import_Export_FAQ

您可以使用rsync将oracle .dbf文件同步到另一台服务器。这有问题,并且可以更可靠地同步所有文件。

对于记录组,编写一个查询以构建一个管道分隔(或适合您的数据的分隔符)文件,其中包含您需要移动的行。将该文件复制到serverB。为sqlldr编写一个控制文件,并使用sqlldr将行加载到表中。 sqlldr是oracle安装的一部分。

http://www.thegeekstuff.com/2012/06/oracle-sqlldr/

如果你在每台服务器上都有数据库监听器并且tnsnames知道这两者,你可以直接:

insert into mytable@remote 
select * from mytable
  where somecolumn=somevalue;

查看远程表部分:

http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9014.htm

如果这是一个持续的事情,请创建一个从实例@ serverA到实例@ serverB的数据库链接。 然后,您可以对一个实例或另一个实例或两者的数据执行任何权限。

http://psoug.org/definition/CREATE_DATABASE_LINK.htm