标签云
asm 恢复 asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 kfed MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 ORACLE恢复 Oracle 恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (100)
- 数据库 (1,598)
- DB2 (22)
- MySQL (70)
- Oracle (1,463)
- Data Guard (49)
- EXADATA (7)
- GoldenGate (21)
- ORA-xxxxx (158)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (13)
- ORACLE 21C (3)
- Oracle ASM (65)
- Oracle Bug (7)
- Oracle RAC (47)
- Oracle 安全 (6)
- Oracle 开发 (27)
- Oracle 监听 (27)
- Oracle备份恢复 (530)
- Oracle安装升级 (84)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (75)
- PostgreSQL (18)
- PostgreSQL恢复 (6)
- SQL Server (27)
- SQL Server恢复 (8)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (36)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (19)
-
最近发表
- PostgreSQL解析wal日志之—walminer
- Oracle 19c/21c最新patch信息-202404
- PostgreSQL恢复系列:pg_filedump批量处理
- PostgreSQL部分主要字典信息
- PostgreSQL恢复系列:pg_filedump恢复字典构造
- PostgreSQL 16 源码安装
- ORA-00742 ORA-00312 恢复
- 数据库open成功后报ORA-00353 ORA-00354错误引起的一系列问题(本质ntfs文件系统异常)
- ORA-600 ktsiseginfo1故障
- ORA-00600: internal error code, arguments: [16703], [1403], [4] 原因
- 最近遇到几起ORA-600 16703故障(tab$被清空),请引起重视
- ORA-600 2662快速恢复之Patch scn工具
- TNS-12518: TNS:listener could not hand off client connection
- ora.storage无法启动报ORA-12514故障处理
- 断电引起文件scn异常数据库恢复
- ORA-16188: LOG_ARCHIVE_CONFIG settings inconsistent with previously started instance
- .[hudsonL@cock.li].mkp勒索加密数据库完美恢复
- 模拟带库实现rman远程备份
- 又一例:ORA-600 kclchkblk_4和2662故障
- Oracle误删除数据文件恢复
月归档:十一月 2013
ORACLE 12C RAC修改ocr/votedisk/asm spfile所在磁盘组名称
今天看着我这个单节点的12C rac,突然觉得ocr所在的磁盘组叫做+DG_SYS有点不舒服,想改成+SYS_DG。处理方法是先把ocr/votedisk/asm spfile迁移到已经存在的asm中,然后修改磁盘组名称,最后迁移到新名称磁盘组中(本次处理流程+DG_SYS—>+DATA—>+SYS_DG)
当前运行情况
[grid@xifenfei ~]$ crsctl status res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE xifenfei STABLE ora.DATA.dg ONLINE ONLINE xifenfei STABLE ora.LISTENER.lsnr ONLINE ONLINE xifenfei STABLE ora.net1.network ONLINE ONLINE xifenfei STABLE ora.ons ONLINE ONLINE xifenfei STABLE ora.proxy_advm ONLINE OFFLINE xifenfei STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE xifenfei STABLE ora.MGMTLSNR 1 ONLINE ONLINE xifenfei 169.254.196.108 10.1 0.30.22,STABLE ora.asm 1 ONLINE ONLINE xifenfei Started,STABLE 2 OFFLINE OFFLINE STABLE 3 OFFLINE OFFLINE STABLE ora.cdb.db 1 ONLINE ONLINE xifenfei Open,STABLE ora.cvu 1 ONLINE ONLINE xifenfei STABLE ora.oc4j 1 ONLINE ONLINE xifenfei STABLE ora.scan1.vip 1 ONLINE ONLINE xifenfei STABLE ora.xifenfei.vip 1 ONLINE ONLINE xifenfei STABLE -------------------------------------------------------------------------------- SQL> select * from v$version; BANNER CON_ID -------------------------------------------------------------------------------- ---------- Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production 0 PL/SQL Release 12.1.0.1.0 - Production 0 CORE 12.1.0.1.0 Production 0 TNS for Linux: Version 12.1.0.1.0 - Production 0 NLSRTL Version 12.1.0.1.0 - Production 0 SQL> select name,state from v$asm_diskgroup; NAME STATE ------------------------------ ----------- DG_SYS MOUNTED DATA MOUNTED [grid@xifenfei ~]$ crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 60a037da30714f6bbfe5d90206ff27a7 (/dev/sdc2) [DG_SYS] Located 1 voting disk(s). [grid@xifenfei ~]$ ocrcheck Status of Oracle Cluster Registry is as follows : Version : 4 Total space (kbytes) : 409568 Used space (kbytes) : 1380 Available space (kbytes) : 408188 ID : 2132096904 Device/File Name : +DG_SYS Device/File integrity check succeeded Device/File not configured Device/File not configured Device/File not configured Device/File not configured Cluster registry integrity check succeeded Logical corruption check bypassed due to non-privileged user SQL> show parameter spfile; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DG_SYS/xff-cluster/ASMPARAMET ERFILE/registry.253.825640465
修改ocr路径
ocrconfig -add和ocrconfig -delete完成ocr更换磁盘组,该过程可以在线处理
[root@xifenfei ~]# ocrconfig -add +data --alert 日志 2013-09-09 22:32:40.799: [crsd(5064)]CRS-1007:The OCR/OCR mirror location was replaced by +data. [root@xifenfei ~]# ocrcheck Status of Oracle Cluster Registry is as follows : Version : 4 Total space (kbytes) : 409568 Used space (kbytes) : 1380 Available space (kbytes) : 408188 ID : 2132096904 Device/File Name : +DG_SYS Device/File integrity check succeeded Device/File Name : +data Device/File integrity check succeeded Device/File not configured Device/File not configured Device/File not configured Cluster registry integrity check succeeded [root@xifenfei ~]# ocrconfig -delete +DG_SYS --alert 日志 2013-09-09 22:35:53.585: [crsd(5064)]CRS-1010:The OCR mirror location +DG_SYS was removed. [root@xifenfei ~]# ocrcheck Status of Oracle Cluster Registry is as follows : Version : 4 Total space (kbytes) : 409568 Used space (kbytes) : 1380 Available space (kbytes) : 408188 ID : 2132096904 Device/File Name : +data Device/File integrity check succeeded Device/File not configured Device/File not configured Device/File not configured Device/File not configured Cluster registry integrity check succeeded Logical corruption check succeeded
修改votedisk路径
通过crsctl replace votedisk命令修改
[root@xifenfei ~]# crsctl replace votedisk +DATA Successful addition of voting disk 161ddea0a5fe4f28bfb67536e6105122. Successful deletion of voting disk 60a037da30714f6bbfe5d90206ff27a7. Successfully replaced voting disk group with +DATA. CRS-4266: Voting file(s) successfully replaced -alert日志 2013-09-09 22:38:15.259: [cssd(4685)]CRS-1605:CSSD voting file is online: /dev/sdb; details in /u01/app/12.1/grid/product/log/xifenfei/cssd/ocssd.log. 2013-09-09 22:38:15.259: [cssd(4685)]CRS-1626:A Configuration change request completed successfully 2013-09-09 22:38:15.285: [cssd(4685)]CRS-1601:CSSD Reconfiguration complete. Active nodes are xifenfei . [root@xifenfei ~]# crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 161ddea0a5fe4f28bfb67536e6105122 (/dev/sdb) [DATA] Located 1 voting disk(s).
修改asm spfile位置
[grid@xifenfei ~]$ gpnptool get -o- Success. ………… <orcl:ASM-Profile id="asm" DiscoveryString="/dev/sd*" SPFile="+DG_SYS/xff-cluster/ASMPARAMETERFILE/registry.253.825640465" Mode="legacy"/> ………… [grid@xifenfei ~]$ sqlplus / as sysasm SQL*Plus: Release 12.1.0.1.0 Production on Mon Sep 9 22:42:05 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options SQL> create pfile='/tmp/pfile.asm' from spfile; File created. SQL> create spfile='+DATA' FROM PFILE='/tmp/pfile.asm'; File created. [grid@xifenfei ~]$ gpnptool get -o- Success. ………… <orcl:ASM-Profile id="asm" DiscoveryString="/dev/sd*" SPFile="+DATA/xff-cluster/ASMPARAMETERFILE/registry.253.825720159" Mode="legacy"/> …………
这里证明create asm spfile会自动修改spfile在gpnptool对应的profile里面的配置,无需人工干预
重启crs
为了使得asm使用新的磁盘组中的spfile文件
[root@xifenfei ~]# crsctl stop crs [root@xifenfei ~]# crsctl start crs
验证+DG_SYS磁盘组未被使用
[grid@xifenfei ~]$ sqlplus / as sysasm SQL*Plus: Release 12.1.0.1.0 Production on Mon Sep 9 22:59:49 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options SQL> show parameter spfile; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DATA/xff-cluster/ASMPARAMETER FILE/registry.253.825720159 ASMCMD> lsof DB_Name Instance_Name Path +ASM +ASM1 +DATA.255.819326577 cdb cdb1 +DATA/CDB/CONTROLFILE/current.274.819356503 cdb cdb1 +DATA/CDB/DATAFILE/sysaux.278.819355829 cdb cdb1 +DATA/CDB/DATAFILE/system.269.819356101 cdb cdb1 +DATA/CDB/DATAFILE/undotbs1.276.819356317 cdb cdb1 +DATA/CDB/DATAFILE/users.279.819356309 cdb cdb1 +DATA/CDB/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/pdbseed_temp01.dbf cdb cdb1 +DATA/CDB/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/sysaux.272.819356709 cdb cdb1 +DATA/CDB/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/system.271.819356709 cdb cdb1 +DATA/CDB/ONLINELOG/group_1.277.822736453 cdb cdb1 +DATA/CDB/ONLINELOG/group_2.280.822736461 cdb cdb1 +DATA/CDB/ONLINELOG/group_3.275.822736397 cdb cdb1 +DATA/CDB/TEMPFILE/temp.273.819356649
dismount +DG_SYS磁盘组
ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 20480 3369 0 3369 0 Y DATA/ MOUNTED EXTERN N 512 4096 1048576 5451 5231 0 5231 0 N DG_SYS/ ASMCMD> umount dg_sys ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 20480 3369 0 3369 0 Y DATA/
修改asm dg名称
修改磁盘组+DG_SYS为+SYS_DG
[grid@xifenfei ~]$ renamedg phase=both dgname=DG_SYS newdgname=SYS_DG verbose=true Parsing parameters.. Parameters in effect: Old DG name : DG_SYS New DG name : SYS_DG Phases : Phase 1 Phase 2 Discovery str : (null) Clean : TRUE Raw only : TRUE renamedg operation: phase=both dgname=DG_SYS newdgname=SYS_DG verbose=true Executing phase 1 Discovering the group Performing discovery with string: Identified disk UFS:/dev/sdc2 with disk number:0 and timestamp (32990496 1727895552) Checking for hearbeat... Re-discovering the group Performing discovery with string: Identified disk UFS:/dev/sdc2 with disk number:0 and timestamp (32990496 1727895552) Checking if the diskgroup is mounted or used by CSS Checking disk number:0 Generating configuration file.. Completed phase 1 Executing phase 2 Looking for /dev/sdc2 Modifying the header Completed phase 2 Terminating kgfd context 0x7fceeb02a0a0
mount +SYS_DG
SQL> select name,state from v$asm_diskgroup; NAME STATE ------------------------------ ----------- DATA MOUNTED SYS_DG DISMOUNTED SQL> alter diskgroup sys_dg mount; Diskgroup altered. SQL> select name,state from v$asm_diskgroup; NAME STATE ------------------------------ ----------- DATA MOUNTED SYS_DG MOUNTED
asm spfile/ocr/votedisk迁移从+DATA到+SYS_DG
SQL> create spfile='+SYS_DG' FROM pfile='/tmp/pfile.asm'; File created. [root@xifenfei ~]# ocrconfig -add +SYS_DG [root@xifenfei ~]# ocrconfig -DELETE +DATA [root@xifenfei ~]# crsctl replace votedisk +SYS_DG Successful addition of voting disk 9694a31053ea4ff4bfb57891461a1296. Successful deletion of voting disk 161ddea0a5fe4f28bfb67536e6105122. Successfully replaced voting disk group with +SYS_DG. CRS-4266: Voting file(s) successfully replaced [root@xifenfei ~]# crsctl stop crs [root@xifenfei ~]# crsctl start crs
删除ocr里面老磁盘组(+DG_SYS)信息
[root@xifenfei ~]# crsctl status res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE xifenfei STABLE ora.DATA.dg ONLINE ONLINE xifenfei STABLE ora.DG_SYS.dg ONLINE OFFLINE xifenfei STABLE ora.LISTENER.lsnr ONLINE ONLINE xifenfei STABLE ora.SYS_DG.dg ONLINE ONLINE xifenfei STABLE ora.net1.network ONLINE ONLINE xifenfei STABLE ora.ons ONLINE ONLINE xifenfei STABLE ora.proxy_advm ONLINE OFFLINE xifenfei STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE xifenfei STABLE ora.MGMTLSNR 1 ONLINE ONLINE xifenfei 169.254.196.108 10.1 0.30.22,STABLE ora.asm 1 ONLINE ONLINE xifenfei Started,STABLE 2 OFFLINE OFFLINE STABLE 3 OFFLINE OFFLINE STABLE ora.cdb.db 1 ONLINE ONLINE xifenfei Open,STABLE ora.cvu 1 ONLINE ONLINE xifenfei STABLE ora.oc4j 1 ONLINE ONLINE xifenfei STABLE ora.scan1.vip 1 ONLINE ONLINE xifenfei STABLE ora.xifenfei.vip 1 ONLINE ONLINE xifenfei STABLE -------------------------------------------------------------------------------- [root@xifenfei ~]# srvctl remove diskgroup -diskgroup dg_sys [root@xifenfei ~]# crsctl status res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE xifenfei STABLE ora.DATA.dg ONLINE ONLINE xifenfei STABLE ora.LISTENER.lsnr ONLINE ONLINE xifenfei STABLE ora.SYS_DG.dg ONLINE ONLINE xifenfei STABLE ora.net1.network ONLINE ONLINE xifenfei STABLE ora.ons ONLINE ONLINE xifenfei STABLE ora.proxy_advm ONLINE OFFLINE xifenfei STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE xifenfei STABLE ora.MGMTLSNR 1 ONLINE ONLINE xifenfei 169.254.196.108 10.1 0.30.22,STABLE ora.asm 1 ONLINE ONLINE xifenfei Started,STABLE 2 OFFLINE OFFLINE STABLE 3 OFFLINE OFFLINE STABLE ora.cdb.db 1 ONLINE ONLINE xifenfei Open,STABLE ora.cvu 1 ONLINE ONLINE xifenfei STABLE ora.oc4j 1 ONLINE ONLINE xifenfei STABLE ora.scan1.vip 1 ONLINE ONLINE xifenfei STABLE ora.xifenfei.vip 1 ONLINE ONLINE xifenfei STABLE --------------------------------------------------------------------------------
至此ocr/votedisk/asm spfile所在磁盘组修改名称完成,因为该库是一个单节点的rac,如果是两个或者更多节点的rac可以实现不停机的情况下进行(分步重启节点).该处理过程和11.2 rac完全相同,未有任何的改变
oracle 12.1 RAC的ocr磁盘组异常恢复
在11.2或者12.1的RAC中,ocr和votedisk可以放到asm中,而很多人安装系统把ocr和votedisk放到一个单独的asm 磁盘组里面,但是如果这个磁盘组坏了,而数据所在的磁盘组是好的,这个时候该怎么恢复呢?这里的恢复分两种情况,一种是有ocr备份的恢复,另外一种是无ocr备份的恢复。但是在一般情况下ocr是每4个小时自动备份一份,因此大部分的系统中都会有ocr的备份。本blog主要对于oracle 12c rac在有ocr备份,存储ocr,votedisk的asm磁盘组异常恢复
确定ocr,votedisk,asm spfile存在一个独立asm diskgroup中
[grid@xifenfei ~]$ ocrcheck Status of Oracle Cluster Registry is as follows : Version : 4 Total space (kbytes) : 409568 Used space (kbytes) : 1360 Available space (kbytes) : 408208 ID : 2132096904 Device/File Name : +DG_SYS Device/File integrity check succeeded Device/File not configured Device/File not configured Device/File not configured Device/File not configured Cluster registry integrity check succeeded Logical corruption check bypassed due to non-privileged user SQL> show parameter spfile; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DG_SYS/xff-cluster/ASMPARAMET ERFILE/registry.253.825628977 [grid@xifenfei ~]$ crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 3e20d13ae98a4fcfbffa489ab4df68a3 (/dev/sdc2) [DG_SYS] Located 1 voting disk(s). ASMCMD> lsdsk -t -G dg_sys Create_Date Mount_Date Repair_Timer Path 08-SEP-13 08-SEP-13 0 /dev/sdc2
查看当前rac状态
[grid@xifenfei ~]$ crsctl status res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE xifenfei STABLE ora.DATA.dg ONLINE ONLINE xifenfei STABLE ora.LISTENER.lsnr ONLINE ONLINE xifenfei STABLE ora.net1.network ONLINE ONLINE xifenfei STABLE ora.ons ONLINE ONLINE xifenfei STABLE ora.proxy_advm ONLINE OFFLINE xifenfei STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE xifenfei STABLE ora.MGMTLSNR 1 ONLINE ONLINE xifenfei 169.254.196.108 10.1 0.30.22,STABLE ora.asm 1 ONLINE ONLINE xifenfei Started,STABLE 2 OFFLINE OFFLINE STABLE 3 OFFLINE OFFLINE STABLE ora.cdb.db 1 ONLINE ONLINE xifenfei Open,STABLE ora.cvu 1 ONLINE ONLINE xifenfei STABLE ora.oc4j 1 ONLINE ONLINE xifenfei STABLE ora.scan1.vip 1 ONLINE ONLINE xifenfei STABLE ora.xifenfei.vip 1 ONLINE ONLINE xifenfei STABLE --------------------------------------------------------------------------------
kfed查看磁盘头
[grid@xifenfei ~]$ kfed read /dev/sdc2 kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD kfbh.datfmt: 1 ; 0x003: 0x01 kfbh.block.blk: 0 ; 0x004: blk=0 kfbh.block.obj: 2147483648 ; 0x008: disk=0 kfbh.check: 2879801080 ; 0x00c: 0xaba646f8 kfbh.fcn.base: 0 ; 0x010: 0x00000000 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 kfdhdb.driver.provstr: ORCLDISK ; 0x000: length=8 kfdhdb.driver.reserved[0]: 0 ; 0x008: 0x00000000 kfdhdb.driver.reserved[1]: 0 ; 0x00c: 0x00000000 kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000 kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000 kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000 kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000 kfdhdb.compat: 202375168 ; 0x020: 0x0c100000 kfdhdb.dsknum: 0 ; 0x024: 0x0000 kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER kfdhdb.dskname: DG_SYS_0000 ; 0x028: length=11 kfdhdb.grpname: DG_SYS ; 0x048: length=6 kfdhdb.fgname: DG_SYS_0000 ; 0x068: length=11 kfdhdb.capname: ; 0x088: length=0 kfdhdb.crestmp.hi: 32990483 ; 0x0a8: HOUR=0x13 DAYS=0x8 MNTH=0x9 YEAR=0x7dd kfdhdb.crestmp.lo: 303455232 ; 0x0ac: USEC=0x0 MSEC=0x197 SECS=0x21 MINS=0x4 kfdhdb.mntstmp.hi: 32990485 ; 0x0b0: HOUR=0x15 DAYS=0x8 MNTH=0x9 YEAR=0x7dd kfdhdb.mntstmp.lo: 1776845824 ; 0x0b4: USEC=0x0 MSEC=0x221 SECS=0x1e MINS=0x1a kfdhdb.secsize: 512 ; 0x0b8: 0x0200 kfdhdb.blksize: 4096 ; 0x0ba: 0x1000 kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000 kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80 kfdhdb.dsksize: 5451 ; 0x0c4: 0x0000154b kfdhdb.pmcnt: 3 ; 0x0c8: 0x00000003 kfdhdb.fstlocn: 1 ; 0x0cc: 0x00000001 kfdhdb.altlocn: 2 ; 0x0d0: 0x00000002 kfdhdb.f1b1locn: 10 ; 0x0d4: 0x0000000a kfdhdb.redomirrors[0]: 0 ; 0x0d8: 0x0000 kfdhdb.redomirrors[1]: 0 ; 0x0da: 0x0000 kfdhdb.redomirrors[2]: 0 ; 0x0dc: 0x0000 kfdhdb.redomirrors[3]: 0 ; 0x0de: 0x0000 kfdhdb.dbcompat: 168820736 ; 0x0e0: 0x0a100000 kfdhdb.grpstmp.hi: 32990483 ; 0x0e4: HOUR=0x13 DAYS=0x8 MNTH=0x9 YEAR=0x7dd kfdhdb.grpstmp.lo: 301063168 ; 0x0e8: USEC=0x0 MSEC=0x77 SECS=0x1f MINS=0x4 kfdhdb.vfstart: 224 ; 0x0ec: 0x000000e0 kfdhdb.vfend: 256 ; 0x0f0: 0x00000100 kfdhdb.spfile: 219 ; 0x0f4: 0x000000db ----asm spfile的起点 kfdhdb.spfflg: 1 ; 0x0f8: 0x00000001 kfdhdb.flags: 1 ; 0x0fc: 0x00000001
备份ocr
[root@xifenfei xff-cluster]# ocrconfig -manualbackup xifenfei 2013/09/08 23:48:57 /u01/app/12.1/grid/product/cdata/xff-cluster/backup_20130908_234857.ocr [root@xifenfei xff-cluster]# ocrconfig -showbackup xifenfei 2013/08/08 21:11:00 /u01/app/12.1/grid/product/cdata/xifenfe-cluster/backup00.ocr xifenfei 2013/08/08 17:10:56 /u01/app/12.1/grid/product/cdata/xifenfe-cluster/backup01.ocr xifenfei 2013/07/08 20:23:18 /u01/app/12.1/grid/product/cdata/xifenfe-cluster/backup02.ocr xifenfei 2013/08/08 17:10:56 /u01/app/12.1/grid/product/cdata/xifenfe-cluster/day.ocr xifenfei 2013/08/08 17:10:56 /u01/app/12.1/grid/product/cdata/xifenfe-cluster/week.ocr xifenfei 2013/09/08 23:48:57 /u01/app/12.1/grid/product/cdata/xff-cluster/backup_20130908_234857.ocr xifenfei 2013/06/28 22:55:02 /u01/app/12.1/grid/product/cdata/xifenfe-cluster/backup_20130628_225502.ocr
破坏asm disk
[grid@xifenfei ~]$ dd if=/dev/zero of=/dev/sdc2 bs=4096 count=1 1+0 records in 1+0 records out 4096 bytes (4.1 kB) copied, 6.6061e-05 seconds, 62.0 MB/s
关闭crs
[root@xifenfei xff-cluster]# crsctl stop crs
启动crs
[root@xifenfei xff-cluster]# crsctl start crs CRS-4123: Oracle High Availability Services has been started. [grid@xifenfei admin]$ crsctl status res -t -init -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.asm 1 ONLINE OFFLINE Instance Shutdown,ST ABLE ora.cluster_interconnect.haip 1 ONLINE OFFLINE STABLE ora.crf 1 ONLINE OFFLINE STABLE ora.crsd 1 ONLINE OFFLINE STABLE ora.cssd 1 ONLINE OFFLINE xifenfei STARTING ora.cssdmonitor 1 ONLINE ONLINE xifenfei STABLE ora.ctssd 1 ONLINE OFFLINE STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.drivers.acfs 1 ONLINE ONLINE xifenfei STABLE ora.evmd 1 ONLINE INTERMEDIATE xifenfei STABLE ora.gipcd 1 ONLINE ONLINE xifenfei STABLE ora.gpnpd 1 ONLINE ONLINE xifenfei STABLE ora.mdnsd 1 ONLINE ONLINE xifenfei STABLE ora.storage 1 ONLINE OFFLINE STABLE --------------------------------------------------------------------------------
GI相关日志
--alert日志 2013-09-08 23:53:37.662: [gpnpd(1507)]CRS-2328:GPNPD started on node xifenfei. 2013-09-08 23:54:10.244: [cssd(1584)]CRS-1713:CSSD daemon is started in hub mode 2013-09-08 23:54:10.915: [cssd(1584)]CRS-1714:Unable to discover any voting files, retrying discovery in 15 seconds; Details at (:CSSNM00070:) in /u01/app/12.1/grid/product/log/xifenfei/cssd/ocssd.log 2013-09-08 23:54:11.183: [ohasd(1367)]CRS-2767:Resource state recovery not attempted for 'ora.diskmon' as its target state is OFFLINE 2013-09-08 23:54:11.183: [ohasd(1367)]CRS-2769:Unable to failover resource 'ora.diskmon'. 2013-09-08 23:54:26.044: [cssd(1584)]CRS-1714:Unable to discover any voting files, retrying discovery in 15 seconds; Details at (:CSSNM00070:) in /u01/app/12.1/grid/product/log/xifenfei/cssd/ocssd.log 2013-09-08 23:54:41.146: [cssd(1584)]CRS-1714:Unable to discover any voting files, retrying discovery in 15 seconds; Details at (:CSSNM00070:) in /u01/app/12.1/grid/product/log/xifenfei/cssd/ocssd.log 2013-09-08 23:54:56.195: [cssd(1584)]CRS-1714:Unable to discover any voting files, retrying discovery in 15 seconds; Details at (:CSSNM00070:) in /u01/app/12.1/grid/product/log/xifenfei/cssd/ocssd.log --ocssd日志 2013-09-08 23:54:25.976: [ GPNP][1090226496]clsgpnp_profileCallUrlInt: [at clsgpnp.c:2360] Result: (0) CLSGPNP_OK. Successful get-profile CALL to remote "ipc://GPNPD_xifenfei" disco "" 2013-09-08 23:54:25.976: [ CSSD][1090226496]clssnmReadDiscoveryProfile: voting file discovery string(/dev/sd*) 2013-09-08 23:54:25.976: [ CSSD][1090226496]clssnmvDDiscThread: using discovery string /dev/sd* for initial discovery 2013-09-08 23:54:25.976: [ SKGFD][1090226496]Discovery with str:/dev/sd*: 2013-09-08 23:54:25.976: [ SKGFD][1090226496]UFS discovery with :/dev/sd*: 2013-09-08 23:54:26.032: [ SKGFD][1090226496]Fetching UFS disk :/dev/sdc: 2013-09-08 23:54:26.037: [ SKGFD][1090226496]Fetching UFS disk :/dev/sdc1: 2013-09-08 23:54:26.037: [ SKGFD][1090226496]Fetching UFS disk :/dev/sdb: 2013-09-08 23:54:26.037: [ SKGFD][1090226496]Fetching UFS disk :/dev/sdc2: 2013-09-08 23:54:26.037: [ SKGFD][1090226496]Fetching UFS disk :/dev/sdd: 2013-09-08 23:54:26.037: [ SKGFD][1090226496]Fetching UFS disk :/dev/sdd1: 2013-09-08 23:54:26.037: [ SKGFD][1090226496]Fetching UFS disk :/dev/sda: 2013-09-08 23:54:26.037: [ SKGFD][1090226496]Fetching UFS disk :/dev/sda1: 2013-09-08 23:54:26.037: [ SKGFD][1090226496]Fetching UFS disk :/dev/sda2: 2013-09-08 23:54:26.037: [ SKGFD][1090226496]OSS discovery with :/dev/sd*: 2013-09-08 23:54:26.042: [ SKGFD][1090226496]Handle 0x1d65c10 from lib :UFS:: for disk :/dev/sdb: 2013-09-08 23:54:26.043: [ SKGFD][1090226496]Handle 0x20c95a0 from lib :UFS:: for disk :/dev/sdc2: 2013-09-08 23:54:26.043: [ SKGFD][1090226496]Handle 0x20c9dd0 from lib :UFS:: for disk :/dev/sdd: 2013-09-08 23:54:26.044: [ SKGFD][1090226496]Lib :UFS:: closing handle 0x1d65c10 for disk :/dev/sdb: 2013-09-08 23:54:26.044: [ SKGFD][1090226496]Lib :UFS:: closing handle 0x20c95a0 for disk :/dev/sdc2: 2013-09-08 23:54:26.044: [ SKGFD][1090226496]Lib :UFS:: closing handle 0x20c9dd0 for disk :/dev/sdd: 2013-09-08 23:54:26.044: [ CSSD][1090226496]clssnmvDiskVerify: Successful discovery of 0 disks 2013-09-08 23:54:26.044: [ CSSD][1090226496]clssnmCompleteInitVFDiscovery: Completing initial voting file discovery 2013-09-08 23:54:26.044: [ CSSD][1090226496]clssnmvFindInitialConfigs: No voting files found 2013-09-08 23:54:26.044: [ CSSD][1090226496](:CSSNM00070:)clssnmCompleteInitVFDiscovery: Voting file not found. Retrying discovery in 15 seconds
在我们破坏了ocr所在的asm disk的磁盘后,启动crs明显提示无法找到votedisk信息
强制关闭crs
[root@xifenfei xff-cluster]# crsctl stop crs -f CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'xifenfei' CRS-2673: Attempting to stop 'ora.mdnsd' on 'xifenfei' CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'xifenfei' CRS-2677: Stop of 'ora.drivers.acfs' on 'xifenfei' succeeded CRS-2677: Stop of 'ora.mdnsd' on 'xifenfei' succeeded CRS-2673: Attempting to stop 'ora.gpnpd' on 'xifenfei' CRS-2673: Attempting to stop 'ora.gipcd' on 'xifenfei' CRS-2673: Attempting to stop 'ora.evmd' on 'xifenfei' CRS-2677: Stop of 'ora.gpnpd' on 'xifenfei' succeeded CRS-2677: Stop of 'ora.gipcd' on 'xifenfei' succeeded CRS-2677: Stop of 'ora.evmd' on 'xifenfei' succeeded CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'xifenfei' has completed CRS-4133: Oracle High Availability Services has been stopped.
exclusive模式启动crs
[root@xifenfei xff-cluster]# crsctl start crs -excl -nocrs CRS-4123: Oracle High Availability Services has been started. CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'xifenfei' CRS-2677: Stop of 'ora.drivers.acfs' on 'xifenfei' succeeded CRS-2672: Attempting to start 'ora.evmd' on 'xifenfei' CRS-2672: Attempting to start 'ora.mdnsd' on 'xifenfei' CRS-2676: Start of 'ora.evmd' on 'xifenfei' succeeded CRS-2676: Start of 'ora.mdnsd' on 'xifenfei' succeeded CRS-2672: Attempting to start 'ora.gpnpd' on 'xifenfei' CRS-2676: Start of 'ora.gpnpd' on 'xifenfei' succeeded CRS-2672: Attempting to start 'ora.cssdmonitor' on 'xifenfei' CRS-2672: Attempting to start 'ora.gipcd' on 'xifenfei' CRS-2676: Start of 'ora.cssdmonitor' on 'xifenfei' succeeded CRS-2676: Start of 'ora.gipcd' on 'xifenfei' succeeded CRS-2672: Attempting to start 'ora.cssd' on 'xifenfei' CRS-2672: Attempting to start 'ora.diskmon' on 'xifenfei' CRS-2676: Start of 'ora.diskmon' on 'xifenfei' succeeded CRS-2676: Start of 'ora.cssd' on 'xifenfei' succeeded CRS-2672: Attempting to start 'ora.drivers.acfs' on 'xifenfei' CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'xifenfei' CRS-2672: Attempting to start 'ora.ctssd' on 'xifenfei' CRS-2676: Start of 'ora.ctssd' on 'xifenfei' succeeded CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'xifenfei' succeeded CRS-2676: Start of 'ora.drivers.acfs' on 'xifenfei' succeeded CRS-2672: Attempting to start 'ora.asm' on 'xifenfei' CRS-2676: Start of 'ora.asm' on 'xifenfei' succeeded [grid@xifenfei xifenfei]$ crsctl stat res -t -init -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.asm 1 ONLINE INTERMEDIATE xifenfei OCR not started,STAB LE ora.cluster_interconnect.haip 1 ONLINE ONLINE xifenfei STABLE ora.crf 1 OFFLINE OFFLINE STABLE ora.crsd 1 OFFLINE OFFLINE STABLE ora.cssd 1 ONLINE ONLINE xifenfei STABLE ora.cssdmonitor 1 ONLINE ONLINE xifenfei STABLE ora.ctssd 1 ONLINE ONLINE xifenfei ACTIVE:0,STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.drivers.acfs 1 ONLINE ONLINE xifenfei STABLE ora.evmd 1 ONLINE INTERMEDIATE xifenfei STABLE ora.gipcd 1 ONLINE ONLINE xifenfei STABLE ora.gpnpd 1 ONLINE ONLINE xifenfei STABLE ora.mdnsd 1 ONLINE ONLINE xifenfei STABLE ora.storage 1 OFFLINE OFFLINE STABLE
创建磁盘组
[grid@xifenfei xifenfei]$ sqlplus / as sysasm SQL*Plus: Release 12.1.0.1.0 Production on Mon Sep 9 00:23:40 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options SQL> create diskgroup DG_OCR external redundancy disk '/dev/sdc2' attribute 'COMPATIBLE.ASM' = '12.1.0'; Diskgroup created. [root@xifenfei xff-cluster]# ls -l total 1472 -rw-r--r-- 1 root root 1503232 Sep 8 23:48 backup_20130908_234857.ocr [root@xifenfei xff-cluster]# ocrconfig -restore backup_20130908_234857.ocr PROT-35: The configured OCR locations are not accessible SQL> conn / as sysasm Connected. SQL> drop diskgroup DG_OCR force including contents; Diskgroup dropped. SQL> create diskgroup DG_SYS external redundancy disk '/dev/sdc2' attribute 'COMPATIBLE.ASM' = '12.1.0'; Diskgroup created.
为了操作方便,建议创建磁盘组和以前ocr所在异常的磁盘组一致
还原ocr
[root@xifenfei xff-cluster]# ocrconfig -restore backup_20130908_234857.ocr --ALERT 日志 2013-09-09 00:26:50.584: [client(3015)]CRS-1002:The OCR was restored from file backup_20130908_234857.ocr.
处理votedisk
[root@xifenfei xff-cluster]# crsctl replace votedisk +DG_SYS Successful addition of voting disk 60a037da30714f6bbfe5d90206ff27a7. Successfully replaced voting disk group with +DG_SYS. CRS-4266: Voting file(s) successfully replaced
创建asm spfile
[grid@xifenfei dbs]$ vi /tmp/asm.txt instance_type='asm' large_pool_size=12M remote_login_passwordfile= "EXCLUSIVE" asm_diskstring = "/dev/sd*" asm_power_limit = 1 [grid@xifenfei dbs]$ sqlplus '/ as sysasm' SQL*Plus: Release 12.1.0.1.0 Production on Mon Sep 9 00:34:18 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options SQL> create spfile='+DG_SYS' FROM pfile='/tmp/asm.txt'; File created.
重启crs
[root@xifenfei xff-cluster]# crsctl stop crs -f [root@xifenfei xff-cluster]# crsctl start crs CRS-4123: Oracle High Availability Services has been started. [grid@xifenfei dbs]$ crsctl status res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE xifenfei STABLE ora.DATA.dg ONLINE ONLINE xifenfei STABLE ora.LISTENER.lsnr ONLINE ONLINE xifenfei STABLE ora.net1.network ONLINE ONLINE xifenfei STABLE ora.ons ONLINE ONLINE xifenfei STABLE ora.proxy_advm ONLINE OFFLINE xifenfei STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE xifenfei STABLE ora.MGMTLSNR 1 ONLINE ONLINE xifenfei 169.254.196.108 10.1 0.30.22,STABLE ora.asm 1 ONLINE ONLINE xifenfei Started,STABLE 2 OFFLINE OFFLINE STABLE 3 OFFLINE OFFLINE STABLE ora.cdb.db 1 ONLINE ONLINE xifenfei Open,STABLE ora.cvu 1 ONLINE ONLINE xifenfei STABLE ora.oc4j 1 ONLINE ONLINE xifenfei STABLE ora.scan1.vip 1 ONLINE ONLINE xifenfei STABLE ora.xifenfei.vip 1 ONLINE ONLINE xifenfei STABLE --------------------------------------------------------------------------------
这里crs已经恢复正常,进一步检查ocr,votedisk,asm spfile情况
[grid@xifenfei ~]$ ocrcheck Status of Oracle Cluster Registry is as follows : Version : 4 Total space (kbytes) : 409568 Used space (kbytes) : 1380 Available space (kbytes) : 408188 ID : 2132096904 Device/File Name : +DG_SYS Device/File integrity check succeeded Device/File not configured Device/File not configured Device/File not configured Device/File not configured Cluster registry integrity check succeeded Logical corruption check bypassed due to non-privileged user [grid@xifenfei ~]$ sqlplus / as sysasm SQL*Plus: Release 12.1.0.1.0 Production on Mon Sep 9 16:12:21 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options SQL> show parameter spfile; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DG_SYS/xff-cluster/ASMPARAMET ERFILE/registry.253.825640465 SQL> exit Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options [grid@xifenfei ~]$ crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 60a037da30714f6bbfe5d90206ff27a7 (/dev/sdc2) [DG_SYS] Located 1 voting disk(s).
至此在ocr 磁盘组异常,而有ocr备份的情况下故障恢复完毕,对于没有ocr备份的故障,只能通过重建ocr来完成,大概步骤为
--deconfigure(root) remote node # <$GRID_HOME>/crs/install/rootcrs.pl -deconfig -force -verbose lastnode # <$GRID_HOME>/crs/install/rootcrs.pl -deconfig -force -verbose -lastnode --配置信息重建ocr等(grid) # $GRID_HOME/crs/config/config.sh
证明递归session存在并解释为什么不在v$session中显示
我们在数据库的使用过程中,有时候会遇到类似情况,我会话是登录的,但是我进行某种操作,缺报session不足.这种情况证明该sql后台还产生了其他会话,这里通过试验分析证明了递归session的存在
会话创建表报session超
CDB_PDB@CHF> create table t_xifenfei(id number) ; create table t_xifenfei(id number) ERROR at line 1: ORA-00018: maximum number of sessions exceeded
这里有个问题:当前会话已经登录成功了,证明当前session是足够的,但是为什么在执行创建表操作之时依然会报ORA-00018呢?通过10046继续分析
CDB_PDB@CHF> alter session set events '10046 TRACE NAME CONTEXT FOREVER, LEVEL 12'; 会话已更改。 CDB_PDB@CHF> create table t_xifenfei as select * from dual; 表已创建。 CDB_PDB@CHF> select value from v$diag_info where name='Default Trace File'; VALUE -------------------------------------------------------------------------------- E:\APP\XIFENFEI\diag\rdbms\cdb\cdb\trace\cdb_ora_6596.trc
分析trace文件
CDB_PDB@CHF> host tkprof E:\APP\XIFENFEI\diag\rdbms\cdb\cdb\trace\cdb_ora_6596.trc d:/1.txt --查看trace文件,发现里面有很多基表操作,拿其中的一个tab$表分析,创建表过程有如下insert操作 insert into tab$(obj#,ts#,file#,block#,bobj#,tab#,intcols,kernelcols,clucols, audit$,flags,pctfree$,pctused$,initrans,maxtrans,rowcnt,blkcnt,empcnt, avgspc,chncnt,avgrln,analyzetime,samplesize,cols,property,degree,instances, dataobj#,avgspc_flb,flbcnt,trigflag,spare1,spare6) values (:1,:2,:3,:4,decode(:5,0,null,:5),decode(:6,0,null,:6),:7,:8,decode(:9,0,null, :9),:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21,:22,:23,:24,:25, decode(:26,1,null,:26),decode(:27,1,null,:27),:28,:29,:30,:31,:32,:33)
尝试人工插入
CDB_PDB@CHF> insert into sys.tab$ select * from sys.tab$ where rownum=1; insert into sys.tab$ select * from sys.tab$ where rownum=1 * 第 1 行出现错误: ORA-01031: 权限不足
证明当前执行创建表的session无权限直接操作tab$表,证明应该有其他表操作它
v$session视图基表
通过查询V$FIXED_VIEW_DEFINITION视图获得相关sql语句,不同版本可能有出入,但是大体一致
/* Formatted on 2013/11/8 23:09:30 (QP5 v5.227.12220.39754) */ SELECT inst_id, addr, indx, ksuseser, ksuudses, ksusepro, ksuudlui, ksuudlna, ksuudoct, ksusesow, DECODE (ksusetrn, HEXTORAW ('00'), NULL, ksusetrn), DECODE (ksqpswat, HEXTORAW ('00'), NULL, ksqpswat), DECODE (BITAND (ksuseidl, 11), 1, 'ACTIVE', 0, DECODE (BITAND (ksuseflg, 4096), 0, 'INACTIVE', 'CACHED'), 2, 'SNIPED', 3, 'SNIPED', 'KILLED'), DECODE (ksspatyp, 1, 'DEDICATED', 2, 'SHARED', 3, 'PSEUDO', 'NONE'), ksuudsid, ksuudsna, ksuseunm, ksusepid, ksusemnm, ksusetid, ksusepnm, DECODE (BITAND (ksuseflg, 19), 17, 'BACKGROUND', 1, 'USER', 2, 'RECURSIVE', '?'), ksusesql, ksusesqh, ksusepsq, ksusepha, ksuseapp, ksuseaph, ksuseact, ksuseach, ksusecli, ksusefix, ksuseobj, ksusefil, ksuseblk, ksuseslt, ksuseltm, ksusectm, DECODE (BITAND (ksusepfl, 16), 0, 'NO', 'YES'), DECODE (ksuseft, 2, 'SESSION', 4, 'SELECT', 8, 'TRANSACTIONAL', 'NONE'), DECODE (ksusefm, 1, 'BASIC', 2, 'PRECONNECT', 4, 'PREPARSE', 'NONE'), DECODE (ksusefs, 1, 'YES', 'NO'), ksusegrp, DECODE (BITAND (ksusepfl, 16), 16, 'ENABLED', DECODE (BITAND (ksusepfl, 32), 32, 'FORCED', 'DISABLED')), DECODE (BITAND (ksusepfl, 64), 64, 'FORCED', DECODE (BITAND (ksusepfl, 128), 128, 'DISABLED', 'ENABLED')), DECODE (BITAND (ksusepfl, 512), 512, 'FORCED', DECODE (BITAND (ksusepfl, 256), 256, 'DISABLED', 'ENABLED')), ksusecqd, ksuseclid FROM x$ksuse WHERE BITAND (ksspaflg, 1) != 0 AND BITAND (ksuseflg, 1) != 0
注意:v$session查询的肯定是BITAND (ksuseflg, 1)!=0的记录
通过锁住表测试
CDB_PDB@SYS表示sys用户,CDB_PDB@CHF表示chf用户,使用两个session,不同用户测试
CDB_PDB@SYS> show user; USER 为 "SYS" --SYS用户锁住表 CDB_PDB@SYS> lock table tab$ IN exclusive MODE; 表已锁定。 CDB_PDB@CHF> show user; USER 为 "CHF" CDB_PDB@CHF> select sid from v$mystat where rownum=1; SID ---------- 57 CDB_PDB@CHF> select paddr from v$session where sid=57; PADDR ---------------- 000007FF1E10F228 --CHF用户创建表 CDB_PDB@CHF> create table t_xifenfei_new as select * from dual; --SYS用户查询 CDB_PDB@SYS> SELECT s.addr, 2 s.indx sid, 3 s.ksuseser SERIAL#, 4 ksuudsna username, 5 DECODE (BITAND (ksuseflg, 19), 6 17, 'BACKGROUND', 7 1, 'USER', 8 2, 'RECURSIVE', 9 '?') 10 TYPE 11 FROM x$ksuse s 12 WHERE ksusepro = '000007FF1E10F228'; ADDR SID SERIAL# USERNAME TYPE ---------------- ---------- ---------- ------------------------------ ---------- 000007FF1E1EBEA0 57 23 CHF USER 000007FF1E1D7F90 67 183 SYS RECURSIVE CDB_PDB@SYS> SELECT ksuudsna username, 2 ksuseflg 3 FROM x$ksuse s 4 WHERE ksusepro = '000007FF1E10F228'; USERNAME KSUSEFLG ------------------------------ ---------- CHF 135266369 SYS 2 --这里我们发现递归sys调用的sql,在v$session视图中被排除了,因此递归sql的session不能在v$session显示 CDB_PDB@SYS> select bitand(2,1) from dual; BITAND(2,1) ----------- 0
至此,我们可以验证,我们当前的会话,在创建表的过程中有一个sys的递归session执行了关于基表的操作,但是由于v$session视图对于x$ksuse表中的部分记录进行了过滤因此我们不能在v$session查看到这些递归session
继续分析bitand函数
通过观察v$session的创建语句,我们可以发现如下规律,如果某个session是递归session,那么BITAND (ksuseflg, 19)=2,那当这个值为2的时候,是不是BITAND (ksuseflg, 1)一定为0呢?bitand函数实际上就是把里面的两个参数转换为二进制然后进行and运算,也就是两个对应位都为1的情况才会结果得带1(bitand(3,1)=1,bitand(2,1)=0),这里可以发现19转换为二进制为10011,要使得BITAND (ksuseflg, 19)=2成立,那就是说ksuseflg转换为二进制后,最后一位必须是0;而BITAND (ksuseflg, 1)在这样的情况下,一定为0,因此递归session的一定不会在v$session视图显示.
发表在 Oracle
评论关闭