使用Oracle自带工具实现数据库备份与迁移(三)

才疏学浅,欢迎批评指正

使用Oracle的数据泵(expdp/impdp)结合DB_LINK实现数据库的备份与迁移
三.结合dblink使用expdp和impdp
由于使用数据泵迁库时需要接触到数据库所在的服务器端,而在一些情况下并不能对数据库所在的服务器端进行直接操作,则可以使用DB_LINK结合数据泵的方法实现数据库的备份与迁移
关于数据泵的相关语法可见
https://blog.csdn.net/xinxindiandeng9789/article/details/88198204
使用数据泵结合dblink迁库实战可见
https://blog.csdn.net/xinxindiandeng9789/article/details/88602907

1.说明(关于DB_LINK)
DB_LINK 是数据库链接,可以从本地数据库直接访问远程数据库
通过在 本地数据库所在服务端机器上 创建DB_LINK,可以像直接操作 远程数据库所在服务端机器 一样使用远程数据库

2.DB_LINK的相关语法

  • grant create public database link to remoteUSER
    给远程数据库用户XX授予创建db_link的权限
    grant create public database link to 远程数据库用户名

    ----在本地数据库所在服务器端机器上----

  • create public database link dblink1 connect to remoteUSER identified by remoteXX by using ‘localhost/test’
    使用用户XX,创建名为dblink1的远程连接,连接到test上
    create public database link 链接名 connect to 远程数据库用户名 identified by 远程数据库用户对应的密码 by using ‘远程数据库地址/SID’

  • drop public database link dblink1
    放弃dblink1
    drop public database link 连接名

  • select * from dba_db_links
    查找所有的dblink

  • select * from table1@dblink1;
    使用dblink1查询table1
    select * from 表名@链接名;

3.结合DB_LINK使用数据泵(expdp/impdp)语法总结
----从远程库中导出数据文件tables 至本地 ----

  • expdp localUSER/localPASS network_link = dblink1 dumpfile=tables .dmp tables=remoteXX .talbe1
    使用dblink1,使用数据泵从远程库中导出remoteXX用户下的table1至tables .dmp中
    expdp 本地库用户名/本地库用户密码 network_link = 链接名 dumpfile = 导出的文件名.dmp tables=远程库用户名.表名

----将从本地库中导出的数据文件tables导入远程库中 ----

  • Impdp localUSER/localPASS network_link=dblink1 dumpfile=tables tables=remoteUSER .table1 remap_schema=localUSER:remoteUSER remap_tablespace=localSpace:remoteSpace remap_table=table2 :table1
    使用dblink导入tables 数据文件中的table1,同时将表空间由原来的remoteSpace替换为localSpace,用户名由remoteXX替换为localUSER,并将table1改名为table2
    impdp 本地库用户名/本地库用户密码 network_link = 链接名 dumpfile=导入的文件名 tables =本地库用户名.本地库中的一张表 remap_schema=本地schema:远程库schema remap_tablespace=本地库表空间:远程库表空间 remap_table= 本地库中一张表的表名:远程库表名

你可能感兴趣的:(Oracle,数据库,数据库,Oracle)