关于正则表达式

| May 26, 2013

Oracle在10G之前的版本,对于字符串的处理有很大的局限性。ORACLE 10G引入的正则表达式的函数 ,对字符串的处理有了极大的提
高。接下来会给大家介绍相关函数的语法,以及通过一些简单的例子来说明正则表达式的应用。



请在此链接下载全文:  关于正则表达式


参与此主题的后续讨论,可以访问我们的中文社区,跟帖分享 : 关于正则表达式

Oracle 11gr2 软件安装和数据库创建步骤详解

| May 16, 2013


本文是一篇step-by-step 文档,演示了如何安装oracle 数据库软件以及使用DBCA创建数据库。 同时,我们对每一步的功能,注意事项和容易犯的错误都进行了描述。希望对大家了解数据库安装过程有所帮助。


请在此链接下载全文: Oracle 11gr2 软件安装和数据库创建步骤详解


参与此主题的后续讨论,可以访问我们的中文社区,跟帖 共享 : Oracle 11gr2 软件安装和数据库创建步骤详解



RAC 中锁(排队)的管理

| Apr 6, 2013

本文会对RAC中锁的管理进行介绍,其中包括以下三部分内容。
1.    RAC 中锁的介绍
2.    RAC如何发现死锁
3.    搜集RAC 中锁的诊断信息

适用范围:9.2 及以上版本。

首先,我们对RAC中锁的基本概念进行一些介绍。对于RAC数据库,我们可以把锁分为两类,第一类我们可以称之为buffer lock, 这种锁针对数据库的buffer,另一种锁就是我们经常提到的排队(enqueue)。本文主要介绍后一种( buffer lock 会在今后的文章中介绍)。
既然是锁,那么就会包含等待者(convert)和 持有者(grant) 队列,类型(用来表示所保护的资源),以及访问的模式。另外,对于RAC系统,由于需要在多个实例间维护访问的一致性,每个锁也会有一个master 节点,在master 节点中会包含这个锁的完整的grant 和convert 队列,而每一个访问过这个锁的节点,也会保存本地的grant 和convert 队列。我们在共享池中看到的’ges resources’ 部分,就包含了锁的master信息,当然,也可以认为master信息是GRD 的一部分。
对于锁,另一个重要的概念就是模式(或级别),针对不同的操作,需要获得不同模式的锁,毕竟锁是一种串行的机制,串行在很多时候意味着等待,而我们并不希望看到等待,所以我们需要锁具有不同的模式,来尽量避免等待。同时,也为了保证数据的一致性,锁的有些模式之间是可以兼容的,而有些是不能兼容的。对于RAC系统,我们可以参照以下的表格,了解锁的模式和兼容性。



当用户进程需要申请锁的时候,会发生以下的过程。
1.    申请进程发送消息给master节点,找到关于锁的全部grant 和 covert 队列信息。
2.    Master 节点通知持有者释放(Down convert)相应模式的锁。
3.    如果持有者不能释放,即申请锁的兼容模式无效(进程不能以申请的模式获得锁,因为其他进程正在以不兼容的方式持有这个锁),申请进程进入等待者队列。
4.    当持有者释放锁之后,master节点通知申请进程能够以所申请的模式获得锁并进入持有者队列,申请请求成功结束。




对于RAC环境中的死锁(对于死锁的概念,本文不做介绍),是由LMD进程处理的。基本的过程是。
(more...)