IMPDP和EXPDP的介绍和使用方法

数据泵的介绍

image-20230725163723905

如何调用数据泵(1/2)

image-20230725163948893

如何调用数据泵(1/2)

image-20230725164133393

Directory

image-20230725163758845

操作模式

image-20230725164435391

EXPDP的流程:

image-20230726094236074

创建逻辑目录:

* mkdir /home/oracle/app/oracle/oradata/mydata -p * 
CREATE DIRECTORY MYDATA AS "/home/oracle/app/oracle/oradata/mydata"

ps: ORACLE 不会自动创建物理层面的目录,必须先创建,再在数据库里面创建逻辑目录

查看是否创建成功

SELECT * FROM DBA_DIRECTORIES WHERE DIRECTORY_NAME = 'MYDATA';

image-20230726094724308

EXPDP 的用法

expdp username/password@ipaddress/实例 [属性] 

属性列表:
DIRECTORY: 指定逻辑目录的名称,用于存储导出文件。
DUMPFILE: 指定导出文件的名称。
FULL: 指定是否导出整个数据库,包括数据和元数据。
TABLES: 指定要导出的表的名称,可以指定多个表,用逗号分隔。
TABLESPACES: 指定要导出的表空间的名称,可以指定多个表空间,用逗号分隔。
SCHEMAS: 指定要导出的用户的名称,可以指定多个用户,用逗号分隔。
QUERY: 允许使用 SQL 查询语句导出表中的特定数据。
CONTENT: 指定要导出的数据类型,例如 DATA_ONLY(仅导出数据)或 METADATA_ONLY(仅导出元数据)。
INCLUDE: 指定要导出的对象类型,如 INCLUDE=TABLE(仅导出表)或 INCLUDE=VIEW(仅导出视图)。
EXCLUDE: 指定要排除导出的对象类型,如 EXCLUDE=PROCEDURE(排除存储过程)。
PARALLEL: 指定导出作业的并行度,允许同时使用多个进程进行导出。
ESTIMATE: 估算导出操作的大小,以便更好地规划存储和执行时间。
JOB_NAME: 为导出作业指定一个名称。
LOGFILE: 指定导出操作的日志文件。
COMPRESSION: 指定导出文件的压缩类型,如 COMPRESSION=ALL(使用所有可用压缩算法)。
ENCRYPTION: 指定是否对导出文件进行加密。
ENCRYPTION_PASSWORD: 指定加密密码。
NETWORK_LINK: 通过网络链路将数据导出到另一个数据库。
FLASHBACK_TIME: 指定要导出的数据库版本的时间点。

ps: ip不写默认本地

案例:

导出整个数据库

语法:

expdp 用户名/密码@实例 full=Y directory=你的目录 dumpfile=你的导出文件名.dmp

示例:

expdp student/oracle@orcl directory=mydata dumpfile=expd_full_student.dmp full=yes

结果:

image-20230726102219676

导出指定的用户

格式:

expdp 用户名/密码@实例 schemas=你的用户名 directory=你的目录 dumpfile=你的导出文件名.dmp

PS:SCHEMAS: 要导出的用户的名称,可以指定多个用户,用逗号分隔。

示例:

expdp student/oracle@orcl DIRECTORY=MYDATA DUMPFILE=expdp_student_data.dmp SCHEMAS=student

[oracle@localhost mydata]$ ll
total 284
-rw-rw---- 1 oracle oracle 286720 Jul 26 10:10 expdp_student_data.dmp
-rw-rw-r-- 1 oracle oracle   2177 Jul 26 10:10 export.log

结果:

image-20230726102445444

导出指定的表

格式:

expdp username/password@service_name DIRECTORY=directory_name DUMPFILE=expdp_table.dmp TABLES=table_name

ps: TABLES: 要导出的表的名称,可以指定多个表,用逗号分隔。

实例:

expdp student/oracle@orcl directory=mydata  dumpfile=expd_table.dmp tables=student_info

结果:

image-20230726103012570

导出指定的表空间(Tablespace Export):

格式:

expdp username/password@service_name DIRECTORY=directory_name DUMPFILE=expdp_table.dmp TABLESPACES=SPACENAME

ps: TABLESPACES: 要导出的表空间的名称,可以指定多个表空间,用逗号分隔。

案例

expdp  student/oracle@orcl directory=mydata_expdp dumpfile=expdp_student_tablespace.dmp tablespaces=student

使用参数文件(Parameter File):

格式:

expdp username/password@service_name DIRECTORY=directory_name DUMPFILE=expdp_full.dmp PARFILE=expdp_params.par

加密

以下是一个 expdp 命令的示例,用于将数据导出并加密整个导出文件:

sqlCopy code
expdp student/password@orcl DIRECTORY=MYDATA DUMPFILE=expdp_student_data_encrypted.dmp SCHEMAS=student ENCRYPTION=ALL

PS:请注意,密码不会显示在命令行中,您需要在运行 expdp 命令时手动输入密码

按查询条件导

expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=empquery=‘where deptno=20’ logfile=expdp.log;

IMPDP数据导入

PS: 在进行数据导入前,要先确保要导入的用户已经存在 如果不存在则先创建用户如下:

image-20230726105641073

  1. 创建表空间

    create tablespace data_test datafile '/home/oracle/app/oracle/oradata\test\test.dbf' size 2000M;
                    (*数据文件名 包含全路径, 表空间大小 2000M 表是 2000兆) 
    
  2. 创建用户授权

    2.1 创建用户

    create user test_user identified by study default tablespace data_test;
    

    2.2 授权

    授予用户逻辑目录读写权限
    grant read,write on directory mydata to test_user;
    授予用户表空间权限
    grant dba,resource,unlimited tablespace to test;
    

IMPDP导入

在控制台(命令行窗口)输入

格式:

impdp username/password@ip_address/service_name [attribute]

案例:

impdp test/oracle@localhost/orcl DIRECTORY=MYDATA DUMPFILE=expdp_student_data.dmp SCHEMAS=student
-- 导入数据库

案例2:

impdp test/oracle@orcl directory=mydata_expdp dumpfile=expdp_table.dmp remap_schema=student:test
--导入数据表

案例3:

impdp test/oracle@orcl directory=mydata_expdp dumpfile=expdp_student_tablespace.dmp  tablespaces=student logfile=im_ts_stu.log
---导入表空间

ps: 在 Oracle 数据库中,如果你从外部导入了一个表空间,想要在已有的用户(比如 test 用户)中 使用这个导入的表空间里的数据,可以通过以下步骤来实现:

  1. 创建用户:首先,确认已经创建了要使用导入的表空间中的数据的目标用户。如果 test 用户是你要使用数据的目标用户,可以跳过此步骤。
  2. 使用表空间:将表空间中的数据对象(例如表、索引等)连接到目标用户。你可以使用 ALTER USER 语句将外部表空间与目标用户关联起来。
ALTER USER test DEFAULT TABLESPACE external_tablespace;
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
expdpimpdpOracle 数据库中用来导出和导入数据的工具。 expdpOracle 数据库中用来导出数据的工具,它可以将数据库中的表、索引、视图、存储过程等数据导出到一个文件中。expdp 命令的语法如下: ``` expdp username/password@connect_string DIRECTORY=directory_name DUMPFILE=dump_file_name SCHEMAS=schema_name [TABLES=table_name [,table_name ...]] ``` 其中,`username/password@connect_string` 是连接字符串;`DIRECTORY` 指定导出文件的路径;`DUMPFILE` 指定导出文件的文件名;`SCHEMAS` 指定需要导出的数据库用户,可以导出多个用户;`TABLES` 可选参数,指定需要导出的表名。 impdpOracle 数据库中用来导入数据的工具,它可以将 expdp 导出的数据文件导入到数据库中。impdp 命令的语法如下: ``` impdp username/password@connect_string DIRECTORY=directory_name DUMPFILE=dump_file_name SCHEMAS=schema_name [TABLES=table_name [,table_name ...]] ``` 其中,`username/password@connect_string` 是连接字符串;`DIRECTORY` 指定导入文件的路径;`DUMPFILE` 指定导入文件的文件名;`SCHEMAS` 指定需要导入的数据库用户,可以导入多个用户;`TABLES` 可选参数,指定需要导入的表名。 需要注意的是,在使用 expdpimpdp 工具时,需要先创建一个目录(DIRECTORY),并授权给数据库用户使用。授权的命令如下: ``` CREATE DIRECTORY directory_name AS 'directory_path'; GRANT READ, WRITE ON DIRECTORY directory_name TO user_name; ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值