数据泵的介绍
如何调用数据泵(1/2)
如何调用数据泵(1/2)
Directory
操作模式
EXPDP的流程:
创建逻辑目录:
* 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';
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
结果:
导出指定的用户
格式:
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
结果:
导出指定的表
格式:
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
结果:
导出指定的表空间(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: 在进行数据导入前,要先确保要导入的用户
已经存在 如果不存在则先创建用户如下:
-
创建表空间
create tablespace data_test datafile '/home/oracle/app/oracle/oradata\test\test.dbf' size 2000M; (*数据文件名 包含全路径, 表空间大小 2000M 表是 2000兆)
-
创建用户授权
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 用户)中 使用这个导入的表空间里的数据,可以通过以下步骤来实现:
- 创建用户:首先,确认已经创建了要使用导入的表空间中的数据的目标用户。如果 test 用户是你要使用数据的目标用户,可以跳过此步骤。
- 使用表空间:将表空间中的数据对象(例如表、索引等)连接到目标用户。你可以使用
ALTER USER
语句将外部表空间与目标用户关联起来。
ALTER USER test DEFAULT TABLESPACE external_tablespace;