ASM Pocket Reference
部分内容参见:http://viskosity.com
1 ASM Diskgroups
Create diskgroup
create diskgroup ARCH_DISK external redundancy disk '/dev/oracleasm/disks/ASMDISK1' name archdisk1; create diskgroup DATA_DISK normal redundancy disk '/dev/oracleasm/disks/ASMDISK2' name datadisk1, '/dev/oracleasm/disks/ASMDISK3' name datadisk2;
Drop disk groups
drop diskgroup DATA including contents;
Add disks
alter diskgroup data1 add disk '/devices/diska5' NAME diska5;
Drop a disk
alter diskgroup DATA drop disk DATA_0001 REBALANCE POWER 5 WAIT;
Adding and Droping in the same command
ALTER DISKGROUP FRA ADD DISK 'ORCL:SDE7' NAME 'FRA_DISK5' SIZE 977 M , 'ORCL:SDE8' NAME 'FRA_DISK6' SIZE 977 M DROP DISK FRA_DISK1, FRA_DISK2;
Resize all disks in a diskgroup
alter diskgroup DATA resize all size 100G;
UNDROP DISKS
alter diskgroup DATA undrop disks;
Rebalance diskgroup
alter diskgroup DATA rebalance power 5;
Check Diskgroup
alter diskgroup DATA check; alter diskgroup DATA check norepair;
Diskgroup Metadata Backup
mk_backup -b asm_backup.mdb.txt -g data1,data2
view dg,disks status
DGs:
SELECT NAME, ALLOCATION_UNIT_SIZE AU, TYPE, TOTAL_MB, FREE_MB, ROUND((1 - (FREE_MB / TOTAL_MB)) * 100, 2) USED_PCT FROM V$ASM_DISKGROUP ORDER BY NAME;
disks:
SELECT PATH, B.NAME, MOUNT_STATUS, OS_MB, A.FREE_MB, CREATE_DATE, MOUNT_DATE FROM V$ASM_DISK A, V$ASM_DISKGROUP B WHERE A.GROUP_NUMBER = B.GROUP_NUMBER(+) ORDER BY 2,1
disks statistics:
SELECT INSTNAME, G.NAME DISKGROUP, SUM(READS) READS, SUM(BYTES_READ) BYTES_READ, SUM(WRITES) WRITES, SUM(BYTES_WRITTEN) BYTES_WRITTEN FROM V$ASM_DISK_IOSTAT I, V$ASM_DISKGROUP G WHERE I.GROUP_NUMBER = G.GROUP_NUMBER GROUP BY INSTNAME, G.NAME;
2 ASM Init.ora Parameters
+ASM1.asm_diskgroups='DATA1','DATA2'#Manual Mount +ASM2.asm_diskgroups='DATA1','DATA2'#Manual Mount *.asm_diskstring='/dev/rhdisk*' *.asm_power_limit=1 *.diagnostic_dest='/grid/app/oracle' *.instance_type='asm' *.large_pool_size=12M *.remote_login_passwordfile='EXCLUSIVE'
Initialize ASM for non-RAC
./localconfig add
Manually start CSSD(non-RAC)
/etc/init.d/init.cssd start
Manually stop CSSD(non-RAC)
/etc/init.d/init.cssd stop
Resetting CSS to new Oracle Home
localconfig reset /apps/oracle/product/11.2.0/ASM
3 ASM数据字典
working…
4 srvctl命令
ADD
srvctl add asm -n rac3 -i +ASM3 -o /opt/oracle/app/product/10.2/asm
ENABLE
srvctl enable asm -n rac3 -i +ASM3
DISABLE
srvctl disable asm -n rac3 -i +ASM3
START
srvctl start asm -n rac3
STOP
srvctl stop asm -n rac3
CONFIG
srvctl config asm -n rac1
REMOVE
srvctl remove asm -n rac1
STATUS
srvctl status asm srvctl status asm -n rac1
MODIFY
srvctl modify asm -o -n rac1
5 asmcmd命令
working…
SYSASM Role
sqlplus / as sysasm
6 Upgrade,Migrate
ASM Rolling Upgrades
START
alter system start rolling migration to 11.2.0.2;
DISABLE
alter system stop rolling migration;
Migrate to ASM using RMAN
run { backup as copy database format '+DATA'; switch database to copy; sql "alter database rename '/data/oracle/VISK/redo1a.rdo' to '+DATA'"; alter database open resetlogs; #for eache tempfile sql "alter tablespace TEMP add tempfile"; }
Restore Database to ASM using SET NEWNAME
run { allocate channel d1 type disk; +for eache datafile set newname for database 1 to '+DATA'; restore database; switch datafile all; release channel d1; }
7 ASM tools
KFOD
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
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 ...] c/luster KFOD cluster [cluster=TRUE/(FALSE)] db/_unique_name db_unique_name for ASM instance[db_unique_name=dbname] di/sks Disks to discover [disks=raw,asm,badsize,all] ds/cvgroup Include group name [dscvgroup=TRUE/(FALSE)] g/roup Disks in diskgroup [group=diskgroup] h/ostlist hostlist[hostlist=host1,host2,...] metadata_a/usize AU Size for Metadata Size Calculation metadata_c/lients Client Count for Metadata Size Calculation metadata_d/isks Disk Count for Metadata Size Calculation metadata_n/odes Node Count for Metadata Size Calculation metadata_r/edundancy Redundancy for Metadata Size Calculation n/ohdr KFOD header suppression [nohdr=TRUE/(FALSE)] o/p KFOD options type [OP=DISKS/CANDIDATES/MISSING/GROUPS/INSTS/VERSION/CLIENTS/RM/RMVERS/DFLTDSTR/GPNPDSTR/METADATA/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)]
举例:
kfod disks=all status=true dscvgroup=true -------------------------------------------------------------------------------- Disk Size Header Path Disk Group User Group ================================================================================ 1: 103065 Mb MEMBER /dev/rhdisk10 DATA2 grid asmadmin 2: 103065 Mb MEMBER /dev/rhdisk11 DATA2 grid asmadmin 3: 103065 Mb MEMBER /dev/rhdisk12 DATA2 grid asmadmin 4: 103065 Mb MEMBER /dev/rhdisk13 DATA1 grid asmadmin 5: 103065 Mb MEMBER /dev/rhdisk14 DATA1 grid asmadmin 6: 103065 Mb MEMBER /dev/rhdisk15 DATA2 grid asmadmin 7: 103065 Mb MEMBER /dev/rhdisk16 DATA2 grid asmadmin 8: 103065 Mb CANDIDATE /dev/rhdisk17 # grid asmadmin 9: 103065 Mb CANDIDATE /dev/rhdisk18 # grid asmadmin 10: 103065 Mb CANDIDATE /dev/rhdisk19 # grid asmadmin 11: 103065 Mb CANDIDATE /dev/rhdisk20 # grid asmadmin 12: 103065 Mb CANDIDATE /dev/rhdisk21 # grid asmadmin 13: 103065 Mb CANDIDATE /dev/rhdisk22 # grid asmadmin 14: 103065 Mb CANDIDATE /dev/rhdisk23 # grid asmadmin 15: 103065 Mb CANDIDATE /dev/rhdisk24 # grid asmadmin 16: 103065 Mb CANDIDATE /dev/rhdisk25 # grid asmadmin 17: 103065 Mb CANDIDATE /dev/rhdisk26 # grid asmadmin 18: 103065 Mb CANDIDATE /dev/rhdisk27 # grid asmadmin 19: 103065 Mb CANDIDATE /dev/rhdisk28 # grid asmadmin 20: 103065 Mb MEMBER /dev/rhdisk4 DATA grid asmadmin 21: 103065 Mb MEMBER /dev/rhdisk5 DATA1 grid asmadmin 22: 103065 Mb MEMBER /dev/rhdisk6 DATA1 grid asmadmin 23: 103065 Mb MEMBER /dev/rhdisk7 DATA1 grid asmadmin 24: 103065 Mb MEMBER /dev/rhdisk8 DATA1 grid asmadmin 25: 103065 Mb MEMBER /dev/rhdisk9 DATA2 grid asmadmin -------------------------------------------------------------------------------- ORACLE_SID ORACLE_HOME ================================================================================ +ASM2 /grid/app/11.2.0/grid +ASM1 /grid/app/11.2.0/grid
8 ASM磁盘头及metadata备份与恢复
1)直接做dd来备份磁盘的前4K,磁盘头信息丢失时,dd回来 备份:dd if=/dev/raw/raw1 of=/yangbq/asmheader.dd bs=4096 count=1 恢复:dd if=/yangbq/asmheader.dd of=/dev/raw/raw1 2)利用oracle的kfed工具来备份,将磁盘头信息转换成文本明文形式记录下来,恢复时使用kfed merge进去 备份:kfed read /dev/raw/raw1 aunum=0 blknum=0 text=raw1.txt 恢复:kfed write /dev/raw/raw1 aunum=0 blknum=0 text=raw1.txt 3)11G及以上asmcmd里面增加了md_backup,md_restore备份指令,但这个只是备份DG的meta结构信息,他的恢复必须是DG已经mount,然后导入结构信息,类似于exp/imp,这种方式对于DG损坏是不起作用的 备份:asmcmd md_backup -b /yangbq/asmheader.20200730.txt 恢复:asmcmd md_restore -t full -g dg2 -i -b /gyj/asmheader.20200730.txt
近期评论