一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
create or replace directory dpdata1 as 'd:\test\dump';默认DATA_PUMP_DIR,所在目录C:\app\Administrator\admin\orcl\dpdump\
二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory DATA_PUMP_DIR to scott;四、导出数据 1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=scott.dmp;2)并行进程parallel
expdp scott/tiger@orcl directory=DATA_PUMP_DIR dumpfile=scott3.dmp parallel=40 job_name=scott33)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=DATA_PUMP_DIR;4)按查询条件导
expdp scott/tiger@orcl directory=DATA_PUMP_DIR dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';5)按表空间导
expdp system/manager DIRECTORY=DATA_PUMP_DIR DUMPFILE=tablespace.dmp TABLESPACES=temp,example;6)导整个数据库
expdp system/admin@orcl dumpfile=full.dmp full=y;五、还原数据 1)导到指定用户下 impdp system/admin@orcl DUMPFILE=scott.dmp REMAP_SCHEMA=scott:scott2; (加上一直出错?DIRECTORY=DATA_PUMP_DIR)
对于后面的scott2,系统中可以有也可以没有,如果没有系统会自动建立这个用户。
2)改变表的owner
impdp system/manager DIRECTORY=DATA_PUMP_DIR DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;3)导入表空间
impdp system/manager DIRECTORY=DATA_PUMP_DIR DUMPFILE=tablespace.dmp TABLESPACES=example;4)导入数据库
impdb system/manager DIRECTORY=DATA_PUMP_DIR DUMPFILE=full.dmp FULL=y;5)追加数据
impdp system/manager DIRECTORY=DATA_PUMP_DIR DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append;六、删除表空间和用户
drop tablespace XXXX including contents and datafiles cascade constraints; drop user XXXX cascade;如果有程序正在连接
select sid,serial# from v$session where username='XXXX'; alter system kill session '767,130';扩大表空间
alter database datafile '/oracle/oradata/orcl/XXXX.dbf' autoextend on next 100m maxsize 4096M;创建表空间和用户
create tablespace XXXX datafile '/home/oracle/orcl/XXXX.dbf' size 4096M; create user XXXX identified by XXXX default tablespace XXXX temporary tablespace TEMP profile DEFAULT;创建表空间(自增长)(表空间名称XXXX)
create tablespace XXXX logging datafile '/home/oracle/orcl/XXXX.DBF' size 4096M autoextend on next 512M maxsize unlimited;授权
-- Grant/Revoke role privileges grant connect to XXXX; grant dba to XXXX; grant resource to XXXX; -- Grant/Revoke system privileges grant alter system to XXXX; grant create any job to XXXX; grant create any library to XXXX; grant create any sequence to XXXX; grant create any synonym to XXXX; grant create any view to XXXX; grant create database link to XXXX; grant create external job to XXXX; grant debug connect session to XXXX; grant manage scheduler to XXXX; grant unlimited tablespace to XXXX;导入数据
impdp sys/XXXX DIRECTORY=oracle DUMPFILE=XXXX.dmp SCHEMAS=XXXX 需要替换表空间时: impdp sys/XXXX DIRECTORY=oracle DUMPFILE=XXXX.dmp remap_tablespace=旧的表空间:新的表空间 username: sys as sysdba password: XXXX 第一次执行impdp命令遇到的错误: ORA-39006: internal error ORA-39213: Metadata processing is not available 解决方法: 以sysdba的身份登录,执行 exec dbms_metadata_util.load_stylesheets;