Oracle数据库中,在线日志、归档日志在切换日志的过程是发生了什么事件,它们有什么关系呢

Oracle数据库中,在线日志、归档日志在切换日志的过程是发生了什么事件,它们有什么关系呢,第1张

归档日志在线日志的备份,数据库的运行用的是在线日志,切换日志的过程是在线日志循环切换,而此时归档日志就是在备份已经切换的在线日志。在线日志的切换用到的LGWR进程,而归档日志的生成用到的是ARCn进程。

等待事件

当索引块分裂发生时, 负责实施分裂 split 的进程会持有 相关的队列锁enqueue TX 锁,

直到该进程完成Split *** 作才会释放该enqueue Tx,在这个过程中负责split的进程需要找到合适的新块并将对应的数据移动到该新块中。

若在此split过程中,有其他进程INSERT数据到该索引块中,则将进入 enq: TX – index

contention等待事件,直到split结束enqueue TX被释放。

负责split的进程需要找到一个合适的新块, 其会优先寻找本index 已分配的空间中的 free block, 这些free

block应当是100% free的,但是在Oracle 的segment bitmap block 中只区分 0%-25%,25%-50%,

50%-75%, 75%-100% 使用率的数据块, 即无法直接区分 0%-25%使用率的数据块中哪些是100% free的数据块,

Oracle这样做的目的是 为了重用数据块,以避免过度分配空间。 当oracle发现没有可重用的数据块时才会扩展索引空间并移动分裂数据。

这个在split 过程中 寻找可复用的free block的过程称之为failed probes on index block

reclamation,在正常的情况下这种找寻可复用块的过程是很快的 ,但是如果 恰好遇到 物理读缓慢或者

全局的数据块争用时,该过程可能变得很慢,这将直接导致split 变慢, 进而导致大量INSERT进程长时间等待enq: TX – index

contention。

from askmaclean

1 C语言,C++都是人与计算机交流的语言,我们将希望做的事的过程用C语言或C++表述出来给计算机执行。比如要计算机执行"1+1",在数学里这么表述,在C语言,C++里有另外的表述方式。

2 SQL数据库,就像记账本,把一些需要的数据按照一定的标准格式记录下来,提供给人查询想要的账目,或新增账目等。

3 数据结构就是2中所说的数据的标准格式,只不过含义范围更广一些,数据库中有他的标准格式,在其他地方也有他特有的标准格式,比如类似成绩表中记录数据又是另一种格式。

4 C语言,C++编写程序用的。sql数据库,保持数据用的,方便以后查询编辑,如学校里的所有学生的信息就可以用SQL数据库保存,以后想要查找那个学生的信息,只要输入学生的学号,或名字就可以查找到了。数据结构,其实也可以理解为一种数据库,临时的“数据库”,提供给C语言,C++或其他语言编写程序时用到。

以上就是关于Oracle数据库中,在线日志、归档日志在切换日志的过程是发生了什么事件,它们有什么关系呢全部的内容,包括:Oracle数据库中,在线日志、归档日志在切换日志的过程是发生了什么事件,它们有什么关系呢、oracle数据库里出现很多enq: TX – index contention等待事件是怎么回事、数据库解释This,Thisform,Parent、方法、事件的含义。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9452858.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存