Mutex在计算机中是互斥也就是排他持有的一种方式,和信号量-Semaphore有可以对比之处
一般来说,见到bootstrap错误都是很严重的故障,bootstrap过程失败数据库肯定就无法打开。很多时候bootstrap$表损坏也会导致bootstrap失败。
只有原库数据文件的RMAN备份集(此备份集不包含控制文件,log,参数文件等等,单纯只有数据库的所有数据文件的备份集),主库废了,如何进行恢复!
在一些特殊的情况下,我们可能需要修改数据库的DBID,有时候可能仅仅是修改控制文件的。
测试数据库是Oracle10g 10.2.0.3,实际上这个等待事件也是从Oracle 10g开始引入的,用来标识表空间或数据文件扩展时的等待。 Oracle 需要将系统块格式化为Oracle数据块,然后才能提供数据库使用。
在DBA_TABLES字典表中有一个degree字段,这个字段代表并行查询在数据表上的并行度,在RAC环境中,这个参数还和实例有关。
Resize datafile会触发一个文件级检查点,今天讲课的时候和大家提到过这个,记录一下。
RAC环境下,可以通过如下命令来恢复备份集中的归档日志。
这一案例的恢复过程并不重要,重要的是DBA应该学会永远不要让我们的数据库置于这样的危险境地
今天一个朋友在MSN上问我,Varchar2(4000)能存多少数据? 他说他的Varchar2(4000)有的条目,用lengthb计算,达到了4046.
由于某些Linux内核使用32位无符号长整型来计算时间,32位的最大值就是0xffffffff,再加1就将溢出变为0
昨天提到的事务恢复问题,有人问是否真要回滚几天那么久?
由于死事务已经无法通过v$transaction来观察,所以必须通过内部表来进行判断。
这个内部表是x$ktuxe,该表会记录Dead事务的恢复进度
在x$ksmsp.ksmchcls的分类中,还有两外几个分类,这几个分类是R-free/R-freea/R-perm
但是最终Oracle不认为这是一个Bug,因为即使底层表x$kglob的相关值定义从KQFCINT() 变更位 KQFCUIN()。也只不过将这个限制扩大了一倍而已,这个限制早晚还会被达到。
我认为BMB的结构应该是均衡的,同时段头的PAGETABLE SEGMENT HEADER同时充当了第0个3级位图块的角色。
也就是说你不查询就不知道current_scn的值,你查询它就变化,是不是有点向薛定谔的猫的那种感觉?
真理是需要不断摸索才能发现的。
归档进程的数量是受初始化参数log_archive_max_processes控制,初始的,这个参数设置为2,Oracle启动两个归档进程
这个root dba指向了1.417对象,而1.417对象的上一个对象正是bootstrap$,Oracle通过1.417找到了bootstrap$对象就可以启动了数据库。
最显著的等待是LOG FILE SYNC,最终发现问题出在LGWR进程,由于该进程活动过于频繁,该进程在系统上的nice值被调至68,AIX上缺省进程nice值为60,nice值越高表示优先级越低。
在Linux/Unix上,Oracle在很多地方都从系统取得时间。
我们知道从Oracle9i开始,Oracle引入了Peeking of User-Defined Bind Variables的特性,这个特性可以用来在存在数据倾斜时对执行计划纠偏。 然而这一特性也可能带来一些副作用,所以Oracle同时引入了一个内部参数用于控制这一特性
38003事件的作用是:CBO Disable column stats for the dictionary objects in recursive SQL 也就是说可以将部分对象从启动的bootstrap$需要里剥离出来,从而可以被在线rebuild.
前几天说过,Oracle10g Events CONTROLF的改变,当时猜测控制文件的变化可能是为了满足Oracle10g Grid运算支持大量并行实例的需要。
其实很多时候,到达用户现场后,你就只剩下一个想法,尽快帮用户最大程度的恢复数据,因为到了最后的阶段,数据已经影响到了很多人的生活,我们能做的就是尽最大可能以最快速度进行恢复。