我在不同服务器上有2个具有相同架构的DB。 我需要将表T中的数据复制到不同服务器和网络中的测试数据库中的同一个表T.
最简单的方法是什么? 我听说数据可以转储到平面文件而不是插入到数据库中。它是如何工作的? 可以使用sqlplus和oracle数据库来实现吗?
谢谢!
答案 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