我在不同的服务器上有 2 个具有相同架构的数据库。我需要将数据从表 T 复制到不同服务器和网络的测试数据库中的同一个表 T。
最简单的方法是什么?我听说可以将数据转储到平面文件中,然后插入到数据库中。它是如何工作的?这可以使用sqlplus和oracle数据库来实现吗?
谢谢!
使用Oracle导出将整个表导出到文件,将文件复制到服务器B并导入。
http://www.orafaq.com/wiki/Import_Export_FAQ
您可以使用 rsync 将一个或多个 oracle .dbf 文件同步到另一台服务器。这有问题,并且同步所有文件更可靠。
对于记录组,编写一个查询来构建一个管道分隔(或任何适合您的数据的分隔符)文件,其中包含您需要移动的行。将该文件复制到 serverB。为 sqlldr 编写一个控制文件并使用 sqlldr 将行加载到表中。sqlldr 是 oracle 安装的一部分。
http://www.thegeekstuff.com/2012/06/oracle-sqlldr/
如果您在每台服务器上都有 db 侦听器并且 tnsnames 知道这两者,您可以直接:
insert into mytable@remote
select * from mytable
where somecolumn=somevalue;
查看远程表部分:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9014.htm
如果这将是一个持续的事情,请创建一个从 instance@serverA 到 instance@serverB 的 db 链接。然后,您可以对一个实例或另一个实例或两者上的数据执行您有权执行的任何操作。
http://psoug.org/definition/CREATE_DATABASE_LINK.htm