create public database link linkToSource connect to system identified by passwordOnSourece using '//sourceip:1521/sourcesid'
创建dblink的方式有很多,感觉这种方式最简单. 也可以修改tnsname, 但是可能会影响已有的系统
SQL> alter session set container=ora19cpdb01; Session altered. SQL> select count(1) from YourSourceDBname.YourBizTable@linkToSource; COUNT(1) ---------- 169
create tablespace SchemasInLocal datafile '/path/to/your/datafile.dbf' size 1024m autoextend on next 1024m ; create user SchemasInLocal default tablespace SchemasInLocal identified by LocalPassword; grant dba,resource,connect to SchemasInLocal;
impdp system/LocalPassword@127.0.0.1/LocalSid directory=Localdir logfile=impdpFromRemote.txt network_link=LinkToSourece schemas=SchemasInSource remap_schema=SchemasInSource:SchemasInLocal remap_tablespace=SchemasInSource:SchemasInLocal exclude=statistics
备份效果为:
# 文件大小 Total estimation using BLOCKS method: 6.295 GB # 执行时间 Job "SYSTEM"."SYS_IMPORT_SCHEMA_01" completed with 1 error(s) at Tue Jan xx xxxxx 2022 elapsed 0 00:46:59 # 6G多的数据库大约耗时 45分钟左右完成.
1. directory 是本地路径,用于存放导入日志 2. logfile 指定本地路径下的导入日志名称 3. network_link 指定本地创建的指向source源端的dblink 4. schemas 指定需要从source源端 恢复的数据库实例编号 5. remap_xxxx 进行remap 更换数据库实例的编号和表空间 6. exclude 不导入统计信息 提高导入速度
自己从2008年开始工作就接触了Oracle数据库. 最开始使用imp/exp的备份恢复方式. 在Oracle11g时才使用了impdp/expdp数据泵的模式 最开始记得有11.2.0.1的deferred_segment_creation的bug导致空表导出失败 但是一直使用create tablespace, create user, grant privileges的方式建初始用户 今天才发现原来可以不使用user和grant权限,impdp会自动进行相应的创建. 所以感觉培训是非常重要的, 尤其是原厂的培训. 自己的人理解终归是不全面的 无法实现快速和正确的的技术传播. 希望公司以后能够加强原厂技术培训. 知识无价