|
oracle asm管理
1、asm优点
概念:
auto storage manage
db+instance raw裸设备
性能比较:raw > asm > filesystem
管理方便性 filesystem > asm > raw
逻辑结构
数据库 select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA MOUNTED
FRA MOUNTED
SQL> select GROUP_NUMBER,INSTANCE_NAME,DB_NAME from v$asm_client;
GROUP_NUMBER INSTANCE_N DB_NAME
------------ ---------- ----------
########## +ASM+ASM
########## orclorcl
########## orclorcl
为了安全 先关闭数据库
su - oracle
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> shutdown immediate
ASM diskgroups volume disabled
ASM diskgroups dismounted
ASM instance shutdown
asm启动到nomount状态
SQL> startup nomount
ASM instance started
Total System Global Area 283930624 bytes
Fixed>
Variable> ASM Cache 25165824 bytes
查看目前磁盘组:
SQL> show parameter asm_diskgroup
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups string FRA
SQL> select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
FRA DISMOUNTED
DATA DISMOUNTED
挂着磁盘组:
alter diskgroup data mount;
alter diskgroup fra mount;
SQL>>
Diskgroup>
SQL>>
Diskgroup> SQL>
查看磁盘组状态:
SQL> select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
FRA MOUNTED
DATA MOUNTED
SQL>
############
SQL> shutdown immediate
ASM diskgroups volume disabled
ASM diskgroups dismounted
ASM instance shutdown
SQL> startup
ASM instance started
Total System Global Area 283930624 bytes
Fixed>
Variable> ASM Cache 25165824 bytes
ASM diskgroups mounted
ASM diskgroups volume enabled
SQL> show parameter diskgroup
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups string FRA, DATA
SQL> select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA MOUNTED
FRA MOUNTED
startup 与 startup mount 、 startup open 在asm上面 是一样的
#卸载磁盘组
alter diskgroup data dismount;
另外一种 保护模式:(修复模式)
startup restrict;
SQL> startup restrict;
ASM instance started
Total System Global Area 283930624 bytes
Fixed>
Variable> ASM Cache 25165824 bytes
ASM diskgroups mounted
ASM diskgroups volume enabled
SQL> select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA RESTRICTED
FRA RESTRICTED
这时启动数据库报错 因为asm保护模式
SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in> ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora
ORA-15056: additional error message
ORA-17503: ksfdopn:DGOpenFile05 Failed to open file +DATA/orcl/spfileorcl.ora
ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora
ORA-15236: diskgroup DATA mounted in restricted mode
ORA-06512: at line 4
############
srvctl stop asm -f 强制关闭磁盘组
crs_stat -t
srvctl start asm 启动磁盘组,但是没有mount
把磁盘组打开到mount状态
srvctl start diskgroup -g data
srvctl start diskgroup -g fra
srvctl stop diskgroup -g data
srvctl stop diskgroup -g fra
##############
asmcmd
[oracle@oel ~]$ asmcmd
ASMCMD>
ASMCMD> shutdown --help
Unknown option: help
usage: shutdown [--immediate] [--abort]
help: help shutdown
ASMCMD> shutdown --immediate
ASM diskgroups volume disabled
ASM diskgroups dismounted
ASM instance shutdown
Connected to an> 有这么多命令???????
ASMCMD> -- help
commands:
--------
md_backup, md_restore
lsattr, setattr
cd, cp, du, find, help, ls, lsct, lsdg, lsof, mkalias
mkdir, pwd, rm, rmalias
chdg, chkdg, dropdg, iostat, lsdsk, lsod, mkdg, mount
offline, online, rebal, remap, umount
dsget, dsset, lsop, shutdown, spbackup, spcopy, spget
spmove, spset, startup
chtmpl, lstmpl, mktmpl, rmtmpl
chgrp, chmod, chown, groups, grpmod, lsgrp, lspwusr, lsusr
mkgrp, mkusr, orapwusr, passwd, rmgrp, rmusr
volcreate, voldelete, voldisable, volenable, volinfo
volresize, volset, volstat
ASMCMD>
ASMCMD> startup --help
Unknown option: help
usage: startup [--nomount] [--restrict] [--pfile ]
help: help startup
3、管理ASM磁盘组
8个2G
2个磁盘组 DATA FRA
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
+DATA/orcl/datafile/system.256.943301251
+DATA/orcl/datafile/sysaux.257.943301251
+DATA/orcl/datafile/undotbs1.258.943301251
+DATA/orcl/datafile/users.259.943301251
+DATA/orcl/datafile/example.265.943301433
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
+DATA/orcl/controlfile/current.260.943301383
+FRA/orcl/controlfile/current.256.943301385
磁盘组的冗余度:
外部冗余:asm不提供如何数据镜像
正常冗余:asm提供数据双向镜像
高冗余:asm提供3向镜像
fdisk -l
fdisk /dev/sdj
fdisk /dev/sdk
fdisk /dev/sdl
fdisk /dev/sdm
fdisk /dev/sdn
fdisk /dev/sdo
fdisk /dev/sdp
fdisk /dev/sdq
vim /etc/udev/rules.d/60-raw.rules
start_udev
raw -aq
ll /dev/raw
chown oracle.oinstall /dev/raw/raw1*
chmod 660 /dev/raw/raw1*
sqlplus / as sysasm
set lines 180;
col name for a20;
col path for a50;
select name,path from v$asm_disk order by 1;
SQL> select name,path from v$asm_disk order by 1;
NAME PATH
-------------------- --------------------------------------------------
DATA_0000 /dev/raw/raw1
DATA_0001 /dev/raw/raw2
DATA_0002 /dev/raw/raw3
DATA_0003 /dev/raw/raw4
FRA_0000 /dev/raw/raw5
FRA_0001 /dev/raw/raw6
FRA_0002 /dev/raw/raw7
FRA_0003 /dev/raw/raw8
/dev/raw/raw12
/dev/raw/raw11
/dev/raw/raw15
NAME PATH
-------------------- --------------------------------------------------
/dev/raw/raw16
/dev/raw/raw18
/dev/raw/raw17
/dev/raw/raw13
/dev/raw/raw14
创建磁盘组:
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;
SQL> 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;
Diskgroup created.
SQL> select name,state from v$asm_diskgroup;
NAME STATE
-------------------- -----------
DATA MOUNTED
FRA MOUNTED
TEST MOUNTED
查看磁盘组及单前大小及空闲大小
set pages 1000;
SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TOTAL_MB FREE_MB
------------ -------------------- ----------- ---------- ----------
1 DATA MOUNTED 8188 4557
2 FRA MOUNTED 8188 7954
3 TEST MOUNTED 2044 1938
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;
GROUP_NUMBER NAME NAME PATH
------------ -------------------- -------------------- --------------------
1 DATA DATA_0000 /dev/raw/raw1
1 DATA DATA_0001 /dev/raw/raw2
1 DATA DATA_0002 /dev/raw/raw3
1 DATA DATA_0003 /dev/raw/raw4
2 FRA FRA_0000 /dev/raw/raw5
2 FRA FRA_0001 /dev/raw/raw6
2 FRA FRA_0002 /dev/raw/raw7
2 FRA FRA_0003 /dev/raw/raw8
3 TEST TEST_1 /dev/raw/raw11
3 TEST TEST_2 /dev/raw/raw12
3 TEST TEST_3 /dev/raw/raw13
3 TEST TEST_4 /dev/raw/raw14
12 rows selected.
修改磁盘组:
删除磁盘组:
drop diskgroup test including contents;
往磁盘组中添加磁盘:
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;
从磁盘组中删除磁盘:
alter diskgroup test drop disk A5;
取消磁盘操作undrop
alter diskgroup test undrop disk A5;
查看asm的兼容性:
SQL> select name ,DATABASE_COMPATIBILITY,COMPATIBILITY from v$asm_diskgroup where name='FRA';
NAME DATABASE_COMPATIBILITY COMPATIBILITY
-------------------- ------------------------------------------------------------ -----------------
-------------------------------------------FRA 10.1.0.0.0 11.2.0.0.0
SQL> select name ,DATABASE_COMPATIBILITY,COMPATIBILITY from v$asm_diskgroup where name='TEST';
NAME
------------------------------
DATABASE_COMPATIBILITY
------------------------------------------------------------
COMPATIBILITY
------------------------------------------------------------
TEST
10.1.0.0.0
10.1.0.0.0
修改asm兼容性(asm和rdbms)
alter diskgroup test set attribute 'compatible.asm'='11.2.0.0.0';
alter diskgroup test set attribute 'compatible.rdbms'='11.2.0.0.0';
SQL> select name ,DATABASE_COMPATIBILITY,COMPATIBILITY from v$asm_diskgroup where name='TEST';
NAME
------------------------------
DATABASE_COMPATIBILITY
------------------------------------------------------------
COMPATIBILITY
------------------------------------------------------------
TEST
11.2.0.0.0
11.2.0.0.0
select name,path from v$asm_disk order by 1,2;
#drop test_1;不记录磁盘变化
alter diskgroup test offline disk test_1 drop after 0 h;
select name,repair_timer,state from v$asm_disk_stat;
select name,path from v$asm_disk order by 1,2;
重新上线:
alter diskgroup test add disk '/dev/raw/raw11' name test_1;
SQL>> alter diskgroup test add disk '/dev/raw/raw11' name test_1
*
ERROR at line 1:
ORA-15032: not all> ORA-15033: disk '/dev/raw/raw11' belongs to diskgroup "TEST"
清空磁盘:
dd if=/dev/zero of=/dev/raw/raw11 bs=1M count=10;
重新添加:
SQL>>
Diskgroup> ###repair_timer小于3.6小时
alter diskgroup test offline disk test_1 drop after 3.6 h;
|
|