20万DBA都在关注的11个问题(20万以内的dba)
sinye56 2024-10-04 10:59 8 浏览 0 评论
引言
本文摘自『DBASK问答集萃第三期』,近期我们在DBASK小程序增加了众多专栏,其中包括盖国强、杨廷琨、罗海雄、张乐奕、黄廷忠、崔华、熊军、李真旭、何剑敏、刘伟等专家栏目,还有2019年6月SCN兼容性问题、XTTS、备份恢复等技术专栏,另外蚂蚁金服OceanBase入驻小程序。欢迎大家阅读分享小程序中的专题栏目。如果您乐于技术分享,欢迎联系小助手(ID:Enmoedu05),为您打造优质专栏。
问答集萃
接下来,我们分享本期整理出的问题和诊断总结,供大家参考学习,详细的诊断分析过程可以通过标题链接跳转到小程序中查看。
问题一、RMAN-20039: format requires %c when duplexing
备份时报错:
RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of backup command RMAN-20039: format requires %c when duplexing
备份数据文件不加%C就会报错,加%C有两份一样的?
----备份脚本 run{ allocate channel c1 device type disk; allocate channel c2 device type disk; allocate channel c3 device type disk; allocate channel c4 device type disk; crosscheck backup; sql 'alter system archive log current'; backup spfile format '/bak/backup/spfile_%T_%s_%p_%c'; #backup database format '/bak/backup/dbbk_0_%d_%t_%u_%s_%p'; backup as compressed backupset incremental level 0 database format '/bak/backup/dbbk_0_%d_%t_%u_%s_%p'; sql 'alter system archive log current'; backup archivelog all format '/bak/backup/arc_%T_%s_%p_%c' delete all input; backup current controlfile format '/bak/backup/cntrl_%T_%s_%p_%c'; crosscheck archivelog all; delete noprompt expired backup; delete noprompt obsolete; release channel c1; release channel c2; release channel c3; release channel c4; }
诊断结论:如果设置不冗余就不需要加c%,否则就会出现你的报错。如果设置了冗余必须加%c,那么也就会产生相应的备份片。
问题二、RAC实例无法启动ORA-01157 ORA-01110 ORA-27041 OSD-04002
服务器未知原因故障恢复后,启动数据库实例报错,错误信息如下:
ALTER DATABASE OPEN /* db agent *//* {2:38813:23181} */ This instance was first to open Errors in file D:\APP\...\orcl2_ora_7780.trc: ORA-01157: ????/?????? 11 - ??? DBWR ???? ORA-01110: ???? 11: 'D:\APP\...\NXPT.DBF' ORA-1157 signalled during: ALTER DATABASE OPEN /* db agent *//* {2:38813:23181} */... Fri Mar 01 10:00:59 2019 Shutting down instance (abort) License high water mark = 2 USER (ospid: 13460): terminating the instance Instance terminated by USER, pid = 13460 Fri Mar 01 10:01:16 2019 Instance shutdown complete Fri Mar 01 10:34:34 2019
诊断结论:从报错看,这个是一个本地数据文件'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\NTBS.DBF',应该是将RAC中的数据库文件误建到本地磁盘,所以其他实例无法启动,导致错误。
问题三、Oracle 12.2 expdp 非常慢
我有一个12.2.0.1的库,非容器单实例。使用expdp导出,导出文件总共不到4G,但要花将近6个小时。alert没有任何报错。新库基本都是空的分区表。
诊断结论:请先尝试收集系统、数据字典统计信息。另外可以尝试如下方法:
1、 最小配置stream_pool_size最小到256M,可能的话设置512M或者1GB;
2、加大expdp的并行度,如果CPU压力不大,可以设置为CPU核数的1半或更多;
3、EXCLUDE=GRANT exclude = statistic
4、METRICS=YES
5、如果导出停留在TABLE_DATA阶段,并且上述处理无效,可以打补丁Bug 28100495
问题四、RAC CTSS状态观察模式,时间不同步
2节点RAC,其中一台物理故障。修复后RAC报CTSS状态为观察模式,时间不同步
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0 PL/SQL Release 12.2.0.1.0 - Production 0 CORE 12.2.0.1.0 Production 0 TNS for Linux: Version 12.2.0.1.0 - Production 0 NLSRTL Version 12.2.0.1.0 - Production 0 CPUs:56 Cores:28 Sockets:2 内存188.26G
诊断结论:CTSS状态为观察模式通常是因为本地的NTP服务启动了。所以可以先检查一下新修复的那台服务器上是不是默认启动了NTP。如果是,禁用掉通常就可以了。
问题五、OGG-00665 OCI Error (status = 3114-ORA-03114)
OGG 同步序列,进程ABENDING,重启进程问题仍然存在,数据库正常,其他ogg的进程正常,且排除掉该序列的同步后进程可以正常启动
2019-03-07 17:06:39 ERROR OGG-00665 Oracle GoldenGate Delivery for Oracle, rptsqe.prm: OCI Error describe for query (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' >. 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日志
Wed Mar 13 09:21:50 2019 ORA-00020: No more process state objects available ORA-20 errors will not be written to the alert log for the next minute. Please look at trace files to see all the ORA-20 errors. Process J002 submission failed with error = 20 kkjcre1p: unable to spawn jobq slave process Errors in file /export/home/u01/app/oracle/diag/rdbms///trace/_cjq0_25517.trc:
此时查看 v$process 为738个进程,参数process进程数设置为800.以下语句查询结果为380
select count(*) from v$process where addr not in (select paddr from v$session);
杀掉这些进程,客户端可以正常连接。总体进程维持在400左右。
问题点:1、pmon为何没有清理掉这380个没有会话的进程。2、是否有参数设置pmon清除僵尸进程的条件,比如空闲时间之类的。
诊断结论:一般kill session后会出现这种情况,但是不会出现几百个的情况。首先请检查是否存在频繁kill session的操作,和应用建立连接、断开连接的方式是否规范;其次,临时将数据库的process参数调高,避免应用出错。最后,提供一个自动清理僵尸process的脚本。
问题七、oracle 10gR2 expdp报错ORA-00376
expdp导出报错
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options ORA-39001: invalid argument value ORA-00376: file 53 cannot be read at this time ORA-01110: data file 53: '/oracle/oracle/oradata/xxx/xxx.dbf'
53号数据文件由于硬件故障导致文件损坏,无法修复。库为非归当模式,所以将53号数据文件offline drop,将库强制启起来了。现在备份的时候报错了,导出命令如下;
expdp user/passwd parfile=cfg_except_tables.cfg cat cfg_except_tables.cfg EXCLUDE=TABLE COMPRESSION=METADATA_ONLY DIRECTORY=DPUMP_DIR1 DUMPFILE=auto_backup.dmp LOGFILE=auto_backup.log
通过如下SQL查为空,我把53号数据文件已经清空了,但还是报上面的错
select * from dba_extents where file_id=53
诊断结论:ASSM 管理模式下dba_extents是存放在数据文件中的,脱机文件是看不到对象的。因为你这种报错说明53号文件还是有对象存在的,原则上是可以跳过这些对象导出正常的对象的,要确认53号的对象需要使用如下SQL。
问题八、oracle 10G 建立dblink 访问9i的远程库执行sql很慢
oracle 10G 建立了dblink 连接9i 数据库 执行了 select * from table --table中只有两条记录 耗时 20s 两台服务器间网络正常 再9i 直接执行sql 很快 还可能是什么原因呢?查看等待事件为 SQL*Net message from dblink
诊断结论:是因为 10g 的服务器操作系统版本是 windows server 2012 从windows server 2008 以后 增加了 接收窗口自动调谐级别 功能导致,调整接收窗口自动调谐级别解决。
问题九、安装rac,IO有什么要求?
安装rac,IO有什么要求么?参考过 rac安装有最佳实践,但是官方并没有指出IO具体参考范围(IOPS)。所以,想咨询下,贵司有没有针对RAC安装对IO的要求或IO范围参考值?我想对比下自己的存储IO性能,看是否达标。
诊断结论:是因为 10g 的服务器操作系统版本是 windows server 2012 从windows server 2008 以后 增加了 接收窗口自动调谐级别 功能导致,调整接收窗口自动调谐级别解决。
问题十、双机切换后TNS-12537 ORA-609
数据库是Oracle,操作系统是Windows,高可用是rose双机。把主服务器切换到备用服务器时,会出现程序连接不上,报错如下:
但是切回来以后就正常了,经过查看日志,发现如下报错:
Fatal NI connect error 12537, connecting to: (LOCAL=NO) VERSION INFORMATION: TNS for 64-bit Windows: Version 11.2.0.1.0 - Production Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production Time: 12-3月 -2019 20:15:08 Tracing not turned on. Tns error struct: ns main err code: 12537 TNS-12537: TNS: 连接关闭 ns secondary err code: 12560 nt main err code: 0 nt secondary err code: 0 nt OS err code: 0 opiodr aborting process unknown ospid (10796) as a result of ORA-609 Tue Mar 12 20:15:28 2019
请问是什么原因导致的呢?怎么去解决这个问题呢
诊断结论:检查双机各自监听日志,发现节点监听日志4G,清空问题节点监听日志问题解决。
问题十一、oracle 导入数据报ORA-39242错误
提示由于表属性原因,无法导入入成功
ORA-39242: Unable to export/import TABLE_DATA: … due to table attributes.
诊断结论:检查表上面索引的状态是否正常,如果不是VALID就做下rebuild再导入
出处:恩墨云服务(ID:enmocs)
来自:数据和云公众号(ID:OraNews)
相关推荐
- 程序员:JDK的安装与配置(完整版)_jdk的安装方法
-
对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...
- Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置
-
一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...
- 麒麟系统安装JAVA JDK教程_麒麟系统配置jdk
-
检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...
- 学习笔记-Linux JDK - 安装&配置
-
前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 测试员必备:Linux下安装JDK 1.8你必须知道的那些事
-
1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...
- Linux 下安装JDK17_linux 安装jdk1.8 yum
-
一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...
- 在Ubuntu系统中安装JDK 17并配置环境变量教程
-
在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...
- 如何在 Linux 上安装 Java_linux安装java的步骤
-
在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...
- Windows和Linux环境下的JDK安装教程
-
JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...
- linux安装jdk_linux安装jdk软连接
-
JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...
- linux安装jdk,全局配置,不同用户不同jdk
-
jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...
- 运维大神教你在linux下安装jdk8_linux安装jdk1.7
-
1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...
- window和linux安装JDK1.8_linux 安装jdk1.8.tar
-
Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...
- 最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?
-
默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- linux进程通信 (63)