DBLink实现备份文件不落盘的导入其他Oracle数据库实例的方法
2022/1/12 2:34:21
本文主要是介绍DBLink实现备份文件不落盘的导入其他Oracle数据库实例的方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
DBLink实现备份文件不落盘的导入其他Oracle数据库实例的方法
背景
- 公司内经常有从其他服务器备份数据库实例的需求
- 之前的操作一般需要,备份源服务器使用expdp将source导出dump文件.
- Copy到目标服务器,然后使用imdp将导出的dump文件实现导入.
- 一般需要有两台机器的系统权限. 比较繁琐一些.
- 最近看到可以有dblink的方式进行学习与使用,这里进行简单总结
创建dblink
- DBlink的创建方式有很多种,这里使用最简单的创建语法.
- 注意下面所以一句SQL 需要复制到一行里面执行操作.
create public database link linkToSource connect to system identified by passwordOnSourece using '//sourceip:1521/sourcesid'
- 说明一下
创建dblink的方式有很多,感觉这种方式最简单. 也可以修改tnsname, 但是可能会影响已有的系统
DBlink的简单验证
- 查看数据库信息
SQL> alter session set container=ora19cpdb01; Session altered. SQL> select count(1) from YourSourceDBname.YourBizTable@linkToSource; COUNT(1) ---------- 169
- 验证数据库无问题.
进行数据库的不落盘恢复操作
- 第一步需要在本地库创建需要进行恢复的用户和表空间
- 注意如果需要进行remap的话 建议设置好用户信息
- 注意以下没一个分号分隔为一行,需要完整执行
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 不导入统计信息 提高导入速度
扩展知识
- 其实可以在创建一个针对本地sid的dblink 可以实现快速的备份恢复自己已有的数据库实例
- 其实不需要创建 user和赋权. impdp 的时候会自动进行用户的创建和grant 权限
- 但是需要创建表空间, impdp没有创建表空间的权限(至少我这个命令没有 )
- 本地不落盘的备份恢复速度快很多, 6G的数据库25min左右就可以备份恢复完.
个人感悟
- 关于培训感想
自己从2008年开始工作就接触了Oracle数据库. 最开始使用imp/exp的备份恢复方式. 在Oracle11g时才使用了impdp/expdp数据泵的模式 最开始记得有11.2.0.1的deferred_segment_creation的bug导致空表导出失败 但是一直使用create tablespace, create user, grant privileges的方式建初始用户 今天才发现原来可以不使用user和grant权限,impdp会自动进行相应的创建. 所以感觉培训是非常重要的, 尤其是原厂的培训. 自己的人理解终归是不全面的 无法实现快速和正确的的技术传播. 希望公司以后能够加强原厂技术培训. 知识无价
这篇关于DBLink实现备份文件不落盘的导入其他Oracle数据库实例的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用