Beng Dou

一只站在树上的鸟儿,从来不会害怕树枝断裂,因为它相信的不是树枝,而是它自己的翅膀。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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。就是中间的时间变量是当前日期,如果不是,手工修改再执行。

posted on   锅边糊  阅读(2068)  评论(0编辑  收藏  举报

编辑推荐:
· .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 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示