Oracle使用expdp/impdp迁移数据
1.#以下步骤在开发库执行(expdp导出)
一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
sqlplus / as sysdba; create directory EXPDIR as '/u01/app/orabackup';
二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
三、在开发库给transactiondb用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory EXPDIR to transactiondb;
四、开发库导出(路径/u01/app/orabackup)
expdp transactiondb/123456 directory=EXPDIR dumpfile=transactiondb.dmp logfile=transactiondb.log
导出后把dumpfile复制到测试库的/u01/app/orabackup下。
2.#以下步骤在测试库执行(impdp)
新建用户
--建表空间 create tablespace tbs_sscp_transactiondb3_dat datafile '/u01/app/oracle/oradata/hkmetro/transactiondb3.dbf' size 2g; --创建数据库用户 CREATE USER transactiondb3 IDENTIFIED BY 123456 DEFAULT TABLESPACE tbs_sscp_transactiondb3_dat TEMPORARY TABLESPACE temp; --授权 GRANT CONNECT, ALTER SESSION, CREATE JOB, CREATE TABLE, CREATE VIEW, CREATE CLUSTER, CREATE DATABASE LINK, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TRIGGER, CREATE TYPE, DEBUG ANY PROCEDURE, DEBUG CONNECT SESSION, EXECUTE ANY PROCEDURE, SELECT ANY DICTIONARY, UNLIMITED TABLESPACE TO transactiondb3; alter user transactiondb3 quota unlimited on tbs_sscp_transactiondb3_dat;
一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
sqlplus / as sysdba; create directory EXPDIR as '/u01/app/orabackup';
二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
三、在测试库给transactiondb3用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory EXPDIR to transactiondb3;
四、把.dmp文件传到测试库服务器/u01/app/orabackup,注意属主组名这oracle:dba
chown -R oracle:dba /u01/app/orabackup/
五、测试库导入(注意源库和新库用户名与表空间要映射)
impdp transactiondb3/123456 dumpfile=transactiondb.dmp directory=expdir logfile=transactiondb3.log REMAP_SCHEMA=transactiondb:transactiondb3 REMAP_TABLESPACE=TBS_TRANSACTION:tbs_sscp_transactiondb3_dat