如何使用asm函数?
AODU> asm ohsdbaasm asmcmd|asmlib|amdu|kfod|kfed|troubleshooting|note|script|passwd|reblance|general|sga
AODU> asm whoami
Currently it's for internal use only
AODU>
注意:只有使用asm ohsdba才会把asm的功能列出来
AODU> asm asmcmd ---asmcmd命令的分类,如何使用,asm使用情况
****asmcmd utility reference**** Instance Management Commands:startup,shutdown,dsget,dsset,lsct,lsop,lspwusr,orapwusr,spbackup,spcopy,spget,spmove,spset File Management:cd,cp,du,find,ls,lsof,mkalias,pwd,rm,rmalias DiskGroup Management:chdg,chkdg,dropdg,iostat,lsattr,lsdg,lsdsk,lsod,md_backup,md_restore,mkdg,mount,offline,online,rebal,remap,setattr,umount File Access Control:chgrp,chmod,chown,groups,grpmod,lsgrp,lsusr,mkgrp,mkusr,passwd,rmgrp,rmusr Template Management:chtmpl,lstmpl,mktmpl,rmtmpl Volume Management:volcreate,voldelete,voldisable,volenable,volinfo,volresize,volset,volstat cp - Enables you to copy files between ASM disk groups on local instances and remote instances. lsdsk -ASM can list disk information with or without a running ASM instance.This is a useful tool for system or storage administrators who want to obtain lists of disks that an ASM instance uses. md_backup and md_restore - These commands enable you to re-create a pre-xisting ASM disk group with the same disk path,disk name, failure groups, attributes,templates and alias directory structure.You can use md_backup to back up the disk group environment and use md_restore to re-create the disk group before loading from a database backup. md_backup -b Specifies the location in which you want to store the intermediate backup file. -g Specifies the diskgroup name that needs to be backed up. ASMCMD> md_backup -b /u01/backup/backup.txt -g dg_fra,dg_data md_restore -b Reads the metadata information from backup_file. -l Prints the messages to a file. -i or --silent If md_restore encounters an error, it will stop. Specifying this flag ignores any errors. -t Specifies the type of diskgroup to be created: full - Create diskgroup and restore metadata. nodg - Restore metadata only. newdg - Create diskgroup with a different name and restore metadata, -o is required to rename. -f or -S Write SQL commands to sql_script_file instead of executing them. -g or -G Select the diskgroups to be restored. If no diskgroups are defined, then all diskgroups will be restored. -o Rename diskgroup old_dg_name to new_dg_name. ASMCMD> md_restore ▒Ct nodg ▒Cg data ▒Ci backup_file ASMCMD> md_restore --full -G data --silent /tmp/backup_11.bkp remap - You can remap and recover bad blocks on an ASM disk in normal or high redundancy that have been reported by storage management tools such as disk scrubbers. ASM reads from the good copy of an ASM mirror and rewrites these blocks to an alternate location on disk. asm_diskgroups= <list of diskgroups> asm_diskstring= 'ORCL:*' or '/dev/oracleasm/disks/*' instance_type='asm' large_pool_size=12M asmcmd umount DATA asmcmd lsdg renamedg phase=both dgname=DATA newdgname=DG_PROD_DATA verbose=true asm_diskstring='discoverystring1','discoverystring2' asmcmd mount DG_PROD_DATA alter system set asm_diskstring= <'ORCL:*' or '/dev/rdsk/*' or '/dev/emcpower*', etc..> scope=both; alter system set asm_diskgroups= 'NODE2DG', 'DATA', 'RECO', 'BACKUP' scope=both; alter diskgroup 'DATA' mount; alter diskgroup 'RECO' mount; alter diskgroup 'BACKUP' mount; /etc/init.d/oracleasm listdisks /etc/init.d/oracleasm scandisks /etc/init.d/oracleasm listdisks 11g new feature,you can use asmcmd to copy files between remote instances Enables you to copy files between ASM disk groups on local instances and remote instances. You can also use this command to copy files from ASM disk groups to the operating system. cp -ifr <source file name> <user_name>@<host_name>.<Port Number>.<SID>:<targer path>/<target file name> user_name@host_name.<Port Number>.<SID> The user_name, host_name, and SID are required. The default port number is 1521. Example :- asmcmd>cp -ifr +DATA/RAC/PARAMETERFILE/spfile.257.678975489 sys@stgrac1.1521.+ASM2:+FRA/RAC/ARCHIVELOG/spfile We need to enable additional tracing for asmcmd connection to get a exact failure message. ++ set DBI_TRACE environment variable for asmcmd perl tracing. export DBI_TRACE=1 ++ Now connect using asmcmd and re-produce the issue. Solution:- The cp command failed because the target ASM file name was not specified or File name should not contain the file number/incarnation.We can not copy OMF form files without specifying file name cp -ifr thread_2_seq_5.264.678983423 sys@bderac2-vip.1521.+ASM2:+FRA/RAC/ARCHIVELOG/thread_2_seq_5 The file number/incarnation will be created automatically during the copy. export DBI_TRACE=1 $ asmcmd ASMCMD> -- run the command $ strace -aeft -o /tmp/asmcmd.log asmcmd ASMCMD> -- run the command ****ASM files usage**** #!/bin/bash # asm.sh - ASM reports by Bane Radulovic, Oracle Corporation, 2005 # asm.sh [-db DBNAME] # asm.sh [-db DBNAME] -space # asm.sh [-db DBNAME] -files # Usage notes: # All arguments are optional. # If database name is not supplied, report on all disk groups/space/files. # Report on total space in all disk groups only if database name not specified. # Parse command line arguments # while [ $# -gt 0 ] do case $1 in -db) shift; DBNAME=$1;; # Database name -space) SPACE=TRUE;; # User wants the space usage report -files) FILES=TRUE;; # User wants the report on all files in db DBNAME -help) echo "Usage: asm.sh [-db DBNAME] [-space] [-files]";exit 1;; esac; shift done echo "" # # Get all ASM disk groups using the 'asmcmd ls' command # for DIRECTORY in ` asmcmd ls -d % 2>/dev/null ` do echo $DIRECTORY | cut -f1 -d'/' >> /tmp/groups$$ done if [ -s /tmp/groups$$ ] then echo "ASM instance $ORACLE_SID manages the following disk group(s):" echo "==================================" cat /tmp/groups$$ echo "" else echo "There are no disk groups in the ASM instance $ORACLE_SID" echo "" exit 2 fi # If -files was specified, report on all files for database DBNAME if [ $FILES ] then if [ $DBNAME ] then for GRP in `cat /tmp/groups$$` do asmcmd find $GRP/$DBNAME % >>/tmp/files$$ 2>/dev/null done if [ -s /tmp/files$$ ] then echo "$ORACLE_SID files for database $DBNAME:" echo "==================================" cat /tmp/files$$ else echo "Database $DBNAME does not have any files in disk group $GRP." fi echo "" else echo "The list of all files managed by ASM instance $ORACLE_SID:" echo "==================================" for GRP in `cat /tmp/groups$$` do asmcmd find $GRP % 2>/dev/null done fi fi # If -space was specified, report on the space usage per ASM group # if [ $SPACE ] then if [ $DBNAME ] then for GRP in `cat /tmp/groups$$` do asmcmd du $GRP/$DBNAME > /tmp/grp$$ 2>/dev/null if [ -s /tmp/grp$$ ] then echo "Space usage by database $DBNAME in disk group $GRP:" echo "==================================" cat /tmp/grp$$ echo "" rm -f /tmp/grp$$ else echo "Database $DBNAME does not use disk group $GRP." fi done else for GRP in `cat /tmp/groups$$` do asmcmd du $GRP > /tmp/grp$$ 2>/dev/null if [ -s /tmp/grp$$ ] then echo "Total Space usage by all databases in disk group $GRP:" echo "==================================" cat /tmp/grp$$ echo "" rm -f /tmp/grp$$ fi done fi fi # Clean up rm -f /tmp/groups$$ rm -f /tmp/files$$ rm -f /tmp/grp$$ # # All work done exit 0 AODU>
AODU> asm asmlib ---主要收集与asmlib相关信息,用于故障诊断
****Troubleshooting ASMLIB issues**** 1) In order to check if the ASMLIB API is correctly configured, please execute the next commands and provide us the output (from each node if this is RAC): # cat /etc/*release # uname -a # rpm -qa |grep oracleasm # df -ha # /usr/sbin/oracleasm configure # /sbin/modinfo oracleasm 2) Check the discovery path (from each node if this is RAC): # /etc/init.d/oracleasm status # /usr/sbin/oracleasm-discover # /usr/sbin/oracleasm-discover 'ORCL:*' 3) Please check if the ASMLIB devices can be accessed (from each node if this is RAC): # /etc/init.d/oracleasm scandisks -s # Use "-s" option if diskgroups are mounted # /etc/init.d/oracleasm scandisks # Do not use "-s" option if diskgroups are dismounted # /etc/init.d/oracleasm listdisks # /etc/init.d/oracleasm querydisk -p <each disk from previous output> # ls -l /dev/oracleasm/disks # /sbin/blkid # find /dev/oracleasm/disks -type b | xargs -i sh -c "echo {}; dd if={} count=100 2>/dev/null | strings" # cat /proc/partitions |grep sd|while read a b c d;do echo -n $d$'\t'" scsi_id=";(echo $d|tr -d [:digit:]|xargs -i scsi_id -g -s /block/{})done 4) Upload the next files from each node if this is RAC: =)> /var/log/messages* =)> /var/log/oracleasm =)> /etc/sysconfig/oracleasm* =)> /etc/sysconfig/oracleasm-_dev_oracleasm 5) Please show us the partition table (from each node if this is RAC): # cat /proc/partitions 6) If you are using multipath devices (mapper devices or emcpower) then show me the output of: # ls -l /dev/mpath/* # ls -l /dev/mapper/* # ls -l /dev/dm-* # multipath -ll # ls -l /dev/emcpower* Or if you have another multipath configuration then list the devices: # ls -l /dev/<multi path device name>* 7) Finally connect to your ASM instance, provide me the output from the 3 scripts described in the next note (from each node if this is RAC): Doc ID: 470211.1 How To Gather/Backup ASM Metadata In A Formatted Manner version 10.1, 10.2, 11.1, 11.2 & 12.1? Note: please compress those files in just one file (*.zip or *.tar) and upload it thru Metalink. 8) If your OS is Oracle Linux (OL), then provide the "sosreport" from all the nodes as follows (execute it as root user): # /usr/sbin/sosreport 9) Also, if this is not a new ASM/ASMLIB implementation, please describe in detail what has changed since this last worked (OS patches, OS kernel upgrade, SAN migration, etc.)? Note: If you are installing UEK (Unbreakable Enterprise Kernel),therefore the Oracle ASMLib kernel driver is now included in the Unbreakable Enterprise Kernel. No driver package needs to be installed when using this kernel. The oracleasm-support and oracleasmlib packages still need to be installed from ULN (below): Example: # up2date -i oracleasm-support oracleasmlib oracleasm-`uname -r` [root@cstdb02 database]# modinfo oracleasm ****oracle asm examples**** #/etc/init.d/oracleasm start #/etc/init.d/oracleasm stop #/etc/init.d/oracleasm restart #/etc/init.d/oracleasm status #/etc/init.d/oracleasm enable #/etc/init.d/oracleasm disable #/etc/init.d/oracleasm configure #/etc/init.d/oracleasm createdisk DISK_NAME PARTITION_NAME #/etc/init.d/oracleasm createdisk VOL3 /dev/sdd1 #/etc/init.d/oracleasm createdisk ASM_DATA /dev/cciss/c0d1p1 #/etc/init.d/oracleasm scandisks #/etc/init.d/oracleasm listdisks #/etc/init.d/oracleasm querydisk DISK_NAME #/etc/init.d/oracleasm querydisk -d LABEL #/etc/init.d/oracleasm querydisk /dev/sdc6 #/etc/init.d/oracleasm querydisk -d VOL6 #/etc/init.d/oracleasm querydisk -p VOL1 #/etc/init.d/oracleasm renamedisk PARTITION_NAME DISK_NAME #/etc/init.d/oracleasm renamedisk /dev/sdc1 VOL2 #/etc/init.d/oracleasm deletedisk DISK_NAME #/etc/init.d/oracleasm deletedisk /dev/sdc9 /etc/sysconfig/oracleasm -- Oracle ASMLib configuration file ***gather os log**** Solaris OS: =)> /var/adm/messages* AIX OS: Connect as root OS user and extract the OS logs as follow: =)> /bin/errpt -a > /tmp/errpt.txt HP-UX OS: =)> /var/adm/syslog/syslog.log And =)> /usr/sbin/dmesg > /tmp/dmesg.txt Linux OS: =)> /var/log/messages* Tru64: =)> /var/adm/messages* AODU>
AODU> asm amdu ---amdu有用的工具,12c中asmcmd中增加了amdu extract命令行工具
****AMDU - ASM Metadata Dump Utility**** AMDU is an utility to extract all the available metadata from one or more ASM disks and/or generate formatted printouts of individual blocks. The utility does not require that any diskgroup to be mounted. Oracle Support may ask you to provide AMDU output, especially when facing internal errors related to the ASM metadata AMDU is a dump tool, designed to obtain ASM metadata details primarily on dismounted ASM disk groups. Although AMDU can be run on mounted ASM disk groups, by design it is not aware if there are any dirty ASM metadata blocks buffered in the ASM instance buffer cache. Therefore,if AMDU dumps are collected while the disk group is mounted and active(ie,ongoing I/O),there is a possibility AMDU could interpret the dirty ASM metadata blocks cached in memory and not yet written to disk (in-flight), as inconsistent and thus report corrupted metadata blocks. How to resotore the database from AMDU after Disk corruption ? 1. Create pfile of lost database , from database alert.log startup messages. 2. Startup database in nomount 3. Get the controlfile number from db alert log , it will show while starting the database here in this eg. its 256 eg., control_files='+DATA/orcl/controlfile/current.256.709676643' If you have controlfile backup already in non-asm location edit the pfile to point to location of non-asm and then mount the database If you dont have controlfile backup then go to step 4 after determining the file# from step 3 4. $ amdu -diskstring <asm_diskstring> -extract DATA.256 5. shutdown the database and change the control_file location to point to the extracted file location 6. startup mount the database 7. once mounted, get the datafile file numbers using "select name from v$datafile" And get online redo logfile from "select * from v$logfile". 8. Extract all datafiles and redolog files in similar manner 9. alter database rename <datafile 1> to < newly extracte location> 10. open the database If CHECK NOREPAIR reports no corruption on a disk group that is mounted,then AMDU ought no longer report corruption once the asm disk group is dismounted normal (ie, not 'dismount force). If this is a clustered environment, the disk group must be dismounted across all clustered ASM instances. Important:As a precautionary step or best practice, before attempting to dismount the ASM disk group, make sure RMAN back ups on the database are current, and stored in a safe place. Identify the object holding the corrupted block using the following query: SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents WHERE file_id = <file#> AND <block_id> between block_id AND block_id + blocks - 1 If the block belonged to an index segment, drop and recreate the index. If the block belonged to a data segment either use Rman Blockrecover or restore and recover the complete datafile to fix the corruption NOTE: AMDU executable comes with installation from 11.1 onwards. Although this tool was released with 11g, it can be used with ASM 10g as well. Note 553639.1 - Placeholder for AMDU binaries and using with ASM 10g Obtain an AMDU dump from the affected diskgroup(s) as follows (execute it as grid OS user): $> amdu -diskstring '<your_path_to_ASM_disks' -dump '<diskgroup>' $> <ASM Oracle Home>/bin/amdu -diskstring '<ASM disks location>/*' -dump '<diskgroup>' Examples: $> <ASM Oracle Home>/bin/amdu -diskstring '/dev/rhdisk*' -dump 'DATA' $> <ASM Oracle Home>/bin/amdu -diskstring '/dev/oracleasm/disks/*' -dump 'DATA' $> <ASM Oracle Home>/bin/amdu -diskstring '/dev/rdsk/*' -dump 'DATA' NOTE: Every time AMDU is executed a directory is created on the current location, unless it is override by parameter -directory. The directory will have the format amdu_YYYY_MM_DD_HH24_MM_SS The default command will generate following files: <diskgroup>_0001.img - a exact dump of the content of the diskgroup;size is limited to 2gb but can be more than one file <diskgroup>.map - can be used to find the exact location of the ASM metadata on the disks report.txt - include details about the disks scanned The report.txt file shows the header info of the disks belonging to diskgroup, like below: EXAMPLE: $> amdu -diskstring '/dev/raw/raw*' -dump 'DG11' <report.txt content> ----------------------------- DISK REPORT N0003 --------------------------- Disk Path: /dev/raw/raw3 Physical Sector Size: 512 bytes Disk Size: 977 megabytes Group Name: DG11 Disk Name: DG11_0000 Failure Group Name: DG11_0000 ----------------------------- DISK REPORT N0004 --------------------------- CAUTION: DO NOT USE the above tools with options which can damage your disks, without Oracle Support guidance. AODU>
AODU> asm kfod ---用于发现asm磁盘
****KFOD - Kernel Files OSM Disk**** KFOD utility is used to simulate the disk discovery from the operating system level and it can be found in $GRID_HOME/bin directory (or ASM_HOME/bin in older releases). Note: 1) KFOD is used at installation time as well (by OUI,DBCA or ASMCA) in order to perform disk discovery. 2) In case of a failed installation (e.g no $GRID_HOME/bin existing yet) KFOD can be found under your stage folder: <stage_folder>/grid/stage/ext/bin/ In such cases you might need to set LD_LIBRARY_PATH to <stage_folder>/grid/stage/ext/lib. Help screen can be seen using: $> kfod help=y _asm_a/llow_only_raw_disks KFOD allow only raw devices [_asm_allow_only_raw_disks=TRUE/(FALSE)] _asm_l/ibraries ASM Libraries[_asm_libraries='lib1','lib2',...] _asms/id ASM Instance[_asmsid=sid] a/sm_diskstring ASM Diskstring [asm_diskstring='discoverystring', 'discoverystring' ...] d/isks Disks to discover [disks=raw,asm,all] g/roup Group discover [group=controlfile] n/ohdr KFOD header suppression [nohdr=TRUE/(FALSE)] o/p KFOD options type [OP=DISKS/GROUPS/ALL] p/file ASM parameter file [pfile='parameterfile'] s/tatus Include disk header status [status=TRUE/(FALSE)] v/erbose KFOD verbose errors [verbose=TRUE/(FALSE)] The usual syntax used for disk discovery is: kfod status=TRUE asm_diskstring='<your_path_to_ASM_devices>' disk=ALL EXAMPLE $ export LD_LIBRARY_PATH=/u01/stage/11.2.0.1/grid/stage/ext/lib $ /u01/stage/11.2.0.1/grid/stage/ext/bin/kfod status=TRUE asm_diskstring='/dev/rdsk/*' disk=all dscvgroup=TRUE -------------------------------------------------------------------------------- Disk Size Header Path Disk Group User Group ================================================================================ 1: 10040 Mb MEMBER /dev/rdsk/c0t600144F0E08ACF0000004C2F6FBB0005d0s1 DG oracle oinstall 2: 10040 Mb MEMBER /dev/rdsk/c0t600144F0E08ACF0000004C2F6FBC0006d0s1 DG oracle oinstall 3: 10142 Mb MEMBER /dev/rdsk/c0t600144F0E08ACF0000004C2F6FBE0007d0s1 DG oracle oinstall 4: 10142 Mb MEMBER /dev/rdsk/c0t600144F0E08ACF0000004C2F6FBF0008d0s1 DG oracle oinstall 5: 9734 Mb MEMBER /dev/rdsk/c0t600144F0E08ACF0000004C2F6FC00009d0s1 FRA oracle oinstall -------------------------------------------------------------------------------- AODU>
AODU> asm kfed ---用于asm磁盘元数据的查看,编辑,修复等
****KFED - Kernel Files metadata EDitor**** KFED is a useful tool which allows to analyze ASM disk header information when ASM diskgroups can not be mounted. Note 1180491.1 - KFED Tool For Windows OS. Note 1346190.1 - KFED.PL for diagnosing - ORA-15036 ORA-15042 ORA-15020 ORA-15033 NOTE: KFED executable comes with installation from 11.1 onwards; for the older version you must build it. But it is not included the source of the software, therefore it is not available until GI installation completes. If you need to use it before GI being installed, please refer Note 1505005.1 - Where to find kfed utility before Oracle Grid Infrastructure is installed Help screen can be seen using: $>kfed help=y as/mlib ASM Library [asmlib='lib'] aun/um AU number to examine or update [AUNUM=number] aus/z Allocation Unit size in bytes [AUSZ=number] blkn/um Block number to examine or update [BLKNUM=number] blks/z Metadata block size in bytes [BLKSZ=number] ch/ksum Update checksum before each write [CHKSUM=YES/NO] cn/t Count of AUs to process [CNT=number] de/v ASM device to examine or update [DEV=string] dm/pall Don't suppress repeated lines when dumping corrupt blocks [DMPALL=YES/NO] o/p KFED operation type [OP=READ/WRITE/MERGE/REPAIR/NEW/FORM/FIND/STRUCT] p/rovnm Name for provisioning purposes [PROVNM=string] s/eek AU number to seek to [SEEK=number] te/xt File name for translated block text [TEXT=string] ty/pe ASM metadata block type number [TYPE=number] The usual syntax used for reading ASM disk header is: $> kfed read <your_device> EXAMPLE: $> kfed read /dev/raw/raw1 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: T=0 NUMB=0x0 kfbh.block.obj: 2147483648 ; 0x008: TYPE=0x8 NUMB=0x0 kfbh.check: 2932902794 ; 0x00c: 0xaed08b8a 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: 168820736 ; 0x020: 0x0a100000 kfdhdb.dsknum: 0 ; 0x024: 0x0000 kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER kfdhdb.dskname: ASM01_0000 ; 0x028: length=10 kfdhdb.grpname: ASM01 ; 0x048: length=5 kfdhdb.fgname: ASM01_0000 ; 0x068: length=10 kfdhdb.capname: ; 0x088: length=0 kfdhdb.crestmp.hi: 32837774 ; 0x0a8: HOUR=0xe DAYS=0x4 MNTH=0x4 YEAR=0x7d4 kfdhdb.crestmp.lo: 1555722240 ; 0x0ac: USEC=0x0 MSEC=0x29c SECS=0xb MINS=0x17 kfdhdb.mntstmp.hi: 32837774 ; 0x0b0: HOUR=0xe DAYS=0x4 MNTH=0x4 YEAR=0x7d4 kfdhdb.mntstmp.lo: 1563864064 ; 0x0b4: USEC=0x0 MSEC=0x1ab SECS=0x13 MINS=0x17 kfdhdb.ub4spare[60]: 0 ; 0x1d0: 0x00000000 kfdhdb.acdb.aba.seq: 0 ; 0x1d4: 0x00000000 kfdhdb.acdb.aba.blk: 0 ; 0x1d8: 0x00000000 kfdhdb.acdb.ents: 0 ; 0x1dc: 0x0000 kfdhdb.acdb.ub2spare: 0 ; 0x1de: 0x0000 NOTES: 1) KFED returns a readable output only when devices are/were part of an ASM diskgroup. Otherwise (if the device hasn't been added to a diskgroup yet or the disk is not valid anymore) the output looks like: KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0] 2) In case of a non-default AU size, you should specify it in the command: $> kfed read <your_device> AUSZ=<au_size> AODU>
AODU> asm troubleshooting ---asm故障诊断
****ASM 11gR2 instance Can Not Mount OCR/Voting Diskgroup On RAC**** 1) Please create a temporary pfile (on node #1 (+ASM1), with the next values on the <Grid Infrastructure Oracle Home>/dbs/init+ASM1.ora: asm_diskgroups='OCRVDG' asm_diskstring='ORCL:*' asm_power_limit=1 instance_type='asm' large_pool_size=12M remote_login_passwordfile='EXCLUSIVE' 2) Then startup the +ASM1 instance: $> cd < Grid Infrastructure Oracle Home>/dbs/ $> export ORACLE_SID=+ASM1 $> sqlplus / as sysasm SQL> STARTUP pfile=init+ASM1.ora 3) Recreate the spfile SQL> create spfile='+OCRVDG' from pfile='/opt/grid/product/11.2.0/grid_1/dbs/init+ASM1.ora'; File created. 4) Restarted the OHAS/CRS stack on both nodes: 4.1) Please shutdown all the services on both nodes as follow: Node #1: Connect as root user: # /opt/grid/product/11.2.0/grid_1/bin/crsctl stop crs Node #2: Connect as root user: # /opt/grid/product/11.2.0/grid_1/bin/crsctl stop crs 4.2) Verify that the Grid Infrastructure stack has shutdown successfully on both nodes. The following command should show no output if the GI stack has shutdown: # ps -ef | grep diskmo[n] 4.3) Start the Grid Infrastructure stack on the first node: # /opt/grid/product/11.2.0/grid_1/bin/crsctl start crs 4.4) Wait until the Grid Infrastructure stack has started successfully on the first node. To check the status of the Grid Infrastructure stack, run the following command and verify that the "ora.asm" instance is started. Note that the command below will continue to report that it is unable to communicate with the Grid Infrastructure software for several minutes after issuing the "crsctl start crs" command above: # /opt/grid/product/11.2.0/grid_1/bin/crsctl status resource -t 4.5) Start the Grid Infrastructure stack on the remaining node: # /opt/grid/product/11.2.0/grid_1/bin/crsctl start crs 4.6) Monitor the startup progress (this could take several minutes): # /opt/grid/product/11.2.0/grid_1/bin/crsctl status resource -t 4.7) Verify OHAS, CRS & CSS are running on each node: $> crsctl check has $> crsctl check crs $> crsctl check css AODU>