Oracle数据库备份/导入工具
expdp和impdp常用于ORACLE数据库的导入导出。
expdp导出数据库
1、root用户创建用于impdp/expdp导入导出的目录;
# mkdir -p /home/dmpdata # chown oracle:oinstall /home/dmpdata
2、切换到oracle用户,dba用户登录创建逻辑目录
sqlplus / as sysdba SQL> create directory DMP_DATA_DIR as '/home/dmpdata'; #创建 SQL> select * from dba_directories; #查看创建结果
说明:如果已经存在DMP_DATA_DIR目录但是值不同,可先执行drop directory DMP_DATA_DIR;删除重建。
3、给待导出数据库用户TEST赋予在指定目录DMP_DATA_DIR的操作权限
SQL> grant read,write on directory DMP_DATA_DIR to TEST;
4、导出TEST数据库
expdp system/oracle schemas=TEST dumpfile=TEST_20171020.dmp DIRECTORY=DMP_DATA_DIR logfile=expdp_TEST_20171020.log
5、检查/home/dmpdata路径下导出的dmp文件、expdp导出日志结果显示successfully completed则表示导出成功,结束。
impdp导入数据库
前提:预先创建好导入数据库涉及的表空间。如果是大数据量导入,确保空间足够。
方法一:不预先创建数据库,impdp直接导入自动创建TEST2数据库用户,密码为TEST数据库密码。也就是与旧的数据库密码一致。
impdp system/oracle remap_schema=TEST:TEST2 directory=DUMP_DATA_DIR dumpfile=expdp_TEST_20171020.dmp logfile=impdp_TEST2_20171020.log
方法二:预先创建数据库,impdp导入待EXCLUDE=user参数,可以避免出现ORA-31684错误。
1、预先创建数据库
SQL> create user test2 identified by test2; SQL> grant dba,connect,resource to test2; SQL> grant read,write on directory DMP_DATA_DIR to TEST2;
2、导入备份的数据库
impdp system/oracle remap_schema=TEST:TEST2 EXCLUDE=user directory=DUMP_DATA_DIR dumpfile=expdp_TEST_20171020.dmp logfile=impdp_TEST2_20171020.log
说明:如果导入的表空间发生变化,可以使用remap_tablespace=old_tablespace:new_tablespace解决,类似remap_schema参数
基本设计思路
参考impdp/expdp手工操作
使用方法
1、下载代码:exp_imp_oradb.sh
2、登录root用户,创建/home/dmpdata目录,并赋权限chown oracle:oinstall /home/dmpdata
3、上传expimp_db.sh文件到oracle用户的相关目录下,可任意目录。
4、执行chmod +x exp_imp_oradb.sh赋予可执行权限。
5、执行expimp_db.sh imp db1 [db2] 导入数据库 或者expimp_db.sh exp db1 [db2] 导出数据库
说明:导入时数据库的dmp文件名为expdp_${CURRENT_DATE}_${dbname}.log。就是中间的时间变量是当前日期,如果不是,手工修改再执行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义