目录:

一、冷备份导数注意事项

二、数据泵导数注意事项

一、冷备份导数注意事项

1、冷备恢复步骤:

a、关闭源库

b、从源库传输数据文件、控制文件、pfile、日志文件到目标库,并赋予oracle用户权限

c、从目标库打开传送过来的pfile,修改实例名、控制文件路径、dump(adump、bdump...)类文件夹路径

d、启动数据库到mount,rename数据文件和日志文件路径

e、启动数据库到open状态

f、配置监听,工作完成

2、冷备恢复常见命令备忘:

--目标端有数据库的情况下,需要删除目标端数据库的步骤

ps -ef | grep LOCAL=NO  --查看有无客户端连接到数据库

lsnrctl stop 监听名     --停止监听

ps -ef | grep LOCAL=NO | awk ‘{print ($2)}‘ | xargs kill -9  --kill客户端连接

shutdown immediate      --关闭数据库

startup exclusive restrict mount;   --启动数据库到专有限制模式

drop database;     --删除数据库

--rname数据文件、日志文件的命令

alter database rename file ‘xxx.dbf‘ to ‘xxx.dbf‘;

alter database rename file ‘xxx.dbf‘ to ‘xxx.dbf‘;

二、数据泵导数注意事项

--使用parfile方式写导入导出语句,因为有的时候只要导出或者只要导入,用pfile写方便其他同事查看你的导数参数。

--导入全库数据而不导入表结构时,要在目标库建立和源库对应的表空间,并分配好大小。

1、导出、导入数据

导出:

vi expdp_full_日期.par

userid=‘/ as sysdba‘

directory=导数目录

##该路径可以通过查询dba_directoires表得到;

##建立路径的语法为:create directory 目录名 as ‘目录路径‘;

##对目录路径要授予相应的权限:chown -R oracle:dba /目录路径

dumpfile=expdp_full_日期.dmp

logfile=expdp_full_日期.log

parallel=2  --分配两条通道

##通道分配数量的大小要参考逻辑CPU的数量来确定,用nmon命令查看逻辑CPU个数,parallel不能超过逻辑CPU的一半,常见的设置有2、4、8、16。有时候parallel会与filesize这个参数冲突,如果发现语句书写无误,但是有不明原因报错,可以尝试去掉filesize参数再测试下。

filesize=5G   --每个dump文件大小

--导出全库结构

加参数:full=y

content=metadata_only

--导出全库数据不导结构

加参数:full=y

content=data_only

--导出schemas

加参数:schemas=xxx

--导出表

加参数:tables=xxx,xxx,xxx

导入:

vi impdp_full_日期.par

userid=‘/ as sysdba‘

directory=导数目录

dumpfile=expdp_full_日期.dmp

logfile=expdp_full_日期.log

parallel=2    --导出的pfile是多少parallel,导入就是多少parallel

--导入全库结构

加参数:content=metadata_only

--导出全库数据不导结构

加参数:content=data_only

2、注意事项

(以FCR为例,FCR库相对来说比较有针对性)

1、impdp异常终止时的处理步骤:

第一步:查看数据库中的导数任务(sqlplus下运行)

set line 200

col owner_name for a20

col operation for a30

col state for a30

select owner_name,job_name,operation,state,degree from dba_datapump_jobs;

第二步:查看impdp导入详情(操作系统命令模式下运行)

impdp \‘/ as sysdba\‘ ATTACH=‘SYS_IMPORT_SCHEMA_01‘

第三步:停止JOB

impdp \‘/ as sysdba\‘ ATTACH=‘SYS_EXPORT_SCHEMA_01‘

impdp> stop_job

第四步:杀掉JOB

impdp \‘/as sysdba\‘ ATTACH=‘SYS_EXPORT_SCHEMA_01‘

impdp> kill_job

2、当不导入结构只导入数据时,需要禁用涉及对象的约束和触发器,语句如下:

--先关闭触发器再关闭约束,防止触发器插入约束外的数据。

--关闭trigger

cat >start_dis_tirger.sql

spool /home/oracle/dis_tirger.sql

select ‘alter trigger ‘ || owner || ‘.‘ || trigger_name||‘ ENABLE;‘from dba_triggers

where status=‘DISABLED‘ and owner in (‘FCRBRNDATA‘,‘FCRHSTDATA‘);

spool off;

--关闭约束

cat >start_dis_const.sql

spool /home/oracle/dis_const.sql

SELECT ‘ALTER TABLE ‘||T.owner||‘.‘||T.table_name||‘ enable constraint ‘||t.constraint_name||‘;‘

from dba_constraints s, dba_constraints t

where s.owner = t.r_owner and s.constraint_name = t.r_constraint_name and t.owner in (‘FCRBRNDATA‘,‘FCRHSTDATA‘)

and t.status=‘DISABLED‘;

spool off;

--导数工作完成后替换上述语句的关键字,先开约束再开触发器,防止触发器插入约束外的数据。

3、导某些表的时候可能存在资源占用,查询语句如下:

set pages 130;

set lines 1300;

col object_name for a20;

col machine for a20;

col program for a20;

col killid for a30;

col os_pid format a20;

select object_name ,machine ,s.program ,s.sid||‘,‘||s.serial# as killid,

p.spid as os_pid ,s.sql_address,l.locked_mode,s.username,s.process,s.sql_id

from v$locked_object l,dba_objects o ,v$session s ,v$process p

where l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr

and object_name=upper(‘&tablename‘) and o.owner=upper(‘&owner‘) order by 1;

4、导入全库数据而不导入结构时,会有很多无效对象,无效对象编译过程如下:

附录二:快速删除索引语句

附录三:无效对象编译相关脚本

附录四:禁用约束和触发器的处理

附录五:从全库结构dmp文件中取建索引语句

附录一:导数情况查询

--获取对象定义

set lin 200 pagesize 500

set long 99999

set longc 99999

select dbms_metadata.get_ddl(upper(‘&object_type‘),upper(‘&object_name‘),upper(‘&username‘)) from dual;

附录二:快速删除索引语句

--删除全局索引

select distinct ‘drop index ‘||i.OWNER||‘.‘||i.INDEX_NAME||‘;‘ from dba_indexes i

where i.TABLE_OWNER=‘FCRHSTDATA‘ and i.TABLE_NAME in (

‘CH_ACCT_LEDG‘,

‘REC_TXN_LOG‘,

‘TD_DEP_PRORATED_TAX_DTLS‘,

‘TD_DEP_PRORATED_TAX_DTLS‘,

‘XFACE_AUDIT_TRAIL_LOG‘,

‘XF_OL_ST_TXNLOG_MMDD‘

);

--删除分区索引

select distinct ‘drop index ‘||p.INDEX_OWNER||‘.‘||p.INDEX_NAME||‘;‘ from dba_ind_partitions p,dba_indexes i

WHERE  p.INDEX_OWNER=i.OWNER and i.INDEX_NAME=p.INDEX_NAME and i.TABLE_OWNER=‘FCRHSTDATA‘ and

i.STATUS=‘N/A‘ and i.TABLE_NAME in (

‘XF_STCAP_GL_TXNS_MMDD‘,‘XF_ST_CAP_INPUT_TXN_TEMP‘,‘CH_ACCT_INT_BREAKUP‘,‘XFACE_AUDIT_TRAIL_LOG‘,

‘ET_ALERTS_LOG_1‘,‘XF_OL_ST_SCLOG_MMDD‘,‘CH_ARREARS_TABLE‘,‘ET_ALERT_PUBLISH‘,‘TD_NOBOOK‘,

‘CI_CUSTMAST‘,‘CH_ACCT_INT_BREAKUP_DELETED ‘,‘TD_AUDIT_TRAIL‘,‘XFACE_FCR_LOGGER‘,

‘CH_ACCT_MAST‘,‘BA_CHANGE_RECORD_LOG‘,‘REC_TXN_LOG_PURGE‘,‘CH_ACCT_BALANCE_DTLS_MMDD‘,‘XF_OL_ST_TXNLOG_STL_MMDD ‘,

‘CH_TMP_RCH405‘,‘CH_ACCT_CAPITALIZATION_HISTORY‘,‘XF_STCAP_GL_TXNS‘

);

附录三:无效对象编译相关脚本

1、系统用户无效对象编译: @?/rdbms/admin/utlrp.sql

2、一般用户无效对象编译

--源库无效对象采集脚本start_privs.sql,生成授权脚本privs.sql

cat >start_privs.sql

#####

--start$$

spool /home/oracle/privs.sql

--create role$$

select ‘create role ‘|| role||‘;‘ from dba_roles;

select ‘grant ‘||PRIVILEGE||‘ on ‘||OWNER||‘.‘||TABLE_NAME||‘ to ‘||ROLE||‘;‘ from role_tab_privs

union all

select ‘grant ‘||PRIVILEGE|| ‘ to ‘||ROLE||‘;‘ from role_sys_privs

union all

select ‘grant ‘||GRANTED_ROLE|| ‘ to ‘||ROLE||‘;‘ from role_role_privs;

--grant privs$$

select ‘grant ‘||PRIVILEGE||‘ to ‘||GRANTEE||‘;‘

from dba_sys_privs

where GRANTEE in(select username from dba_users where username not in(‘APPQOSSYS‘,‘DBSNMP‘,‘DIP‘,‘EXFSYS‘,‘WMSYS‘,‘SYSTEM‘,‘SYS‘,‘SDBXTS‘,‘OUTLN‘,‘ORACLE_OCM‘))

union all

select ‘grant ‘||GRANTED_ROLE||‘ to ‘||GRANTEE||‘;‘

from DBA_ROLE_PRIVS

where GRANTEE in(select username from dba_users where username not in(‘APPQOSSYS‘,‘DBSNMP‘,‘DIP‘,‘EXFSYS‘,‘WMSYS‘,‘SYSTEM‘,‘SYS‘,‘SDBXTS‘,‘OUTLN‘,‘ORACLE_OCM‘))

union all

select ‘grant ‘||PRIVILEGE||‘ on ‘||OWNER||‘.‘||TABLE_NAME||‘ to ‘||GRANTEE||‘;‘

from dba_tab_privs

where GRANTEE in(select username from dba_users where username not in(‘APPQOSSYS‘,‘DBSNMP‘,‘DIP‘,‘EXFSYS‘,‘WMSYS‘,‘SYSTEM‘,‘SYS‘,‘SDBXTS‘,‘OUTLN‘,‘ORACLE_OCM‘))

;

--compile objects$$

select ‘alter VIEW ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile;‘ from dba_objects where OBJECT_TYPE=‘VIEW‘ and status=‘INVALID‘ and owner <> ‘IMPUSER‘

union all

select ‘alter PROCEDURE ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile;‘ from dba_objects where OBJECT_TYPE=‘PROCEDURE‘ and status=‘INVALID‘ and owner <> ‘IMPUSER‘

union all

select ‘alter FUNCTION ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile;‘ from dba_objects where OBJECT_TYPE=‘FUNCTION‘ and status=‘INVALID‘ and owner <> ‘IMPUSER‘

union all

select ‘alter TRIGGER ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile;‘ from dba_objects where OBJECT_TYPE=‘TRIGGER‘ and status=‘INVALID‘ and owner <> ‘IMPUSER‘

union all

select ‘alter PACKAGE ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile BODY;‘ from dba_objects where OBJECT_TYPE=‘PACKAGE BODY‘ and status=‘INVALID‘ and owner <> ‘IMPUSER‘

union all

select ‘alter PACKAGE ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile;‘ from dba_objects where OBJECT_TYPE=‘PACKAGE‘ and status=‘INVALID‘ and owner <> ‘IMPUSER‘

union all

SELECT ‘CREATE OR REPLACE PUBLIC SYNONYM ‘||A.OBJECT_NAME||‘ FOR ‘||B.TABLE_OWNER||‘.‘||B.TABLE_NAME||‘;‘

FROM DBA_OBJECTS A,DBA_SYNONYMS B

WHERE B.SYNONYM_NAME=A.OBJECT_NAME AND B.OWNER=‘PUBLIC‘ AND A.OBJECT_TYPE=‘SYNONYM‘ AND A.STATUS=‘INVALID‘  and owner <> ‘IMPUSER‘

union all

SELECT ‘CREATE OR REPLACE SYNONYM ‘||A.OWNER||‘.‘||A.OBJECT_NAME||‘ FOR ‘||B.TABLE_OWNER||‘.‘||B.TABLE_NAME||‘;‘

FROM DBA_OBJECTS A,DBA_SYNONYMS B

WHERE B.SYNONYM_NAME=A.OBJECT_NAME AND A.OWNER=B.OWNER AND B.OWNER<>‘PUBLIC‘ AND A.OBJECT_TYPE=‘SYNONYM‘ AND A.STATUS=‘INVALID‘  and A.owner <> ‘IMPUSER‘

;

--end$$

spool off;

####

--目标库运行无效对象编译采集脚本start_compile.sql,生成无效对象编译脚本compile.sql

cat >start_compile.sql

#####

set line 1000

set pages 20000

spool /home/oracle/compile.sql

--compile objects$$

select ‘alter VIEW ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile;‘ from dba_objects where OBJECT_TYPE=‘VIEW‘ and status=‘INVALID‘ and owner<>‘IMPUSER‘

union all

select ‘alter PROCEDURE ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile;‘ from dba_objects where OBJECT_TYPE=‘PROCEDURE‘ and status=‘INVALID‘ and owner<>‘IMPUSER‘

union all

select ‘alter FUNCTION ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile;‘ from dba_objects where OBJECT_TYPE=‘FUNCTION‘ and status=‘INVALID‘ and owner<>‘IMPUSER‘

union all

select ‘alter TRIGGER ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile;‘ from dba_objects where OBJECT_TYPE=‘TRIGGER‘ and status=‘INVALID‘ and owner<>‘IMPUSER‘

union all

select ‘alter PACKAGE ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile BODY;‘ from dba_objects where OBJECT_TYPE=‘PACKAGE BODY‘ and status=‘INVALID‘ and owner<>‘IMPUSER‘

union all

select ‘alter PACKAGE ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile;‘ from dba_objects where OBJECT_TYPE=‘PACKAGE‘ and status=‘INVALID‘ and owner<>‘IMPUSER‘

union all

select ‘alter type ‘||OWNER||‘.‘||OBJECT_NAME||‘ compile body;‘ from dba_objects where OBJECT_TYPE=‘TYPE BODY‘ and status=‘INVALID‘ and owner<>‘IMPUSER‘

union all

SELECT ‘CREATE OR REPLACE PUBLIC SYNONYM ‘||A.OBJECT_NAME||‘ FOR ‘||B.TABLE_OWNER||‘.‘||B.TABLE_NAME||‘;‘

FROM DBA_OBJECTS A,DBA_SYNONYMS B

WHERE B.SYNONYM_NAME=A.OBJECT_NAME AND B.OWNER=‘PUBLIC‘ AND A.OBJECT_TYPE=‘SYNONYM‘ AND A.STATUS=‘INVALID‘ and A.owner<>‘IMPUSER‘

union all

SELECT ‘CREATE OR REPLACE SYNONYM ‘||A.OWNER||‘.‘||A.OBJECT_NAME||‘ FOR ‘||B.TABLE_OWNER||‘.‘||B.TABLE_NAME||‘;‘

FROM DBA_OBJECTS A,DBA_SYNONYMS B

WHERE B.SYNONYM_NAME=A.OBJECT_NAME AND A.OWNER=B.OWNER AND B.OWNER<>‘PUBLIC‘ AND A.OBJECT_TYPE=‘SYNONYM‘ AND A.STATUS=‘INVALID‘ and B.owner<>‘IMPUSER‘;

--end$$

spool off;

#####

附录四:禁用约束和触发器的处理

1、在导入数据库时关闭触发器和约束

2、在导出数据库时开启约束和触发器

--开启约束

cat >start_en_const.sql

set line 1800

spool /home/oracle/en_const.sql

SELECT ‘ALTER TABLE ‘||T.owner||‘.‘||T.table_name||‘ enable constraint ‘||t.constraint_name||‘;‘

from dba_constraints s, dba_constraints t

where s.owner = t.r_owner and s.constraint_name = t.r_constraint_name AND t.status=‘DISABLED‘ and t.VALIDATED=‘VALIDATED‘

union all

SELECT ‘ALTER TABLE ‘||T.owner||‘.‘||T.table_name||‘ enable novalidate constraint ‘||t.constraint_name||‘;‘

from dba_constraints s, dba_constraints t

where s.owner = t.r_owner and s.constraint_name = t.r_constraint_name AND t.status=‘DISABLED‘ and t.VALIDATED=‘NOT VALIDATED‘;

spool off;

--开启trigger

cat >start_en_tirger.sql

set line 1800

spool /home/oracle/en_tirger.sql

select ‘alter trigger ‘ || owner || ‘.‘ || trigger_name||‘ ENABLE;‘from dba_triggers

where status=‘DISABLED‘;

spool off;

附录五:从全库结构dmp文件中取建索引语句

下面语句是取指定表的索引语句,取全库同样也可以使用,生成语句后,可以在生成的脚本内修改并发数,使索引创建更快。

USERID=‘/ AS SYSDBA‘

DIRECTORY=EXPDP_FULLDATA

DUMPFILE=FULLDATABASE_0604.dmp

logfile=index_import_full.log

tables=(

FCRHSTDATA.ACTB_HISTORY,

)

include=index

sqlfile=index.sql

原文:http://sysdba.blog.51cto.com/10492366/1704269

oracle tirger_Oracle 数据泵导数据(expdp,impdp)相关推荐

  1. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)

    <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...

  2. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)

    转载自:http://www.cnblogs.com/jyzhao/p/4530575.html 目的:指导项目侧自行进行简单的数据泵迁移工作. 本文实验环境:Oracle 11.2.0.4,利用数据 ...

  3. Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解

    Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解 关于expdp和impdp     使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户 ...

  4. oracle 数据泵导入导出 expdp/impdp

    一. 导出/入前检查 查看用户默认表空间 select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where US ...

  5. impdp导入指定表 oracle_Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例

    一.新建逻辑目录 最好以system等管理员创建逻辑目录,Oracle不会自动创建实际的物理目录"D:\oracleData"(务必手动创建此目录),仅仅是进行定义逻辑路径dump ...

  6. oracle查询数据泵状态,PLSQL_数据泵导入进度查看Impdp/Expdp Status(案例)

    使用前提 EXPDP和IMPDP只可以在Oracle服务端使用. EXP导出的文件只可以使用IMP导入,不适用于IMPDP导入文件:EXPDP导出的文件只可以使用IMPDP导入,而不适用于IMP导出文 ...

  7. Oracle使用数据泵导入/导出数据(expdp/impdp)【图文教程】

    Oracle使用数据泵导入/导出数据(expdp/impdp) 此类博客太多的坑,都不完整,要不执行着就报错执行不下去了,要不说的不清不楚,整理的一步步截图,100%成功. expdp数据导出 远程登 ...

  8. oracle中的 expdp命令,Oracle 10G 数据泵中EXPDP命令行选项介绍

    以下的文章主要是浅谈Oracle 10G 数据泵学习纪要中EXPDP命令行选项,我在一个信誉度很好的网站找到一个关于Oracle 10G 数据泵学习纪要中EXPDP命令行选项的资料,拿出来供大家分享. ...

  9. oracle 使用数据泵恢复,oracle 使用数据泵 导出整个db 并恢复

    导出expdp 1.登录oracle服务器(windows2008server-oracle11g-r2) 2.以sysdba身份登录  sqlplus / as sysdba 3.查看是否已有导出目 ...

最新文章

  1. python命令之m参数 局域网传输
  2. HBase in 2013
  3. springboot 集成rabbitmq 实例
  4. 2018年工业机器人销量排位_2020年全球工业机器人现状与竞争情况 中国为全球最大供应国...
  5. SAP Fiori Elements - Account F4 help - how value help dialog is populated
  6. java 初始化参数_我们如何在Java中的对象参数中初始化数组?
  7. linux双网卡架设FTP,LINUX系统上架设FTP服务器
  8. 瑞幸咖啡恢复交易 股价大跌35.76%
  9. DE26 Continuation: Repeated Real Eigenvalues
  10. Java调用MQ队列
  11. Skype 1.4 for Linux 掉掉更新
  12. 三思笔记之一步一步学ORACLE
  13. ~0 为什么等于 -1 ,在C语言中?
  14. linux沙箱隔离_linux沙箱技术
  15. axios报错Error: Request body larger than maxBodyLength limit
  16. 用定量测定葡萄糖的方法检测根管微渗漏-供应海藻酸钠修饰聚丙烯酸Alg-PAA 醛基化海藻酸钠(ASA) 海藻酸钠-多聚鸟氨酸-海藻酸(A-PLO-A)定制
  17. 使用阿里云的身份证实名认证接口
  18. PMP第八节:项目质量管理
  19. 神奇的手指——可以取代”切水果“的清屏小软件
  20. lisp 图元 天正 自定义_AutoLISP查询图元信息

热门文章

  1. Bootstrap学习笔记——导航条、分页导航
  2. 关于.net的ValidateRequest=false失效
  3. 联想拯救者 Y900 平板电脑 评测 联想拯救者 Y900 参数配置
  4. 宁波保税区通证经济产业园开园,33复杂美CEO吴思进应邀出席
  5. .native是什么?
  6. CF#354_B_Pyramid of Glasses(模拟)
  7. Django建立一个音乐网站(四)
  8. 安全编程之MD5文件校验
  9. Select Distinct语句
  10. JAVA计算机毕业设计春运出行铁路路线规划推荐系统Mybatis+系统+数据库+调试部署