Oracle的锁机制:Enqueue详解
在 Oracle 数据库的世界里,锁(Lock)是我们最熟悉的陌生人。我们都知道 UPDATE 会加锁,SELECT FOR UPDATE 也会加锁,但你是否想过,当成千上万个会话同时争抢同一个资源时,Oracle 是如何在底层管理这些锁请求的?答案就是:排队(Enqueue)。今天,我们就潜入 Oracle 内核深处,去看看这个名为 Enqueue 的神秘结构是如何指挥交通的。什么是 Enque
Oracle 小众需求:如何安全、彻底地修改 DB_NAME和INSTANCE_NAME?
在数据库运维中,修改数据库名称(DB_NAME)和实例名(INSTANCE_NAME)是一个相对底层且有风险的操作。这通常发生在数据库迁移、克隆或标准化命名等场景。
位图索引的妙用
当业务方给你扔来一堆天马行空的“即席查询”需求时,DBA 的内心是不是总会咯噔一下?
Oracle 安全加固:如何设置 IP 黑白名单,限制数据库访问?
Oracle 安全加固:如何设置 IP 黑白名单,限制数据库访问?
ORA-00600 [17114] 错误排查实录:一次由“新排序算法”引发的血案
在一次常规的数据库操作中,我们遇到了一个非常棘手的现象。当尝试为某个表创建索引时,SQL*Plus 会话被意外中断,并抛出了经典的“掉线”错误:ORA-03113。
记一次无备份无归档的数据库异常恢复记录
记一次某客户数据库异常恢复记录(无备份,无归档)数据库运行时异常宕机,并在重新启动后报如下错误:1、开启数据库时,提示ORA-01113,ORA-01110,然后recover这个数据文件报ORA-00742,ORA-003122、尝试设置隐含参数跳过报错alter system set "_allow_resetlogs_corruption"=
集群损坏,如何抢救抽取数据?
重要提示: AMDU是一个非常强大的底层工具,通常只在资深有经验的DBA的指导下使用,不当的操作可能会对存储造成进一步的损害。
GI&DB文件权限批量错误如何处理?
集群和数据库软件所有节点有时候可能被误操作chown -R,那么如何恢复正确的权限呢
闪回功能介绍与使用
Oracle闪回技术是现代Oracle数据库不可或缺的灾难恢复和数据分析工具包。它通过利用数据库内部的撤销机制和专用日志,提供了远超传统恢复方法的速度、精度和易用性。理解不同闪回技术的原理、适用场景、依赖和限制,对于DBA高效地进行数据恢复、审计、排错和保障业务连续性至关重要。根据具体需求(恢复整个库、单个表、查询历史、恢复删除的表)选择正确的闪回技术是关键。选择哪种闪回技术?场景推荐技术主要依赖
基数反馈机制引起的执行计划错误
加了索引还是不起效的情况,有可能是一种基数反馈机制导致的,解决方法关闭基数反馈机制。如:添加hint /*+ opt_param('_optimizer_use_feedback','false')*/关闭动态采样:SQL> alter session set optimizer_dynamic_sampling=0;
1号数据文件坏块处理修复
一、模拟坏块环境:进入bbedcopy file 2 block 20 to file 1 block 520然后强制关闭数据库shutdown abort;再次打开数据库,如下报错(可以看到1号文件的520号块已被损坏):Reading datafile '/oracl
监听故障案例
背景:客户的某个业务系统,一节点监听只能注册VIP,public ip在重启完监听后,就算可以维持一段时间,但是过一会儿就掉了。排查流程:1、开启pmon trace Set PMON tracing to level 3 per the instructions. SQL>alter s
如何主库进行闪回,而备库不需要重新搭建?
主库需要跑批或者其他场景怕失败,准备闪回,怕失败准备闪回,但是闪回完需要resetlogs打开,避免备库要重新搭建的方法流程。
OGG:11G RAC - 19C 单实例搭建同步实况
11g rac -- 19c 单机ogg软件下载地址http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html官方指导手册:https://docs.oracle.com/en/middleware/goldengate/core/19.1/index.htmlhttps://docs.orac
Dg broker如何配置
DG Broker(Data Guard Broker)是Oracle数据库提供的一个集中式管理框架,用于简化Data Guard配置的创建、监控和维护。它将主库(Primary)和所有备库(Standby)视为一个整体系统,通过命令行工具dgmgrl或Oracle Enterprise Manager
外连接嵌套循环为何无法更改驱动表
相信各位大佬在做SQL优化的时候,发现一条走外连接的SQL语句表连接方式是嵌套循环,并发现有时将从表作为驱动表执行效率可能会更高,于是兴致勃勃地使用leading(xx)的hint,发现驱动表并无变化。那么这是为什么呢,今天就展开讲讲。 要
如何查杀正在运行的job
1.首先确定要停止的JOB号select * from dba_jobs_running;--得到sid和job号 2.Broken确认的JOB可以在PL/SQL Developer中,直接选项broken;或者使用语句:EXEC DBMS_JOB.BROKEN(job#,TRUE);--加入job号,注意commit 3.Kill 对应
OraInventory目录不存在处理方法
一 oraInventory的作用oraInventory中记录了oracle安装目录的相关信息,通常在oracle软件安装过程中会自动创建,路径通常会在$ORACLE_BASE/oraInventory/,并在/etc/oraInst.loc中记录相关的路径信息,有时候我们的oracle目录是从另一套相似环境中tar过来的,这个时候是不会有oraInventory信息,如果此时数据库需要升级,或
域名解析导致连接故障案例一则
某客户的一个数据库连接卡顿,具体体现在:Lsnrctl status 要很久客户端连接 要很久Tnsping ip 要很久检查操作系统日志,无明显报错检查数据库日志,报错如下:Mon Jun 15 11:35:34 2020 WARN: ARC3: Terminating ARCH (pid 45650)&
ASM磁盘头损坏如何修复
磁盘头信息备份恢复 / 无备份修复一、 kfed 备份 / 恢复1 、备份kfed read /dev/data text=/tmp/data.head2 、模拟破坏[grid@rac1 ~]$ dd if=/dev/zero of=/dev/dat