极限首页 业界焦点 软件工程师之路 系统工程师之路 网络工程师之路 软件下载 技术社区
 Linux 下安装MySQL
 在 Linux 和 FireWire 上创
 Oracle 10gR2 RAC+ RHEL4
 Oracle 中如何删除重复数据
 MySQL服务维护笔记
 Oracle HowTo:如何启动或关
 Statspack ORA-00001 uniq
 MySQL 5.0 新特性教程 第一
 MySQL 5.0 新特性教程 第一
 MySQL 5.0 触发器
 Linux 下安装MySQL
 在 Linux 和 FireWire 上创
 Oracle 10gR2 RAC+ RHEL4
 Oracle 中如何删除重复数据
 MySQL服务维护笔记
 Oracle HowTo:如何启动或关
 Statspack ORA-00001 uniq
 MySQL 5.0 新特性教程 第一
 MySQL 5.0 新特性教程 第一
 MySQL 5.0 触发器

Shell 中文手册

Python 2.3 中文手册

Python 2.4 中文手册

Mysql 4.x 中文手册

PHP 4.x 中文手册

Apache 2.x 中文手册
更多手册

站内搜索:
当前位置:首页>>软件工程师之路>>数据库>>正文
创建Oracle10g ASM数据库Step by Step(3)
时间:2006-03-30 作者:Kamus 来源:itpub.net

 


下一步,oracle将自动检查出已经加载的Diskgroup,在这个界面我们可以通过Create New按钮创建新的Diskgroup,也可以通过Add Disks按钮向当前的磁盘组中添加额外的磁盘,当然这些磁盘必须是先用oracleasm createdisk过的(在第4章节的创建ASM磁盘部分有所叙述)。



在数据文件的位置管理设定界面,通常应该使用OMF,由oracle自己管理数据文件的命名,这样才算是进一步解放了DBA对于物理存储方面的繁琐工作。



继续往下的步骤,跟创建普通数据库已经没有什么区别了。不再赘述。

 

启动ASM数据库的步骤

由于启动ASM数据库必须要先启动ASM实例,所以基本上启动步骤如下。

1.             oracle用户进入操作系统

2.             $ export ORACLE_SID=+ASM

3.             SQL> sqlplus / as sysdba

4.             SQL> startup

5.             SQL> exit

6.             $ export ORACLE_SID=<your_real_db_sid>

7.             SQL> sqlplus / as sysdba

8.             SQL> startup

 

ASM数据库的简单测试

测试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;

 

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

 

总结

通过上面简单的测试,我们已经可以基本领略到ASM数据库在数据文件存储方面的强大功能,欢迎大家对于ASM数据库进行更深入的讨论。

如果有任何问题,可以到www.itpub.netOracle10g和新技术板块进行讨论,也可以给我发邮件,邮件地址: kamus@itpub.net


  共3页: 上一页 [1] [2] 3   
推荐】【 】【关闭


关于极限 | 站内地图 | 意见反馈 | 广告服务 | 数据服务 | 联系我们
本站所刊登的文章,技术资料,软件均整理于网络资源或本站原创,转载请务必联系原作者或本站。
Copyright ? 2001-2004 UPLinux.com All Rights Reserved.
本站唯一联系信箱:
京ICP备05010519