Oracle之ASM管理
Autostoragemanagement自動存儲管理,它是oracle10g的新增功能,它將日益複雜的存儲管理變得簡單。它使的添加刪除磁盤變得簡單,並且動態調整i/o,通過設置故障組可以更好的保護數據安全。
ASM體系結構,它是通過一個ASM實例來管理磁盤組。
安裝ASMlib:
首先到官網下載ASMlib所需軟件
http://www.oracle.com/technetwork/server-storage/linux/downloads/rhel5-084877.html
支持和庫文件可以直接下載,內核文件,可以uname-a然後下載
lrpm-Uvhoracleasm-support-2.1.8-1.el5.i386.rpm
rpm-Uvhoracleasm-2.6.18-164.el5xen-2.0.5-1.el5.i686.rpm
Rpm-Uvhoracleasmlib-2.0.4-1.el5.i386.rpm
配置asm服務
安裝完畢開始配置asm服務,這裏先創建好所需用戶oracle和組dba。
[root@localhost~]#/etc/init.d/oracleasmconfigure
ConfiguringtheOracleASMlibrarydriver.
Thiswillconfiguretheon-bootpropertiesoftheOracleASMlibrary
driver.Thefollowingquestionswilldeterminewhetherthedriveris
loadedonbootandwhatpermissionsitwillhave.Thecurrentvalues
willbeshowninbrackets('[]').Hitting<ENTER>withouttypingan
answerwillkeepthatcurrentvalue.Ctrl-Cwillabort.
Defaultusertoownthedriverinterface[]:oracle
Defaultgrouptoownthedriverinterface[]:dba
StartOracleASMlibrarydriveronboot(y/n)[n]:y
ScanforOracleASMdisksonboot(y/n)[y]:y
WritingOracleASMlibrarydriverconfiguration:done
InitializingtheOracleASMLibdriver:[OK]
[root@localhost~]#/etc/init.d/oracleasmdisable卸載
[root@localhost~]#/etc/init.d/oracleasmenable加載
配置ASM磁盤
先分別創建新分區,然後創建asm磁盤磁盤名稱大寫
Fdisk/dev/sdb
/etc/init.d/oracleasmcreatediskVOL1/dev/sdb1
/etc/init.d/oracleasmcreatediskVOL2/dev/sdc1
/etc/init.d/oracleasmcreatediskVOL3/dev/sdd1
/etc/init.d/oracleasmcreatediskVOL3/dev/sde1
/etc/init.d/oracleasmlistdisk列出磁盤
創建asm實例
ASM實例創建步驟:
1、創建初始化文件
#vi$ORACLE_HOME/dbs/init+ASM.ora參數文件添加7行語句
2、創建密碼文件
$orapwdfile=orapwd+ASMpassword=dba
3、創建目錄結構
$mkdir-p$ORACLE_HOME/+ASM/udump
$mkdir-p$ORACLE_HOME/+ASM/bdump
$mkdir-p$ORACLE_HOME/+ASM/cdump
4、啓動實例
$exportORACLE_SID=+ASM啓動實例
5、創建spfile文件,重新啓動
$sqlplus/assysdba
Sql>startup
Ora-15110:Nodiskgroupmounted.
Sql>createspfilefrompfile;
Sql>shutdownimmediate;
Sql>startup;
6.創建磁盤組
Sql>creatediskgroupdgroup1normalredundancy
failgroupfgroup1disk‘ORCL:VOL1’,’ORCL:VOL2’
failgroupfgroup2disk‘ORCL:VOL3’,’ORCL:VOL4’;
Diskgroupcreated.
Sql>selectname,statefromv$asm_diskgroup;
Namestate
------------------------------------------
DGROUP1MOUNTED
SQL>alterdiskgroupdgroup1mount;也可以手工掛載
數據庫使用磁盤組
按照正常步驟完成oracle數據的創建,然後通過dbca啓動創建數據庫實例,在存儲一項中選擇asm,然後選擇我們建立的磁盤組完成安裝完成即可。
啓動asm數據庫
啓動asm數據庫,必須先啓動asm實例,然後啓動數據庫實例
首先啓動ASM實例
exportORACLE_SID=+ASM
$sqlplus/assysdba
SQL>startup
ASMdiskgroupmounted;
Sql>exit
然後啓動數據
exportORACLE_SID=ipap
$sqlplus/assysdba
SQL>startup
Databasemounted;
Databaseopen;
ASM環境添加磁盤
Fdisk/dev/sdf創建新分區
/etc/init.d/oracleasmcreatediskVOL5/dev/sdf1
/etc/init.d/oracleasmcreatediskVOL6/dev/sdg1
exportORACLE_SID=+ASM
$sqlplus/assysdba
Sql>select*fromv$asm_disk;
6rowselected.
Sql>alterdiskgroupdgroup1add
failgroupfgroup1disk‘ORCL:VOL5’
failgroupfgroup2disk’ORCL:VOL6’;
Diskgroupaltered.
sql>descv$asm_operation;
Sql>selectgroup_number,opera,stat,est_work,sofar,est_rate,est_minutesfromv$asm_operation;
刷新數據就不斷變化,最後發現沒有行被選擇,說明磁盤被分配完畢
查看磁盤大小,看到空間增大
exportORACLE_SID=ipap
$sqlplus/assysdba
SQL>startup
Sql>createtablespacetestdatafile‘+DGROUP1’size200M;
Sql>createuserasmuseridentifiedbypassworddefaulttablespacetest;
Sql>grantconnect,resourcetoasmuser;
Sql>connasmuser/password
Sql>createtablet(idint,namevachar2(23));
Tablecreated。
ASM刪除磁盤
exportORACLE_SID=+ASM
$sqlplus/assysdba
Sql>alterdiskgroupdgroup1dropdiskVOL4;
Diskgroupaltered.
Sql>selectgroup_number,opera,stat,est_work,sofar,est_rate,est_minutesfromv$asm_operation;
Sql>alterdiskgroupdgroup1rebalance;
當norowselected時,完成磁盤分配工作,也可以進行平衡。