exp、imp&expdp、impdp两组工具的区别:
1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。
2、imp只适用于exp导出的文件;impdp只适用于expdp导出的文件。
3、对于10g以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须使用expdp导出。
4、导入导出的速度不同,数据泵是并行执行,速度快。
5、通过设定数据库版本号,数据泵可以兼容老版本的数据库系统。
数据泵导入导出:
1、查询原有逻辑目录
select * from dba_directories;
2、新建逻辑目录(第一次进行导入导出操作,需要新建;如果不是第一次,可以使用已有的逻辑目录)
create directory dump_dir as '/home/oracle/dbdmp';
dump_dir:逻辑目录名
/home/oracle/dbdmp:实际地址
3、创建大文件表空间
create bigfile tablespace Student
datafile '/home/oracle/tablespace/Student.dbf' size 100G AUTOEXTEND ON NEXT 2G MAXSIZE UNLIMITED;
3.1、参数说明
bigfile:大文件
Student:表空间名称
datafile:指定数据文件的路径为/home/oracle/tablespace/Student.dbf。
size 100G:指定数据文件的大小
AUTOEXTEND ON NEXT 2G MAXSIZE UNLIMITED:表空间自动扩展,自动扩展的大小是2G,不限制扩展最大值
4、创建用户
create user stu identified by s123456 default tablespace Student temporary tablespace temp;
创建用户stu,密码s123456,表空间为Student,临时表空间为temp
5、为用户赋权
grant connect,resource,unlimted tablespace,imp full database,exp full database,create view,create procedure,create trigger,create database link to stu;
5.1、参数说明
Connect:能够连接到Oracle数据库中,并在对其他用户的表有访问权限时,做SELECT、UPDATE、INSERTT等操作
resource:能在自己的方案中创建表、序列、视图等
unlimted tablespace:用户可以在其他表空间里随意建表
imp full database,exp full database:给用户全库导出和全库导入的角色权限
create view,create procedure,create trigger,create database link:创建视图、过程、触发器和DBLink
6、用户赋予在指定目录的操作权限,最好以system等管理员赋予
grant read,write on directory dump_dir to stu;
7、通过SSH进入进入服务器
找到相应的路径 cd /home/oracle/dbdmp
输入指令
df -h 查看资源使用量
su – oracle 进入系统的oracle用户
8、导出expdp
1)导出用户
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=dump_dir
2)导出emp,dept表
expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dump_dir
3)按查询条件导出emp表
expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=emp query=’where deptno=20’
4)按表空间导
expdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=temp,example
5)导整个数据库
expdp system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y
8.1、expdp参数说明
expdp [用户名]/[密码]@[服务名]
schemas=[用户名]
dumpfile=[导出数据库文件(可自命名)]
directory=[逻辑目录名:用于转储文件和日志文件的目录对象]
logfile=[指定日志文件名(可自命名)]
full=[导出整个数据库:n/y]
tablespaces=[标识要导出的表空间的列表]
version=[要导出的对象版本]
9、导入impdp
1)导入用户(从用户scott导入到用户scott)
impdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp schemas=scott
2)导入表(从scott用户中把表dept和emp导入到system用户中)
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmptables=scott.dept,scott.emp remap_schema=scott:system
3)导入表空间
impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example
4)导入数据库
impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y
5)追加数据
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp schemas=systemtable_exists_action
9.1、impdp参数说明
1.USERID:命令行的第一个参数
2.DIRECTORY:转储文件和日志文件存放的目录
3.DUMPFILE:目标转储文件
4.LOGFILE:日志文件
5.FULL:指定全库导出 FULL={Y | N}
6.CONTENT:指定要导出的数据,默认为ALL
CONTENT={ALL|DATA_ONLY|METADATA_ONLY}
ALL:导出对象定义及所有数据
DATA_ONLY:只导出对象数据
METADATA_ONLY:只导出对象定义
7.SCHEMAS:指定执行方案模式导出,默认为当前用户模式
8.TABLES:指定表模式导出
9.TABLESPACES:按表空间模式导出
10.PARALLEL:并行,指定执行导出操作的并行进程个数,默认值为1
11.INCLUDE:指定导出时要包含的对象类型及相关对象
INCLUDE = object_type[:name_clause] [,… ]
eg:INCLUDE=TABLE:"IN(SELECT TABLE_NAME FROM CSB_BFB)"
12.EXCLUDE:指定导出执行时要排除的对象类型及相关对象
13.NETWORK_LINK:指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项
14.TABLE_EXISTS_ACTION={skip|append|truncate|replace},默认为skip
skip:如果已存在表,则跳过并处理下一个对象;
append:为表增加数据;
truncate是截断表,然后为其增加新数据;
replace:删除已存在表,重新建表并追加数据。