您的位置:首页 > 财经 > 金融 > Windows下ORACLE数据泵expdp和impdp使用

Windows下ORACLE数据泵expdp和impdp使用

2024/12/23 11:15:52 来源:https://blog.csdn.net/boliu218/article/details/140535701  浏览:    关键词:Windows下ORACLE数据泵expdp和impdp使用

Windows下ORACLE数据泵expdp和impdp使用

一、基础环境

操作系统:Windows server 2008;

数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

数据库工具:PL/SQL 12.0.7

实验内容:使用expdp/impdp快速数据迁移工具,将数据库复刻到其他机器,两台机器安装同版本数据库软件;

二、命令详解
a、expdp

关键字    说明 [ 默认值 ]
userid    用户名/口令,必须为第一个参数,且不能省略。
directory    用于转储文件和日志文件的目录对象。[ data_pump_dir]
dumpfile    指定目标转储文件名的列表 [expdat.dmp]
logfile    指定日志文件名 [export.log]。
schemas    要导出的方案的列表 [登录的方案,即 userid 的那个用户]。
tables    标识要导出的表的列表。例如, tables=hr.employees,sh.sales:sales_1995。
nologfile    不写入日志文件 [N]。
query    用于导出表的子集的谓词子句。例如, query=employees:"WHERE department_id > 10"。
reuse_dumpfiles    覆盖目标转储文件 (如果文件存在) [N]
compression    减少转储文件大小。有效的关键字值为: all, data_only, [matadata_only] 和 none。
content    指定要卸载的数据。[ ALL ] 即:元数据(表结构等)和数据。DATA_ONLY 即:仅导出数据不导出元数据(表结构)。 METADATA_ONLY 即:仅导出元数据(表结构等)不导出数据。
encryption    加密某个转储文件的一部分或全部。 有效的关键字值为: ALL 即:加密元数据(表结构等)和数据。 DATA_ONLY,即:仅加密数据部分,不加密元数据(表结构等)。ENCRYPTED_COLUMNS_ONLY, 即:仅加密列。METADATA_ONLY,即:仅加密元数据(表结构等)。NONE,即不加密元数据(表结构等)和数据。
encryption_algorithm    指定加密的方式。有效的关键字值为: [ AES128 ], AES192 和 AES256。
encryption_mode    生成加密密钥的方法。有效的关键字值为: dual, password和 [TRANSPARENT]。
encryption_password    用于在转储文件中创建加密数据的口令密钥。
network_link    源系统的远程数据库链接的名称。即dblink的名称,用于导出远程数据库。(性能受网络限制)
version    要导出的对象版本。有效的关键字值为: [COMPATIBLE], latest 或任何有效的数据库版本。在不同版本数据库导入导出数据时,必须指定此参数,否则会导入失败。
full    导出整个数据库 [N]。
estimate_only    计算作业估计值而不执行导出。
estimate    计算作业估计值。 有效的关键字值为: [blocks] 和 STATISTICS。
help    显示帮助消息 [N]。

b、impdp

关键字    说明 [ 默认值 ]
userid    用户名/口令,必须为第一个参数,且不能省略。
directory    用于转储文件, 日志文件和 SQL 文件的目录对象。[ data_pump_dir]
dumpfile    要从中导入的转储文件的列表,可以有多个。[expdat.dmp]
logfile    日志文件名 [import.log]
schemas    要导入的方案的列表。
encryption_password    用于访问转储文件中的加密数据的口令密钥。
full    导入源中的所有对象 [Y]
remap_schema    将一个方案中的对象加载到另一个方案。(修改用户名)
remap_tablespace    将表空间对象重新映射到另一个表空间。(修改表空间)
reuse_datafiles    如果表空间已存在, 则将其初始化 [N]。
tables    标识要导入的表的列表。
help    显示帮助消息 [N]。

三、实验过程
a、准备工作

1、使用有dba权限的Oracle数据库用户;

2、新建一个文件夹,用以存放导出文件和日志(D:\Dump);

3、执行SQL:create directory dump_dir as 'D:\dump';

4、在Oracle中建立目录,执行SQL:select * from dba_directories,查看目录已存在;

b、使用expdp导出

实验需要导出用户boliu218、密码123456的所有数据(含数据库机构及数据),在cmd窗口中执行expdp工具:EXPDP boliu218/123456 DIRECTORY=DUMP_DIR SCHEMAS=boliu218 DUMPFILE=boliu218_0720.dmp LOGFILE=boliu218_0720.log 

expdp工具会显示相关信息并统计磁盘空间,开始执行,等待结束;如下图(这个图是我在网上找的):

c、使用impdp导入(在另外一台电脑上)
1、准备工作:

a、使用有dba权限的Oracle数据库用户;

b、新建一个文件夹,把导入文件复制进去(D:\Dump);

c、执行SQL:create directory dump_dir as 'D:\dump';

d、在Oracle中建立目录,执行SQL:select * from dba_directories,查看目录已存在;

e、查看用户的表空间,执行SQL:select distinct tablespace_name  from all_tables where owner='boliu218',这里这个用户是在默认的“users”表空间,等下导入的数据也将放到“users”表空间;

f、执行SQL:SELECT tablespace_name,file_id,file_name,round(bytes / (1024 * 1024), 0) total_MB FROM dba_data_files ORDER BY tablespace_name,查看"users"表空间对应的数据库文件大小,Oracle默认的数据库文件最大32GB,如果要导入的数据比较大,剩余空间不够,就得先给表空间建立新的数据库文件,建立数据库文件的语句SQL:alter tablesapce users add datafile '文件绝对路径' size 4GB autoextend on next 500MB maxsize unlimited;如下图:

2、执行

在cmd窗口中执行impdp工具:IMPDP BOLIU218/123456 DIRECTORY=DUMP_DIR  DUMPFILE=boliu218_0720.dmp,等待工具导入完成,如下图(这个图是在网上找的):

完成之后,就可以通过sql语句查询了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com