怎么解决Oracle12c导入导出过程中遇到的问题
本篇内容介绍了“怎么解决Oracle12c导入导出过程中遇到的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
导入导出过程中遇到的问题及解决办法
一、expdp/impdp时间过长
原因:对象过多,特别是分区表多
select object_type,count(*) from dba_objectswhere group by object_type;------------------------------------------------------------------table partition table subpartition index subpartition index partition------------------------------------------------------------------
二、impdp过程中临时表空间无限增长导致导入失败
数据库日志报错信息ORA-01652: unable to extend temp segment by 128 in tablespace TEMP 临时表空间不足
经过与厂商确认这12.1.0.1的一个bug
该bug在12.1.0.1 版本上没有patch,而且也无法再申请12.1.0.1版本上的patch
Impdp导入失败
原因分析:
limpdp 占用临时表空间的话,一般是跟index有关,创建索引需要排序,当内存不够时会用到临时表空间。
limpdp时有wait for unread message on broadecast channel 等待事件
三、12c新特性导致sysaux表空间持续增长
问题描述:应用程序接入12c数据库后sysaux表空间持续增长。
相关知识:12c统一审计用于户监视在审计策略中定义的用户所执行的数据库操作。12.1.0.1中,默认存在名为ORA_SECURECONFIG的统计策略。
由于之前说明的12.1.0.1版本中ORA_SECURECONFIG的定义里面包含LOGON和LOGOFF的信息,所以有可能会引起SYSAUX表空间持续增长。
解决办法:
1、清理统一审计信息;DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED) 2、关闭默认统一审计策略。NOAUDIT POLICY ORA_SECURECONFIG;
四、12c上使用wm_concat函数
问题描述:11gR2和12cR1上已经摒弃了wm_concat函数,10g开发的程序中使用了该函数。升级到12c后存储过程编译报错如下:
java.sql.SQLSyntaxErrorException: ORA-00904: "WMSYS"."WM_CONCAT": invalid identifier
在每个版本wm_concat函数都有区别
In 10.2.0.4 / 11.1.0.7 / 11.2.0.1 it returns VARCHAR2SQL> desc wmsys.wm_concat; FUNCTION wmsys.wm_concat RETURNS VARCHAR2 <<<<<<<<<<<<<<<Argument Name Type In/Out Default? ----------------------- ------------------------ -------- --------- P1 VARCHAR2 INIn 10.2.0.5 / 11.2.0.2 it returns CLOBSQL> desc wmsys.wm_concat; FUNCTION wmsys.wm_concat RETURNS CLOB <<<<<<<<<<<<<<<Argument Name Type In/Out Default? ----------------------- ------------------------ -------- --------- P1 VARCHAR2 IN
解决办法:
在12c下参照10.2.0.4的定义重建wm_concat函数
在12.1中使用LISTAGG函数。
在12c下参照10.2.0.4的定义重建wm_concat函数
CREATE OR REPLACE TYPE WM_CONCAT_IMPL AS OBJECT -- AUTHID CURRENT_USER AS OBJECT ….CREATE OR REPLACE TYPE BODY WM_CONCAT_IMPL IS …CREATE OR REPLACE FUNCTION wm_concat(P1 VARCHAR2) RETURN VAR
在12c使用LISTAGG函数
SELECT deptno, LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employeesFROM empGROUP BY deptno; DEPTNO EMPLOYEES---------- -------------------------------------------------- 10 CLARK,KING,MILLER 20 ADAMS,FORD,JONES,SCOTT,SMITH 30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARDCHAR2 AGGREGATE USING WM_CONCAT_IMPL ; /
“怎么解决Oracle12c导入导出过程中遇到的问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341