IMP/EXP导入导出,Oracle数据泵

导出:

system用户dba权限的导出单表,涉及两库版本不一致,高低版本造成报错。

expdp \'/ as sysdba\'  parallel=5 cluster=no tables=GS_JS.JS_QQXXRZB dumpfile=JS_QQXXRZB.dmp logfile=JS_QQXXRZB.log directory=DATA_PUMP_DIR compression=all version=11.2.0.1.0;
  • 注意如果你导出操作的数据库版本号是11.2.0.3.0,而导入的目标库的版本号是11.2.0.1.0时,就是说你的目标库版本低于源库时,高–>低,就要在exp导出名利里加参数
    version=11.2.0.1.0,昨天试的时候如果不加参数version=目标库低版本号,就会报错ORA-39001: invalid
    argument value ORA-39000: bad dump file specification ORA-39142:
    incompatible version numberXXXXXXXXX
  • 低–>高,没试过,个人简单搜了一下好像可以兼容,日后遇到再更新。
  • 两库版本一致,可不使用参数version=XXXXXXX

导出某用户下的全表,涉及Oracle goldengate初始化操作,有OGG数据同步两库的情况,要先停下OGG抽取进程及复制进程,然后如下操作:

col get_system_change_number for 9999999999999999;
select dbms_flashback.get_system_change_number from dual;--记下源库的scN号
expdp \'/ as sysdba\' PARALLEL=3  schemas='GS_YW'  dumpfile=gs_yw_%U.dmp logfile=gs_yw.log directory=DATA_PUMP_DIR compression=all include=table cluster=n flashback_scn=14976234415810
select * from dba_directories;--查询DATA_PUMP_DIR目录

查到源库的DATA_PUMP_DIR路径,将该路径下的dmp文件拿出。

导入:

select * from dba_directories;--查询DATA_PUMP_DIR目录

将dmp文件放入目标系统DATA_PUMP_DIR路径下,若查不到DATA_PUMP_DIR路径,则需要在目标库重新建立(注意源库和目标库的DIRECTORY_NAME一致都叫做DATA_PUMP_DIR):
重新在目标库创建directory数据库对象。
SQL>drop directory DATA_PUMP_DIR;

Directory dropped.

SQL> create directory DATA_PUMP_DIR as ‘/u01/app/oracle/dpdump’;

Directory created.

SQL> grant read, write on directory DATA_PUMP_DIR to public;

Grant succeeded.

impdp  \'/ as sysdba \' parallel=5 cluster=no  dumpfile=JS_QQXXRZB.dmp logfile=JS_QQXXRZB.log directory=DATA_PUMP_DIR TABLE_EXISTS_ACTION=REPLACE transform=segment_attributes:n;

注意这里我加了个参数transform=segment_attributes:n,按照官方文档在IMPDP语句中加上transform=segment_attributes:n参数,该参数可以忽略expdp导出时附带的相关表空间和存储子句约束,不加的话有时候会报错 ORA-14460: only one COMPRESS or NOCOMPRESS clause may be specified,昨天亲测,也是百度找的解决办法,这里记一下。原链接ORA-14460报错解决。

TABLE_EXISTS_ACTION=REPLACE的意思是先drop表,然后创建表,最后插入数据。TABLE_EXISTS_ACTION详解。

另外,如果源库和目标库的用户和表空间都不一致时,可以在imp导入时加参数

REMAP_SCHEMA=源库的用户:目标库的用户
remap_tablespace=源库表空间:目标库表空间

最后注意如果是OGG初始化,刚刚停过了抽取进程和复制进程的,导入目标库数据后先启动抽取进程,然后启动复制进程时,要加上刚才的SCN号

start RGS_CX1 aftercsn 14976234415810

GoldenGate初始化的方式探讨

以上。

你可能感兴趣的:(OGG日常,ORACLE)