百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

20万DBA都在关注的11个问题(20万以内的dba)

sinye56 2024-10-04 10:59 4 浏览 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)

相关推荐

linux安装FTP

1、在nkftp目录下安装ftp,进入到nkftp里面[root@localhostbin]#cd/data/nkftp执行安装命令:[root@localhostnkftp]#rpm-i...

LINUX下搭建FTP服务器

FTP服务器介绍FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(App...

Linux下如何进行FTP设置

目录:一、Redhat/CentOS安装vsftp软件二、Ubuntu/Debian安装vsftp软件一、Redhat/CentOS安装vsftp软件1.更新yum源yumupdate-y2.安...

推荐使用集串口 SSH远程登录和FTP传输三合一工具MobaXterm

来源:百问网作者:韦东山本文字数:1216,阅读时长:4分钟在以前的资料里,串口和SSH远程登使用SecureCRT,window与ubuntu数据传输使用filezilla,窗口切换来切换去,麻烦也...

如何搭建FTP服务器(Linux系统)

上次说了Windows操作系统下搭建的FTP服务器,那有朋友问我,说买的XX轻量应用服务器都是属于Linux的操作系统,我该如何为搭建FTP服务器呢?...

Linux 命令 ncftp(文件传输)——想玩转linux就请一直看下去

我是IT悟道,点击右上方“关注”,每天分享IT、科技、数码方面的干货。Linuxncftp命令...

如何用 ftp 实现一键上传

简介ftp是Internet标准文件传输协议的用户界面,它允许用户与远程网络站点之间传输文件...

Linux安装ftp

1安装vsftpd组件安装完后,有/etc/vsftpd/vsftpd.conf文件,是vsftp的配置文件。[root@bogon~]#yum-yinstallvsftpd2添加一个...

一天一点点:linux - ftp命令

linuxftp命令设置文件系统相关功能。FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身。语法ftp[-dignv][主机名称或IP地址]参数:-d详细显示指令执...

Centos 7 搭建FTP

目录安装软件以及启动服务添加防火墙规则关闭selinuxftp配置常用常用参数详解特殊参数配置文件没有的参数也可以添加到配置中1.安装软件以及启动服务yuminstall-yvsftpdsys...

【Linux】Linux中ftp命令,没有你想的那么简单

本文介绍了Linux中FTP命令的基本用法,包括连接与登录远程服务器,以及解析了FTP协议中五个最常用的操作命令的使用和解析过程。同时,提供了一个包含常用FTP操作命令的表格,供读者参考。通过熟练掌握...

linux 命令行操作ftp

以下是linuxftp命令参数的详解。FTP>!从ftp子系统退出到外壳?FTP>?显示ftp命令说明??和help相同?格式:?[command]说明:[com...

多学习才能多赚钱之:linux如何使用ftp

linux如何使用ftp步骤1:建立FTP连接想要连接FTP服务器,在命令上中先输入ftp然后空格跟上FTP服务器的域名'domain.com'或者IP地址例如:ftpdom...

linux常用网络操作方法:ftp命令使用方法

常用网络操作方法Linux提供了一组强有力的网络命令来为用户服务,这些工具能够帮助用户登录到远程计算机上、传输文件和执行远程命令等。本节介绍下列几个常用的有关网络操作的命令:ftp传输文件tel...

Linux 5.15有望合并Memory Folios方案 内核构建速度可提升7%

甲骨文公司的长期内核开发人员MatthewWilcox已经研究了“内存对开区”概念相当长的一段时间,这可以改善Linux的内存管理,使其具有更大的效率。例如,使用内存对开的基准测试表明,内核的构建速...

取消回复欢迎 发表评论: