我在不同的服务器上有 2 个具有相同架构的数据库。 我需要将表 T 中的数据复制到不同服务器和网络中测试数据库中的同一个表 T。
最简单的方法是什么? 我听说数据可以转储到平面文件,然后插入到数据库中。它是如何工作的? 用sqlplus和oracle数据库可以实现吗?
谢谢!
最佳答案
使用Oracle export将整张表导出到一个文件,复制到serverB并导入。
http://www.orafaq.com/wiki/Import_Export_FAQ
您可以使用 rsync 将一个或多个 oracle .dbf 文件同步到另一台服务器。这有问题,同步所有文件的工作更可靠。
对于记录组,编写一个查询来构建一个管道分隔(或任何适合您的数据的分隔符)文件,其中包含您需要移动的行。将该文件复制到服务器 B。为 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
如果这将是一个持续的事情,创建一个从 instance@serverA 到 instance@serverB 的数据库链接。 然后,您可以对一个实例或另一个实例或两个实例上的数据执行您有权执行的任何操作。
http://psoug.org/definition/CREATE_DATABASE_LINK.htm
关于database - 如何将数据从一个数据库复制到不同服务器上的另一个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13595333/