oracle asm管理@H_301_1@
1、asm优点@H_301_1@
概念:@H_301_1@
auto storage manage@H_301_1@
db+instance<=====> raw裸设备@H_301_1@
@H_301_1@
性能比较:raw > asm > filesystem@H_301_1@
管理方便性 filesystem > asm > raw@H_301_1@
@H_301_1@
逻辑结构@H_301_1@
数据库<--表空间(tablespace)<---段(segment)<----区(extend)<---数据块(block)@H_301_1@
@H_301_1@
物理结构:SAN存储 NFS存储@H_301_1@
@H_301_1@
ASM结构::@H_301_1@
ASM磁盘组《---ASM磁盘《---ASM分配单元《---磁盘物理块@H_301_1@
|@H_301_1@
@H_301_1@
提供联机磁盘重新配置和动态重新平衡@H_301_1@
允许调整重新平衡速度@H_301_1@
@H_301_1@
@H_301_1@
asm优点:@H_301_1@
可以让ASM免除如下:@H_301_1@
逻辑卷管理@H_301_1@
裸设备管理@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@
raid 0 1 (卷)@H_301_1@
@H_301_1@
raid0 2块盘 各一半@H_301_1@
raid5 3块盘 一半 一半 全部@H_301_1@
raid 1 和 raid 0 4块盘分成2组 2组对称@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@
2、管理asm实例@H_301_1@
asm实例是asm进程和内存组件的结合@H_301_1@
@H_301_1@
arcn归档进程@H_301_1@
ckpt检查点进程@H_301_1@
dbwn数据写进程@H_301_1@
diag诊断进程@H_301_1@
jnnn作业队列进程@H_301_1@
lgwr日志写进程@H_301_1@
pmon进程监视器@H_301_1@
pspo进程衍生进程@H_301_1@
qmnn 队列监视器@H_301_1@
reco恢复器进程@H_301_1@
smon系统监视器@H_301_1@
mman内存管理器进程@H_301_1@
vktm虚拟计时器进程@H_301_1@
@H_301_1@
如果集群还有如下进程:@H_301_1@
lmon全局入队服务监视器进程@H_301_1@
lmdn全局入队服务守护进程@H_301_1@
lmsn 全局高速缓存服务进程@H_301_1@
lckn锁定进程@H_301_1@
@H_301_1@
@H_301_1@
ps -ef | grep asm --colour@H_301_1@
数据库实例请求创建oracle DB文件的过程:@H_301_1@
@H_301_1@
asm前台进程创建一个持续操作目录(COD)条目并在磁盘组中为新的文件分配空间@H_301_1@
现在文件处于打开状态,数据库进程直接初始化该文件@H_301_1@
初始化后,数据库进程请求提交文件创建,这会导致asm@H_301_1@
前台进程清除cod条目并将文件的acd信息写入磁盘,为将磁盘标记为已经创建。@H_301_1@
@H_301_1@
v$asm_alias v$asm_attribute@H_301_1@
v$asm_client@H_301_1@
v$asm_disk@H_301_1@
v$asm_disk_iostat@H_301_1@
v$asm_disk_stat@H_301_1@
v$asm_operation@H_301_1@
v$asm_template@H_301_1@
@H_301_1@
asm系统权限:@H_301_1@
sysasm osasm@H_301_1@
sysdba osdba@H_301_1@
sysoper osoper@H_301_1@
@H_301_1@
@H_301_1@
sql> show parameter spfile;@H_301_1@
@H_301_1@
NAME TYPE VALUE@H_301_1@
------------------------------------ ----------- ------------------------------@H_301_1@
spfile string +DATA/asm/asmparameterfile/reg@H_301_1@
istry.253.943292165@H_301_1@
sql> create pfile from spfile;@H_301_1@
@H_301_1@
File created.@H_301_1@
@H_301_1@
目录: /u01/app/oracle/product/11.2.0/grid/dbs/@H_301_1@
startup pfile='/u01/app/oracle/product/11.2.0/grid/dbs/init+ASM.ora';@H_301_1@
@H_301_1@
@H_301_1@
sql> show parameter name;@H_301_1@
@H_301_1@
NAME TYPE VALUE@H_301_1@
------------------------------------ ----------- ------------------------------@H_301_1@
db_unique_name string +ASM@H_301_1@
instance_name string +ASM@H_301_1@
lock_name_space string@H_301_1@
service_names string +ASM@H_301_1@
@H_301_1@
查看asm组@H_301_1@
sql> select name,state from v$asm_diskgroup;@H_301_1@
@H_301_1@
NAME STATE@H_301_1@
------------------------------ -----------@H_301_1@
DATA MOUNTED@H_301_1@
FRA MOUNTED@H_301_1@
@H_301_1@
@H_301_1@
sql> select GROUP_NUMBER,INSTANCE_NAME,DB_NAME from v$asm_client;@H_301_1@
@H_301_1@
GROUP_NUMBER INSTANCE_N DB_NAME@H_301_1@
------------ ---------- ----------@H_301_1@
########## +ASM +ASM@H_301_1@
########## orcl orcl@H_301_1@
########## orcl orcl@H_301_1@
@H_301_1@
su - oracle@H_301_1@
sql> shutdown immediate;@H_301_1@
Database closed.@H_301_1@
Database dismounted.@H_301_1@
ORACLE instance shut down.@H_301_1@
@H_301_1@
@H_301_1@
sql> shutdown immediate@H_301_1@
ASM diskgroups volume disabled@H_301_1@
ASM diskgroups dismounted@H_301_1@
ASM instance shutdown@H_301_1@
@H_301_1@
asm启动到nomount状态@H_301_1@
ASM instance started@H_301_1@
@H_301_1@
Total System Global Area 283930624 bytes@H_301_1@
Fixed Size 2212656 bytes@H_301_1@
Variable Size 256552144 bytes@H_301_1@
ASM Cache 25165824 bytes@H_301_1@
@H_301_1@
查看目前磁盘组:@H_301_1@
sql> show parameter asm_diskgroup@H_301_1@
@H_301_1@
NAME TYPE VALUE@H_301_1@
------------------------------------ ----------- ------------------------------@H_301_1@
asm_diskgroups string FRA@H_301_1@
sql> select name,state from v$asm_diskgroup;@H_301_1@
@H_301_1@
NAME STATE@H_301_1@
------------------------------ -----------@H_301_1@
FRA DISMOUNTED@H_301_1@
DATA DISMOUNTED@H_301_1@
@H_301_1@
挂着磁盘组:@H_301_1@
alter diskgroup data mount;@H_301_1@
alter diskgroup fra mount;@H_301_1@
sql> alter diskgroup data mount;@H_301_1@
@H_301_1@
Diskgroup altered.@H_301_1@
@H_301_1@
sql> alter diskgroup fra mount;@H_301_1@
@H_301_1@
Diskgroup altered.@H_301_1@
@H_301_1@
@H_301_1@
查看磁盘组状态:@H_301_1@
sql> select name,state from v$asm_diskgroup;@H_301_1@
@H_301_1@
NAME STATE@H_301_1@
------------------------------ -----------@H_301_1@
FRA MOUNTED@H_301_1@
DATA MOUNTED@H_301_1@
@H_301_1@
@H_301_1@
############@H_301_1@
sql> shutdown immediate@H_301_1@
ASM diskgroups volume disabled@H_301_1@
ASM diskgroups dismounted@H_301_1@
ASM instance shutdown@H_301_1@
ASM instance started@H_301_1@
@H_301_1@
Total System Global Area 283930624 bytes@H_301_1@
Fixed Size 2212656 bytes@H_301_1@
Variable Size 256552144 bytes@H_301_1@
ASM Cache 25165824 bytes@H_301_1@
ASM diskgroups mounted@H_301_1@
ASM diskgroups volume enabled@H_301_1@
sql> show parameter diskgroup@H_301_1@
@H_301_1@
NAME TYPE VALUE@H_301_1@
------------------------------------ ----------- ------------------------------@H_301_1@
asm_diskgroups string FRA,DATA@H_301_1@
@H_301_1@
sql> select name,state from v$asm_diskgroup;@H_301_1@
@H_301_1@
NAME STATE@H_301_1@
------------------------------ -----------@H_301_1@
DATA MOUNTED@H_301_1@
FRA MOUNTED@H_301_1@
@H_301_1@
startup 与 startup mount 、 startup open 在asm上面 是一样的@H_301_1@
@H_301_1@
#卸载磁盘组@H_301_1@
alter diskgroup data dismount;@H_301_1@
@H_301_1@
@H_301_1@
另外一种 保护模式:(修复模式)@H_301_1@
startup restrict;@H_301_1@
sql> startup restrict;@H_301_1@
ASM instance started@H_301_1@
@H_301_1@
Total System Global Area 283930624 bytes@H_301_1@
Fixed Size 2212656 bytes@H_301_1@
Variable Size 256552144 bytes@H_301_1@
ASM Cache 25165824 bytes@H_301_1@
ASM diskgroups mounted@H_301_1@
ASM diskgroups volume enabled@H_301_1@
sql> select name,state from v$asm_diskgroup;@H_301_1@
@H_301_1@
NAME STATE@H_301_1@
------------------------------ -----------@H_301_1@
DATA RESTRICTED@H_301_1@
FRA RESTRICTED@H_301_1@
@H_301_1@
ORA-01078: failure in processing system parameters@H_301_1@
ORA-01565: error in identifying file '+DATA/orcl/spfileorcl.ora'@H_301_1@
ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora@H_301_1@
ORA-15056: additional error message@H_301_1@
ORA-17503: ksfdopn:DGOpenFile05 Failed to open file +DATA/orcl/spfileorcl.ora@H_301_1@
ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora@H_301_1@
ORA-15236: diskgroup DATA mounted in restricted mode@H_301_1@
ORA-06512: at line 4@H_301_1@
@H_301_1@
@H_301_1@
############@H_301_1@
srvctl stop asm -f 强制关闭磁盘组@H_301_1@
@H_301_1@
crs_stat -t@H_301_1@
@H_301_1@
srvctl start asm 启动磁盘组,但是没有mount@H_301_1@
@H_301_1@
把磁盘组打开到mount状态@H_301_1@
srvctl start diskgroup -g data@H_301_1@
srvctl start diskgroup -g fra@H_301_1@
@H_301_1@
@H_301_1@
srvctl stop diskgroup -g data@H_301_1@
srvctl stop diskgroup -g fra@H_301_1@
@H_301_1@
##############@H_301_1@
@H_301_1@
@H_301_1@
asmcmd@H_301_1@
[oracle@oel ~]$ asmcmd@H_301_1@
ASMCMD>@H_301_1@
@H_301_1@
ASMCMD> shutdown --help@H_301_1@
Unknown option: help@H_301_1@
usage: shutdown [--immediate] [--abort]@H_301_1@
help: help shutdown@H_301_1@
@H_301_1@
ASMCMD> shutdown --immediate@H_301_1@
ASM diskgroups volume disabled@H_301_1@
ASM diskgroups dismounted@H_301_1@
ASM instance shutdown@H_301_1@
Connected to an idle instance.@H_301_1@
@H_301_1@
有这么多命令???????@H_301_1@
ASMCMD> -- help@H_301_1@
commands:@H_301_1@
--------@H_301_1@
@H_301_1@
md_backup,md_restore@H_301_1@
@H_301_1@
lsattr,setattr@H_301_1@
@H_301_1@
cd,cp,du,find,help,ls,lsct,lsdg,lsof,mkalias@H_301_1@
mkdir,pwd,rm,rmalias@H_301_1@
@H_301_1@
chdg,chkdg,dropdg,iostat,lsdsk,lsod,mkdg,mount@H_301_1@
offline,online,rebal,remap,umount@H_301_1@
@H_301_1@
dsget,dsset,lsop,shutdown,spbackup,spcopy,spget@H_301_1@
spmove,spset,startup@H_301_1@
@H_301_1@
chtmpl,lstmpl,mktmpl,rmtmpl@H_301_1@
@H_301_1@
chgrp,chmod,chown,groups,grpmod,lsgrp,lspwusr,lsusr@H_301_1@
mkgrp,mkusr,orapwusr,passwd,rmgrp,rmusr@H_301_1@
@H_301_1@
volcreate,voldelete,voldisable,volenable,volinfo@H_301_1@
volresize,volset,volstat@H_301_1@
@H_301_1@
ASMCMD>@H_301_1@
@H_301_1@
ASMCMD> startup --help@H_301_1@
Unknown option: help@H_301_1@
usage: startup [--nomount] [--restrict] [--pfile <pfile.ora>]@H_301_1@
help: help startup@H_301_1@
@H_301_1@
@H_301_1@
3、管理ASM磁盘组@H_301_1@
8个2G@H_301_1@
@H_301_1@
2个磁盘组 DATA FRA@H_301_1@
@H_301_1@
sql> select name from v$datafile;@H_301_1@
@H_301_1@
NAME@H_301_1@
--------------------------------------------------------------------------------@H_301_1@
+DATA/orcl/datafile/system.256.943301251@H_301_1@
+DATA/orcl/datafile/sysaux.257.943301251@H_301_1@
+DATA/orcl/datafile/undotbs1.258.943301251@H_301_1@
+DATA/orcl/datafile/users.259.943301251@H_301_1@
+DATA/orcl/datafile/example.265.943301433@H_301_1@
@H_301_1@
sql> select name from v$controlfile;@H_301_1@
@H_301_1@
NAME@H_301_1@
--------------------------------------------------------------------------------@H_301_1@
+DATA/orcl/controlfile/current.260.943301383@H_301_1@
+FRA/orcl/controlfile/current.256.943301385@H_301_1@
@H_301_1@
磁盘组的冗余度:@H_301_1@
外部冗余:asm不提供如何数据镜像@H_301_1@
正常冗余:asm提供数据双向镜像@H_301_1@
高冗余:asm提供3向镜像@H_301_1@
fdisk -l@H_301_1@
@H_301_1@
fdisk /dev/sdj@H_301_1@
fdisk /dev/sdk@H_301_1@
fdisk /dev/sdl@H_301_1@
fdisk /dev/sdm@H_301_1@
fdisk /dev/sdn@H_301_1@
fdisk /dev/sdo@H_301_1@
fdisk /dev/sdp@H_301_1@
fdisk /dev/sdq@H_301_1@
@H_301_1@
vim /etc/udev/rules.d/60-raw.rules@H_301_1@
@H_301_1@
start_udev@H_301_1@
raw -aq@H_301_1@
@H_301_1@
ll /dev/raw@H_301_1@
chown oracle.oinstall /dev/raw/raw1*@H_301_1@
chmod 660 /dev/raw/raw1*@H_301_1@
@H_301_1@
@H_301_1@
set lines 180;@H_301_1@
col name for a20;@H_301_1@
col path for a50;@H_301_1@
select name,path from v$asm_disk order by 1;@H_301_1@
@H_301_1@
sql> select name,path from v$asm_disk order by 1;@H_301_1@
@H_301_1@
NAME PATH@H_301_1@
-------------------- --------------------------------------------------@H_301_1@
DATA_0000 /dev/raw/raw1@H_301_1@
DATA_0001 /dev/raw/raw2@H_301_1@
DATA_0002 /dev/raw/raw3@H_301_1@
DATA_0003 /dev/raw/raw4@H_301_1@
FRA_0000 /dev/raw/raw5@H_301_1@
FRA_0001 /dev/raw/raw6@H_301_1@
FRA_0002 /dev/raw/raw7@H_301_1@
FRA_0003 /dev/raw/raw8@H_301_1@
/dev/raw/raw12@H_301_1@
/dev/raw/raw11@H_301_1@
/dev/raw/raw15@H_301_1@
@H_301_1@
NAME PATH@H_301_1@
-------------------- --------------------------------------------------@H_301_1@
/dev/raw/raw16@H_301_1@
/dev/raw/raw18@H_301_1@
/dev/raw/raw17@H_301_1@
/dev/raw/raw13@H_301_1@
/dev/raw/raw14@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@
创建磁盘组:@H_301_1@
create diskgroup test normal redundancy failgroup fg1 disk '/dev/raw/raw11' name test_1,'/dev/raw/raw12' name test_2 failgroup fg2 disk '/dev/raw/raw13' name test_3,'/dev/raw/raw14' name test_4;@H_301_1@
@H_301_1@
sql> create diskgroup test normal redundancy failgroup fg1 disk '/dev/raw/raw11' name@H_301_1@
test_1,'/dev/raw/raw14' name test_4;@H_301_1@
Diskgroup created.@H_301_1@
@H_301_1@
sql> select name,state from v$asm_diskgroup;@H_301_1@
@H_301_1@
NAME STATE@H_301_1@
-------------------- -----------@H_301_1@
DATA MOUNTED@H_301_1@
FRA MOUNTED@H_301_1@
TEST MOUNTED@H_301_1@
@H_301_1@
查看磁盘组及单前大小及空闲大小@H_301_1@
set pages 1000;@H_301_1@
sql> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;@H_301_1@
@H_301_1@
GROUP_NUMBER NAME STATE TOTAL_MB FREE_MB@H_301_1@
------------ -------------------- ----------- ---------- ----------@H_301_1@
1 DATA MOUNTED 8188 4557@H_301_1@
2 FRA MOUNTED 8188 7954@H_301_1@
3 TEST MOUNTED 2044 1938@H_301_1@
@H_301_1@
select a.group_number,a.name,b.name,b.path from v$asm_diskgroup a,v$asm_disk b where a.group_number=b.group_number order by 1,2,3,4;@H_301_1@
GROUP_NUMBER NAME NAME PATH@H_301_1@
------------ -------------------- -------------------- --------------------@H_301_1@
1 DATA DATA_0000 /dev/raw/raw1@H_301_1@
1 DATA DATA_0001 /dev/raw/raw2@H_301_1@
1 DATA DATA_0002 /dev/raw/raw3@H_301_1@
1 DATA DATA_0003 /dev/raw/raw4@H_301_1@
2 FRA FRA_0000 /dev/raw/raw5@H_301_1@
2 FRA FRA_0001 /dev/raw/raw6@H_301_1@
2 FRA FRA_0002 /dev/raw/raw7@H_301_1@
2 FRA FRA_0003 /dev/raw/raw8@H_301_1@
3 TEST TEST_1 /dev/raw/raw11@H_301_1@
3 TEST TEST_2 /dev/raw/raw12@H_301_1@
3 TEST TEST_3 /dev/raw/raw13@H_301_1@
3 TEST TEST_4 /dev/raw/raw14@H_301_1@
@H_301_1@
12 rows selected.@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@
drop diskgroup test including contents;@H_301_1@
@H_301_1@
@H_301_1@
alter diskgroup test add disk '/dev/raw/raw15' name A5,'/dev/raw/raw16' name A6,'/dev/raw/raw17' name A7,'/dev/raw/raw18' name A8;@H_301_1@
@H_301_1@
alter diskgroup test drop disk A5;@H_301_1@
@H_301_1@
取消磁盘操作undrop@H_301_1@
alter diskgroup test undrop disk A5;@H_301_1@
@H_301_1@
查看asm的兼容性:@H_301_1@
sql> select name,DATABASE_COMPATIBILITY,COMPATIBILITY from v$asm_diskgroup where name='FRA';@H_301_1@
@H_301_1@
NAME DATABASE_COMPATIBILITY COMPATIBILITY@H_301_1@
-------------------- ------------------------------------------------------------ -----------------@H_301_1@
-------------------------------------------FRA 10.1.0.0.0 11.2.0.0.0@H_301_1@
@H_301_1@
sql> select name,COMPATIBILITY from v$asm_diskgroup where name='TEST';@H_301_1@
@H_301_1@
NAME@H_301_1@
------------------------------@H_301_1@
DATABASE_COMPATIBILITY@H_301_1@
------------------------------------------------------------@H_301_1@
COMPATIBILITY@H_301_1@
------------------------------------------------------------@H_301_1@
TEST@H_301_1@
10.1.0.0.0@H_301_1@
10.1.0.0.0@H_301_1@
@H_301_1@
@H_301_1@
alter diskgroup test set attribute 'compatible.asm'='11.2.0.0.0';@H_301_1@
alter diskgroup test set attribute 'compatible.rdbms'='11.2.0.0.0';@H_301_1@
@H_301_1@
sql> select name,COMPATIBILITY from v$asm_diskgroup where name='TEST';@H_301_1@
@H_301_1@
NAME@H_301_1@
------------------------------@H_301_1@
DATABASE_COMPATIBILITY@H_301_1@
------------------------------------------------------------@H_301_1@
COMPATIBILITY@H_301_1@
------------------------------------------------------------@H_301_1@
TEST@H_301_1@
11.2.0.0.0@H_301_1@
11.2.0.0.0@H_301_1@
@H_301_1@
select name,path from v$asm_disk order by 1,2;@H_301_1@
@H_301_1@
#drop test_1;不记录磁盘变化@H_301_1@
alter diskgroup test offline disk test_1 drop after 0 h;@H_301_1@
select name,repair_timer,state from v$asm_disk_stat;@H_301_1@
select name,2;@H_301_1@
@H_301_1@
重新上线:@H_301_1@
alter diskgroup test add disk '/dev/raw/raw11' name test_1;@H_301_1@
@H_301_1@
sql> alter diskgroup test add disk '/dev/raw/raw11' name test_1;@H_301_1@
alter diskgroup test add disk '/dev/raw/raw11' name test_1@H_301_1@
*@H_301_1@
ERROR at line 1:@H_301_1@
ORA-15032: not all alterations performed@H_301_1@
ORA-15033: disk '/dev/raw/raw11' belongs to diskgroup "TEST"@H_301_1@
@H_301_1@
清空磁盘:@H_301_1@
dd if=/dev/zero of=/dev/raw/raw11 bs=1M count=10;@H_301_1@
@H_301_1@
sql> alter diskgroup test add disk '/dev/raw/raw11' name test_1;@H_301_1@
@H_301_1@
Diskgroup altered.@H_301_1@
@H_301_1@
###repair_timer小于3.6小时@H_301_1@
alter diskgroup test offline disk test_1 drop after 3.6 h;@H_301_1@