Oracle导入dump文件

xiaoxiao2021-02-28  73

Oracle导入dump文件

一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以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=scott3

3)按表名导

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;
转载请注明原文地址: https://www.6miu.com/read-68192.html

最新回复(0)