Chinaunix首页 | 论坛 | 博客
  • 博客访问: 120040
  • 博文数量: 45
  • 博客积分: 457
  • 博客等级: 下士
  • 技术积分: 612
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-26 15:13
文章分类

全部博文(45)

文章存档

2013年(27)

2012年(18)

我的朋友

分类: Oracle

2013-08-16 14:57:00

  创建自动存储管理磁盘组

  启动自动存储管理实例与启动数据库实例非常相似。不过不是使用“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;

阅读(1791) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~