将多个表从一个数据库复制到另一个
Posted
技术标签:
【中文标题】将多个表从一个数据库复制到另一个【英文标题】:Copying more than one tables from one database to another 【发布时间】:2015-04-03 11:24:47 【问题描述】:我在一个数据库中有 160 个表。要求是将它们复制到不同的数据库中。
数据库:Oracle 使用 TOAD 工具。
例如:
数据库 A:160 个表
数据库B:想将数据库A的160张表全部复制到B中。
我知道我可以为一个表编写数据库链接,但我想从不同的数据库中复制所有 160 个表。这可能吗?
【问题讨论】:
你让这两个数据库依赖于一台服务器还是不同的服务器 到目前为止你尝试过什么? 【参考方案1】:我建议使用标准的 DATA PUMP 功能。您需要使用 EXPDP
从源中导出所有 160 个表,然后使用 IMPDP
将它们导入目标数据库。
请参阅文档以了解有关 DATA PUMP 的更多信息。
我相信大多数基于 GUI 的工具,如 TOAD
、SQL Developer
等都具有导出和导入功能。
【讨论】:
【参考方案2】:鉴于您只需要表/数据并且您不关心索引和约束,并且您可以使用 DBLINK,您可以使用一个简单的脚本将所有表从远程服务器复制到本地服务器:
BEGIN
FOR C IN (SELECT * FROM USER_TABLES@REMOTEDB) LOOP
EXECUTE IMMEDIATE 'CREATE TABLE ' || C.TABLE_NAME || ' AS (SELECT * FROM ' || C.TABLE_NAME || '@REMOTEDB)';
END LOOP;
END;
/
如果这不是一个选项,那么确实应该使用 DATA PUMP,正如@LalitKumarB 已经说过的那样。
【讨论】:
以上是关于将多个表从一个数据库复制到另一个的主要内容,如果未能解决你的问题,请参考以下文章