数据泵:Oracle11g导出Oracle12c导入
测试环境:
源端 | 目标端 | |
---|---|---|
Oracle版本 | 11.2.0.4 | 12.2.0.1 |
用户 | qinyi | nice |
表空间 | qinyi | users |
查询expdp和impdp的应用程序中使用的数据的目录对象:
默认路径为:$ORACLE_HOME/admin/orcl/dpdump/
SQL> set line 120
col owner for a6
col directory_name for a20
col directory_path for a65
SELECT * FROM DBA_DIRECTORIES;
OWNER DIRECTORY_NAME DIRECTORY_PATH
------ -------------------- ----------------------------------------------
SYS XMLDIR /u01/app/oracle/product/11.2.0.4/rdbms/xml
SYS ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0.4/ccr/hosts/shuaige/state
SYS DATA_PUMP_DIR /u01/app/oracle/admin/orcl/dpdump/
SYS ORACLE_OCM_CONFIG_DIR2 /u01/app/oracle/product/11.2.0.4/ccr/state
SQL>
也可以自行修改:
#创建数据泵使用的数据的目录,加:“OR REPLACE”参数可以修改原来的目录路径
SQL> CREATE [OR REPLACE] directory data_dump as '/u01/app/oracle/exportdump';
#创建数据泵使用的dump日志的目录对象:
SQL> CREATE [OR REPLACE] directory log_dump as '/u01/app/oracle/exportdump';
#给用户授予数据泵使用的数据的目录权限:
SQL> grant read, write, execute on directory data_dump to nice;
#给用户授予数据泵使用的dump日志的目录权限:
SQL> grant read, write, execute on directory log_dump to nice;
#删除目录:
drop directory directory_name
#根据用户验证是否对目录具有权限:
col grantee for a10
col grantor for a10
col owner for a10
col privilege for a10
col table_name for a30 #table_name为目录名
SELECT * FROM DBA_TAB_PRIVS
WHERE TABLE_NAME IN ('DATA_DUMP','LOG_DUMP')
AND GRANTEE = 'NICE';
#查询当前用户下所具有的对象:
set line 120
set pagesize 30
col object_name for a35
select object_name, object_type, status
from user_objects;
#查看数据库scn号:
set linesize 200
col current_scn for 99999999999999999999
select current_scn from v$database;
#查询全部表和每一个表所对应的表空间:
select table_name ,tablespace_name
from user_tables;
#查询用户的索引和索引所对应得表空间:
select index_name, tablespace_name
from user_indexes;
编辑expdp导出参数文件(按需增加减少参数,不止这些)
vi exp.par
DIRECTORY=DATA_PUMP_DIR #导出目录
DUMPFILE=schema_nice.dmp #dumpfile名
LOGFILE=expdp_schema_nice.log #导出日志名
JOB_NAME=expdp_schema_qianyi #任务名
ESTIMATE=statistics #导出时评估所需存储容量大小
PARALLEL=4 #并行数
CLUSTER=no #是否两个节点同时导出(RAC)
COMPRESSION=all #压缩
SCHEMAS=user #按用户导出
EXCLUDE=(STATISTICS, #要排除的内容
PROCEDURE,
FUNCTION,
SYNONYM,
GRANT,
TRIGGER,
RLS_POLICY,
index)
EXCLUDE=table:'in ('table_name','table_name')' #排除表示例
FLASHBACK_SCN=17322091251985 #可以按照scn号导出
TABLES=() #导出的表
CONTENT=data_only|metadata_only #仅导出数据|元数据(表结构)
导出命令:
$ expdp \'/ as sysdba\' parfile=exp.par
或
$ expdp system/oracle123 parfile=exp.par
编辑impdp导出参数文件(按需增加减少参数,不止这些)
vi impdp_wsbs_20210330.par
DIRECTORY=DPDIR #导入目录(导出dumpfile需要放在该目录下)
DUMPFILE=schema_nice.dmp #要导入的dump文件名
LOGFILE=impdp_schema_nice.log #导入日志
JOB_NAME=impdp_schema_qianyi #导入任务名
PARALLEL=4 #并行数
CLUSTER=no #是否多个节点同时导入(RAC)
remap_schema=QIANYI:NICE #导出与导入用户映射
remap_tablespace=QINYI:USERS #导出与导入的表空间映射
导入命令
#12c等容器数据库需要指定PDB
impdp system/oracle123@192.168.48.140/pdb_01 parfile=imp.par
或
impdp \'/ as sysdba\' parfile=imp.par
查看导出导入状态等详情:
#查看导出任务状态:
expdp \'/ as sysdba\' attach=job_name
#查看导入任务状态:
impdp \'/ as sysdba\' attach=job_name
或
#12c等容器数据库需要指定PDB
expdp system/oracle123@192.168.48.140/pdb_01 parfile=exp.par
impdp system/oracle123@192.168.48.140/pdb_01 parfile=imp.par
至此结束,部分参数内容会后续补充,有什么问题欢迎留言,谢谢。