oracle_asm理解

简介:

ASM是一个黑盒子,黑盒子的好处就是里面的东西我们不用费脑细胞管,坏处就是你想费脑细胞也没机会。
先看个示例:
 

登入数据库实例

创建一个自己的表空间,创建一个用户,创建一个表

SQL> create tablespace ts_test datafile '+DGROUP1' size 200M;

Tablespace created.

SQL> create user kamus identified by pass default tablespace ts_test;

User created.

SQL> grant dba to kamus;

Grant succeeded.

SQL> conn kamus/pass

Connected.

SQL> create table t_test as select * from dba_objects;

Table created.

SQL> select count(*) from t_test;

COUNT(*)

------------------------

10319


 


从中可以看出,与原来创建表空间时需要指定datafile路径与名字不同,这里只要指出想让此表空间去哪个ASM组就行了。
具体oracle怎么分配这(些)datafile,怎么避免热点,就些就不用我们操心了。

ASM提供了3种冗余方法。

external redundancy表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术。
normal redundancy(默认方式)表示Oracle提供2路镜像来保护数据。
high redundancy表示Oracle提供3路镜像来保护数据。

ASM可以动态增加和删减硬盘,假设ASM的diskgroup A为normal,假设原本的diskgroup 有2块盘,当增加2块盘进入后,原来分布于2块盘上的数据将由oracle自动平均分布到4块盘上,达到避免热点,均衡I/O的效果。(不知道normal下是不是必须是偶数块硬盘) 当删除一块时,不会有影响,重新插入后就能自动写上去。
11G下默认拔出硬盘3.5小时内oracle是不会认为你要重写的,即当3.5小时后再插入,硬盘数据将被重写。10G下不知道。

 

测试ASM数据库的automatic rebalance功能 添加两个虚拟硬盘,分别是sdfsdg,大小500M 启动系统,启动ASM实例,启动数据库 实例

创建ASM磁盘

#/etc/init.d/oracleasm createdisk VOL5 /dev/sdf

#/etc/init.d/oracleasm createdisk VOL6 /dev/sdg

登入ASM实例检查v$asm_disk视图,发现这两个新加的硬盘已经找到了 将硬盘添加到磁盘组中

SQL> ALTER DISKGROUP DGROUP1 ADD FAILGROUP FGROUP1 DISK 'ORCL:VOL5' FAILGROUP FGROUP2 DISK 'ORCL:VOL6';

Diskgroup altered.

检查数据库的auto rebalance工作进度,数据库正在将原来分布在两个磁盘上的数据平均分配到三个磁盘上

SQL> SELECT group_number, operation, state, est_work, sofar, est_rate, est_minutes FROM v$asm_operation;

SQL> /

GROUP_NUMBER OPERATION STATE EST_WORK SOFAR EST_RATE EST_MINUTES

------------ ---------- -------- ---------- ---------- ---------- -----------

1                     REBAL        RUN       275        39        148

1

以上表示数据重新分配的工作已经成功完成

SQL> select name,allocation_unit_size,total_mb from v$asm_diskgroup;

NAME ALLOCATION_UNIT_SIZE TOTAL_MB

------------------------------ -------------------- ----------

DGROUP1      1048576          5120


 

 

登入ASM实例,将磁盘从磁盘组中删除

SQL> alter diskgroup dgroup1 drop disk VOL4;

Diskgroup altered.

SQL> SELECT group_number, operation, state, est_work, sofar, est_rate, est_minutes FROM v$asm_operation;

GROUP_NUMBER OPERATION STATE EST_WORK SOFAR EST_RATE EST_MINUTES

------------ ---------- -------- ---------- ---------- ---------- -----------

1                    REBAL          RUN      566         46        151

3

SQL> select name,allocation_unit_size,total_mb from v$asm_diskgroup;

NAME ALLOCATION_UNIT_SIZE TOTAL_MB

------------------------------ -------------------- ----------

DGROUP1        1048576         4096

Executed in 0.13 seconds

SQL> select label,failgroup from v$asm_disk;

LABEL                                            AILGROUP

 ------------------------------- -----------------------------------------

VOL1                                                  FGROUP1

VOL2                                                  FGROUP1

VOL3                                                  FGROUP2

VOL5                                                  FGROUP1

VOL6                                                  FGROUP2

可以看到磁盘组的总容量已经减少了,磁盘数目也减少了





本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/656409,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
Oracle 关系型数据库
oracle asm 磁盘显示offline
oracle asm 磁盘显示offline
29 2
|
2月前
|
存储 Oracle 关系型数据库
【数据库数据恢复】Oracle数据库ASM磁盘组掉线的数据恢复案例
oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
【数据库数据恢复】Oracle数据库ASM磁盘组掉线的数据恢复案例
|
SQL Oracle 关系型数据库
Oracle ASM磁盘和磁盘组的常用SQL语句
Oracle ASM磁盘和磁盘组的常用SQL语句
190 0
|
文字识别 Oracle NoSQL
oracle 11g 单机asm配置
oracle 11g 单机asm配置
487 0
|
Oracle 关系型数据库
❤️Oracle ASM加磁盘及剔盘操作❤️
❤️Oracle ASM加磁盘及剔盘操作❤️
189 0
|
存储 机器学习/深度学习 Oracle
Oracle 11gR2 ASM存储日常管理手册
Oracle 11gR2 ASM存储日常管理手册 目 录1 文档简介 31.1 编写目的 31.2 适用范围 31.3 名词解释 31.4 格式约定 42 配置多链路和LUN 42.
1062 0
|
Oracle 关系型数据库
oracle Grid 是如何找到voteidks和asm spfile.
oracle Grid 是如何找到voteidks和asm spfile.
1502 0