Oracle10g ASM小结

ASM


介绍  ASM 实例由 SGA  和后台进程组成。  

SGA 组成 :

ASM 实例的 SGA 包括 Buffer Cache ,  Share Pool ,  Large Pool 等。 需要注意的是 Share Pool , 因为 Extent Map  要放在这部分的内存中,需要更具数据量来估计 Extent Map  的大小做相应的调整。 

Extent Map 的大小可以根据所有文件大小的和来估算,使用下面的语句来计算所有文件和:  

Select sum(bytes)/(1024*1024*1024) from v$datafile;

Select sum(bytes)/(1024*1024*1024) from v$logfile a, v$log b where a.Group#=b.Group#;

Select sum(bytes)/(1024*1024*1024) from v$tempfile where status='online';  

3 sum  的总和对应着数据库存放 ASM 中所有文件大小总和, 对于使用 External Redundancy  的磁盘组, 每 100G  需要 1MB  Extent Map , 根据这个比例计算 Extent Map  所需要的空间,在加上额外的 2MB 就可以了。 在实际工作中一般不需要考虑 ASM SGA 的配置, 使用 Oracle  提供的缺省值就可以了。

 

后台进程

ASM 实例比 RDBMS  实例多 2 个进程:  RBAL  和  ABRn

RBAL: 这个进程也叫 Rebalancer 进程, 负责规划 ASM  磁盘组的 Reblance 活动。

ABRn:是 RBAL 进程的子进程,这个进程在数量上可以有多个,  n 1~9 , 这组进程负责真正完成 Reblance 活动。

使用ASM  作为存储的 RDBMS  实例也会多出 2 个进程:  RBAL  和  ASMB

RBAL: 这个进程的主要功能是打开每个磁盘的所有磁盘和数据的 Rebalance

ASMB: 这个进程作为 ASM  实例和数据库实例之间的信息通道。 这个进程负责与 ASM  实例的通信, 它先利用 Diskgroup Name  CSS  获得管理该 Diskgroup  ASM  实例的连接串, 然后建立到 ASM  的持久连接, 两个实例之间通过这条连接定期交换信息,同时也是一种心跳机制。  

RDBMS 实例要想使用 ASM  作为存储,  RDBMS  实例必须在启动时从 ASM  实例获得 Extent Map , 以后发生磁盘组的维护操作,  ASM  实例还要把 Extent Map 的更新信息通知给 RDBMS  实例, 这 2 个实例间的信息交换就是他你哦刚过 ASMB  进程完成的。 这也就为什么:  ASM 实例必须要先于数据库实例启动,和数据库实例同步运行,迟于数据库实例关闭。

 

注意:  ASM 实例和数据库实例的关系可以是 1 1 , 也可以是 1 n 。如果是 1 n , 最好为 ASM  安装单独的 ASM_HOME

   ASM  实例的创建和删除也可以用DBCA  这个命令来操作 dbca  的第一个界面选择 配置自动存储管理 就可以了。 ASM  实例需要 CSS  进程, 如果是非 RAC  环境, 在启动 ASM  实例之前会提示用脚本 

   $ORACLE_HOME/bin/localconfig add 启动 CSS



1 ASM 实例

NOMOUNT:仅启动实例

MOUNT OPEN ,启动实例,并加载磁盘(磁盘组,未提示警告,则提示警告信息)。 OPEN 选项对于 ASM 实例无意义,等同于 MOUNT

FORCE:先执行 shutdown abort ,在 startup

 

[]$export ORACLE_SID=+ASM

[]$startup nomount

SQL> select name,state from v$asm_diskgroup;  

SQL> select instance_name,status from v$instance;  

 

SQL> alter diskgroup all mount;  

10g版本中, asm 启动前,确保 css 守护进程已经启动

[]$crsctl check cssd


 

2>关闭 ASM


SQL>shutdown immediate

 

 

3>初始化参数

INSTANCE_TYPE=ASM

数据库实例为RDBM

ASM_POWER_LIMIT   

rebalance的程度   0-11,低到高

ASM_DISKSTRING  

设置ASM 启动时检查的磁盘  

ASM_DISKGROUPS  

alter diskgroup all mount语句时要加载的磁盘组  

 


 

 

 

 

 

4>管理 ASM 磁盘

ASM 相关的动态性能视图

SQL> select * from dict where table_name like 'V$ASM_%';  

添加,删除磁盘

  ASM自动平衡。

 

磁盘组与failure 磁盘组的概念

外部冗余

failure 磁盘组无关

标准冗余

N磁盘个,至少有两个 failure 磁盘组,提高冗余

高度冗余  

N磁盘个,至少有三个 failure 磁盘组,提高冗余

当设置标准冗余,高度冗余时,每个磁盘只能属于一个failure 磁盘组

磁盘发生损坏。损坏的磁盘默认自动office drop 掉。磁盘组,提供了冗余,仍保持 MOUNT 状态

ASM 扩展性

最多支持63 个磁盘组;

最多支持10000 个磁盘;

最大支持4pb/ 磁盘;

最大支持40 exabyte/ASM 存储;

最大支持1 W 个文件 / 磁盘组;

外部冗余时单个文件最大35tb ,标准冗余时单个文件最大 5.8tb ,高冗余度时单个文件最大 3.9tb


 

 

4.1>添加磁盘组

CREATE DISKGROUP diskgroup_name

  [ { HIGH | NORMAL | EXTERNAL } REDUNDANCY ]

  [ FAILGROUP failgroup_name ]

   DISK [ NAME disk_name ] [ SIZE size_clause ] [ FORCE | NOFORCE ] ...;   // 通过FORCE 选项来强制修改该盘所属磁盘组  


 

4.2修改磁盘组

ALTER DISKGROUP DATA add disk '/dew/raw/raw7' name date_1;


 

4.3删除磁盘

alter diskgroup asmdisk2 drop disk asmdisk2_0001;  

由于未被马上删除, DBA可以通过  alter diskgroup asmdisk2 undrop disks;   取消删除


 

4.4修改磁盘大小

SQL> alter diskgroup asmdisk2 resize disk asmdisk2_0000 size 1000m;  


 

4.5手动平衡磁盘组

SQL> alter diskgroup asmdisk2 rebalance power 5;  


 

 

4.6Mount/unmount 磁盘组

手工加载

S QL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;  

alter diskgroup asmdisk2 dismount;  

a lter diskgroup asmdisk2 mount;  


 

4.7 管理目录,文件

创建目录

SQL> alter diskgroup asmdisk2 add directory '+ASMDISK2/JSS1';  

修改目录名

SQL> alter diskgroup asmdisk2 rename directory '+ASMDISK2/JSS1'  

删除目录

SQL> alter diskgroup asmdisk2 drop directory '+ASMDISK2/JSS2';  


 

4.8管理别名

增加别名

SQL> alter diskgroup asmdisk2 add alias '+ASMDISK2/repdb/datafile/temp01.dbf' for '+ASMDISK2/repdb/TEMPFILE/TEMP.267.714576831';  

 

修改别名

SQL> alter diskgroup asmdisk2 rename alias '+ASMDISK2/repdb/datafile/temp01.dbf' to '+ASMDISK2/repdb/TEMPFILE/temp01.dbf';

 

删除别名

SQL> alter diskgroup asmdisk2 drop alias '+ASMDISK2/repdb/TEMPFILE/temp01.dbf';  


 

4.9删除磁盘组中文件 / 别名

SQL> alter diskgroup asmdisk2 drop file '+ASMDISK2/repdb/datafile/temp01.dbf';  

指定为别名,就只删除了别名,并未真正将文件删除。删除文件将自动删除别名。


 

4.10删除磁盘组

drop diskgroup gpname   ,

如果磁盘组非空,报错,附加including contents 。如果使用了 spfile 。将自动修改 spfile 参数


 

5>管理 ASM 磁盘中的文件

ASM(同一个文件 ) 在保存时,也并非保存在某个磁盘,打散。

ASM 自动空盒子, 文件名ASM 通过 OMF 管理

5.1Asm 中的文件名

+diskgroup/dbname/file_type/file_type_tag.file.incarnation

 

+diskgroup :磁盘组名称;

dbname  数据库 DB_UNIQUE_NAME 参数值;

file_type :创建的文件类型,比如

CONTROLFILE/DATAFILE/ONLINELOG/ARCHIVELOG/TEMPFILE/BACKUPSET/FLASHBACK等等,类型众多此处不一一例举;

file_type_tag :文件类型的标签,比如表空间对应的通常为该表空间名称;

file.incarnation :文件序号 +incarnation ,用来确保文件的唯一;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值