oracle 创建冗余磁盘组,Oracle 高可用性:创建自动存储管理磁盘组

创建自动存储管理磁盘组

启动自动存储管理实例与启动数据库实例非常相似。不过不是使用“SYSDBA”,而是

使用“SYASM”。

ORACLE_SID=+ASM

SQLPLUS /NOLOG

SQL> connect SYS as SYSASM

Enter password: sys_password

Connected to an idle instance.

SQL> STARTUP

ASM instance started

实例的关闭也与数据库实例关闭类似,但是“IMMEDIATE”从句会检查是否仍然存在

连接到自动存储管理实例的数据库,如果有则会返回一个错误。任何在关闭过程中连接到

自动存储管理实例的数据库都会被关闭:

SQL> SHUTDOWN NORMALIMMEDIATEABORT

“DISKGROUP”的冗余类型是在组创建的时候指定的,创建以后不能修改。然而,新的组可以使用不同的冗余类型创建,然后迁移。有三种冗余类型:EXTERNAL,NORMAL

和HIGH。在“EXTERNAL”类型中,自动存储管理不提供任何冗余,它假定外部源就像是一个提供了容错机制的存储阵列。“NORMAL”类型需要两个组来支持故障切换,可以处理一个组出现故障的情况。“HIGH”类型冗余提供了三种故障切换方式,需要三个组。“NORMAL”

冗余和“HIGH”冗余也消除了自动存储管理磁盘的单点故障。即使是大一点的数据库,较少数量的磁盘组一般也就能满足了。

创建磁盘组

接下来将给出采用外部冗余或者正常冗余创建磁盘组的命令。一旦创建了组,就可以用他们来创建表空间。

一步一步跟我学使用如下命令创建磁盘组:

SQL> create diskgroup DGEXT1 external redundancy disk

'/dev/rdsk1/disk1';

SQL> create diskgroup DGNORM1 normal redundancy disk

FAILGROUP controller1 DISK

'/dev/rdsk/disk1' name disk1,

'/dev/rdsk/disk2' name disk2

FAILGROUP controller2 DISK

'/dev/rdsk/disk3' name disk3,

'/dev/rdsk/disk4' name disk4;

现在你已经创建了磁盘组,你可以通过查询视图,查看磁盘和磁盘组信息,来验证它们是否已经被创建:

V$ASM_DISKS 可用磁盘在参数 ASM_DISKSTRING 中反射的值;

V$ASM_DISKGROUPS 关于冗余类型的可用磁盘组及其明细;

select name, state from v$asm_diskgroups;

NAME STATE

---------------------- -------------------DGEXT1 MOUNTED

DGNORM1 MOUNTED

给磁盘组添加磁盘可以根据数据库可能增长的空间需要进行:

alter DISKGROUP DGNORM1 add DISK

'/dev/rdsk/disk5' name disk5,

'/dev/rdsk/disk6' name disk6;

自动存储管理已启动并且磁盘组创建以后,创建表空间就非常简单了,一句话的事“CREATE TABLESPACE

ts_data1”,或者磁盘组名称可以用数据文件名称替代,就像在非自动存储管理数据库中使用的一样:

Create tablespace DATATBS1 datafile '+DGNORM1' size 1024M;

你可能感兴趣的:(oracle,创建冗余磁盘组)