oracle一次卡顿案例(二)
故障描述2023年09月29号 10:30左右,应用多次反馈boss1的jsbas数据库应用程序报错,会话断开。原因分析检查会话情况:检查会话执行的sql:从上面可以看出来,JOUR用户的会话等待事件row cache lock,sql文本为“SELECT * FROM OM_LINE WHERE SUBSCRIBER_INS_ID = 108166239 AND ORDER_STATUS = &
oracle手动配置互信
方法一、1.先去ssh删除里面全部su - oraclecd .ssh2.配互信(node1,node2改成hostname)node1:[oracle @ node1~]$ ssh-keygen -t rsa //一路回车[oracle @ node1~]$ ssh-keygen -t
oracle expdp后台终止或者暂停
1.先导出expdp system/oracle directory=mydata dumpfile=wlh.dmp logfile=wlh.log full=yCtrl+c 掐断导出,发现并未真正断开expdp2.查看会发现正在执行SQL> select job_name,state from dba_datapump_jobs;JOB_NAME &n
oracle集群因子介绍
查看索引集群因子select OWNER,INDEX_NAME,CLUSTERING_FACTOR from dba_indexes where owner='DEF' and index_name='IDX_XX2';查看总行数select count(*) from def.employee;集群因子约接近总行数(越大),回表的时候会读更多数据块集群因子影响索引
oracle Buffer pin锁的过程(Buffer busy waits)
如果先读后写申请一个buffer,数据从undo和老的buffer中克隆到新的里,老的buffer状态从XCUR改成CR,给读用,新的buffer状态从0改成XCUR,成为新的当前读buffer。如果先写后读申请一个buffer,数据从undo和老的buffer中克隆到新的里,新的buffer状态从0改成CR,给读用。如果先读后写,同时又来了个读最后一个读被堵塞,buffer busy waits
oracle RFS[16]: No standby redo logfiles available for thread 1
可能一、查看select group#, thread#, sequence#, bytes, archived, status from v$standby_log;关mrpalter database recover managed standby database cancel;改standby_file_management状态alter system set standby_file_m
oracle一次卡顿案例(一)
故障描述2023年2月3日早上10点19分客户打电话找到工程师反应pacs数据库系统十分卡顿,事后通过告警日志在9点39分告警平台已经报警cpu使用率已经达到99%趋近饱和:查询数据库当时的运行情况,发现有大量的latch等待:这个等待事件是由热链争用导致,本次问题预估由于大量逻辑读的SQL语句有可能产生非常严重的latch:cache buffers chains等待,因为每次要访问一个bloc
oracle 一次undo坏块案例
一、背景概述2021-02-10 9:00 工程师接到客户电话,数据库delete数据一直卡住。2021-02-10 10:00 客户提供堡垒机远程方式,美创工程师登录操作系统,发现数据库异常卡顿,后台有大量等待事件,磁盘io已经达到峰值2021-02-11 23:00数据库重新起停时间需要2小时以上,且磁盘io一直处于写满状态,且再最后一次启动数据库后,undo出现坏块,需要
oracle一次latch free案例
一、事情经过XXX客户生产数据库,客户提供高峰期卡顿时间发生在月结。由于报告保存时间为7天,无法查找到月初的报告,通过增加业务模拟环境,发现业务产生时间段操作系统整体资源使用率较低,数据库latch争用较为严重。详见具体诊断过程如下:概念介绍:result cacheOracle 11G之前的版本数据读写操作,都是将数据块(Data Block)缓存到Buffer Cache中。每次SQL语句执行
oracle ORA-04045 ORA-16000处理
经过:客户连接dg备库,报错ORA-04045 ORA-16000分析:大概率原因是那张视图的列有删减更改,需要主库重新编译过后,切归档同步给备库,然后再备库查询即可。处理:
sql server远端备份方式
相信大家碰到过这样的问题吧,客户想要将所有的备份放在一台专门当存储用的机子上,但是又想要自动化备份,不想备份下了手动或者脚本传过去,也不想nfs挂在盘过来,这可咋办呢?其实并不难,这里,我们称两边为源端和备份端,源端是想备份的sql server数据库,备份端是专门存放备份的机子(没有sql server)。首先,我们在备份端创建一个共享文件夹(配置好能让源端访问到的权限),接着在源端尝试去访问这
oracle 19c自动备库闪回
今天,我们来讲一下在19c中添加了一个新的功能——自动备库闪回首先,需要DG主、备库都开启闪回功能alter system set db_recovery_file_dest_size=8G scope=both;alter system set db_recovery_file_dest='/oracle/flash/' scope=both;alter system set d
oracle 10g taf分享
10g taf分享介绍:没有配置TAF的情况下,客户端连接数据库,一个节点宕机,客户端需要重新连接,才能正常连接。通过TAF去连接数据库时,当一个节点宕机时,无需重连,会自动切换到另外一个节点,但是前提条件是没有未提交的事务,若有未提交的事务,则会报错ORA-25405: transaction status unknown,重新连接即可。 三种方法:Client-Side Connec
oracle安装10.2.0.5(10g打大补丁)(10201——10205)
1.安装10.2.0.1过程略2.打10.2.0.5大补丁解压$ unzip p8202632_10205_linux.zip 安装cd Disk1$ ./runinstallerroot用户执行3个no升级完成
oracle 普通表空间数据文件坏块处理详解
模拟损坏#获取表的ROWID_BLOCK_NUMBER和rowid_relative_fnoSQL> select dbms_rowid.rowid_block_number(rowid),dbms_rowid.rowid_relative_fno(rowid) from def.d;DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) DBMS_ROWID.ROWID_
oracle中各种name,小白必看
1.Sid=instance_nameEg、export ORACLE_SID=wlh1Initwlh1.oraSpfilewlh1.ora11g的alert日志位置是$ORACLE_BASE/db_unique_name/instance_name/traceselect instance_name from v$instance;show parameter instance_name2.se
oracle 普通表-分区表改造详细流程
1.先做备份(保险)创建虚拟路径create directory mydata as '/oracle/oradata/mydata';查看逻辑目录创建成功没select * from dba_directories;逻辑备份表expdp \'/ as sysdba\' directory=DMP tables=zqz.test dumpfile=test717.d
oracle buffer busy waits等待的内核解释
buffer busy waits:读不堵塞写,写堵塞读。一个会话读、另个会话写这个buffer,写的同时又有个会话读这个buffer产生等待buffer busy waitsoracle修改一个buffer的步骤。减少2-7步骤的时间可以减少buffer busy waits。期间主要工作就是 生成redo和修改buffer中的内容。修改buffer内容是调用系统函数memcpy完成
oracle 内核介绍——检查点队列链表CKPT-Q
修改块为例:update,只是修改buffer cache中的buffer,改完后,update算完工。buffer和磁盘中的block就不一致了,buffer中的最新数据没有写入磁盘。buffer就是脏buffer(又称脏块)。脏块由DBWR进程统一写入磁盘,DBWR写脏块的过程也叫刷新脏块。定义哪些buffer是脏块,需要一个链表把所有脏buffer串起来,DBWR写脏块时,按照这个链表顺序来
oracle临时表空间相关
查看临时表空间大小select tablespace_name,file_name,sum(bytes)/1024/1024/1024 GB from dba_temp_files group by tablespace_name,file_name;(临时表空间)临时表空间添加数据文件alter tablespace tmp1 add tempfile '/oracle/app/orad