【DBASK问答】小程序中的问题和诊断总结(一)

序言

本文摘自『DBASK问答集萃第三期』,近日我们在DBASK小程序降低了诸多专栏,其中包括盖国强、杨廷琨、罗海雄、张乐奕、黄廷忠、崔华、熊军、李真旭、何剑敏、刘伟等专家栏目,还有2019年6月SCN兼容性问题、XTTS、备份恢复等技术专栏,另外蚂蚁金服OceanBase进驻小程序。欢迎你们阅读分享小程序中的专题栏目。假若您乐于技术分享,欢迎联系小助手(ID:Enmoedu05),为您构建优质专栏。

问答集萃

接出来,我们分享本期整理出的问题和确诊总结,供你们参考学习,详尽的确诊剖析过程可以通过标题链接跳转到小程序中查看。

问题一、RMAN-20039:formatrequires%cwhenduplexing

备份晨报错:

  1. RMAN-00571: ===========================================================

  2. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  3. RMAN-00571: ===========================================================

  4. RMAN-03009: failure of backup command

  5. RMAN-20039: format requires %c when duplexing

备份数据文件不加%C都会报错,加%C有两份一样的?

  1. ----备份脚本

  2. run{

  3. allocate channel c1 device type disk;

  4. allocate channel c2 device type disk;

  5. allocate channel c3 device type disk;

  6. allocate channel c4 device type disk;

  7. crosscheck backup;

  8. sql 'alter system archive log current';

  9. backup spfile format '/bak/backup/spfile_%T_%s_%p_%c';

  10. #backup database format '/bak/backup/dbbk_0_%d_%t_%u_%s_%p';

  11. backup as compressed backupset incremental level 0 database format '/bak/backup/dbbk_0_%d_%t_%u_%s_%p';

  12. sql 'alter system archive log current';

  13. backup archivelog all format '/bak/backup/arc_%T_%s_%p_%c' delete all input;

  14. backup current controlfile format '/bak/backup/cntrl_%T_%s_%p_%c';

  15. crosscheck archivelog all;

  16. delete noprompt expired backup;

  17. delete noprompt obsolete;


  18. release channel c1;

  19. release channel c2;

  20. release channel c3;

  21. release channel c4;

  22. }

确诊推论:假如设置不冗余就不须要加c%,否则都会出现你的报错。假如设置了冗余必须加%c,这么也都会形成相应的备份片。

问题二、RAC实例未能启动ORA-01157ORA-01110ORA-27041OSD-04002

服务器未知缘由故障恢复后,启动数据库实例报错,错误信息如下:

  1. ALTER DATABASE OPEN /* db agent *//* {2:38813:23181} */

  2. This instance was first to open

  3. Errors in file D:APP...orcl2_ora_7780.trc:

  4. ORA-01157: ????/?????? 11 - ??? DBWR ????

  5. ORA-01110: ???? 11: 'D:APP...NXPT.DBF'

  6. ORA-1157 signalled during: ALTER DATABASE OPEN /* db agent *//* {2:38813:23181} */...

  7. Fri Mar 01 10:00:59 2019

  8. Shutting down instance (abort)

  9. License high water mark = 2

  10. USER (ospid: 13460): terminating the instance

  11. Instance terminated by USER, pid = 13460

  12. Fri Mar 01 10:01:16 2019

  13. Instance shutdown complete

  14. Fri Mar 01 10:34:34 2019

确诊推论:从报错看,这个是一个本地数据文件’D:APPADMINISTRATORPRODUCT11.2.0DBHOME_1DATABASENTBS.DBF’,应当是将RAC中的数据库文件误建到本地c盘,所以其他实例未能启动,造成错误。

图片[1]-【DBASK问答】小程序中的问题和诊断总结(一)-唐朝资源网

问题三、Oracle12.2expdp特别慢

我有一个12.2.0.1的库,非容器单实例。使用expdp导入,导入文件总共不到4G,但要花将近6个小时。alert没有任何报错。新库基本都是空的分区表。

确诊推论:请先尝试搜集系统、数据字典统计信息。另外可以尝试如下方式:

1、最小配置stream_pool_size最小到256M,可能的话设置512M或则1GB;

2、加大expdp的并行度,若果CPU压力不大,可以设置为CPU核数的1半或更多;

3、EXCLUDE=GRANTexclude=statistic

4、METRICS=YES

5、如果导入逗留在TABLE_DATA阶段,而且上述处理无效,可以打补丁Bug28100495

问题四、RACCTSS状态观察模式,时间不同步

2节点RAC,其中一台数学故障。修补后RAC报CTSS状态为观察模式,时间不同步

  1. Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0


  2. PL/SQL Release 12.2.0.1.0 - Production 0

  3. CORE 12.2.0.1.0 Production 0

  4. TNS for Linux: Version 12.2.0.1.0 - Production 0

  5. NLSRTL Version 12.2.0.1.0 - Production 0

  6. CPUs:56 Cores:28 Sockets:2

  7. 内存188.26G

确诊推论:CTSS状态为观察模式一般是由于本地的NTP服务启动了。所以可以先检测一下新修补的那台服务器上是不是默认启动了NTP。假如是,禁用掉一般就可以了。

问题五、OGG-00665OCIError(status=3114-ORA-03114)

OGG同步序列,进程ABENDING,重启进程问题一直存在,数据库正常,其他ogg的进程正常,且排除掉该序列的同步后进程可以正常启动

  1. 2019-03-07 17:06:39 ERROR OGG-00665 Oracle GoldenGate Delivery for Oracle, rptsqe.prm: OCI Error describe for query

  2. (status = 3114-ORA-03114: not connected to ORACLE), SQL<select status, deferrable from dba_constraints where owner =UPPER('BOSDATA') and table_name='TASK_SEQ' and constraint_type = 'P' >.

  3. 2019-03-07 17:06:39 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rptsqe.prm: PROCESS ABENDING.

确诊推论:

1、我今天查了好多资料,有一个同样的报错,RAC环境,OGG版本也是11.2,不过是抽取进程,说是重启集群后问题消失,所以之后再遇见SEQ同步报错了,可以尝试下。

2、有可能是复制进程中的这个参数造成,或则未知BUG

DBOPTIONS_NOAUTOMATICSEQUENCEFLUSH

3、一般情况下目标端不会使用sequence,所以可以考虑排除所有SEQ的同步

4、升级OGG版本,起码12

问题六、数据库大量僵尸进程未手动清除

数据库出现顾客端联接不上,查看alert日志

  1. Wed Mar 13 09:21:50 2019

  2. ORA-00020: No more process state objects available

  3. ORA-20 errors will not be written to the alert log for

  4. the next minute. Please look at trace files to see all

  5. the ORA-20 errors.

  6. Process J002 submission failed with error = 20

  7. kkjcre1p: unable to spawn jobq slave process

  8. Errors in file /export/home/u01/app/oracle/diag/rdbms///trace/_cjq0_25517.trc:

此时查看v$process为738个进程sql停留在安装程序文件,参数process进程数设置为800.以下句子查询结果为380

  1. select count(*) from v$process where addr not in (select paddr from v$session);

杀掉那些进程,顾客端可以正常联接。总体进程维持在400左右。

问题点:1、pmon为什么没有清除掉这380个没有会话的进程。2、是否有参数设置pmon消除僵尸进程的条件,例如空闲时间之类的。

确诊推论:通常killsession后会出现这些情况,并且不会出现几百个的情况。首先请检测是否存在频繁killsession的操作,和应用构建联接、断开联接的形式是否规范;其次,临时将数据库的process参数调高,防止应用出错。最后,提供一个手动清除僵尸process的脚本。

问题七、oracle10gRgR2expdp报错ORA-00376

expdp导入报错

  1. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production


  2. With the Partitioning, OLAP and Data Mining options



  3. ORA-39001: invalid argument value

  4. ORA-00376: file 53 cannot be read at this time

  5. ORA-01110: data file 53: '/oracle/oracle/oradata/xxx/xxx.dbf'

53号数据文件因为硬件故障造成文件受损,难以修补。库为非归当模式,所以将53号数据文件offlinedrop,将库强制启上去了。现今备份的时侯报错了,导入命令如下;

  1. expdp user/passwd parfile=cfg_except_tables.cfg


  2. cat cfg_except_tables.cfg

  3. EXCLUDE=TABLE

  4. COMPRESSION=METADATA_ONLY

  5. DIRECTORY=DPUMP_DIR1

  6. DUMPFILE=auto_backup.dmp

  7. LOGFILE=auto_backup.log

通过如下SQL查为空,我把53号数据文件早已清空了,但还是报里面的错

  1. select * from dba_extents where file_id=53

确诊推论:ASSM管理模式下dba_extents是储存在数据文件中的,脱机文件是看不到对象的。由于你这些报错说明53号文件还是有对象存在的sql停留在安装程序文件,原则上是可以跳过这种对象导入正常的对象的,要确认53号的对象须要使用如下SQL。

问题八、oracle10G构建dblink访问9i的远程库执行sql很慢

oracle10G构建了dblink联接9i数据库执行了select*fromtable–table中只有两条记录历时20s两台服务器间网路正常再9i直接执行sql很快还可能是哪些缘由呢?查看等待风波为SQL*Netmessagefromdblink

图片[2]-【DBASK问答】小程序中的问题和诊断总结(一)-唐朝资源网

确诊推论:是由于10g的服务器操作系统版本是windowsserver2012从windowsserver2008之后降低了接收窗口手动调谐级别功能造成,调整接收窗口手动调谐级别解决。

问题九、安装rac,IO有哪些要求?

安装rac,IO有哪些要求么?参考过rac安装有最佳实践,并且官方并没有强调IO具体参考范围(IOPS)。所以,想咨询下,贵司有没有针对RAC安装对IO的要求或IO范围参考值?我想对比下自己的储存IO性能,看是否达标。

确诊推论:是由于10g的服务器操作系统版本是windowsserver2012从windowsserver2008之后降低了接收窗口手动调谐级别功能造成,调整接收窗口手动调谐级别解决。

问题十、双机切换后TNS-12537ORA-609

数据库是Oracle,操作系统是Windows,高可用是rose双机。把主服务器切换到备用服务器时,会出现程序联接不上,报错如下:

然而切回去之后就正常了,经过查看日志,发觉如下报错:

  1. Fatal NI connect error 12537, connecting to:

  2. (LOCAL=NO)

  3. VERSION INFORMATION:

  4. TNS for 64-bit Windows: Version 11.2.0.1.0 - Production

  5. Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production

  6. Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production

  7. Time: 12-3月 -2019 20:15:08

  8. Tracing not turned on.

  9. Tns error struct:

  10. ns main err code: 12537


  11. TNS-12537: TNS: 连接关闭

  12. ns secondary err code: 12560

  13. nt main err code: 0

  14. nt secondary err code: 0

  15. nt OS err code: 0

  16. opiodr aborting process unknown ospid (10796) as a result of ORA-609

  17. Tue Mar 12 20:15:28 2019

请问是哪些缘由造成的呢?如何去解决这个问题呢

确诊推论:检测双机各自窃听日志,发觉节点窃听日志4G,清空问题节点窃听日志问题解决。

问题十一、oracle导出数据报ORA-39242错误

提示因为表属性缘由,难以导出入成功

  1. ORA-39242: Unable to export/import TABLE_DATA: … due to table attributes.

确诊推论:检测表里面索引的状态是否正常,倘若不是VALID就做下rebuild再导出

出处:恩墨云服务(ID:enmocs)

往期精彩

|||||

|||||

||||

||||||||

云和恩墨大讲坛|一个分享交流的地方

长按,辨识二维码,加入千人交流社群

图片[3]-【DBASK问答】小程序中的问题和诊断总结(一)-唐朝资源网

请备注:云和恩墨大讲座

© 版权声明
THE END
喜欢就支持一下吧
点赞118赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容