How restore CBO statistics

从Oracle10g开始,当对一个表收集统计信息时,旧的统计信息会被保留了,因此当出现新收集的统计信息引起性能问题时,可以还原旧统计信息。缺省情况下统计信息会被保留31天,但可以执行execute DBMS_STATS.ALTER_STATS_HISTORY_RETENTION (days)来进行修改,days为你所指定的天数。

SQL> select DBMS_STATS.GET_STATS_HISTORY_RETENTION from dual;

GET_STATS_HISTORY_RETENTION
---------------------------
                         31
SQL> execute DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(60);
 
PL/SQL procedure successfully completed
 
SQL> select DBMS_STATS.GET_STATS_HISTORY_RETENTION from dual;
 
GET_STATS_HISTORY_RETENTION
---------------------------
                         60

在修改统计信息保留天数时要确保sysaux表空间有足够的表空间大小来存储统计信息,防止统计信息写满sysaux表空间。

可以执行以下语句来查询统计信息的保留天数:

SQL> select DBMS_STATS.GET_STATS_HISTORY_RETENTION from dual;

GET_STATS_HISTORY_RETENTION
---------------------------
                         31

执行以下语句可以查询被保留时间最久的统计信息,早于这个时间点的统计信息已经被删除。任何要求还原这个时间点及之前的统计信息都会报错”ORA-20006: Unable to restore statistics , statistics history not available”

SQL> select DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY from dual;

GET_STATS_HISTORY_AVAILABILITY
--------------------------------------------------------------------------------
10-APR-16 10.50.36.929152000 PM +08:00

SQL> execute dbms_stats.restore_table_stats ('SCOTT','EMP','10-APR-16 10.50.36.929152000 PM +08:00');

begin dbms_stats.restore_table_stats ('SCOTT','EMP','10-APR-16 10.50.36.929152000 PM +08:00'); end;

ORA-20006: Unable to restore statistics , statistics history not available
ORA-06512: at "SYS.DBMS_STATS", line 17063
ORA-06512: at "SYS.DBMS_STATS", line 17080
ORA-06512: at line 2

要想找到表的统计信息收集历史信息可以执行以下查询

SQL> select TABLE_NAME, STATS_UPDATE_TIME from dba_tab_stats_history where table_name='PM_BILL';

TABLE_NAME                     STATS_UPDATE_TIME
------------------------------ --------------------------------------------------------------------------------
PM_BILL                        12-APR-16 10.06.00.454894 PM +08:00
PM_BILL                        29-APR-16 10.11.24.030930 PM +08:00
PM_BILL                        01-MAY-16 04.44.42.324357 AM +08:00
PM_BILL                        02-MAY-16 07.03.38.762862 AM +08:00
PM_BILL                        03-MAY-16 09.33.53.942353 AM +08:00

还原统计信息可以根据需要选择以下几种方式:
execute DBMS_STATS.RESTORE_TABLE_STATS (‘owner’,’table’,date)
execute DBMS_STATS.RESTORE_DATABASE_STATS(date)
execute DBMS_STATS.RESTORE_DICTIONARY_STATS(date)
execute DBMS_STATS.RESTORE_FIXED_OBJECTS_STATS(date)
execute DBMS_STATS.RESTORE_SCHEMA_STATS(‘owner’,date)
execute DBMS_STATS.RESTORE_SYSTEM_STATS(date)

下面介绍一个还原指定表统计信息的操作:
1.查询表pm_bill的统计信息,显示有232277行记录。

SQL> select table_name,num_rows,blocks,empty_blocks,sample_size from user_tables where table_name='PM_BILL';

TABLE_NAME                       NUM_ROWS     BLOCKS EMPTY_BLOCKS SAMPLE_SIZE
------------------------------ ---------- ---------- ------------ -----------
PM_BILL                            232277       5164            0       69683

2.查询表pm_bill收集的统计信息的次数

SQL> select TABLE_NAME, STATS_UPDATE_TIME from dba_tab_stats_history where table_name='PM_BILL';

TABLE_NAME                     STATS_UPDATE_TIME
------------------------------ --------------------------------------------------------------------------------
PM_BILL                        12-APR-16 10.06.00.454894 PM +08:00
PM_BILL                        29-APR-16 10.11.24.030930 PM +08:00
PM_BILL                        01-MAY-16 04.44.42.324357 AM +08:00
PM_BILL                        02-MAY-16 07.03.38.762862 AM +08:00
PM_BILL                        03-MAY-16 09.33.53.942353 AM +08:00

3.查询表pm_bill中真实的记录数为235032与统计信息中记录的232277有差异

SQL> select count(*) from pm_bill;

  COUNT(*)
----------
    235032

4.查询统计信息保留的最早时间

SQL> select DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY from dual;

GET_STATS_HISTORY_AVAILABILITY
--------------------------------------------------------------------------------
10-APR-16 10.50.36.929152000 PM +08:00

5.对表pm_bill收集统计信息,采样比例使用100%

SQL> exec dbms_stats.gather_table_stats(ownname => 'insur_changde',tabname => 'pm_bill',estimate_percent => 100,method_opt => 'for all columns size repeat');

PL/SQL procedure successfully completed

6.查询表pm_bill的统计信息,可以看到重新收集统计信息后表的记录数与真实记数一样为235032

SQL> select table_name,num_rows,blocks,empty_blocks,sample_size from user_tables where table_name='PM_BILL';

TABLE_NAME                       NUM_ROWS     BLOCKS EMPTY_BLOCKS SAMPLE_SIZE
------------------------------ ---------- ---------- ------------ -----------
PM_BILL                            235032       5290            0      235032

SQL> select TABLE_NAME, STATS_UPDATE_TIME from dba_tab_stats_history where table_name='PM_BILL';

TABLE_NAME                     STATS_UPDATE_TIME
------------------------------ --------------------------------------------------------------------------------
PM_BILL                        12-APR-16 10.06.00.454894 PM +08:00
PM_BILL                        29-APR-16 10.11.24.030930 PM +08:00
PM_BILL                        01-MAY-16 04.44.42.324357 AM +08:00
PM_BILL                        02-MAY-16 07.03.38.762862 AM +08:00
PM_BILL                        03-MAY-16 09.33.53.942353 AM +08:00
PM_BILL                        12-MAY-16 03.06.43.688976 PM +08:00

7.将表pm_bill的统计信息还原到03-MAY-16 09.33.53.942353 AM +08:00这个时间点

SQL> exec dbms_stats.restore_table_stats ('insur_changde','pm_bill','03-MAY-16 09.33.53.942353 AM +08:00');

PL/SQL procedure successfully completed

SQL> select TABLE_NAME, STATS_UPDATE_TIME from dba_tab_stats_history where table_name='PM_BILL';

TABLE_NAME                     STATS_UPDATE_TIME
------------------------------ --------------------------------------------------------------------------------
PM_BILL                        12-APR-16 10.06.00.454894 PM +08:00
PM_BILL                        29-APR-16 10.11.24.030930 PM +08:00
PM_BILL                        01-MAY-16 04.44.42.324357 AM +08:00
PM_BILL                        02-MAY-16 07.03.38.762862 AM +08:00
PM_BILL                        03-MAY-16 09.33.53.942353 AM +08:00
PM_BILL                        12-MAY-16 03.06.43.688976 PM +08:00
PM_BILL                        12-MAY-16 03.12.55.388126 PM +08:00

7 rows selected

从上面的查询结果可以看到,表pm_bill的统计信息收集的历史信息多了一条时间为12-MAY-16 03.12.55.388126 PM +08:00
的记录,这是我们还原统计信息所产生的。

查询表pm_bill的统计信息,可以看到统计信息中记录的表的记录数恢复成了232277行

SQL> select table_name,num_rows,blocks,empty_blocks,sample_size from user_tables where table_name='PM_BILL';

TABLE_NAME                       NUM_ROWS     BLOCKS EMPTY_BLOCKS SAMPLE_SIZE
------------------------------ ---------- ---------- ------------ -----------
PM_BILL                            232277       5164            0       69683

这个功能当新收集统计信息后,如果引起了性能问题可以做为一个临时手段还解决性能问题。

opatch auto将11.2.0.4 rac升级到11.2.0.4.160419

之前执行patch都是选择手动执行,由于有升级需求,所以测试一下patch auto方式
一.生产环境
1.数据库环境
操作系统版本 : RedHat 5.4
数据库版本 : Oracle 11.2.0.4 RAC
Grid : 11.2.0.4
Oracle database: 11.2.0.4

2.准备内容
GI PSU : p22646198_112040_LINUX.zip
OPatch : p6880880_112000_Linux.zip

二、更新OPatch版本,必须要更新
在升级PSU之前必须将OPatch工具的版本升级到11.2.0.3.6或更高版本。目前最新的版本为11.2.0.3.12 OPatch下载地址:https://updates.oracle.com/download/6880880.html分别在两个节点更新OPatch版本:

1. 更新OPatch版本,需要更新到11.2.0.3.12,OPatch直接压缩替换就可以了上传p6880880_112000_Linux-x86-64.zip到每个节点的/soft目录

[root@jyrac1 soft]# ls -lrt
total 51556
-rw-r--r-- 1 root root 52733900 May 11 11:11 p6880880_112000_Linux.zip

[root@jyrac2 soft]# ls -lrt
total 51556
-rw-r--r-- 1 root root 52733900 May 11 12:08 p6880880_112000_Linux.zip

备份grid与oracle软件的原Opatch目录

[root@jyrac1 soft]# cd /u01/app/product/11.2.0/crs
[root@jyrac1 crs]# mv OPatch OPatch_bak


[root@jyrac2 soft]# cd /u01/app/product/11.2.0/crs
[root@jyrac2 crs]# mv OPatch OPatch_bak

[root@jyrac1 db]# cd /u01/app/oracle/product/11.2.0/db
[root@jyrac1 db]# mv OPatch OPatch_bak

[root@jyrac2 crs]# cd /u01/app/oracle/product/11.2.0/db
[root@jyrac2 db]# mv OPatch OPatch_bak

grid目录OPatch替换
以root用户执行以下命令:
[root@jyrac1 soft]# unzip p6880880_112000_Linux-x86-64.zip
Archive: p6880880_112000_Linux-x86-64.zip
creating: OPatch/
inflating: OPatch/opatchdiag
inflating: OPatch/opatch.pl
creating: OPatch/jlib/
inflating: OPatch/jlib/oracle.opatchcore.classpath.jar
inflating: OPatch/jlib/opatch.jar
inflating: OPatch/jlib/oracle.opatch.classpath.jar
inflating: OPatch/jlib/oracle.opatch.classpath.unix.jar
inflating: OPatch/jlib/oracle.opatch.classpath.windows.jar
inflating: OPatch/jlib/opatchsdk.jar
inflating: OPatch/jlib/oracle.opatchcore.classpath.unix.jar
inflating: OPatch/jlib/oracle.opatchcore.classpath.windows.jar
creating: OPatch/crs/
inflating: OPatch/crs/patch11203.pl
inflating: OPatch/crs/installPatch.excl
inflating: OPatch/crs/patch11202.pl
inflating: OPatch/crs/auto_patch.pl
creating: OPatch/crs/log/
inflating: OPatch/crs/patch112.pl
inflating: OPatch/crs/patchDB.pl
inflating: OPatch/crs/opatchauto
inflating: OPatch/crs/CRSProductDriver.jar
inflating: OPatch/crs/driver.jar
creating: OPatch/ocm/
creating: OPatch/ocm/doc/
extracting: OPatch/ocm/ocm.zip
inflating: OPatch/ocm/ocm_platforms.txt
creating: OPatch/ocm/lib/
inflating: OPatch/ocm/lib/emocmclnt.jar
inflating: OPatch/ocm/lib/xmlparserv2.jar
inflating: OPatch/ocm/lib/http_client.jar
inflating: OPatch/ocm/lib/emocmclnt-14.jar
inflating: OPatch/ocm/lib/regexp.jar
inflating: OPatch/ocm/lib/jnet.jar
inflating: OPatch/ocm/lib/jsse.jar
inflating: OPatch/ocm/lib/osdt_core3.jar
inflating: OPatch/ocm/lib/osdt_jce.jar
inflating: OPatch/ocm/lib/emocmcommon.jar
inflating: OPatch/ocm/lib/log4j-core.jar
inflating: OPatch/ocm/lib/jcert.jar
creating: OPatch/ocm/bin/
inflating: OPatch/ocm/bin/emocmrsp
inflating: OPatch/opatch
creating: OPatch/opatchauto-dir/
creating: OPatch/opatchauto-dir/opatchautocore/
inflating: OPatch/opatchauto-dir/opatchautocore/oplan
inflating: OPatch/opatchauto-dir/opatchautocore/opatchautobinary
creating: OPatch/opatchauto-dir/opatchautocore/jlib/
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/ValidationRules.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/patchsdk.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/ProductDriver.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/osysmodel-utils.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/OsysModel.jar
creating: OPatch/opatchauto-dir/opatchautocore/jlib/apache-commons/
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/apache-commons/commons-compress-1.4.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/apache-commons/commons-cli-1.0.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/oplan_core.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/oracle.oplan.classpath.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/bundle.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/oplan_sample.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/Validation.jar
creating: OPatch/opatchauto-dir/opatchautocore/jlib/jaxb/
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/jaxb/activation.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/jaxb/jsr173_1.0_api.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/jaxb/jaxb-api.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/jaxb/jaxb-impl.jar
inflating: OPatch/opatchauto-dir/opatchautocore/jlib/automation.jar
inflating: OPatch/opatchauto-dir/opatchautocore/oplan.bat
inflating: OPatch/opatchauto-dir/opatchautocore/README.txt
inflating: OPatch/opatchauto-dir/opatchautocore/README.html
creating: OPatch/opatchauto-dir/opatchautodb/
creating: OPatch/opatchauto-dir/opatchautodb/jlib/
inflating: OPatch/opatchauto-dir/opatchautodb/jlib/oracle.oplan.db.classpath.jar
inflating: OPatch/opatchauto-dir/opatchautodb/jlib/oplan_db.jar
inflating: OPatch/emdpatch.pl
creating: OPatch/scripts/
inflating: OPatch/scripts/opatch_wls.bat
inflating: OPatch/scripts/opatch_jvm_discovery.bat
inflating: OPatch/scripts/opatch_wls
inflating: OPatch/scripts/opatch_jvm_discovery
inflating: OPatch/operr
inflating: OPatch/operr_readme.txt
inflating: OPatch/operr.bat
creating: OPatch/opatchprereqs/
inflating: OPatch/opatchprereqs/prerequisite.properties
creating: OPatch/opatchprereqs/oui/
inflating: OPatch/opatchprereqs/oui/knowledgesrc.xml
creating: OPatch/opatchprereqs/opatch/
inflating: OPatch/opatchprereqs/opatch/runtime_prereq.xml
inflating: OPatch/opatchprereqs/opatch/rulemap.xml
inflating: OPatch/opatchprereqs/opatch/opatch_prereq.xml
inflating: OPatch/opatch.bat
creating: OPatch/oplan/
creating: OPatch/oplan/jlib/
creating: OPatch/oplan/jlib/apache-commons/
inflating: OPatch/oplan/jlib/apache-commons/commons-cli-1.0.jar
creating: OPatch/oplan/jlib/jaxb/
inflating: OPatch/oplan/jlib/jaxb/jsr173_1.0_api.jar
inflating: OPatch/oplan/jlib/jaxb/jaxb-impl.jar
inflating: OPatch/oplan/jlib/jaxb/activation.jar
inflating: OPatch/oplan/jlib/jaxb/jaxb-api.jar
inflating: OPatch/oplan/jlib/Validation.jar
inflating: OPatch/oplan/jlib/oracle.oplan.classpath.jar
inflating: OPatch/oplan/jlib/OuiDriver.jar
inflating: OPatch/oplan/jlib/EMrepoDrivers.jar
inflating: OPatch/oplan/jlib/JMXDrivers.jar
inflating: OPatch/oplan/jlib/bundle.jar
inflating: OPatch/oplan/jlib/CRSProductDriver.jar
inflating: OPatch/oplan/jlib/oplan.jar
inflating: OPatch/oplan/jlib/ValidationRules.jar
inflating: OPatch/oplan/jlib/osysmodel-utils.jar
inflating: OPatch/oplan/jlib/automation.jar
inflating: OPatch/oplan/README.html
inflating: OPatch/oplan/README.txt
inflating: OPatch/oplan/oplan.bat
inflating: OPatch/oplan/oplan
inflating: OPatch/opatchdiag.bat
inflating: OPatch/README.txt
extracting: OPatch/version.txt
creating: OPatch/docs/
inflating: OPatch/docs/cversion.txt
inflating: OPatch/docs/Prereq_Users_Guide.txt
inflating: OPatch/docs/FAQ
inflating: OPatch/docs/Users_Guide.txt

[root@jyrac2 soft]# unzip p6880880_112000_Linux-x86-64.zip
Archive:  p6880880_112000_Linux-x86-64.zip
   creating: OPatch/
  inflating: OPatch/opatchdiag       
  inflating: OPatch/opatch.pl        
   creating: OPatch/jlib/
  inflating: OPatch/jlib/oracle.opatchcore.classpath.jar  
  inflating: OPatch/jlib/opatch.jar  
  inflating: OPatch/jlib/oracle.opatch.classpath.jar  
  inflating: OPatch/jlib/oracle.opatch.classpath.unix.jar  
  inflating: OPatch/jlib/oracle.opatch.classpath.windows.jar  
  inflating: OPatch/jlib/opatchsdk.jar  
  inflating: OPatch/jlib/oracle.opatchcore.classpath.unix.jar  
  inflating: OPatch/jlib/oracle.opatchcore.classpath.windows.jar  
   creating: OPatch/crs/
  inflating: OPatch/crs/patch11203.pl  
  inflating: OPatch/crs/installPatch.excl  
  inflating: OPatch/crs/patch11202.pl  
  inflating: OPatch/crs/auto_patch.pl  
   creating: OPatch/crs/log/
  inflating: OPatch/crs/patch112.pl  
  inflating: OPatch/crs/patchDB.pl   
  inflating: OPatch/crs/opatchauto   
  inflating: OPatch/crs/CRSProductDriver.jar  
  inflating: OPatch/crs/driver.jar   
   creating: OPatch/ocm/
   creating: OPatch/ocm/doc/
 extracting: OPatch/ocm/ocm.zip      
  inflating: OPatch/ocm/ocm_platforms.txt  
   creating: OPatch/ocm/lib/
  inflating: OPatch/ocm/lib/emocmclnt.jar  
  inflating: OPatch/ocm/lib/xmlparserv2.jar  
  inflating: OPatch/ocm/lib/http_client.jar  
  inflating: OPatch/ocm/lib/emocmclnt-14.jar  
  inflating: OPatch/ocm/lib/regexp.jar  
  inflating: OPatch/ocm/lib/jnet.jar  
  inflating: OPatch/ocm/lib/jsse.jar  
  inflating: OPatch/ocm/lib/osdt_core3.jar  
  inflating: OPatch/ocm/lib/osdt_jce.jar  
  inflating: OPatch/ocm/lib/emocmcommon.jar  
  inflating: OPatch/ocm/lib/log4j-core.jar  
  inflating: OPatch/ocm/lib/jcert.jar  
   creating: OPatch/ocm/bin/
  inflating: OPatch/ocm/bin/emocmrsp  
  inflating: OPatch/opatch           
   creating: OPatch/opatchauto-dir/
   creating: OPatch/opatchauto-dir/opatchautocore/
  inflating: OPatch/opatchauto-dir/opatchautocore/oplan  
  inflating: OPatch/opatchauto-dir/opatchautocore/opatchautobinary  
   creating: OPatch/opatchauto-dir/opatchautocore/jlib/
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/ValidationRules.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/patchsdk.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/ProductDriver.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/osysmodel-utils.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/OsysModel.jar  
   creating: OPatch/opatchauto-dir/opatchautocore/jlib/apache-commons/
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/apache-commons/commons-compress-1.4.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/apache-commons/commons-cli-1.0.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/oplan_core.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/oracle.oplan.classpath.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/bundle.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/oplan_sample.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/Validation.jar  
   creating: OPatch/opatchauto-dir/opatchautocore/jlib/jaxb/
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/jaxb/activation.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/jaxb/jsr173_1.0_api.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/jaxb/jaxb-api.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/jaxb/jaxb-impl.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/jlib/automation.jar  
  inflating: OPatch/opatchauto-dir/opatchautocore/oplan.bat  
  inflating: OPatch/opatchauto-dir/opatchautocore/README.txt  
  inflating: OPatch/opatchauto-dir/opatchautocore/README.html  
   creating: OPatch/opatchauto-dir/opatchautodb/
   creating: OPatch/opatchauto-dir/opatchautodb/jlib/
  inflating: OPatch/opatchauto-dir/opatchautodb/jlib/oracle.oplan.db.classpath.jar  
  inflating: OPatch/opatchauto-dir/opatchautodb/jlib/oplan_db.jar  
  inflating: OPatch/emdpatch.pl      
   creating: OPatch/scripts/
  inflating: OPatch/scripts/opatch_wls.bat  
  inflating: OPatch/scripts/opatch_jvm_discovery.bat  
  inflating: OPatch/scripts/opatch_wls  
  inflating: OPatch/scripts/opatch_jvm_discovery  
  inflating: OPatch/operr            
  inflating: OPatch/operr_readme.txt  
  inflating: OPatch/operr.bat        
   creating: OPatch/opatchprereqs/
  inflating: OPatch/opatchprereqs/prerequisite.properties  
   creating: OPatch/opatchprereqs/oui/
  inflating: OPatch/opatchprereqs/oui/knowledgesrc.xml  
   creating: OPatch/opatchprereqs/opatch/
  inflating: OPatch/opatchprereqs/opatch/runtime_prereq.xml  
  inflating: OPatch/opatchprereqs/opatch/rulemap.xml  
  inflating: OPatch/opatchprereqs/opatch/opatch_prereq.xml  
  inflating: OPatch/opatch.bat       
   creating: OPatch/oplan/
   creating: OPatch/oplan/jlib/
   creating: OPatch/oplan/jlib/apache-commons/
  inflating: OPatch/oplan/jlib/apache-commons/commons-cli-1.0.jar  
   creating: OPatch/oplan/jlib/jaxb/
  inflating: OPatch/oplan/jlib/jaxb/jsr173_1.0_api.jar  
  inflating: OPatch/oplan/jlib/jaxb/jaxb-impl.jar  
  inflating: OPatch/oplan/jlib/jaxb/activation.jar  
  inflating: OPatch/oplan/jlib/jaxb/jaxb-api.jar  
  inflating: OPatch/oplan/jlib/Validation.jar  
  inflating: OPatch/oplan/jlib/oracle.oplan.classpath.jar  
  inflating: OPatch/oplan/jlib/OuiDriver.jar  
  inflating: OPatch/oplan/jlib/EMrepoDrivers.jar  
  inflating: OPatch/oplan/jlib/JMXDrivers.jar  
  inflating: OPatch/oplan/jlib/bundle.jar  
  inflating: OPatch/oplan/jlib/CRSProductDriver.jar  
  inflating: OPatch/oplan/jlib/oplan.jar  
  inflating: OPatch/oplan/jlib/ValidationRules.jar  
  inflating: OPatch/oplan/jlib/osysmodel-utils.jar  
  inflating: OPatch/oplan/jlib/automation.jar  
  inflating: OPatch/oplan/README.html  
  inflating: OPatch/oplan/README.txt  
  inflating: OPatch/oplan/oplan.bat  
  inflating: OPatch/oplan/oplan      
  inflating: OPatch/opatchdiag.bat   
  inflating: OPatch/README.txt       
 extracting: OPatch/version.txt      
   creating: OPatch/docs/
  inflating: OPatch/docs/cversion.txt  
  inflating: OPatch/docs/Prereq_Users_Guide.txt  
  inflating: OPatch/docs/FAQ         
  inflating: OPatch/docs/Users_Guide.txt

以root用户执行以下命令:

[root@jyrac1 soft]# cp -R OPatch /u01/app/product/11.2.0/crs/
[root@jyrac1 ~]$ cd /u01/app/product/11.2.0/crs/
[root@jyrac1 ~]$chown -R grid:oinstall OPatch

[root@jyrac2 soft]# cp -R OPatch /u01/app/product/11.2.0/crs/
[root@jyrac2 ~]$ cd /u01/app/product/11.2.0/crs/
[root@jyrac2 ~]$chown -R grid:oinstall OPatch

[root@jyrac1 soft]# cp -R OPatch /u01/app/oracle/product/11.2.0/db/
[root@jyrac1 soft]# cd /u01/app/oracle/product/11.2.0/db
[root@jyrac1 db]# chown -R oracle:oinstall OPatch

[root@jyrac2 soft]# cp -R OPatch /u01/app/oracle/product/11.2.0/db/
[root@jyrac2 soft]# cd /u01/app/oracle/product/11.2.0/db
[root@jyrac2 db]# chown -R oracle:oinstall OPatch

以grid与oracle用户来进行测试

[root@jyrac1 crs]# su - grid
[grid@jyrac1 ~]$ cd /u01/app/product/11.2.0/crs/OPatch
[grid@jyrac1 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.12

OPatch succeeded.


[root@jyrac2 crs]# su - grid
[grid@jyrac2 ~]$ cd /u01/app/product/11.2.0/crs/OPatch/
[grid@jyrac2 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.12

OPatch succeeded.

[root@jyrac1 db]# su - oracle
[oracle@jyrac1 ~]$ cd /u01/app/oracle/product/11.2.0/db/OPatch
[oracle@jyrac1 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.12

OPatch succeeded.

[root@jyrac2 db]# su - oracle
[oracle@jyrac2 ~]$ cd /u01/app/oracle/product/11.2.0/db/OPatch
[oracle@jyrac2 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.12

OPatch succeeded.

三.将补丁上传到所有节点并解压

[root@jyrac1 soft]# unzip p22646198_112040_LINUX.zip
[root@jyrac1 u02]# chown -R grid:oinstall 22646198
[root@jyrac1 u02]# chmod -R 755 22646198

[root@jyrac2 soft]# unzip p22646198_112040_LINUX.zip
[root@jyrac2 u02]# chown -R grid:oinstall 22646198
[root@jyrac2 u02]# chmod -R 755 22646198

四.检查需要打的补丁与现有补丁是否冲突

[grid@jyrac1 OPatch]$ cd /u02/22646198/
[grid@jyrac1 22646198]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 11.2.0.3.12
Copyright (c) 2016, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/product/11.2.0/crs
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/product/11.2.0/crs/oraInst.loc
OPatch version    : 11.2.0.3.12
OUI version       : 11.2.0.4.0
Log file location : /u01/app/product/11.2.0/crs/cfgtoollogs/opatch/opatch2016-05-11_21-54-31PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

[grid@jyrac2 OPatch]$ cd /u02/22646198/
[grid@jyrac2 22646198]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 11.2.0.3.12
Copyright (c) 2016, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/product/11.2.0/crs
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/product/11.2.0/crs/oraInst.loc
OPatch version    : 11.2.0.3.12
OUI version       : 11.2.0.4.0
Log file location : /u01/app/product/11.2.0/crs/cfgtoollogs/opatch/opatch2016-05-11_21-54-31PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

五.OPatch apply(所有节点均需执行)(无需关闭任何组件及资源)

[root@jyrac1 u02]# export ORACLE_HOME=/u01/app/product/11.2.0/crs
[root@jyrac1 u02]#  $ORACLE_HOME/OPatch/opatch auto /u02/22646198/ -oh $ORACLE_HOME/ -ocmrf $ORACLE_HOME/OPatch/ocm/bin/emocmrsp
Executing /u01/app/product/11.2.0/crs/perl/bin/perl /u01/app/product/11.2.0/crs/OPatch/crs/patch11203.pl -patchdir /u02 -patchn 22646198 -oh /u01/app/product/11.2.0/crs/ -ocmrf /u01/app/product/11.2.0/crs/OPatch/ocm/bin/emocmrsp -paramfile /u01/app/product/11.2.0/crs/crs/install/crsconfig_params

This is the main log file: /u01/app/product/11.2.0/crs/cfgtoollogs/opatchauto2016-05-11_21-59-41.log

This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:
/u01/app/product/11.2.0/crs/cfgtoollogs/opatchauto2016-05-11_21-59-41.report.log

2016-05-11 21:59:41: Starting Clusterware Patch Setup
Using configuration parameter file: /u01/app/product/11.2.0/crs/crs/install/crsconfig_params

Stopping CRS...
Stopped CRS successfully

patch /u02/22646198/22502456  apply successful for home  /u01/app/product/11.2.0/crs 
patch /u02/22646198/22502549  apply successful for home  /u01/app/product/11.2.0/crs 
patch /u02/22646198/22502505  apply successful for home  /u01/app/product/11.2.0/crs 

Starting CRS...
Installing Trace File Analyzer
CRS-4123: Oracle High Availability Services has been started.

opatch auto succeeded.

[root@jyrac2 app]# export ORACLE_HOME=/u01/app/product/11.2.0/crs
[root@jyrac2 app]# $ORACLE_HOME/OPatch/opatch auto /u02/22646198/ -oh $ORACLE_HOME/ -ocmrf $ORACLE_HOME/OPatch/ocm/bin/emocmrsp
Executing /u01/app/product/11.2.0/crs/perl/bin/perl /u01/app/product/11.2.0/crs/OPatch/crs/patch11203.pl -patchdir /u02 -patchn 22646198 -oh /u01/app/product/11.2.0/crs/ -ocmrf /u01/app/product/11.2.0/crs/OPatch/ocm/bin/emocmrsp -paramfile /u01/app/product/11.2.0/crs/crs/install/crsconfig_params

This is the main log file: /u01/app/product/11.2.0/crs/cfgtoollogs/opatchauto2016-05-11_22-32-49.log

This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:
/u01/app/product/11.2.0/crs/cfgtoollogs/opatchauto2016-05-11_22-32-49.report.log

2016-05-11 22:32:49: Starting Clusterware Patch Setup
Using configuration parameter file: /u01/app/product/11.2.0/crs/crs/install/crsconfig_params

Stopping CRS...
Stopped CRS successfully

patch /u02/22646198/22502456  apply successful for home  /u01/app/product/11.2.0/crs 
patch /u02/22646198/22502549  apply successful for home  /u01/app/product/11.2.0/crs 
patch /u02/22646198/22502505  apply successful for home  /u01/app/product/11.2.0/crs 

Starting CRS...
Installing Trace File Analyzer
CRS-4123: Oracle High Availability Services has been started.

opatch auto succeeded.

[grid@jyrac1 app]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRSDG.dg
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.DATADG.dg
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.LISTENER.lsnr
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.asm
               ONLINE  ONLINE       jyrac1                   Started             
               ONLINE  ONLINE       jyrac2                   Started             
ora.gsd
               ONLINE  OFFLINE      jyrac1                                       
               ONLINE  OFFLINE      jyrac2                                       
ora.net1.network
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.ons
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.registry.acfs
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       jyrac1                                       
ora.cvu
      1        ONLINE  ONLINE       jyrac1                                       
ora.jyrac.db
      1        ONLINE  ONLINE       jyrac1                   Open                
      2        ONLINE  OFFLINE                               Instance Shutdown
ora.jyrac1.vip
      1        ONLINE  ONLINE       jyrac1                                       
ora.jyrac2.vip
      1        ONLINE  ONLINE       jyrac2                                       
ora.oc4j
      1        ONLINE  ONLINE       jyrac1                                       
ora.scan1.vip
      1        ONLINE  ONLINE       jyrac1                              

显示opatch成功,但是实例jyrac2不能启动,于是手动启动.

[oracle@jyrac2 trace]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed May 11 22:45:53 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATADG/jyrac/spfilejyrac.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATADG/jyrac/spfilejyrac.ora
ORA-01034: ORACLE not available
ORA-27123: unable to attach to shared memory segment
Linux Error: 13: Permission denied
Additional information: 26
Additional information: 786438

错误信息显示没有权限来访问磁盘组中的参数文件,可能是$ORACLE_HOME/bin/oracle权限出问题了。

[grid@jyrac2 crs]$ ls -l $ORACLE_HOME/bin/oracle 
-rwxr-x--x 1 grid oinstall 174947566 Dec  2 16:01 /u01/app/product/11.2.0/crs/bin/oracle
[grid@jyrac2 crs]$ chmod 6751 $ORACLE_HOME/bin/oracle
[grid@jyrac2 crs]$ ls -l $ORACLE_HOME/bin/oracle
-rwsr-s--x 1 grid oinstall 174947566 Dec  2 16:01 /u01/app/product/11.2.0/crs/bin/oracle

[oracle@jyrac2 dbs]$ ls -l $ORACLE_HOME/bin/oracle
-rwsr-xr-x 1 oracle asmadmin 198797109 Dec  2 19:16 /u01/app/oracle/product/11.2.0/db/bin/oracle
[oracle@jyrac2 dbs]$ chmod 6751 $ORACLE_HOME/bin/oracle
[oracle@jyrac2 dbs]$ ls -l $ORACLE_HOME/bin/oracle
-rwsr-x--x 1 oracle asmadmin 198797109 Dec  2 19:16 /u01/app/oracle/product/11.2.0/db/bin/oracle

SQL> startup
ORACLE instance started.

Total System Global Area  669581312 bytes
Fixed Size                  1366724 bytes
Variable Size             243270972 bytes
Database Buffers          419430400 bytes
Redo Buffers                5513216 bytes
Database mounted.
Database opened.
[root@jyrac1 u02]# export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db
[root@jyrac1 u02]# $ORACLE_HOME/OPatch/opatch auto /u02/22646198/ -oh $ORACLE_HOME/ -ocmrf $ORACLE_HOME/OPatch/ocm/bin/emocmrsp
Executing /u01/app/product/11.2.0/crs/perl/bin/perl /u01/app/oracle/product/11.2.0/db/OPatch/crs/patch11203.pl -patchdir /u02 -patchn 22646198 -oh /u01/app/oracle/product/11.2.0/db/ -ocmrf /u01/app/oracle/product/11.2.0/db/OPatch/ocm/bin/emocmrsp -paramfile /u01/app/product/11.2.0/crs/crs/install/crsconfig_params

This is the main log file: /u01/app/oracle/product/11.2.0/db/cfgtoollogs/opatchauto2016-05-11_22-56-19.log

This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:
/u01/app/oracle/product/11.2.0/db/cfgtoollogs/opatchauto2016-05-11_22-56-19.report.log

2016-05-11 22:56:19: Starting Clusterware Patch Setup
Using configuration parameter file: /u01/app/product/11.2.0/crs/crs/install/crsconfig_params

Stopping RAC /u01/app/oracle/product/11.2.0/db ...
Stopped RAC /u01/app/oracle/product/11.2.0/db successfully

patch /u02/22646198/22502456  apply successful for home  /u01/app/oracle/product/11.2.0/db 
patch /u02/22646198/22502549/custom/server/22502549  apply successful for home  /u01/app/oracle/product/11.2.0/db 

Starting RAC /u01/app/oracle/product/11.2.0/db ...
Failed to start resources from  database home /u01/app/oracle/product/11.2.0/db
ERROR: Refer log file for more details.


opatch auto failed.

错误显示patch成功,但在启动RAC数据库时失败,于是手动启动实例jyrac1

[oracle@jyrac1 OPatch]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed May 11 23:05:01 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATADG/jyrac/spfilejyrac.ora'
ORA-17503: ksfdopn:10 Failed to open file +DATADG/jyrac/spfilejyrac.ora
ORA-12547: TNS:lost contact
SQL> exit
Disconnected

错误信息显示没有权限来访问磁盘组中的参数文件,可能是$ORACLE_HOME/bin/oracle权限出问题了

[grid@jyrac1 crs]$ ls -l $ORACLE_HOME/bin/oracle 
-rwxr-x--x 1 grid oinstall 174947566 Dec  2 16:01 /u01/app/product/11.2.0/crs/bin/oracle
[grid@jyrac1 crs]$ chmod 6751 $ORACLE_HOME/bin/oracle
[grid@jyrac1 crs]$ ls -l $ORACLE_HOME/bin/oracle
-rwsr-s--x 1 grid oinstall 174947566 Dec  2 16:01 /u01/app/product/11.2.0/crs/bin/oracle

[oracle@jyrac1 OPatch]$ ls -l $ORACLE_HOME/bin/oracle
-rwsr-s--x 1 oracle asmadmin 198963317 May 11 23:02 /u01/app/oracle/product/11.2.0/db/bin/oracle
[oracle@jyrac1 OPatch]$ chmod 6751 $ORACLE_HOME/bin/oracle
[oracle@jyrac1 OPatch]$ ls -l $ORACLE_HOME/bin/oracle
-rwsr-x--x 1 oracle asmadmin 198963317 May 11 23:02 /u01/app/oracle/product/11.2.0/db/bin/oracle
[oracle@jyrac1 OPatch]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed May 11 23:10:40 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area  669581312 bytes
Fixed Size                  1366724 bytes
Variable Size             243270972 bytes
Database Buffers          419430400 bytes
Redo Buffers                5513216 bytes
Database mounted.
Database opened.
[root@jyrac2 app]# export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db
[root@jyrac2 app]# $ORACLE_HOME/OPatch/opatch auto /u02/22646198/ -oh $ORACLE_HOME/ -ocmrf $ORACLE_HOME/OPatch/ocm/bin/emocmrsp
Executing /u01/app/product/11.2.0/crs/perl/bin/perl /u01/app/oracle/product/11.2.0/db/OPatch/crs/patch11203.pl -patchdir /u02 -patchn 22646198 -oh /u01/app/oracle/product/11.2.0/db/ -ocmrf /u01/app/oracle/product/11.2.0/db/OPatch/ocm/bin/emocmrsp -paramfile /u01/app/product/11.2.0/crs/crs/install/crsconfig_params

This is the main log file: /u01/app/oracle/product/11.2.0/db/cfgtoollogs/opatchauto2016-05-11_23-11-32.log

This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:
/u01/app/oracle/product/11.2.0/db/cfgtoollogs/opatchauto2016-05-11_23-11-32.report.log

2016-05-11 23:11:32: Starting Clusterware Patch Setup
Using configuration parameter file: /u01/app/product/11.2.0/crs/crs/install/crsconfig_params

Stopping RAC /u01/app/oracle/product/11.2.0/db ...
Stopped RAC /u01/app/oracle/product/11.2.0/db successfully

patch /u02/22646198/22502456  apply successful for home  /u01/app/oracle/product/11.2.0/db 
patch /u02/22646198/22502549/custom/server/22502549  apply successful for home  /u01/app/oracle/product/11.2.0/db 

Starting RAC /u01/app/oracle/product/11.2.0/db ...
Started RAC /u01/app/oracle/product/11.2.0/db successfully

opatch auto succeeded.
[grid@jyrac1 app]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRSDG.dg
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.DATADG.dg
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.LISTENER.lsnr
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.asm
               ONLINE  ONLINE       jyrac1                   Started             
               ONLINE  ONLINE       jyrac2                   Started             
ora.gsd
               ONLINE  OFFLINE      jyrac1                                       
               ONLINE  OFFLINE      jyrac2                                       
ora.net1.network
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.ons
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.registry.acfs
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       jyrac1                                       
ora.cvu
      1        ONLINE  ONLINE       jyrac1                                       
ora.jyrac.db
      1        ONLINE  ONLINE       jyrac1                   Open                
      2        ONLINE  ONLINE       jyrac2                   Open                
ora.jyrac1.vip
      1        ONLINE  ONLINE       jyrac1                                       
ora.jyrac2.vip
      1        ONLINE  ONLINE       jyrac2                                       
ora.oc4j
      1        ONLINE  ONLINE       jyrac1                                       
ora.scan1.vip
      1        ONLINE  ONLINE       jyrac1     

成功后,我们还是更新脚本(仅仅在第一节点)

登陆数据库执行脚本

oracle@jyrac1 u02]$cd $ORACLE_HOME/rdbms/admin
oracle@jyrac1 admin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu May 12 08:28:05 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> @catbundle.sql psu apply

六.验证

[grid@jyrac1 app]$ $ORACLE_HOME/OPatch/opatch lspatches
22502505;ACFS Patch Set Update : 11.2.0.4.160419 (22502505)
22502549;OCW Patch Set Update : 11.2.0.4.160419 (22502549)
22502456;Database Patch Set Update : 11.2.0.4.160419 (22502456)

OPatch succeeded.

[grid@jyrac2 crs]$ $ORACLE_HOME/OPatch/opatch lspatches
22502505;ACFS Patch Set Update : 11.2.0.4.160419 (22502505)
22502549;OCW Patch Set Update : 11.2.0.4.160419 (22502549)
22502456;Database Patch Set Update : 11.2.0.4.160419 (22502456)

OPatch succeeded.

[oracle@jyrac1 admin]$ $ORACLE_HOME/OPatch/opatch lspatches
22502549;OCW Patch Set Update : 11.2.0.4.160419 (22502549)
22502456;Database Patch Set Update : 11.2.0.4.160419 (22502456)

OPatch succeeded.

[oracle@jyrac2 dbs]$ $ORACLE_HOME/OPatch/opatch lspatches
22502549;OCW Patch Set Update : 11.2.0.4.160419 (22502549)
22502456;Database Patch Set Update : 11.2.0.4.160419 (22502456)

OPatch succeeded.

或者

[grid@jyrac1 app]$ $ORACLE_HOME/OPatch/opatch lsinventory
Oracle Interim Patch Installer version 11.2.0.3.12
Copyright (c) 2016, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/product/11.2.0/crs
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/product/11.2.0/crs/oraInst.loc
OPatch version    : 11.2.0.3.12
OUI version       : 11.2.0.4.0
Log file location : /u01/app/product/11.2.0/crs/cfgtoollogs/opatch/opatch2016-05-12_08-32-14AM_1.log

Lsinventory Output file location : /u01/app/product/11.2.0/crs/cfgtoollogs/opatch/lsinv/lsinventory2016-05-12_08-32-14AM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: jyrac1
ARU platform id: 46
ARU platform description:: Linux x86

Installed Top-level Products (1): 

Oracle Grid Infrastructure 11g                                       11.2.0.4.0
There are 1 products installed in this Oracle Home.


Interim patches (3) :

Patch  22502505     : applied on Wed May 11 22:07:58 CST 2016
Unique Patch ID:  19945546
Patch description:  "ACFS Patch Set Update : 11.2.0.4.160419 (22502505)"
   Created on 4 Mar 2016, 00:05:12 hrs PST8PDT
   Bugs fixed:
     21369858, 16318126, 19690653, 17503605, 17203009, 17359415, 20140148
     17611362, 17164243, 19053182, 17696547, 17488768, 18168684, 21519796
     18143006, 21208140, 17428148, 17070158, 20438706, 17510275, 17172303
     18610307, 17376318, 17721778, 22198405, 17699423, 18915417, 18155334
     18321597, 19919907, 18185024, 17636008, 17363999, 20681968, 17475946

Patch  22502549     : applied on Wed May 11 22:07:25 CST 2016
Unique Patch ID:  19945546
Patch description:  "OCW Patch Set Update : 11.2.0.4.160419 (22502549)"
   Created on 18 Mar 2016, 05:57:45 hrs PST8PDT
   Bugs fixed:
     19270660, 18328800, 18508710, 18691572, 20038451, 21251192, 21232394
     20365005, 17750548, 17387214, 17617807, 14497275, 20219458, 17733927
     18180541, 18962892, 17292250, 17378618, 16759171, 20110156, 17843489
     17065496, 13991403, 17273020, 17155238, 20012766, 21245437, 18261183
     18053580, 20218012, 17013634, 17886392, 20995001, 17039197, 17947785
     16317771, 10052729, 22353346, 20340620, 16237657, 20317221, 15917869
     18199185, 18399991, 20186278, 17374271, 18024089, 16849642, 20746251
     20246071, 14270845, 20552947, 18882642, 18414137, 17001914, 17927970
     14378120, 16346413, 15986647, 18068871, 21222147, 18143836, 16206997
     21982225, 19168690, 20235511, 18343490, 21875360, 16613232, 19276791
     17722664, 20440643, 12928658, 18952577, 18520351, 16249829, 18226143
     16076412, 18265482, 18229842, 17172091, 20676340, 17818075, 20091753
     18231837, 14373486, 20136892, 17483479, 20551654, 18120545, 18729166
     13843841, 21225209, 17405302, 18709496, 18330979, 18744838, 17087371
     20531190, 14525998, 18187697, 20598625, 14385860, 18348155, 19479503
     12928592, 17516024, 18370031, 17764053, 19272663, 17551223, 14671408
     18272135, 14207615, 21255373, 17500165, 18875012, 14769643, 18464784
     19558324, 18848125, 19241857, 14851828, 17955615, 20315294, 14693336
     16284825, 17352230, 20014326, 17238586, 17089344, 17405605, 21327402
     17531342, 19398098, 17159489, 17640316, 13823394, 16543190, 22024217
     17983675, 20795241, 17598201, 17481314, 16281493, 18346135, 15986311
     19601468, 17208793, 18700935, 18999857, 14076173, 18428146, 18352845
     17435488, 20408163, 17592037, 18352846, 19616601, 17391726, 17387779
     14777968, 15851860, 16206882, 20141091, 21113068, 20175174, 17305100
     15832129, 19885321, 16901346, 17985714, 18536826, 17780903, 18752378
     18946768, 16876500, 16875342, 17769597, 19955755, 16429265, 18336452
     17273003, 17209968, 16988311, 20094984, 19319357, 17059927, 17046460
     18053631, 16867761, 18774591, 21442094, 20235486, 19359787, 15869775
     19642566, 17447588, 16798862, 15920201

Patch  22502456     : applied on Wed May 11 22:05:13 CST 2016
Unique Patch ID:  19878058
Patch description:  "Database Patch Set Update : 11.2.0.4.160419 (22502456)"
   Created on 9 Mar 2016, 19:56:01 hrs 
Sub-patch  21948347; "Database Patch Set Update : 11.2.0.4.160119 (21948347)"
Sub-patch  21352635; "Database Patch Set Update : 11.2.0.4.8 (21352635)"
Sub-patch  20760982; "Database Patch Set Update : 11.2.0.4.7 (20760982)"
Sub-patch  20299013; "Database Patch Set Update : 11.2.0.4.6 (20299013)"
Sub-patch  19769489; "Database Patch Set Update : 11.2.0.4.5 (19769489)"
Sub-patch  19121551; "Database Patch Set Update : 11.2.0.4.4 (19121551)"
Sub-patch  18522509; "Database Patch Set Update : 11.2.0.4.3 (18522509)"
Sub-patch  18031668; "Database Patch Set Update : 11.2.0.4.2 (18031668)"
Sub-patch  17478514; "Database Patch Set Update : 11.2.0.4.1 (17478514)"
   Bugs fixed:
     17288409, 21051852, 17811429, 18607546, 17205719, 20506699, 17816865
     17922254, 17754782, 16934803, 13364795, 17311728, 17441661, 17284817
     16992075, 17446237, 14015842, 19972569, 21756677, 21538558, 20925795
     17449815, 17375354, 19463897, 13866822, 17982555, 17235750, 17478514
     18317531, 14338435, 18235390, 20803583, 13944971, 20142975, 17811789
     16929165, 18704244, 20506706, 17546973, 20334344, 14054676, 17088068
     17346091, 18264060, 17343514, 21538567, 19680952, 18471685, 19211724
     13951456, 21847223, 16315398, 18744139, 16850630, 19049453, 18673304
     17883081, 19915271, 18641419, 18262334, 17006183, 16065166, 18277454
     16833527, 10136473, 18051556, 17865671, 17852463, 18554871, 17853498
     18334586, 17551709, 17588480, 19827973, 17344412, 17842825, 18828868
     17025461, 11883252, 13609098, 17239687, 17602269, 19197175, 22195457
     18316692, 17313525, 12611721, 19544839, 18964939, 17600719, 18191164
     19393542, 17571306, 18482502, 20777150, 19466309, 17040527, 17165204
     18098207, 16785708, 17465741, 17174582, 16180763, 16777840, 12982566
     19463893, 22195465, 16875449, 12816846, 17237521, 19358317, 17811438
     17811447, 21983325, 17945983, 18762750, 16912439, 17184721, 18061914
     17282229, 18331850, 18202441, 17082359, 18723434, 21972320, 19554106
     14034426, 18339044, 19458377, 17752995, 20448824, 17891943, 17258090
     17767676, 16668584, 18384391, 17040764, 17381384, 15913355, 18356166
     14084247, 20596234, 20506715, 21756661, 13853126, 18203837, 14245531
     21756699, 16043574, 22195441, 17848897, 17877323, 21453153, 17468141
     20861693, 17786518, 17912217, 17037130, 18155762, 16956380, 17478145
     17394950, 18641461, 18189036, 18619917, 17027426, 21352646, 16268425
     22195492, 19584068, 18436307, 17265217, 17634921, 13498382, 21526048
     19258504, 20004087, 17443671, 22195485, 18000422, 20004021, 22321756
     17571039, 21067387, 16344544, 18009564, 14354737, 21286665, 18135678
     18614015, 20441797, 18362222, 17835048, 16472716, 17936109, 17050888
     17325413, 14010183, 18747196, 17761775, 16721594, 17082983, 20067212
     21179898, 17302277, 18084625, 15990359, 18203835, 17297939, 17811456
     16731148, 21168487, 13829543, 17215560, 14133975, 17694209, 17385178
     18091059, 8322815, 17586955, 17201159, 17655634, 18331812, 19730508
     18868646, 17648596, 16220077, 16069901, 17348614, 17393915, 17274537
     17957017, 18096714, 17308789, 18436647, 14285317, 19289642, 14764829
     18328509, 17622427, 22195477, 16943711, 22502493, 14368995, 17346671
     18996843, 17783588, 21343838, 16618694, 17672719, 18856999, 18783224
     17851160, 17546761, 17798953, 18273830, 22092979, 16596890, 19972566
     16384983, 17726838, 17360606, 22321741, 13645875, 18199537, 16542886
     21787056, 17889549, 14565184, 17071721, 17610798, 20299015, 21343897
     22893153, 20657441, 17397545, 18230522, 16360112, 19769489, 12905058
     18641451, 12747740, 18430495, 17016369, 17042658, 14602788, 17551063
     19972568, 21517440, 18508861, 19788842, 14657740, 17332800, 13837378
     19972564, 17186905, 18315328, 19699191, 17437634, 22353199, 18093615
     19006849, 19013183, 17296856, 18674024, 17232014, 16855292, 17762296
     14692762, 21051840, 17705023, 19121551, 21330264, 19854503, 21868720
     19309466, 18681862, 18554763, 20558005, 17390160, 18456514, 16306373
     13955826, 18139690, 17501491, 17752121, 21668627, 17299889, 17889583
     18673325, 19721304, 18293054, 17242746, 17951233, 17649265, 18094246
     19615136, 17011832, 16870214, 17477958, 18522509, 20631274, 16091637
     17323222, 16595641, 16524926, 18228645, 18282562, 17596908, 17156148
     18031668, 16494615, 22683225, 17545847, 17655240, 17614134, 13558557
     17341326, 17891946, 17716305, 16392068, 19271443, 21351877, 18092127
     18440047, 17614227, 14106803, 16903536, 18973907, 18673342, 19032867
     17389192, 17612828, 16194160, 17006570, 17721717, 17390431, 17570240
     16863422, 18325460, 19727057, 16422541, 19972570, 17267114, 18244962
     21538485, 18765602, 18203838, 16198143, 17246576, 14829250, 17835627
     18247991, 14458214, 21051862, 16692232, 17786278, 17227277, 16042673
     16314254, 16228604, 16837842, 17393683, 17787259, 20331945, 20074391
     15861775, 16399083, 18018515, 22683212, 18260550, 21051858, 17036973
     16613964, 17080436, 16579084, 18384537, 18280813, 20296213, 16901385
     15979965, 18441944, 16450169, 9756271, 17892268, 11733603, 16285691
     17587063, 21343775, 16538760, 18180390, 18193833, 21387964, 21051833
     17238511, 17824637, 16571443, 18306996, 14852021, 18674047, 17853456
     12364061, 22195448



Rac system comprising of multiple nodes
  Local node = jyrac1
  Remote node = jyrac2

--------------------------------------------------------------------------------

OPatch succeeded.

[grid@jyrac2 crs]$ $ORACLE_HOME/OPatch/opatch lsinventory
Oracle Interim Patch Installer version 11.2.0.3.12
Copyright (c) 2016, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/product/11.2.0/crs
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/product/11.2.0/crs/oraInst.loc
OPatch version    : 11.2.0.3.12
OUI version       : 11.2.0.4.0
Log file location : /u01/app/product/11.2.0/crs/cfgtoollogs/opatch/opatch2016-05-12_08-32-27AM_1.log

Lsinventory Output file location : /u01/app/product/11.2.0/crs/cfgtoollogs/opatch/lsinv/lsinventory2016-05-12_08-32-27AM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: jyrac2
ARU platform id: 46
ARU platform description:: Linux x86

Installed Top-level Products (1): 

Oracle Grid Infrastructure 11g                                       11.2.0.4.0
There are 1 products installed in this Oracle Home.


Interim patches (3) :

Patch  22502505     : applied on Wed May 11 22:07:58 CST 2016
Unique Patch ID:  19945546
Patch description:  "ACFS Patch Set Update : 11.2.0.4.160419 (22502505)"
   Created on 4 Mar 2016, 00:05:12 hrs PST8PDT
   Bugs fixed:
     21369858, 16318126, 19690653, 17503605, 17203009, 17359415, 20140148
     17611362, 17164243, 19053182, 17696547, 17488768, 18168684, 21519796
     18143006, 21208140, 17428148, 17070158, 20438706, 17510275, 17172303
     18610307, 17376318, 17721778, 22198405, 17699423, 18915417, 18155334
     18321597, 19919907, 18185024, 17636008, 17363999, 20681968, 17475946

Patch  22502549     : applied on Wed May 11 22:07:25 CST 2016
Unique Patch ID:  19945546
Patch description:  "OCW Patch Set Update : 11.2.0.4.160419 (22502549)"
   Created on 18 Mar 2016, 05:57:45 hrs PST8PDT
   Bugs fixed:
     19270660, 18328800, 18508710, 18691572, 20038451, 21251192, 21232394
     20365005, 17750548, 17387214, 17617807, 14497275, 20219458, 17733927
     18180541, 18962892, 17292250, 17378618, 16759171, 20110156, 17843489
     17065496, 13991403, 17273020, 17155238, 20012766, 21245437, 18261183
     18053580, 20218012, 17013634, 17886392, 20995001, 17039197, 17947785
     16317771, 10052729, 22353346, 20340620, 16237657, 20317221, 15917869
     18199185, 18399991, 20186278, 17374271, 18024089, 16849642, 20746251
     20246071, 14270845, 20552947, 18882642, 18414137, 17001914, 17927970
     14378120, 16346413, 15986647, 18068871, 21222147, 18143836, 16206997
     21982225, 19168690, 20235511, 18343490, 21875360, 16613232, 19276791
     17722664, 20440643, 12928658, 18952577, 18520351, 16249829, 18226143
     16076412, 18265482, 18229842, 17172091, 20676340, 17818075, 20091753
     18231837, 14373486, 20136892, 17483479, 20551654, 18120545, 18729166
     13843841, 21225209, 17405302, 18709496, 18330979, 18744838, 17087371
     20531190, 14525998, 18187697, 20598625, 14385860, 18348155, 19479503
     12928592, 17516024, 18370031, 17764053, 19272663, 17551223, 14671408
     18272135, 14207615, 21255373, 17500165, 18875012, 14769643, 18464784
     19558324, 18848125, 19241857, 14851828, 17955615, 20315294, 14693336
     16284825, 17352230, 20014326, 17238586, 17089344, 17405605, 21327402
     17531342, 19398098, 17159489, 17640316, 13823394, 16543190, 22024217
     17983675, 20795241, 17598201, 17481314, 16281493, 18346135, 15986311
     19601468, 17208793, 18700935, 18999857, 14076173, 18428146, 18352845
     17435488, 20408163, 17592037, 18352846, 19616601, 17391726, 17387779
     14777968, 15851860, 16206882, 20141091, 21113068, 20175174, 17305100
     15832129, 19885321, 16901346, 17985714, 18536826, 17780903, 18752378
     18946768, 16876500, 16875342, 17769597, 19955755, 16429265, 18336452
     17273003, 17209968, 16988311, 20094984, 19319357, 17059927, 17046460
     18053631, 16867761, 18774591, 21442094, 20235486, 19359787, 15869775
     19642566, 17447588, 16798862, 15920201

Patch  22502456     : applied on Wed May 11 22:05:13 CST 2016
Unique Patch ID:  19878058
Patch description:  "Database Patch Set Update : 11.2.0.4.160419 (22502456)"
   Created on 9 Mar 2016, 19:56:01 hrs 
Sub-patch  21948347; "Database Patch Set Update : 11.2.0.4.160119 (21948347)"
Sub-patch  21352635; "Database Patch Set Update : 11.2.0.4.8 (21352635)"
Sub-patch  20760982; "Database Patch Set Update : 11.2.0.4.7 (20760982)"
Sub-patch  20299013; "Database Patch Set Update : 11.2.0.4.6 (20299013)"
Sub-patch  19769489; "Database Patch Set Update : 11.2.0.4.5 (19769489)"
Sub-patch  19121551; "Database Patch Set Update : 11.2.0.4.4 (19121551)"
Sub-patch  18522509; "Database Patch Set Update : 11.2.0.4.3 (18522509)"
Sub-patch  18031668; "Database Patch Set Update : 11.2.0.4.2 (18031668)"
Sub-patch  17478514; "Database Patch Set Update : 11.2.0.4.1 (17478514)"
   Bugs fixed:
     17288409, 21051852, 17811429, 18607546, 17205719, 20506699, 17816865
     17922254, 17754782, 16934803, 13364795, 17311728, 17441661, 17284817
     16992075, 17446237, 14015842, 19972569, 21756677, 21538558, 20925795
     17449815, 17375354, 19463897, 13866822, 17982555, 17235750, 17478514
     18317531, 14338435, 18235390, 20803583, 13944971, 20142975, 17811789
     16929165, 18704244, 20506706, 17546973, 20334344, 14054676, 17088068
     17346091, 18264060, 17343514, 21538567, 19680952, 18471685, 19211724
     13951456, 21847223, 16315398, 18744139, 16850630, 19049453, 18673304
     17883081, 19915271, 18641419, 18262334, 17006183, 16065166, 18277454
     16833527, 10136473, 18051556, 17865671, 17852463, 18554871, 17853498
     18334586, 17551709, 17588480, 19827973, 17344412, 17842825, 18828868
     17025461, 11883252, 13609098, 17239687, 17602269, 19197175, 22195457
     18316692, 17313525, 12611721, 19544839, 18964939, 17600719, 18191164
     19393542, 17571306, 18482502, 20777150, 19466309, 17040527, 17165204
     18098207, 16785708, 17465741, 17174582, 16180763, 16777840, 12982566
     19463893, 22195465, 16875449, 12816846, 17237521, 19358317, 17811438
     17811447, 21983325, 17945983, 18762750, 16912439, 17184721, 18061914
     17282229, 18331850, 18202441, 17082359, 18723434, 21972320, 19554106
     14034426, 18339044, 19458377, 17752995, 20448824, 17891943, 17258090
     17767676, 16668584, 18384391, 17040764, 17381384, 15913355, 18356166
     14084247, 20596234, 20506715, 21756661, 13853126, 18203837, 14245531
     21756699, 16043574, 22195441, 17848897, 17877323, 21453153, 17468141
     20861693, 17786518, 17912217, 17037130, 18155762, 16956380, 17478145
     17394950, 18641461, 18189036, 18619917, 17027426, 21352646, 16268425
     22195492, 19584068, 18436307, 17265217, 17634921, 13498382, 21526048
     19258504, 20004087, 17443671, 22195485, 18000422, 20004021, 22321756
     17571039, 21067387, 16344544, 18009564, 14354737, 21286665, 18135678
     18614015, 20441797, 18362222, 17835048, 16472716, 17936109, 17050888
     17325413, 14010183, 18747196, 17761775, 16721594, 17082983, 20067212
     21179898, 17302277, 18084625, 15990359, 18203835, 17297939, 17811456
     16731148, 21168487, 13829543, 17215560, 14133975, 17694209, 17385178
     18091059, 8322815, 17586955, 17201159, 17655634, 18331812, 19730508
     18868646, 17648596, 16220077, 16069901, 17348614, 17393915, 17274537
     17957017, 18096714, 17308789, 18436647, 14285317, 19289642, 14764829
     18328509, 17622427, 22195477, 16943711, 22502493, 14368995, 17346671
     18996843, 17783588, 21343838, 16618694, 17672719, 18856999, 18783224
     17851160, 17546761, 17798953, 18273830, 22092979, 16596890, 19972566
     16384983, 17726838, 17360606, 22321741, 13645875, 18199537, 16542886
     21787056, 17889549, 14565184, 17071721, 17610798, 20299015, 21343897
     22893153, 20657441, 17397545, 18230522, 16360112, 19769489, 12905058
     18641451, 12747740, 18430495, 17016369, 17042658, 14602788, 17551063
     19972568, 21517440, 18508861, 19788842, 14657740, 17332800, 13837378
     19972564, 17186905, 18315328, 19699191, 17437634, 22353199, 18093615
     19006849, 19013183, 17296856, 18674024, 17232014, 16855292, 17762296
     14692762, 21051840, 17705023, 19121551, 21330264, 19854503, 21868720
     19309466, 18681862, 18554763, 20558005, 17390160, 18456514, 16306373
     13955826, 18139690, 17501491, 17752121, 21668627, 17299889, 17889583
     18673325, 19721304, 18293054, 17242746, 17951233, 17649265, 18094246
     19615136, 17011832, 16870214, 17477958, 18522509, 20631274, 16091637
     17323222, 16595641, 16524926, 18228645, 18282562, 17596908, 17156148
     18031668, 16494615, 22683225, 17545847, 17655240, 17614134, 13558557
     17341326, 17891946, 17716305, 16392068, 19271443, 21351877, 18092127
     18440047, 17614227, 14106803, 16903536, 18973907, 18673342, 19032867
     17389192, 17612828, 16194160, 17006570, 17721717, 17390431, 17570240
     16863422, 18325460, 19727057, 16422541, 19972570, 17267114, 18244962
     21538485, 18765602, 18203838, 16198143, 17246576, 14829250, 17835627
     18247991, 14458214, 21051862, 16692232, 17786278, 17227277, 16042673
     16314254, 16228604, 16837842, 17393683, 17787259, 20331945, 20074391
     15861775, 16399083, 18018515, 22683212, 18260550, 21051858, 17036973
     16613964, 17080436, 16579084, 18384537, 18280813, 20296213, 16901385
     15979965, 18441944, 16450169, 9756271, 17892268, 11733603, 16285691
     17587063, 21343775, 16538760, 18180390, 18193833, 21387964, 21051833
     17238511, 17824637, 16571443, 18306996, 14852021, 18674047, 17853456
     12364061, 22195448



Rac system comprising of multiple nodes
  Local node = jyrac1
  Remote node = jyrac2

--------------------------------------------------------------------------------

OPatch succeeded.



[oracle@jyrac1 admin]$ $ORACLE_HOME/OPatch/opatch lsinventory
Oracle Interim Patch Installer version 11.2.0.3.12
Copyright (c) 2016, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/11.2.0/db
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2.0/db/oraInst.loc
OPatch version    : 11.2.0.3.12
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db/cfgtoollogs/opatch/opatch2016-05-12_08-32-35AM_1.log

Lsinventory Output file location : /u01/app/oracle/product/11.2.0/db/cfgtoollogs/opatch/lsinv/lsinventory2016-05-12_08-32-35AM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: jyrac1
ARU platform id: 46
ARU platform description:: Linux x86

Installed Top-level Products (1): 

Oracle Database 11g                                                  11.2.0.4.0
There are 1 products installed in this Oracle Home.


Interim patches (2) :

Patch  22502549     : applied on Wed May 11 23:03:19 CST 2016
Unique Patch ID:  19945546
Patch description:  "OCW Patch Set Update : 11.2.0.4.160419 (22502549)"
   Created on 18 Mar 2016, 05:57:37 hrs PST8PDT
   Bugs fixed:
     9999999

Patch  22502456     : applied on Wed May 11 23:01:20 CST 2016
Unique Patch ID:  19878058
Patch description:  "Database Patch Set Update : 11.2.0.4.160419 (22502456)"
   Created on 9 Mar 2016, 19:56:01 hrs 
Sub-patch  21948347; "Database Patch Set Update : 11.2.0.4.160119 (21948347)"
Sub-patch  21352635; "Database Patch Set Update : 11.2.0.4.8 (21352635)"
Sub-patch  20760982; "Database Patch Set Update : 11.2.0.4.7 (20760982)"
Sub-patch  20299013; "Database Patch Set Update : 11.2.0.4.6 (20299013)"
Sub-patch  19769489; "Database Patch Set Update : 11.2.0.4.5 (19769489)"
Sub-patch  19121551; "Database Patch Set Update : 11.2.0.4.4 (19121551)"
Sub-patch  18522509; "Database Patch Set Update : 11.2.0.4.3 (18522509)"
Sub-patch  18031668; "Database Patch Set Update : 11.2.0.4.2 (18031668)"
Sub-patch  17478514; "Database Patch Set Update : 11.2.0.4.1 (17478514)"
   Bugs fixed:
     17288409, 21051852, 17811429, 18607546, 17205719, 20506699, 17816865
     17922254, 17754782, 16934803, 13364795, 17311728, 17441661, 17284817
     16992075, 17446237, 14015842, 19972569, 21756677, 21538558, 20925795
     17449815, 17375354, 19463897, 13866822, 17982555, 17235750, 17478514
     18317531, 14338435, 18235390, 20803583, 13944971, 20142975, 17811789
     16929165, 18704244, 20506706, 17546973, 20334344, 14054676, 17088068
     17346091, 18264060, 17343514, 21538567, 19680952, 18471685, 19211724
     13951456, 21847223, 16315398, 18744139, 16850630, 19049453, 18673304
     17883081, 19915271, 18641419, 18262334, 17006183, 16065166, 18277454
     16833527, 10136473, 18051556, 17865671, 17852463, 18554871, 17853498
     18334586, 17551709, 17588480, 19827973, 17344412, 17842825, 18828868
     17025461, 11883252, 13609098, 17239687, 17602269, 19197175, 22195457
     18316692, 17313525, 12611721, 19544839, 18964939, 17600719, 18191164
     19393542, 17571306, 18482502, 20777150, 19466309, 17040527, 17165204
     18098207, 16785708, 17465741, 17174582, 16180763, 16777840, 12982566
     19463893, 22195465, 16875449, 12816846, 17237521, 19358317, 17811438
     17811447, 21983325, 17945983, 18762750, 16912439, 17184721, 18061914
     17282229, 18331850, 18202441, 17082359, 18723434, 21972320, 19554106
     14034426, 18339044, 19458377, 17752995, 20448824, 17891943, 17258090
     17767676, 16668584, 18384391, 17040764, 17381384, 15913355, 18356166
     14084247, 20596234, 20506715, 21756661, 13853126, 18203837, 14245531
     21756699, 16043574, 22195441, 17848897, 17877323, 21453153, 17468141
     20861693, 17786518, 17912217, 17037130, 18155762, 16956380, 17478145
     17394950, 18641461, 18189036, 18619917, 17027426, 21352646, 16268425
     22195492, 19584068, 18436307, 17265217, 17634921, 13498382, 21526048
     19258504, 20004087, 17443671, 22195485, 18000422, 20004021, 22321756
     17571039, 21067387, 16344544, 18009564, 14354737, 21286665, 18135678
     18614015, 20441797, 18362222, 17835048, 16472716, 17936109, 17050888
     17325413, 14010183, 18747196, 17761775, 16721594, 17082983, 20067212
     21179898, 17302277, 18084625, 15990359, 18203835, 17297939, 17811456
     16731148, 21168487, 13829543, 17215560, 14133975, 17694209, 17385178
     18091059, 8322815, 17586955, 17201159, 17655634, 18331812, 19730508
     18868646, 17648596, 16220077, 16069901, 17348614, 17393915, 17274537
     17957017, 18096714, 17308789, 18436647, 14285317, 19289642, 14764829
     18328509, 17622427, 22195477, 16943711, 22502493, 14368995, 17346671
     18996843, 17783588, 21343838, 16618694, 17672719, 18856999, 18783224
     17851160, 17546761, 17798953, 18273830, 22092979, 16596890, 19972566
     16384983, 17726838, 17360606, 22321741, 13645875, 18199537, 16542886
     21787056, 17889549, 14565184, 17071721, 17610798, 20299015, 21343897
     22893153, 20657441, 17397545, 18230522, 16360112, 19769489, 12905058
     18641451, 12747740, 18430495, 17016369, 17042658, 14602788, 17551063
     19972568, 21517440, 18508861, 19788842, 14657740, 17332800, 13837378
     19972564, 17186905, 18315328, 19699191, 17437634, 22353199, 18093615
     19006849, 19013183, 17296856, 18674024, 17232014, 16855292, 17762296
     14692762, 21051840, 17705023, 19121551, 21330264, 19854503, 21868720
     19309466, 18681862, 18554763, 20558005, 17390160, 18456514, 16306373
     13955826, 18139690, 17501491, 17752121, 21668627, 17299889, 17889583
     18673325, 19721304, 18293054, 17242746, 17951233, 17649265, 18094246
     19615136, 17011832, 16870214, 17477958, 18522509, 20631274, 16091637
     17323222, 16595641, 16524926, 18228645, 18282562, 17596908, 17156148
     18031668, 16494615, 22683225, 17545847, 17655240, 17614134, 13558557
     17341326, 17891946, 17716305, 16392068, 19271443, 21351877, 18092127
     18440047, 17614227, 14106803, 16903536, 18973907, 18673342, 19032867
     17389192, 17612828, 16194160, 17006570, 17721717, 17390431, 17570240
     16863422, 18325460, 19727057, 16422541, 19972570, 17267114, 18244962
     21538485, 18765602, 18203838, 16198143, 17246576, 14829250, 17835627
     18247991, 14458214, 21051862, 16692232, 17786278, 17227277, 16042673
     16314254, 16228604, 16837842, 17393683, 17787259, 20331945, 20074391
     15861775, 16399083, 18018515, 22683212, 18260550, 21051858, 17036973
     16613964, 17080436, 16579084, 18384537, 18280813, 20296213, 16901385
     15979965, 18441944, 16450169, 9756271, 17892268, 11733603, 16285691
     17587063, 21343775, 16538760, 18180390, 18193833, 21387964, 21051833
     17238511, 17824637, 16571443, 18306996, 14852021, 18674047, 17853456
     12364061, 22195448



Rac system comprising of multiple nodes
  Local node = jyrac1
  Remote node = jyrac2

--------------------------------------------------------------------------------

OPatch succeeded.


[oracle@jyrac2 dbs]$ $ORACLE_HOME/OPatch/opatch lsinventory
Oracle Interim Patch Installer version 11.2.0.3.12
Copyright (c) 2016, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/11.2.0/db
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2.0/db/oraInst.loc
OPatch version    : 11.2.0.3.12
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db/cfgtoollogs/opatch/opatch2016-05-12_08-32-33AM_1.log

Lsinventory Output file location : /u01/app/oracle/product/11.2.0/db/cfgtoollogs/opatch/lsinv/lsinventory2016-05-12_08-32-33AM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: jyrac2
ARU platform id: 46
ARU platform description:: Linux x86

Installed Top-level Products (1): 

Oracle Database 11g                                                  11.2.0.4.0
There are 1 products installed in this Oracle Home.


Interim patches (2) :

Patch  22502549     : applied on Wed May 11 23:17:40 CST 2016
Unique Patch ID:  19945546
Patch description:  "OCW Patch Set Update : 11.2.0.4.160419 (22502549)"
   Created on 18 Mar 2016, 05:57:37 hrs PST8PDT
   Bugs fixed:
     9999999

Patch  22502456     : applied on Wed May 11 23:15:56 CST 2016
Unique Patch ID:  19878058
Patch description:  "Database Patch Set Update : 11.2.0.4.160419 (22502456)"
   Created on 9 Mar 2016, 19:56:01 hrs 
Sub-patch  21948347; "Database Patch Set Update : 11.2.0.4.160119 (21948347)"
Sub-patch  21352635; "Database Patch Set Update : 11.2.0.4.8 (21352635)"
Sub-patch  20760982; "Database Patch Set Update : 11.2.0.4.7 (20760982)"
Sub-patch  20299013; "Database Patch Set Update : 11.2.0.4.6 (20299013)"
Sub-patch  19769489; "Database Patch Set Update : 11.2.0.4.5 (19769489)"
Sub-patch  19121551; "Database Patch Set Update : 11.2.0.4.4 (19121551)"
Sub-patch  18522509; "Database Patch Set Update : 11.2.0.4.3 (18522509)"
Sub-patch  18031668; "Database Patch Set Update : 11.2.0.4.2 (18031668)"
Sub-patch  17478514; "Database Patch Set Update : 11.2.0.4.1 (17478514)"
   Bugs fixed:
     17288409, 21051852, 17811429, 18607546, 17205719, 20506699, 17816865
     17922254, 17754782, 16934803, 13364795, 17311728, 17441661, 17284817
     16992075, 17446237, 14015842, 19972569, 21756677, 21538558, 20925795
     17449815, 17375354, 19463897, 13866822, 17982555, 17235750, 17478514
     18317531, 14338435, 18235390, 20803583, 13944971, 20142975, 17811789
     16929165, 18704244, 20506706, 17546973, 20334344, 14054676, 17088068
     17346091, 18264060, 17343514, 21538567, 19680952, 18471685, 19211724
     13951456, 21847223, 16315398, 18744139, 16850630, 19049453, 18673304
     17883081, 19915271, 18641419, 18262334, 17006183, 16065166, 18277454
     16833527, 10136473, 18051556, 17865671, 17852463, 18554871, 17853498
     18334586, 17551709, 17588480, 19827973, 17344412, 17842825, 18828868
     17025461, 11883252, 13609098, 17239687, 17602269, 19197175, 22195457
     18316692, 17313525, 12611721, 19544839, 18964939, 17600719, 18191164
     19393542, 17571306, 18482502, 20777150, 19466309, 17040527, 17165204
     18098207, 16785708, 17465741, 17174582, 16180763, 16777840, 12982566
     19463893, 22195465, 16875449, 12816846, 17237521, 19358317, 17811438
     17811447, 21983325, 17945983, 18762750, 16912439, 17184721, 18061914
     17282229, 18331850, 18202441, 17082359, 18723434, 21972320, 19554106
     14034426, 18339044, 19458377, 17752995, 20448824, 17891943, 17258090
     17767676, 16668584, 18384391, 17040764, 17381384, 15913355, 18356166
     14084247, 20596234, 20506715, 21756661, 13853126, 18203837, 14245531
     21756699, 16043574, 22195441, 17848897, 17877323, 21453153, 17468141
     20861693, 17786518, 17912217, 17037130, 18155762, 16956380, 17478145
     17394950, 18641461, 18189036, 18619917, 17027426, 21352646, 16268425
     22195492, 19584068, 18436307, 17265217, 17634921, 13498382, 21526048
     19258504, 20004087, 17443671, 22195485, 18000422, 20004021, 22321756
     17571039, 21067387, 16344544, 18009564, 14354737, 21286665, 18135678
     18614015, 20441797, 18362222, 17835048, 16472716, 17936109, 17050888
     17325413, 14010183, 18747196, 17761775, 16721594, 17082983, 20067212
     21179898, 17302277, 18084625, 15990359, 18203835, 17297939, 17811456
     16731148, 21168487, 13829543, 17215560, 14133975, 17694209, 17385178
     18091059, 8322815, 17586955, 17201159, 17655634, 18331812, 19730508
     18868646, 17648596, 16220077, 16069901, 17348614, 17393915, 17274537
     17957017, 18096714, 17308789, 18436647, 14285317, 19289642, 14764829
     18328509, 17622427, 22195477, 16943711, 22502493, 14368995, 17346671
     18996843, 17783588, 21343838, 16618694, 17672719, 18856999, 18783224
     17851160, 17546761, 17798953, 18273830, 22092979, 16596890, 19972566
     16384983, 17726838, 17360606, 22321741, 13645875, 18199537, 16542886
     21787056, 17889549, 14565184, 17071721, 17610798, 20299015, 21343897
     22893153, 20657441, 17397545, 18230522, 16360112, 19769489, 12905058
     18641451, 12747740, 18430495, 17016369, 17042658, 14602788, 17551063
     19972568, 21517440, 18508861, 19788842, 14657740, 17332800, 13837378
     19972564, 17186905, 18315328, 19699191, 17437634, 22353199, 18093615
     19006849, 19013183, 17296856, 18674024, 17232014, 16855292, 17762296
     14692762, 21051840, 17705023, 19121551, 21330264, 19854503, 21868720
     19309466, 18681862, 18554763, 20558005, 17390160, 18456514, 16306373
     13955826, 18139690, 17501491, 17752121, 21668627, 17299889, 17889583
     18673325, 19721304, 18293054, 17242746, 17951233, 17649265, 18094246
     19615136, 17011832, 16870214, 17477958, 18522509, 20631274, 16091637
     17323222, 16595641, 16524926, 18228645, 18282562, 17596908, 17156148
     18031668, 16494615, 22683225, 17545847, 17655240, 17614134, 13558557
     17341326, 17891946, 17716305, 16392068, 19271443, 21351877, 18092127
     18440047, 17614227, 14106803, 16903536, 18973907, 18673342, 19032867
     17389192, 17612828, 16194160, 17006570, 17721717, 17390431, 17570240
     16863422, 18325460, 19727057, 16422541, 19972570, 17267114, 18244962
     21538485, 18765602, 18203838, 16198143, 17246576, 14829250, 17835627
     18247991, 14458214, 21051862, 16692232, 17786278, 17227277, 16042673
     16314254, 16228604, 16837842, 17393683, 17787259, 20331945, 20074391
     15861775, 16399083, 18018515, 22683212, 18260550, 21051858, 17036973
     16613964, 17080436, 16579084, 18384537, 18280813, 20296213, 16901385
     15979965, 18441944, 16450169, 9756271, 17892268, 11733603, 16285691
     17587063, 21343775, 16538760, 18180390, 18193833, 21387964, 21051833
     17238511, 17824637, 16571443, 18306996, 14852021, 18674047, 17853456
     12364061, 22195448



Rac system comprising of multiple nodes
  Local node = jyrac2
  Remote node = jyrac1

--------------------------------------------------------------------------------

OPatch succeeded.

到此将Oracle 11.2.0.4升级到11.2.0.4.160419的操作完成

Linux 格式化分区 报错Could not stat /dev/sda3 — No such file or directory

执行分区过程如下:
[root@jyrac2 ~]# fdisk /dev/sda

The number of cylinders for this disk is set to 3002.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 24.6 GB, 24696061952 bytes
255 heads, 63 sectors/track, 3002 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 2355 18916506 83 Linux
/dev/sda2 2356 2610 2048287+ 82 Linux swap / Solaris

Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition’s system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): u
Changing display/entry units to sectors

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First sector (41929650-48234495, default 41929650):
Using default value 41929650
Last sector or +size or +sizeM or +sizeK (41929650-48234495, default 48234495):
Using default value 48234495

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
You have new mail in /var/spool/mail/root

[root@jyrac2 ~]# fdisk -l

Disk /dev/sda: 24.6 GB, 24696061952 bytes
255 heads, 63 sectors/track, 3002 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 2355 18916506 83 Linux
/dev/sda2 2356 2610 2048287+ 82 Linux swap / Solaris
/dev/sda3 2611 3003 3152423 83 Linux
新的分区为/dev/sda3

对分区进行格式化:
[root@jyrac2 /]# mkfs.ext3 /dev/sda3
mke2fs 1.39 (29-May-2006)
Could not stat /dev/sda3 — No such file or directory

The device apparently does not exist; did you specify it correctly?

解决这个问题可以使用partprobe 命令,partprobe包含在parted的rpm软件包中。partprobe可以修改kernel中分区表,使kernel重新读取分区表。 因此,使用该命令就可以创建分区并且在不重新启动机器的情况下系统能够识别这些分区。
检查是否安装了partprobe软件包
[root@jyrac2 /]# rpm -q parted
parted-1.8.1-23.el5

[root@jyrac2 /]# partprobe
[root@jyrac2 /]# mkfs -t ext3 /dev/sda3
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
394400 inodes, 788105 blocks
39405 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=809500672
25 block groups
32768 blocks per group, 32768 fragments per group
15776 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
You have new mail in /var/spool/mail/root
格式化分区成功
[root@jyrac2 /]# mkdir /u02
[root@jyrac2 /]# mount /dev/sda3 /u02
[root@jyrac2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 18G 16G 1.5G 92% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sda3 4.0G 237M 3.6G 7% /u02

Oracle 11g RMAN虚拟私有目录

虚拟私有目录
缺省情况下,RMAN恢复目录的所有用户都有完全的权限来向恢复目录插入,更新与删除元数据。例如,如果管理员管理的两个不相关的数据库共享同一个恢复目录,每个管理员都可以有意或无意的损坏另一个数据库的元数据。在许多企业,这种情况是被允许的因为相同的人管理许多不同的数据库与恢复目录。你可能期望限制每个数据库管理员只能修改属于他管理的数据库元数据。可以通过创建虚拟私有目录来完成这个目标。

每个11G恢复目录都支持虚拟恢复目录,但它们需要显式地被创建。虚拟私有目录的个数没有限制,每个虚拟私有目录是属于数据库方案用户不同于恢复目录的所有者。

在创建一个或多个虚拟私有目录后,接下来就是管理员对恢复目录授予每个虚拟私有目录权限来向恢复目录注册当前使用的一个或多个数据库。恢复目录管理也能被授予权限来使用虚拟私有目录来注册新的数据库。

一.创建基本恢复目录:
1.启动SQL*Plus并使用管理权限连接到包含恢复目录的数据库

[oracle11@jingyong1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sun May 10 17:24:02 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

2.为恢复目录创建一个用户与方案

SQL> create user rman identified by "rman" default tablespace users quota unlimited on users temporary tablespace temp;

User created.

3.给恢复目录用户授予recovery_catalog_owner角色。有这个角色的用户有恢复与查询恢复目录所需要的所有权限

SQL> grant recovery_catalog_owner to rman;

Grant succeeded.

4.启动RMAN并连接到包含恢复目录的数据库,使用恢复目录用户连接数据库

[oracle11@jingyong1 ~]$ rman catalog rman/rman@cs

Recovery Manager: Release 11.2.0.4.0 - Production on Fri May 8 14:28:09 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to recovery catalog database

RMAN>

5.执行create catalog命令来创建目录。创建操作可能会执行几分钟。如果恢复目录表空间是用户的缺省表空间,那么可以执行以下命令

RMAN> create catalog;

recovery catalog created

可以在执行create catalog命令时指定表空间名:RMAN> CREATE CATALOG TABLESPACE cat_tbs;如果恢复目录要使用的表空间名是RMAN的保留关键字,那么必须书写为大写并以引号括起来,比如:CREATE CATALOG TABLESPACE ‘CATALOG’。

6.使用SQL*Plus来查询恢复目录查看相关基本是否创建

SQL> conn rman/rman
Connected.

SQL> SELECT TABLE_NAME FROM USER_TABLES;

TABLE_NAME
------------------------------
DB
NODE
CONF
DBINC
CKP
TS
TSATT
DF
SITE_DFATT
TF
SITE_TFATT
OFFR
RR
RT
ORL
RLH
AL
BS
BP
BCF
CCF
XCF
BSF
BDF
CDF
XDF
BRL
BCB
CCB
SCR
SCRL
CONFIG
XAL
RSR
FB
GRSP
NRSP
VPC_USERS
VPC_DATABASES
CFS
BCR
ROUT
RCVER
TEMPRES

44 rows selected.

SQL> select count(*) from user_objects;

  COUNT(*)
----------
       252

二.创建虚拟私有目录
1.启动SQL*Plus并使用管理权限连接到恢复目录数据库

[oracle11@jingyong1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sun May 10 17:24:02 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

2.如果虚拟私有目录的所者用户不存在,那么创建这个用户。例如,如果想要创建数据库用户vpc1来管理虚拟私有目录,那么可以执行下面的命令

SQL> create user vpc1 identified by "vpc1" default tablespace users quota unlimited on users temporary tablespace temp;

User created.

3.对管理虚拟私有目录的用户授予recovery_catalog_owner角色

SQL> grant recovery_catalog_owner to vpc1;

Grant succeeded.

SQL> exit

4.启动RMAN并以基本恢复目录用户连接到恢复目录数据库

[oracle11@oracle11g ~]$ rman

Recovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 16:09:22 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

RMAN> connect catalog rman/rman@cs

connected to recovery catalog database

RMAN>

5.给虚拟私有目录用户授予需要的权限,指定用户vpc1可以访问数据库db的元数据

RMAN> grant catalog for database db to vpc1;

Grant succeeded.

在授予权限时可以使用DBID不一定要使用数据库名。虚拟私有目录用户不能访问恢复目录中任何其它数据库的元数据。

6.可以授予用户向恢复目录注册新目标数据库的能力

RMAN> grant register database to vpc1;

Grant succeeded.

7.启动RMAN并使用虚拟私有目录用户(不是基本恢复目录用户)连接到恢复目录数据库

Recovery Manager complete.
[oracle11@oracle11g ~]$ rman

Recovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 16:19:26 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

RMAN> connect catalog vpc1/vpc1@cs

connected to recovery catalog database

RMAN>

8.创建虚拟私有目录

[oracle11@jingyong1 cs]$ rman catalog vpc1/vpc1@cs

Recovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 17:25:40 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to recovery catalog database

RMAN> create virtual catalog;

found ineligible base catalog owned by RMAN
found eligible base catalog owned by VPC1
created virtual catalog against base catalog owned by VPC1

9.如果是使用 10.2或之前的版本RMAN且要使用虚拟私有目录,那么可以执行下面的PL/SQL过程来创建虚拟私有目录(这里的base_catalog_owner是基本恢复目录用户)

SQL> EXECUTE base_catalog_owner.DBMS_RCVCAT.CREATE_VIRTUAL_CATALOG;

10.注册目标数据库

[oracle11@jingyong1 cs]$ rman target sys/system@db catalog vpc1/vpc1@cs

Recovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 17:46:51 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: DB (DBID=1640573015)
connected to recovery catalog database

RMAN> register database;

database registered in recovery catalog
starting full resync of recovery catalog
full resync complete

使用dbms_transaction来获得事务ID

一般找出当前事务ID与回滚段最常见的方法就是执行以下SQL

SQL> select xidusn, xidslot, xidsqn  from v$transaction, v$session  where saddr=ses_addr;

    XIDUSN    XIDSLOT     XIDSQN
---------- ---------- ----------
         6         27       9338

而最简单与最容易的方法是使用dbms_transaction PL/SQL包。下面使用一个例子来进行说明如何使用dbms_transaction PL/SQL包来找出当前事务ID,并使用undo header dump信息来进行验证。

SQL> select dbms_transaction.local_transaction_id from dual;

LOCAL_TRANSACTION_ID
--------------------------------------------------------------------------------

SQL> set transaction read write;

Transaction set.

SQL> select dbms_transaction.local_transaction_id from dual;

LOCAL_TRANSACTION_ID
--------------------------------------------------------------------------------
6.27.9339

6 –> undo segment number(USN) undo段号
27 –> Transaction slot in the transaction list 事务列表中的事务插槽
9339 –> Sequence number(the number of times the given slot has been used) 序列号(给定的事务插槽被使用的次数)

上面的事务ID可以通过undo segment的undo header dump信息来进行验证
1.找到回滚段名

SQL> select * from v$rollname where USN=6;

       USN NAME
---------- ------------------------------
         6 _SYSSMU6_3214712007$

2.转储回滚段header

SQL> alter system dump undo header '_SYSSMU6_3214712007$';

System altered.

SQL> select
  2  d.value||'/'||lower(rtrim(i.instance,
  3  chr(0)))||'_ora_'||p.spid||'.trc' trace_file_name
  4  from ( select p.spid
  5  from v$mystat m,
  6  v$session s,v$process p
  7  where m.statistic# = 1 and s.sid = m.sid and p.addr = s.paddr) p,
  8  ( select t.instance from v$thread  t,v$parameter v
  9  where v.name = 'thread' and
 10  (v.value = 0 or t.thread# = to_number(v.value))) i,
 11  ( select value from v$parameter
 12  where name = 'user_dump_dest') d;

TRACE_FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/jyrac/jyrac1/trace/jyrac1_ora_16785.trc

跟踪文件信息如下:

Unix process pid: 16785, image: oracle@jyrac1 (TNS V1-V3)


*** 2016-04-28 09:10:02.380
*** SESSION ID:(147.9205) 2016-04-28 09:10:02.380
*** CLIENT ID:() 2016-04-28 09:10:02.380
*** SERVICE NAME:(SYS$USERS) 2016-04-28 09:10:02.380
*** MODULE NAME:(sqlplus@jyrac1 (TNS V1-V3)) 2016-04-28 09:10:02.380
*** ACTION NAME:() 2016-04-28 09:10:02.380
 
 
********************************************************************************
Undo Segment:  _SYSSMU6_3214712007$ (6)
********************************************************************************
  Extent Control Header
  -----------------------------------------------------------------
  Extent Header:: spare1: 0      spare2: 0      #extents: 3      #blocks: 143   
                  last map  0x00000000  #maps: 0      offset: 4080  
      Highwater::  0x00c00aaa  ext#: 2      blk#: 42     ext size: 128   
  #blocks in seg. hdr's freelists: 0     
  #blocks below: 0     
  mapblk  0x00000000  offset: 2     
                   Unlocked
     Map Header:: next  0x00000000  #extents: 3    obj#: 0      flag: 0x40000000
  Extent Map
  -----------------------------------------------------------------
   0x00c000d1  length: 7     
   0x00c00108  length: 8     
   0x00c00a80  length: 128   
  
 Retention Table 
  -----------------------------------------------------------
 Extent Number:0  Commit Time: 1461797986
 Extent Number:1  Commit Time: 1461800269
 Extent Number:2  Commit Time: 1461796031
  
  TRN CTL:: seq: 0x0c6a chd: 0x001e ctl: 0x001f inc: 0x00000000 nfb: 0x0000
            mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)
            uba: 0x00c00aa6.0c6a.18 scn: 0x0000.014ce06a
Version: 0x01
  FREE BLOCK POOL::
    uba: 0x00000000.0c6a.17 ext: 0x2  spc: 0x128c  
    uba: 0x00000000.0c6a.02 ext: 0x2  spc: 0x1ace  
    uba: 0x00000000.0c6a.14 ext: 0x2  spc: 0x13fe  
    uba: 0x00000000.0bc3.01 ext: 0x2  spc: 0x1f84  
    uba: 0x00000000.0000.00 ext: 0x0  spc: 0x0     
  TRN TBL::
 
  index  state cflags  wrap#    uel         scn            dba            parent-xid    nub     stmt_num    cmt
  ------------------------------------------------------------------------------------------------
   0x00    9    0x00  0x2471  0x001a  0x0000.014ce250  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804655
   0x01    9    0x00  0x2479  0x0008  0x0000.014ce7f8  0x00c00aa9  0x0000.000.00000000  0x00000001   0x00000000  1461805256
   0x02    9    0x00  0x2476  0x000c  0x0000.014ce44e  0x00c00aa6  0x0000.000.00000000  0x00000001   0x00000000  1461805136
   0x03    9    0x00  0x2472  0x000b  0x0000.014ce2d5  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804775
   0x04    9    0x00  0x2477  0x0000  0x0000.014ce210  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804595
   0x05    9    0x00  0x2478  0x0017  0x0000.014ce3d0  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461805015
   0x06    9    0x00  0x2478  0x0018  0x0000.014ce4db  0x00c00aa6  0x0000.000.00000000  0x00000001   0x00000000  1461805245
   0x07    9    0x00  0x2479  0x000e  0x0000.014ce353  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804894
   0x08    9    0x00  0x2476  0x0016  0x0000.014ce815  0x00c00aa9  0x0000.000.00000000  0x00000001   0x00000000  1461805256
   0x09    9    0x00  0x247e  0x0012  0x0000.014ce74b  0x00c00aa9  0x0000.000.00000000  0x00000001   0x00000000  1461805247
   0x0a    9    0x00  0x2477  0x001d  0x0000.014ce10d  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804355
   0x0b    9    0x00  0x247a  0x0007  0x0000.014ce326  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804835
   0x0c    9    0x00  0x2471  0x000f  0x0000.014ce4d9  0x00c00aa9  0x0000.000.00000000  0x00000001   0x00000000  1461805245
   0x0d    9    0x00  0x2473  0x001c  0x0000.014ce284  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804715
   0x0e    9    0x00  0x2478  0x0011  0x0000.014ce358  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804894
   0x0f    9    0x00  0x2470  0x0006  0x0000.014ce4da  0x00c00aaa  0x0000.000.00000000  0x00000003   0x00000000  1461805245
   0x10    9    0x00  0x2477  0x0001  0x0000.014ce7e8  0x00c00aa9  0x0000.000.00000000  0x00000001   0x00000000  1461805256
   0x11    9    0x00  0x2472  0x0005  0x0000.014ce38a  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804954
   0x12    9    0x00  0x2478  0x0010  0x0000.014ce7d8  0x00c00aa9  0x0000.000.00000000  0x00000001   0x00000000  1461805256
   0x13    9    0x00  0x2473  0x0003  0x0000.014ce2c0  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804775
   0x14    9    0x00  0x247a  0x0004  0x0000.014ce1a2  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804474
   0x15    9    0x00  0x2476  0x000a  0x0000.014ce106  0x00000000  0x0000.000.00000000  0x00000000   0x00000000  1461804355
   0x16    9    0x00  0x246d  0x001f  0x0000.014ce867  0x00000000  0x0000.000.00000000  0x00000000   0x00000000  1461805315
   0x17    9    0x00  0x2473  0x0019  0x0000.014ce3f4  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461805040
   0x18    9    0x00  0x247a  0x0009  0x0000.014ce5a4  0x00c00aa9  0x0000.000.00000000  0x00000001   0x00000000  1461805245
   0x19    9    0x00  0x2475  0x0002  0x0000.014ce441  0x00c00aa6  0x0000.000.00000000  0x00000002   0x00000000  1461805135
   0x1a    9    0x00  0x2478  0x000d  0x0000.014ce254  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804655
   0x1b   10    0x80  0x247b  0x0002  0x0000.014ce8fc  0x00000000  0x0000.000.00000000  0x00000000   0x00000000  0
   0x1c    9    0x00  0x2477  0x0013  0x0000.014ce2b7  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804775
   0x1d    9    0x00  0x2474  0x0014  0x0000.014ce155  0x00c00aa5  0x0000.000.00000000  0x00000001   0x00000000  1461804415
   0x1e    9    0x00  0x246d  0x0021  0x0000.014ce079  0x00c00aa3  0x0000.000.00000000  0x00000001   0x00000000  1461804174
   0x1f    9    0x00  0x2477  0xffff  0x0000.014ce8de  0x00c00aa6  0x0000.000.00000000  0x00000001   0x00000000  1461805376
   0x20    9    0x00  0x2478  0x0015  0x0000.014ce0dc  0x00000000  0x0000.000.00000000  0x00000000   0x00000000  1461804295
   0x21    9    0x00  0x2479  0x0020  0x0000.014ce0a7  0x00c00aa3  0x0000.000.00000000  0x00000001   0x00000000  1461804235
  EXT TRN CTL::
  usn: 6
  sp1:0x00000000 sp2:0x00000000 sp3:0x00000000 sp4:0x00000000
  sp5:0x00000000 sp6:0x00000000 sp7:0x00000000 sp8:0x00000000
  EXT TRN TBL::
  index  extflag    extHash    extSpare1   extSpare2 
  ---------------------------------------------------
   0x00  0x00000000 0x00000000 0x00000000  0x00000000
   0x01  0x00000000 0x00000000 0x00000000  0x00000000
   0x02  0x00000000 0x00000000 0x00000000  0x00000000
   0x03  0x00000000 0x00000000 0x00000000  0x00000000
   0x04  0x00000000 0x00000000 0x00000000  0x00000000
   0x05  0x00000000 0x00000000 0x00000000  0x00000000
   0x06  0x00000000 0x00000000 0x00000000  0x00000000
   0x07  0x00000000 0x00000000 0x00000000  0x00000000
   0x08  0x00000000 0x00000000 0x00000000  0x00000000
   0x09  0x00000000 0x00000000 0x00000000  0x00000000
   0x0a  0x00000000 0x00000000 0x00000000  0x00000000
   0x0b  0x00000000 0x00000000 0x00000000  0x00000000
   0x0c  0x00000000 0x00000000 0x00000000  0x00000000
   0x0d  0x00000000 0x00000000 0x00000000  0x00000000
   0x0e  0x00000000 0x00000000 0x00000000  0x00000000
   0x0f  0x00000000 0x00000000 0x00000000  0x00000000
   0x10  0x00000000 0x00000000 0x00000000  0x00000000
   0x11  0x00000000 0x00000000 0x00000000  0x00000000
   0x12  0x00000000 0x00000000 0x00000000  0x00000000
   0x13  0x00000000 0x00000000 0x00000000  0x00000000
   0x14  0x00000000 0x00000000 0x00000000  0x00000000
   0x15  0x00000000 0x00000000 0x00000000  0x00000000
   0x16  0x00000000 0x00000000 0x00000000  0x00000000
   0x17  0x00000000 0x00000000 0x00000000  0x00000000
   0x18  0x00000000 0x00000000 0x00000000  0x00000000
   0x19  0x00000000 0x00000000 0x00000000  0x00000000
   0x1a  0x00000000 0x00000000 0x00000000  0x00000000
   0x1b  0x00000000 0x00000000 0x00000000  0x00000000
   0x1c  0x00000000 0x00000000 0x00000000  0x00000000
   0x1d  0x00000000 0x00000000 0x00000000  0x00000000
   0x1e  0x00000000 0x00000000 0x00000000  0x00000000
   0x1f  0x00000000 0x00000000 0x00000000  0x00000000
   0x20  0x00000000 0x00000000 0x00000000  0x00000000
   0x21  0x00000000 0x00000000 0x00000000  0x00000000

从Undo Segment: _SYSSMU6_3214712007$ (6)可以知道回滚段号是6,找到 state为10的记录

 index  state cflags  wrap#    uel         scn            dba            parent-xid    nub     stmt_num    cmt
 ------------------------------------------------------------------------------------------------
 0x1b   10    0x80  0x247b  0x0002  0x0000.014ce8fc  0x00000000  0x0000.000.00000000  0x00000000   0x00000000  0

其中0x1b=27

SQL> select to_number('1b','xxx') from dual;
 
TO_NUMBER('1B','XXX')
---------------------
27


0x247b=9339
SQL> select to_number('247b','xxxx') from dual;
 
TO_NUMBER('247B','XXXX')
------------------------
                    9339

从上面的信息可以看到与我们使用dbms_transaction PL/SQL包所获得的事务ID信息一致。

Oracle Database Service

数据库服务(Database Services)
数据库服务是表示一个或多个数据库实例的命名方式。服务能让你组合数据库工作负载并将一个特定的工作请求分发到一个合适的实例。一个数据库服务代表了一个单独的数据库。这个数据库可以是单实例数据库或者RAC数据库。一个全局数据库服务通过数据复制的多数据库同步机制来提供服务。

数据库服务将单数据库的工作负载分成多个互不相交的工作组。每个数据库服务使用常见的属性,服务级别阈值与优先级来代表一个工作负载。分组是基于工作属性的,它可能包含被使用的应用功能,执行应用功能的优先级,被管理的job类型或者应用功能中使用的数据范围或job类型。

数据库连接请求可以包含一个数据库服务名。因此中间层应用与C/S应用可以通过在TNS连接数据中指定数据库服务作为连接的一部分来使用服务。如果没有包含数据为服务名并且Net服务文件listener.ora指定了一个缺省数据库服务,那么连接将会使用这个缺省的数据库服务。

数据库服务可以对单个数据库配置工作负载,管理,启用与禁用,并且可以作为单个实体来检测工作负载。可以使用标准工具比如DBCA,NETCA和Cloud Control来进行操作。Cloud Control支持查看与操作服务。

在RAC环境中,数据库服务可以跨一个或多个实例并且基于事务性能来达到工作负载平衡。这种功能提供了无人值守的恢复,回滚与完全的位置透明。RAC也能让你使用Cloud Control,DBCA与SRVCLT来管理多个数据库服务功能。

数据库服务描述了应用程序,应用程序功能和功能服务或数据依赖服务的数据范围。功能服务通常映射到工作负载。会话使用特定功能被分组在一起。相反,数据领带根据数据键值将会话路由到数据服务。工作请求映射会在应用程序服务与TP监控的对象关系映射层中出现。例如,在RAC中,因为数据库是共享的,这些范围可能基于需要动态的完成。

另外数据库服务可以通过应用程序来使用,Oracle数据库也支持两种内部数据库服务:SYS$BACKGROUND只能由后台进程使用,SYS$USERS是用户会话的缺省数据库服务,它不与服务相关联。

使用数据库服务请求不需要改变应用等程序代码。客户端可以连接到一个命名的数据服务进行操作。服务端,比如Oracle调度,并行执行与Oracle数据库高级队列,将数据库服务名设置为工作负载定义的一部分。使用数据库服务执行的工作请求继承了服务的性能阈值与作为服务一部分的测量。

数据库服务与性能
数据库服务在性能调整中也提供了一种额外的维度。在大多数系统中所有会话都是匿名与共享的,可以使用”服务与SQL”调整来替代”会话与SQL”调整。使用数据库服务,工作负载可见且可以被检测。通过应用程序的资源消耗与等待属性来实现。另外,指定到数据库服务的资源当负载增加或减少时可以扩展。动态资源分配对于满足你出现的需求是最具成本效益的解决方案。例如,数据库服务会自动被
检测并与服务级别阈值进行比较。性能问题会报告给Cloun Control,并执行自动或调度解决方案。

使用数据库服务的数据库功能
有些Oracle数据库功能支持数据库服务。AWR管理服务的性能。AWR记录了数据库服务的性能,包含执行时间,等待类型与服务的资源消耗。当数据库服务响应时间超过了阈值AWR会发出警告。动态性能视图使用一小时历史数据来报告当前服务的性能度量。每个数据库服务对于响应时间与CPU消耗都有服务质量阈值。

数据库资源客理器可以将数据库服务映射到用户组。因此,可以自动管理数据库服务的优先级。可以使用用户组来定义相对优先级或资源消耗。

可以为数据库服务指定一个编辑属性。编辑可以使数据库中的相同对象有两个或多个版本。当你对数据库服务指定编辑属性时,所有后续的连接将使用这个编辑属性来初始化会话。

对数据库服务指定一个编辑属性可以更容易的管理资源使用。例如,使用编辑属性的数据库服务可以被置于RAC环境中的单独实例中,数据库资源管理器通过使用不同编辑属性的相关数据库服务所关联的资源计划来管理资源的使用。

对于Oracle调度,可以选择在创建job类型时指定数据库服务。在执行时间,job被指派到job类型,并且job类型可以使用数据库服务来运行。指定job类型的数据库服务可以确保通过job调度的执行被工作负载管理所识别与执行调整。

对于并行查询与并行DML,查询协调者连接到数据库服务就像其它客户端连接数据一样。对于执行时间并行查询进程继承数据库服务。在查询执行结束后,并行执行进程会归还给缺省的数据库服务。

创建数据库服务
依赖于数据库的配置有几种创建数据库服务的方式
1.如果是单实例数据库且由Oracle Restart管理,可以使用srvctl工具来创建数据库服务

srvctl add service -db db_unique_name -service service_name
[oracle@oracle12c admin]$ srvctl add service -db jycs -service jycs_service

检查服务状态

[oracle@oracle12c admin]$ srvctl status service -db jycs
Service jycs_service is not running.

查看服务配置信息

[oracle@oracle12c admin]$ srvctl config service -db jycs
Service name: jycs_service
Cardinality: SINGLETON
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Global: false
Commit Outcome: false
Failover type:
Failover method:
TAF failover retries:
TAF failover delay:
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: NONE
Edition:
Pluggable database name:
Maximum lag time: ANY
SQL Translation Profile:
Retention: 86400 seconds
Replay Initiation Time: 300 seconds
Session State Consistency:
GSM Flags: 0
Service is enabled

启动服务

[oracle@oracle12c admin]$ srvctl start service -db jycs -service jycs_service

查看监听是否注册了服务

[grid@oracle12c ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 05-MAY-2016 11:56:23

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                05-MAY-2016 08:41:25
Uptime                    0 days 3 hr. 14 min. 58 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/oracle12c/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracle12c)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/product/12.1/db/admin/jycs/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "jycs" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsXDB" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycs_service" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp1" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...

可以看到jycs_service服务已经被监听注册,在客户端配置tns并验证通过服务jycs_service能否登录数据库

C:\Users\Administrator>tnsping 12c_jycs_service

TNS Ping Utility for 64-bit Windows: Version 11.2.0.4.0 - Production on 05-5月 -
2016 13:21:38

Copyright (c) 1997, 2013, Oracle.  All rights reserved.

已使用的参数文件:
D:\oracle\app\Administrator\product\11.2.0\dbhome_1\network\admin\sqlnet.ora


已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.241)(PORT
= 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = jycs_service)))
OK (20 毫秒)
C:\Users\Administrator>sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on 星期四 5月 5 14:44:06 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.



SQL> conn sys/system@12c_jycs_service as sysdba
已连接。
SQL>

从执行命令的结果来看通过服务jycs_service可以登录数据库

2.如果是单实例且没有使用Oracle Restart来管理数据库,可以通过以下一种方式来创建数据库服务

SQL> show parameter service_names

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      jycs
[grid@oracle12c ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 05-MAY-2016 14:59:06

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                05-MAY-2016 14:57:53
Uptime                    0 days 0 hr. 1 min. 13 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/oracle12c/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracle12c)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/product/12.1/db/admin/jycs/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "jycs" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsXDB" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycs_service" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp1" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp10" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp2" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp3" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp4" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp5" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp6" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp7" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp8" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp9" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...

增加一个名为jycs_service_2的服务名

SQL> alter system set service_names='jycs,jycs_service_2' scope=both;

System altered.

检查监听是否注册了服务jycs_service_2

[grid@oracle12c ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 05-MAY-2016 15:02:08

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                05-MAY-2016 14:57:53
Uptime                    0 days 0 hr. 4 min. 15 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/oracle12c/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracle12c)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/product/12.1/db/admin/jycs/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "jycs" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsXDB" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycs_service_2" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
The command completed successfully

从这里可以看到jycs_service_2服务已被监听所注册,但是通过这种方式创建服务后,原来PDB的服务从监听中消失了,这可能是12.1.0.2的bug(猜测),如是重启数据库就可以解决这个问题。

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size                  2932632 bytes
Variable Size             377487464 bytes
Database Buffers          687865856 bytes
Redo Buffers                5455872 bytes
Database mounted.
Database opened.
[grid@oracle12c ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 05-MAY-2016 15:02:58

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                05-MAY-2016 14:57:53
Uptime                    0 days 0 hr. 5 min. 5 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/oracle12c/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracle12c)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/jycs/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "jycs" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsXDB" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycs_service" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycs_service_2" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp1" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp10" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp2" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp3" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp4" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp5" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp6" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp7" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp8" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp9" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
The command completed successfully

3.执行dbms_service.create_service过程来创建数据库服务名

SQL>dbms_service.create_service(service_name => 'jycs_service_3',network_name => 'jycs_service_3');

执行dbms_service.create_service过程来创建数据库服务名jycs_service_3后,在v$services视图中是没有该服务的行记录,但在dba_services视图中有该服务的行记录,需要调整数据库参数service_names,并重启。

SQL> select * from v$services;

SERVICE_ID NAME                        NAME_HASH NETWORK_NAME    CREATION_DATE CREATION_DATE_HASH GOAL         DTP AQ_HA_NOTIFICATION CLB_GOAL COMMIT_OUTCOME RETENTION_TIME REPLAY_INITIATION_TIMEOUT SESSION_STATE_CONSISTENCY      GLOBAL PDB          SQL_TRANSLATION_PROFILE  MAX_LAG_TIME       CON_ID
---------- -------------------------- ---------- --------------- ------------- ------------------ ------------ --- ------------------ -------- -------------- -------------- ------------------------- ------------------------------ ------ ------------ ------------------------ -------------- ----------
         0 jycsp10                    2786476993 jycsp10                                        0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP10                                                      12
         0 jycsp9                     3094752551 jycsp9                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP9                                                       11
         0 jycsp8                     2804702749 jycsp8                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP8                                                       10
         0 jycsp7                      651053443 jycsp7                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP7                                                        9
         0 jycsp6                     2502944067 jycsp6                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP6                                                        8
         0 jycsp5                     1822500990 jycsp5                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP5                                                        7
         0 jycsp4                     1917126355 jycsp4                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP4                                                        6
         0 jycsp3                     2193443928 jycsp3                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP3                                                        5
         0 jycsp2                     3609153374 jycsp2                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP2                                                        4
         0 jycsp1                     1271175711 jycsp1                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP1                                                        3
         3 jycs_service               1423956612 jycs_service    2016/5/5 11:5          668160606 NONE         N   NO                 LONG     NO                      86400                       300 DYNAMIC                        NO     CDB$ROOT                              ANY                     1
         7 jycs_service_2             2320947470 jycs_service_2  2016/5/5 15:0         4274618966 NONE         N   NO                 LONG     NO                      86400                       300                                NO     CDB$ROOT                                                      1
         5 jycsXDB                    1180545090 jycsXDB         2016/3/31 20:         3827618340 NONE         N   NO                 LONG     NO                      86400                       300                                NO     CDB$ROOT                                                      1
         6 jycs                       1105513663 jycs            2016/3/31 20:         3827618340 NONE         N   NO                 LONG     NO                      86400                       300                                NO     CDB$ROOT                                                      1
         1 SYS$BACKGROUND              165959219                 2014/7/7 5:39          977152970 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     CDB$ROOT                                                      1
         2 SYS$USERS                  3427055676                 2014/7/7 5:39          977152970 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     CDB$ROOT                                                      1

16 rows selected
SQL> select * from dba_services;

SERVICE_ID NAME                        NAME_HASH NETWORK_NAME    CREATION_DATE CREATION_DATE_HASH FAILOVER_METHOD    FAILOVER_TYPE    FAILOVER_RETRIES FAILOVER_DELAY MIN_CARDINALITY MAX_CARDINALITY GOAL         DTP ENABLED AQ_HA_NOTIFICATIONS CLB_GOAL EDITION     COMMIT_OUTCOME RETENTION_TIMEOUT REPLAY_INITIATION_TIMEOUT SESSION_STATE_CONSISTENCY     GLOBAL_SERVICE PDB         SQL_TRANSLATION_PROFILE   MAX_LAG_TIME    GSM_FLAGS
---------- -------------------------- ---------- --------------- ------------- ------------------ ------------------ ---------------- ---------------- -------------- --------------- --------------- ------------ --- ------- ------------------- -------- ----------- -------------- ----------------- ------------------------- ----------------------------- -------------- ----------- ------------------------- -------------- ----------
         1 SYS$BACKGROUND              165959219                 2014/7/7 5:39          977152970                                                                                                                  N   NO      NO                  LONG                 NO                                                                                       NO             CDB$ROOT
         2 SYS$USERS                  3427055676                 2014/7/7 5:39          977152970                                                                                                                  N   NO      NO                  LONG                 NO                                                                                       NO             CDB$ROOT
         3 jycs_service               1423956612 jycs_service    2016/5/5 11:5          668160606                                                    0              0                                 NONE         N   NO      NO                  LONG                 NO                         86400                       300 DYNAMIC                       NO             CDB$ROOT                              ANY                     0
         4 jycs_service1              3627910471 jycs_service1   2016/5/5 14:5          153848850                                                                                                                  N   NO      NO                  LONG                 NO                                                                                       NO             CDB$ROOT
         5 jycsXDB                    1180545090 jycsXDB         2016/3/31 20:         3827618340                                                                                                                  N   NO      NO                  LONG                 NO                                                                                       NO             CDB$ROOT
         6 jycs                       1105513663 jycs            2016/3/31 20:         3827618340                                                                                                                  N   NO      NO                  LONG                 NO                                                                                       NO             CDB$ROOT
         7 jycs_service_2             2320947470 jycs_service_2  2016/5/5 15:0         4274618966                                                                                                                  N   NO      NO                  LONG                 NO                                                                                       NO             CDB$ROOT
         8 jycs_service_3             1197864246 jycs_service_3  2016/5/5 15:0         2019662977                                                                                                     NONE         N   NO      NO                  LONG                 NO                         86400                       300 DYNAMIC                       NO             CDB$ROOT                              ANY                     0

8 rows selected

[grid@oracle12c ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 05-MAY-2016 15:18:05

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                05-MAY-2016 14:57:53
Uptime                    0 days 0 hr. 20 min. 12 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/oracle12c/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracle12c)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/jycs/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "jycs" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsXDB" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycs_service" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycs_service_2" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp1" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp10" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp2" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp3" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp4" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp5" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp6" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp7" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp8" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp9" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
The command completed successfully

设置参数service_names并重启数据库

SQL> alter system set service_names='jycs,jycs_service_2,jycs_service_3' scope=both;

System altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size                  2932632 bytes
Variable Size             377487464 bytes
Database Buffers          687865856 bytes
Redo Buffers                5455872 bytes
Database mounted.
Database opened.
SQL> select * from v$services;

SERVICE_ID NAME                 NAME_HASH NETWORK_NAME    CREATION_DATE CREATION_DATE_HASH GOAL         DTP AQ_HA_NOTIFICATION CLB_GOAL COMMIT_OUTCOME RETENTION_TIME REPLAY_INITIATION_TIMEOUT SESSION_STATE_CONSISTENCY      GLOBAL PDB           SQL_TRANSLATION_PROFILE   MAX_LAG_TIME      CON_ID
---------- ------------------- ---------- --------------- ------------- ------------------ ------------ --- ------------------ -------- -------------- -------------- ------------------------- ------------------------------ ------ ------------- ------------------------- ------------- ----------
         3 jycs_service        1423956612 jycs_service    2016/5/5 11:5          668160606 NONE         N   NO                 LONG     NO                      86400                       300 DYNAMIC                        NO     CDB$ROOT                                ANY                    1
         0 jycsp10             2786476993 jycsp10                                        0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP10                                                       12
         0 jycsp9              3094752551 jycsp9                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP9                                                        11
         0 jycsp8              2804702749 jycsp8                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP8                                                        10
         0 jycsp7               651053443 jycsp7                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP7                                                         9
         0 jycsp6              2502944067 jycsp6                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP6                                                         8
         0 jycsp5              1822500990 jycsp5                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP5                                                         7
         0 jycsp4              1917126355 jycsp4                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP4                                                         6
         0 jycsp3              2193443928 jycsp3                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP3                                                         5
         0 jycsp2              3609153374 jycsp2                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP2                                                         4
         0 jycsp1              1271175711 jycsp1                                         0 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     JYCSP1                                                         3
         8 jycs_service_3      1197864246 jycs_service_3  2016/5/5 15:0         2019662977 NONE         N   NO                 LONG     NO                      86400                       300                                NO     CDB$ROOT                                ANY                    1
         7 jycs_service_2      2320947470 jycs_service_2  2016/5/5 15:0         4274618966 NONE         N   NO                 LONG     NO                      86400                       300                                NO     CDB$ROOT                                                       1
         5 jycsXDB             1180545090 jycsXDB         2016/3/31 20:         3827618340 NONE         N   NO                 LONG     NO                      86400                       300                                NO     CDB$ROOT                                                       1
         6 jycs                1105513663 jycs            2016/3/31 20:         3827618340 NONE         N   NO                 LONG     NO                      86400                       300                                NO     CDB$ROOT                                                       1
         1 SYS$BACKGROUND       165959219                 2014/7/7 5:39          977152970 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     CDB$ROOT                                                       1
         2 SYS$USERS           3427055676                 2014/7/7 5:39          977152970 NONE         N   NO                 SHORT    NO                      86400                       300                                NO     CDB$ROOT                                                       1

查看监听是否注册了jycs_service_3,可以看到在设置service_names参数并重启数据库后监听注册了该服务

[grid@oracle12c ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 05-MAY-2016 15:21:10

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                05-MAY-2016 14:57:53
Uptime                    0 days 0 hr. 23 min. 17 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/oracle12c/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracle12c)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/jycs/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "jycs" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsXDB" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycs_service" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycs_service_2" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycs_service_3" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp1" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp10" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp2" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp3" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp4" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp5" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp6" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp7" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp8" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
Service "jycsp9" has 1 instance(s).
  Instance "jycs", status READY, has 1 handler(s) for this service...
The command completed successfully

Oracle的并行

当我们要在操作中处理大量数据,比如全表扫描大表或者创建一个大的索引,可以将这个工作通过使用多个进程来分成多个小任务来完成,这就叫作并行执行或者并行处理。并行执行当要访问大量数据时能够减少响应时间,但不是任何时候并行执行都比串行执行快。并行执行在以下情况下是非常有用的:
查询要使用大表扫描,连接或分区索引扫描
创建大索引和大表
批量插入,更新和删除
聚合操作

并行执行的工作原理
一个查询提交到Oracle服务器并解析。在优化时如果考虑使用并行执行,那么在执行时间用户影子进程将成为查询协调者(QC)并且根据需要为会话分配并行子进程。QC根据并行子进程的数量并使用基于rowid范围或分区(从8i开始)来将工作进行分解。为了达到平均分布工作量,一个简单的分布算法被使用。生产者读取数据并将数据存储在表队列中由消费者或者QC来从表队列中读取数据。

如果SQL语句要执行排序,那么由消费者并行子进程从生产者相关的表队列中读取数据并且进行排序并将排序后的数据存储到与消费者并行子进程相关的新表队列中。这些队列然后将由QC进程进行读取。

如果SQL语句不执行排序,那么QC将直接读取生产者子进程相关的表队列。

Query Coordinator(QC)查询协调者:由会话派生出来的前台进程,用来从查询子进程中接收数据

Slaves:子进程从磁盘或表队列结构(也可能是其它的子进程)中读取数据并且将数据存储到它们自己的表队列中。当子进程从磁盘读取数据时,将会执行直接I/O路么读。这意味着将会跨过buffer cache。事实上,子进程将会强制将已经被更新但还没有被刷新到磁盘的数据块从buffer cache中刷新到磁盘,然后使用直接路径I/O来读取数据。

子进程将等待数据进入队列和离开队列的消息。有两种类型的子进程
生产者和消费者:
生产者子进程根据QC所给定的rowid范围或分区来查看数据块和检索相关数据。然后这些数据会被存储到表队列中由QC或消费者子进程来进行读取

消费者子进程当需要从由生产者子进程填充的表队列中读取数据时才产生。读取数据后经过消费者子进程处理后返回给QC处理。

在一个最简单的查询中(数据不需要进行排序),那么不需要产生消费者进程并且QC会直接从生产者子进程表队列中读取数据。

出现生产者和消费者的原因是因为当并行查询需要排序时并行度有时要求双倍数量的查询子进程。

SQL> select /*+ parallel */ * from scott.emp;

     EMPNO ENAME      JOB              MGR HIREDATE            SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------ ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80           800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81          1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81          1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81          2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81          1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81          2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81          2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87          3000                    20
      7839 KING       PRESIDENT            17-NOV-81          5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81          1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87          1100                    20

     EMPNO ENAME      JOB              MGR HIREDATE            SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------ ---------- ---------- ----------
      7900 JAMES      CLERK           7698 03-DEC-81           950                    30
      7902 FORD       ANALYST         7566 03-DEC-81          3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82          1300                    10

14 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 2873591275

--------------------------------------------------------------------------------------------------------------
| Id  | Operation            | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
--------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |          |    14 |   532 |     2   (0)| 00:00:01 |        |      |            |
|   1 |  PX COORDINATOR      |          |       |       |            |          |        |      |            |
|   2 |   PX SEND QC (RANDOM)| :TQ10000 |    14 |   532 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
|   3 |    PX BLOCK ITERATOR |          |    14 |   532 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
|   4 |     TABLE ACCESS FULL| EMP      |    14 |   532 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
--------------------------------------------------------------------------------------------------------------

Note
-----
   - automatic DOP: Computed Degree of Parallelism is 2


Statistics
----------------------------------------------------------
        130  recursive calls
          4  db block gets
        155  consistent gets
         18  physical reads
          0  redo size
       1401  bytes sent via SQL*Net to client
        415  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
         11  sorts (memory)
          0  sorts (disk)
         14  rows processed

上面的查询没有要求排序所以只产生的生产者,也只有一个表队列TQ10000,一组并行子进程就是生产者子进程

SQL> select /*+ parallel */ * from scott.emp order by ename;

     EMPNO ENAME      JOB              MGR HIREDATE            SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------ ---------- ---------- ----------
      7876 ADAMS      CLERK           7788 23-MAY-87          1100                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81          1600        300         30
      7698 BLAKE      MANAGER         7839 01-MAY-81          2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81          2450                    10
      7902 FORD       ANALYST         7566 03-DEC-81          3000                    20
      7900 JAMES      CLERK           7698 03-DEC-81           950                    30
      7566 JONES      MANAGER         7839 02-APR-81          2975                    20
      7839 KING       PRESIDENT            17-NOV-81          5000                    10
      7654 MARTIN     SALESMAN        7698 28-SEP-81          1250       1400         30
      7934 MILLER     CLERK           7782 23-JAN-82          1300                    10
      7788 SCOTT      ANALYST         7566 19-APR-87          3000                    20

     EMPNO ENAME      JOB              MGR HIREDATE            SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------ ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80           800                    20
      7844 TURNER     SALESMAN        7698 08-SEP-81          1500          0         30
      7521 WARD       SALESMAN        7698 22-FEB-81          1250        500         30

14 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 3979194000

-----------------------------------------------------------------------------------------------------------------
| Id  | Operation               | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
-----------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT        |          |    14 |   532 |     3  (34)| 00:00:01 |        |      |            |
|   1 |  PX COORDINATOR         |          |       |       |            |          |        |      |            |
|   2 |   PX SEND QC (ORDER)    | :TQ10001 |    14 |   532 |     3  (34)| 00:00:01 |  Q1,01 | P->S | QC (ORDER) |
|   3 |    SORT ORDER BY        |          |    14 |   532 |     3  (34)| 00:00:01 |  Q1,01 | PCWP |            |
|   4 |     PX RECEIVE          |          |    14 |   532 |     2   (0)| 00:00:01 |  Q1,01 | PCWP |            |
|   5 |      PX SEND RANGE      | :TQ10000 |    14 |   532 |     2   (0)| 00:00:01 |  Q1,00 | P->P | RANGE      |
|   6 |       PX BLOCK ITERATOR |          |    14 |   532 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
|   7 |        TABLE ACCESS FULL| EMP      |    14 |   532 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
-----------------------------------------------------------------------------------------------------------------

Note
-----
   - automatic DOP: Computed Degree of Parallelism is 2


Statistics
----------------------------------------------------------
         19  recursive calls
          4  db block gets
         13  consistent gets
          0  physical reads
          0  redo size
       1406  bytes sent via SQL*Net to client
        415  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          3  sorts (memory)
          0  sorts (disk)
         14  rows processed

上面的查询要求排序,所以出现了生产者与消费者,生产者表队列为:TQ10000,消费者表队列为TQ10001

子进程从表队列中等待离队信息时,’PX Deque wait’等待是并行查询正常操作的一部分。子进程在工作之前必须等待离队的消息才能开始进行。

Table Queues(TQ)队列它允许进程将行记录发送给其它进程。比如数据从生产者子进程发送到消费者子进程。消费者子进程也可以将数据发送给QC。

与并行执行相关的数据库参数
parallel_max_servers
一个实例可以使用的最大并行子进程数,如果为0则意味着不能并行执行语句

parallel_min_servers
实例在启动时产生的最小并行子进程数,这些子进程在实例的生命周期内都是被保留存在的。

parallel_min_percent
如果优化器已经决定了查询将以并行方式来执行,但执行时系统没有足够的资源来满足所请求的并行度,那么缺省情况下,查询将以串行方式来执行并且不会给用户返回任何信息。这就很容易造成一个查询的执行时间非常长。这个参数提供了一个方法当没有足够资源可用时来阻查询以串行方式来执行并显示错误信息。它定义了一个并行查询可以执行的最小资源数。它用可以并行执行子进程的百分比
来表示。

如果这个参数没有被设置且并行执行所需要的资源不能满足那么查询将会以串行方式来执行。
如果这个参数被设置并且期望的查询子进程的百分比不满足,那么将会报错(ORA-12827)而不是串行执行语句。

如果并行执行需要的资源不可用,当parallel_min_percent=0时,语句将会串行执行而不会报错。当parallel_min_percent=50,意味着查询执行是最佳并行执行时间的2倍是可以接受的。当parallel_min_percent=100,意味着除非并行查询所需要的资源完全可用才会并行执行否则会报错ORA-12827。

parallel_adaptive_multi_user
当parallel_adaptive_multi_user设置为true时,启用自适应算法来使用并行执行提高多用户环境中的性能。算法会根据查询开始执行时间的系统负载来自动减少所请求的并行度。实际上有效的并行度是基于缺省并行度,或都表的并行度或hints除以减小因子。

例如:在一个有17个CPU的主机上缺省并行度可以被设置为32。如果用户执行一个并行查询,得到的并行度是32,能有效的使用系统中的所有CPU和内存。当第二个用户登录系统,并执行一个并行行查询,得到的并行度将是16,当系统中的用户增加时,算法将继续减小并行度直到用户使用的并行度等于1为止,也就是系统有32个用户登录时。

parallel_automatic_tuning
设置parallel_automatic_tuning参数将会对PX参数有影响,当parallel_automatic_tuning=false时:
parallel_executon_message_size的缺省值为2Kbyte
parallel_adaptive_multi_user的缺省值为false
large_pool_size不受影响
prcoesses不受影响
parallel_max_servers 5

当parallel_automatic_tuning=true时:
parallel_executon_message_size的缺省值为4Kbyte
parallel_adaptive_multi_user的缺省值为true
large_pool_size 将基于其它条种参数来进行复杂计算来计算出增加值
prcoesses 如果processes parallel_max_servers 如果parallel_adaptive_multi_user=true时
(cpus * parallel_threads_per_cpu * _parallel_adaptive_max_users * 5),否则
(cpus * parallel_threads_per_cpu * _parallel_adaptive_max_users * 8)

parallel_theads_per_cpu缺省值依赖于操作系统,缺省值为2

parallel_force_local
parallel_force_local参数控制RAC环境中的并行执行。缺省情况下,优化器可以从RAC中的任何节点或所有节点中选择并行执行SQL语句的并行进程。当parallel_force_local设置为true时,那么并行进程就只能是与查询协调者(执行sql语句的节点)在同一个RAC节点中,也就是说并行进程是不能跨节点的.

parallel_degree_policy
parallel_degree_policy参数可以被设置为manual,auto或limited在Oracle11.1中parallel_degree_policy缺省设置为manual(禁用了automatic degree of parallelism,statement queuing与in-memory parallel execution)

parallel_min_time_threshold
parallel_min_time_threshold参数用来指定SQL语句是否并行执行一个阈值,也就是当优化器根据统计信息所估算的执行时间如果大于这个参数值就是使用并行,如果估算的执行时间小于这个参数值就会串行执行。这个参数值缺省值是10秒。并且自动并行度只要在parallel_degree_policy参数被设置为auto或limited时才会生效。

parallel_degree_limit
使用自动并行度时,Oracle会自动决定是否以并行方式来执行SQL语句以及所使用的并行度。优化根据语句所请求的资源来决定一个语句的并行度。然而优化器所使用的并行度是受限制的以防止并行进程击垮系统。也就是是系统中所能使用的并行度的上限为parallel_degree_limit参数值。它有三个参数值可以选择:
CPU
最大并行度由系统中的CPU数量来限制。其计算公式为
parallel_degree_limit=parallel_thread_per_cpu*cpu_count当然,你也可以将parallel_degree_limit的值设置为一个具体的值,以达到明确控制实际并行度的目的。

IO
优化器能使用的最大并行度由系统的I/O能力来限制。这个值等于系统总吞吐量除以每个进程的最大I/O带宽。但在Oracle 11.2中为了将parallel_degree_limit设置为IO必须执行dbms_resource_manager.calibrate_io过程来收集系统的I/O统计信息。这个过程将会计算系统的总吞吐量与每个进程的最大IO带宽。

具体数字
当自动并行度被激活时,指定一个SQL语句所能使用的最大并行度。这个参数只有当parallel_degree_policy设置为auto或limited时才生效。

parallel_servers_target
Parallel_servers_target用于控制在自动并行被完全开启的情况下,待并行执行的目标SQL是立即被执行还是进入并行执行队列,它的默认值为4*cpu_count*parallel_threads_per_cpu(在Oracle 11gr2中,如果你开启了SGA和PGA的自动调整,则parallel_servers_target的默认值为8*cpu_count*parallel_threads_per_cpu)。

优化器
并行执行只能用于CBO。在有些情况下,当表或索引有非0并行度时将会强制使用CBO。有以下hint影响并行执行:
.parallel
.noparallel
.pq_distribute
.parallel_index
.noparallel_index

如果使用RBO,那么任何并行hints都会被忽略。

如何判断语句是否使用并行执行
1.检查执行计划
如果没有并行的相关信息,那么没有使用并行执行。检查plan table中由并行子进程所使用的其它列。如果SQL包含hints比如/*+ rowid(a1) */并且这些hints没有出现在原代码中,那么可能是并行查询所使用的。ROWID hint是一种内部方法用于处理并行查询。注意ROWID hint有特定的意思,意味首跨过了buffer cache。事实上它会造成buffer被刷新到磁盘因此对基本的数据文件可以执行直接
I/O。

有两个脚本用来格式化plan_table的查询。一个用来格式化串行执行计划的输出(utlxpls.sql),这些脚本都可以到$ORACLE_HOME/rdbms/admin/目录下找到。为了避免截断输出执行以下设置
‘set charwidth 108’ in svrmgrl
‘set linesize 108’ in SQL*Plus

2.执行查询

SQL> select * from v$pq_sesstat; 

STATISTIC                      LAST_QUERY SESSION_TOTAL
------------------------------ ---------- -------------
Queries Parallelized                    0             0
DML Parallelized                        0             0
DDL Parallelized                        0             0
DFO Trees                               0             0
Server Threads                          0             0
Allocation Height                       0             0
Allocation Width                        0             0
Local Msgs Sent                         0             0
Distr Msgs Sent                         0             0
Local Msgs Recv'd                       0             0
Distr Msgs Recv'd                       0             0

11 rows selected.

SQL> select count(*) from t1;

  COUNT(*)
----------
  22040576

SQL> select * from v$pq_sesstat; 

STATISTIC                      LAST_QUERY SESSION_TOTAL
------------------------------ ---------- -------------
Queries Parallelized                    1             1
DML Parallelized                        0             0
DDL Parallelized                        0             0
DFO Trees                               1             1
Server Threads                          2             0
Allocation Height                       1             0
Allocation Width                        2             0
Local Msgs Sent                        29            29
Distr Msgs Sent                        29            29
Local Msgs Recv'd                      29            29
Distr Msgs Recv'd                      29            29

11 rows selected.

上面查询信息的第一行可以看到这个会话的最后一个查询是并行执行。

3.检查子进程活动视图
查询v$pq_slave两次
SQL> SELECT slave_name,status, cpu_secs_total FROM v$pq_slave;

SLAV STAT CPU_SECS_TOTAL
---- ---- --------------
PZ99 IDLE              0

SQL> select count(*) from t1;

  COUNT(*)
----------
  22040576
SQL> SELECT slave_name,status, cpu_secs_total FROM v$pq_slave;

SLAV STAT CPU_SECS_TOTAL
---- ---- --------------
P000 BUSY              0
PZ99 IDLE              0

如果没有返回记录,说明没有并行子进程运行。如果在2次运行之间CPU利用率没有差异,那么在这期间没有CPU活动。

可以通过v$session_wait来查询PQ活动,对于8以下的版本可以执行以下查询

SQL> SELECT sid, event, seq#,p1,p2,p3, wait_time FROM v$session_wait WHERE upper(event) like ('PX%') ORDER BY 1;
       SID EVENT
---------- ----------------------------------------------------------------
      SEQ#         P1         P2         P3  WAIT_TIME
---------- ---------- ---------- ---------- ----------
        33 PX Deq: Execute Reply
     31451        200          1          0          0


4.使用event 10046 level 12诊断事件来跟踪查询协调者QC
并行执行的性能
以并行方式来执行查询而不是串行,可以提高性能。然而,并行查询是否最有效,有许多因素需要考虑。多个并行子进程会比单个进程消耗更多的CPU,每个并行子进程都有它自己的地址空间(内存分配)

对于读取大量数据除了使用并行执行来减少执行时间之外没有其它选择。通过将读取工作负载分解到多个处理器或并行子进程来执行最大化了数据吞吐量。排序操作也使用子进程的’table queue structures’来进行管理。这将有效地增加整个系统的CPU负载。如果系统当前CPU利用率已经最大化(或接近最大化),并行查询不会得到任何好处。如果没有更多的CPU可以使用,那么并行查询操作将以串行方式来执行。

另外并行子进程的读取数据的额外IO请求也会对I/O子系统的负载产生压力。在有些情况下磁盘I/O可能会成为瓶颈。跨多个磁盘来分布数据会所有帮助。

另外对于适用索引查询而不是并行查询的语句串行方式执行可能会运行地更快
.nested loops vs hash/sort merge join
通常来说并行查询是使用快速表扫描来访问数据并且基于rowid范围来分给并行子进程。通常nestedloop join对于快速表扫描不是很有效(除非驱动表输入的记录数很小)。Hash Joins与Sort Merge在处理大理数据时会更有效。然而,对于HJ与SMJ不会对来自驱动表(也就是驱动行记录)进行行消除。这种行消除会减小被调用数据集的大小。因为被消除的数据量这就可能意味着使用索引访问数据的串
行执行会比并行执行更快。

.创建并行子进程,平均分解数据并将数据传给多个进程和合并结果的总成本可能会比串行执行的成本更高

.数据倾斜
并行执行是基于rowid范围来将数据平均分给并行子进程。因为分给每个并行子进程的相同数据块包含首相同记录。事实上,有些数据块完全是空的。这种问题在大量数据被归档或被删除之后更为突出,因此造成了许多空块或稀疏的数据块。这会造成数据的不均匀分布进而造成并行查询比串行查询运行的更慢,因为一个并行子进程执行工作(例如一个并行子进程的对分布的数据串行访问会引起瓶颈)。
对于这种情况除了重新组织数据几乎没有方法可以解决。

性能概述
并不是所有的并行查询都比串行查询执行快。有些查询适合并行查询,有些适合串行查询。如果使用并行执行,那么应该尽量最大化磁盘I/O的吞吐量。确保:
.有足够的并行子进程来有效检索数据
.不能有太多的并行子进程(避免超过CPU)
.设置内存参数(sort_area_size等)因此不会内存溢出与引起内存交换
.数据均匀分布给多个磁盘,因此并行子进程没有I/O竞争
.需要并行执行的查询类型在适合并行执行
.查看并行子进程是否出现数据的不均匀分布这就说明了数据倾斜

位图索引

常规的B树索引对包含每行记录的ROWID与索引键值。位图索引不会直接存储ROWID,每个不同的键值都有一个位图,这就是为什么创建位图索引的列要有较少的distinct值的原因。位图中的每一位映射到一个可能的ROWID,位图中每一位的特定值代表是否存在有价值的记录,因此位图中存储了关于特定行和相关的ROWID。如果ROWID的值与条件匹配在rowid的位置存储“1”,不匹配存储“0”。Oracle会压
缩位图的存储。

创建位图索引
create bitmap index index_name on table_name(columns);Oracle将创建一系列的位图,列中每个特定值都会被使用。例如,如果创建位图索引的列有’East’和’Central’两个值,那么将会为’East’和’Central’创建位图。如果是复合位图索引,那么位图将是由
任何一组可能的排列值组成。

位图索引的使用
1.列有较低的基数:较少的distinct值
2.位图索引对于包含较长where子句或聚合查询(包含sum,count或其它聚合函数)的ad hoc查询很有帮助
3.表行记录很多(比如有1,000,000行记录有10,000个distinct值)
4.对于表执行ad hoc查询很频繁
5.数据仓库环境(DSS系统)。位图索引对于联机事务处理(OLTP)不适用这是由于位图索引的锁机制造成的,只锁定单个位图的位置是不能实现的。能够被锁定的最小位图量是一个位图段,它的大小可以达到数据块的一半。改变一行记录会造成一个位图段被锁定,而实际上只改变了一行记录。当有许多update,insert或delete语句被执行时,影响会更明显。在数据仓库中当数据批量加载或更新时这种影响不是问题。
6.位图连接索引是9中引入的,通过连接可以避免在连接条件上预先创建位图索引的必要

位图索引的限制
1.不能用于RBO
2.不能用于分区表的全局索引
3.不支持联机创建或重建
4.对位图索引使用直接路径加载,”SORTED_INDEX”标记不能应用
5.位图索引不能用于引用完整性
6.位图索引不能定义为UNIQUE
7.在9i之前,当创建一个索引组织表时不能使用位图索引,从9i开始才支持。
8.对域索引不能使用bitmap

与B树索引相比的优点
1.减少了许多ad hoc查询的响应时间
2.大幅减少了存储空间
a)有少量distinct值的单列位图索引
如果位图索引是创建在一个唯一键上,它将比常规B树索引使用的空间更多。然后,如果列中有成百上千个重复值时,位图索引通常要比常规B树索引所使用的空间减少25%。位图是以压缩的格式来进行存储的。

b)在多列上创建位图索引
位图索引与B树索引相比可以大量节省存储空间。在数据库中只包含B树索引,必须对查询中所使用的列进行预测并对这些列创建一个复合B树索引。多列复合B树索引不仅需要大量的空间,还要进行排序。对于在(marital_status,region,gender)上创建的B树索引,对于只访问REGION与DENDER在前导列marital_status有太多distinct值的情况下是没有用的。为了使用索引,必须对这些列的其它组合方
式创建索引。简单来说,对于三个低基数列就有6种组合的B树索引。必须对创建那种组合的B树索引和需要的存储空间进行考虑。B树索引可以解决这种问题。位图索引可以在查询执行时进行有效的组合,因此三个小的单列位图索引可以完成6个三列B树索引所做的事情。

3.非常影响并行DML与加载
位图索引适合数据仓库程序但不适合有高并发insert,update与delete系统。在数据仓库环境中,数据通常是批量插入和更新的。索引维护操作直到每个DML操作结束才执行。

4.包含null值的记录

位图索引的使用技巧
1.对所有可能的列定义not null约束将会减少存储空间,因为这将不会为null值创建位图。
2.使用固定长度的数据类型将会减少存储空间
3.增加create_bitmap_area_size参数可以提高查询处理速度。这个参数决定了对位图创建所分配的内存大小。这个参数决定了用于合并位图从范围扫描索引执行检索所使用的内存。

位图索引的例子
MARITAL_ STATUS REGION GENDER INCOME_LEVEL
————— ——– ——- ————
101 single east male bracket_1
102 married central female bracket_4
103 married west female bracket_2
104 divorced west male bracket_4
105 single central female bracket_2
106 married central female bracket_3

国灰marital_status,region,gender与income_level都是低基数列(对于matil_status与region只有三个可能的值,对于gender有两个可能的值,income_level列有四个可能的值)。在这些列上适合创建位图索引。在customer#上不适合创建位图索引,因为这个列有高基数。相反,一个唯一的B树索引将会提供最好的检索效率。

在这个例子中,region列的位图索引,它包括三个单独的位图
REGION=’east’ REGION=’central’ REGION=’west’ ## CUSTOMER #
1 0 0 < == 101 0 1 0 <== 102 0 0 1 <== 103 0 0 1 <== 104 0 1 0 <== 105 0 1 0 <== 106 位图中的每个条目或位关联到customer表中的单独一行记录。每一位的值依赖于表中相关行的值。例如,位REGION='east'包含一个1作为它的第一位。这是因为region='east'在表customer中的第一行存在。region='east'在其它行位为0,是因为其它行的region列不包含'east'。 下面的查询是要查询在中部或西部地区有多少已婚的客户: SELECT COUNT(*) FROM CUSTOMER WHERE MARITAL_STATUS = 'married' AND REGION IN ('central','west'); 位图索引可以非常有效的通过仅仅计算结果位图中为1的数量来进行处理。 status = 'married' region = 'central' region = 'west' 0 0 0 1 1 0 1 0 1 0 AND ( 0 OR 1 ) 0 1 0 1 1 0 0 0 0 1 1 1 ==> 2nd row
= 1 1 1 ==> 3rd row
0 AND 1 = 0
0 1 0
1 1 1 ==> last row