ORACLE使用DBLINK导入导出数据

场景:

ORACLE数据库A:172.18.169.81:1521/orcl

ORACLE数据库B:127.0.0.1:1521/orcl

要将数据库A的所有数据导入到数据库B。

由于数据量极大,所以直接exp太慢,不能用

懒,不愿意写expdp,所以使用DBLINK进行导入。

过程:

1、在数据库B新建对应的用户、表空间

2、使用新建好的用户登录plsql,在左边列表栏里面找到database links,右键,点新建

3、配置好DBLINK之后,就可以使用select * from t_xxxx@DBLINK名称 来查询了,update/insert/delete也是一样的

4、利用DBLINK导入的思路就是利用create table xxx as select * from xxx@DBLINK名称 来实现的,那么要把每一张表的create语句都写好,表很多,自然是不能一句一句写的,那么就是用select table_name from dba_tables@DBLINK名称 where owner='A库的用户名'; 查出这个用户下的所有表的表名

5、有了表明,就可以利用语句进行拼凑,拼出所需要的语句:select 'create table '||table_name||' as select * from '||table_name||'@DBLINK名称;' from dba_tables@DBLINK名称 where owner='A库的用户名';

6、将拼凑出来的sql全部复制一下,放在sql执行窗口里面运行一下就可以了。

如果是同一个数据库实例,那就不用建dblink了,直接用用户名.表名即可

select 'create table '||table_name||' as select * from A库用户名.'||table_name||';' from dba_tables where owner='A库用户名'

阅读剩余
THE END
阿里云ECS特惠活动
阿里云ECS服务器 - 限时特惠活动

云服务器爆款直降90%

新客首单¥68起 | 人人可享99元套餐,续费同价 | u2a指定配置低至2.5折1年,立即选购享更多福利!

新客首单¥68起
人人可享99元套餐
弹性计费
7x24小时售后
立即查看活动详情
阿里云ECS服务器特惠活动