环境
windows2003SP2
oracle11gR1
使用expdp和impdp
1.命令行打开sqlplus
sqlplus /nolog
conn / as sysdba
2.创建逻辑目录,该命令不会在操作系统创建真正的目录(最好手工先建好),最好以administrator等管理员创建。
create directory dir as 'd:\dump'; //dir名称可以随便命名 需要手工创建d:\dump
3.查看管理理员目录(同时查看操作系统中是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
4.给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dir to scott;
5、导出数据
1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dir logfile=expdp.log
2)并行进程parallel
expdp scott/tiger@orcl directory=dir dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dir;
4)按查询条件导
expdp scott/tiger@orcl directory=dir dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/manager DIRECTORY=dir DUMPFILE=full.dmp FULL=y;
6、还原数据
1)导到指定用户下
impdp scott/tiger@orcl DIRECTORY=dir DUMPFILE=expdp.dmp SCHEMAS=scott logfile=impdp.log
2)改变表的owner
impdp system/manager DIRECTORY=dir DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据
impdp system/manager DIRECTORY=dir DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION
****************************************************************************************
LINUX环境(RHEL5)
oracle10g和oracle11g
使用expdp和impdp
1.命令行打开sqlplus
sqlplus /nolog
connect system/oracle
2.创建逻辑目录,该命令不会在操作系统创建真正的目录(最后手工先建好),最好以system等管理员创建。
create directory dpdata1 as '/home/oracle/dump';
3.查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
4.给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dpdata1 to scott;
5.导出数据
1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
2)按表空间导
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
3)导整个数据库
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
6.还原数据
1)导到指定用户下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
AIX环境
1.建立数据泵目录。
1.1、在使用数据泵的时候首先需要建立directory,用于存放必要的文件。
1.2、root用户登录,首先要切换到oracle用户,使用sys用户登录:
su - oracle
sqlplus / as sysdba
create directory dump_test as'/oracle/admin/test/dpdump';
(路径根据情况随意指定,保证空间大小足够)
1.3、建好后查看建立的目录
select * from dba_directories;
2、赋予权限
创建完目录后进行赋予权限(dba执行可不赋权限)
Grant read,write on directory dump_test to scott(赋予指定用户)
3、导出
导出分为按用户导出、全库导出、按表导出三种;
3.1按用户
expdp \'/ as sysdba\' directory=dump_test dumpfile=dpscott.dmp content=metadata_only(只导出元数据)
3.2全库导出
expdp \'/ as sysdba\' directory=dump_test dumpfile=dpfull.dmp parallel=4 full=y content=metadata_only(只导出元数据)
3.3按表导出
expdp \'/ as sysdba\' directory=dump_test dumpfile=table.dmp logfile=scott.log tables=emp content=metadata_only(只导出元数据)
4、导入
导入分为按用户导入、全库导入、按表导入三种;
4.1按用户
impdp \'/ as sysdba\' directory=dump_test dumpfile=dpscott.dmp remap_schema=scott:test(test为导入用户) content=metadata_only(只导入元数据)
4.2全库导入
impdp \'/ as sysdba\' directory=dump_test dumpfile=dpfull.dmp full=y content=metadata_only(只导入元数据)
4.3按表导入
impdp \'/ as sysdba\' directory=dump_test dumpfile=table.dmp tables=scott.emp remap_schema=scott:test content=metadata_only(只导入元数据)