ITPub博客

首页 > 数据库 > Oracle > 一些ASM 数据库的测试和管理

一些ASM 数据库的测试和管理

原创 Oracle 作者:bomei 时间:2007-10-09 10:47:17 0 删除 编辑
ASM 数据库的测试
测试ASM 数据库的automatic rebalance 功能
添加两个虚拟硬盘,分别是sdf 和sdg,大小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.[@more@]检查数据库的auto rebalance 工作进度,数据库正在将原来分布在两个磁盘上的数据平均
分配到三个磁盘上
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 416 0 0
0
SQL> /
GROUP_NUMBER OPERATION STATE EST_WORK SOFAR
EST_RATE EST_MINUTES
------------ ---------- -------- ---------- ---------- ---------- -----------
1 REBAL RUN 275 39 148
1
SQL> /
以上表示数据重新分配的工作已经成功完成
SQL> select name,allocation_unit_size,total_mb from v$asm_diskgroup;
NAME ALLOCATION_UNIT_SIZE TOTAL_MB
------------------------------ -------------------- ----------
DGROUP1 1048576 5120
现在磁盘组空间总共是5120M
登入数据库实例
创建一个自己的表空间,创建一个用户,创建一个表

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
登入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 FAILGROUP
------------------------------- ------------------------------
VOL1 FGROUP1
VOL2 FGROUP1
VOL3 FGROUP2
VOL5 FGROUP1
VOL6 FGROUP2
可以看到磁盘组的总容量已经减少了,磁盘数目也减少了
有些文档上说删除了磁盘之后要执行:ALTER DISKGROUP REBALANCE
但是发现不需要手动执行,整个REBALANCE 的工作确实是自动的,当删除磁盘以后,数
据库自动开始作REBALANCE 了
为了两个FAILGROUP 的大小相同,再删除一个磁盘
SQL> alter diskgroup dgroup1 drop disk VOL2;
Diskgroup altered.
我们可以从下面的SQL 知道在ASM 实例中可以查询到所有可以用的磁盘,而在数据库实
例中只可以查询到让自己使用的磁盘
ASM 实例:
SQL> SELECT disk_number, label FROM V$asm_disk;
DISK_NUMBER LABEL
----------- --------------------------------------------------------------
0 VOL4
1 VOL2
0 VOL1
2 VOL3
4 VOL5
5 VOL6
数据库实例:
SQL> SELECT disk_number, label FROM V$asm_disk;
DISK_NUMBER LABEL
----------- -------------------------------
0 VOL1
2 VOL3
4 VOL5
5 VOL6

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7272495/viewspace-975436/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 配置并创建ASM
请登录后发表评论 登录
全部评论

注册时间:2008-03-29

  • 博文量
    76
  • 访问量
    93379