oracle中asm容量规划,Oracle ASM 详解

$ORACLE_HOME/bin/localconfig add 启动CSS。

1. ASM 实例由SGA和后台进程组成。

1.1 SGA 组成:

ASM 实例的SGA包括Buffer Cache,Share Pool,Large Pool等。 需要注意的是Share Pool, 因为Extent Map要放在这部分的内存中,需要更具数据量来估计Extent Map的大小做相应的调整。

Extent Map 的大小可以根据所有文件大小的和来估算,使用下面的语句来计算所有文件和:

Select sum(bytes)/(1024*1024*1024) from v$datafile;

Select sum(bytes)/(1024*1024*1024) from v$logfile a, v$log b where a.Group#=b.Group#;

Select sum(bytes)/(1024*1024*1024) from v$tempfile where status='online';

这3个sum的总和对应着数据库存放ASM中所有文件大小总和, 对于使用External Redundancy的磁盘组, 每100G需要1MB的Extent Map, 根据这个比例计算Extent Map所需要的空间,在加上额外的2MB就可以了。 在实际工作中一般不需要考虑ASM SGA的配置, 使用Oracle提供的缺省值就可以了。

1.2 后台进程

ASM 实例比RDBMS实例多2个进程:RBAL和ABRn。

RBAL: 这个进程也叫Rebalancer进程, 负责规划ASM磁盘组的Reblance活动。

ABRn:是RBAL进程的子进程,这个进程在数量上可以有多个,n从1~9, 这组进程负责真正完成Reblance活动。

使用ASM作为存储的RDBMS实例也会多出2个进程:RBAL和ASMB

RBAL: 这个进程的主要功能是打开每个磁盘的所有磁盘和数据的Rebalance。

ASMB: 这个进程作为ASM实例和数据库实例之间的信息通道。 这个进程负责与ASM实例的通信, 它先利用Diskgroup Name从CSS获得管理该Diskgroup的ASM实例的连接串, 然后建立到ASM的持久连接, 两个实例之间通过这条连接定期交换信息,同时也是一种心跳机制。

RDBMS 实例要想使用ASM作为存储,RDBMS实例必须在启动时从ASM实例获得Extent Map, 以后发生磁盘组的维护操作,ASM实例还要把Extent Map的更新信息通知给RDBMS实例, 这2个实例间的信息交换就是他你哦刚过ASMB进程完成的。 这也就为什么:ASM 实例必须要先于数据库实例启动,和数据库实例同步运行,迟于数据库实例关闭。

注意:ASM 实例和数据库实例的关系可以是1:1, 也可以是1:n。如果是1:n, 最好为ASM安装单独的ASM_HOME。

2. ASM 配置

ASM 可以使用裸设备 或者ASMLib方式, 因为裸设别的维护比较复杂,在此只讲解ASMLib方式。

对应不同的操作系统, 需要不同的包,下载的时候一定要和操作系统内核一致。 我的操作系统是 Red hat 4 update 7.内核版本是2.6.9-78.ELSMP。

oracleasmlib-2.0.4-1.el4.i386.rpm

oracleasm-support-2.1.3-1.el4.i386.rpm

oracleasm-2.6.9-78.EL-2.0.5-1.el4.i686.rpm

该页面有下载地址,注意选择CPU类型。asmlib和support,在同一个页面下载。

安装包:

#rpm -ivh *.rpm

安装完之后进行配置:

#/etc/init.d/oracleasm configure

会有相应的提示,回答 oracle , dba, y, y就可以了

分别对应默认用户, 默认组,随系统自启动, 启动时设置权限。

/etc/init.d/oracleasm createdisk VOL1 /dev/sdc1

/etc/init.d/oracleasm scandisks

/etc/init.d/oracleasm listdisks

关于oracleasm的更多用法参考help:

[root@node1 ~]# /etc/init.d/oracleasm --help

Usage: /etc/init.d/oracleasm {start|stop|restart|enable|disable|configure

|createdisk|deletedisk|querydisk|listdisks|scandisks|status}

3. ASM 实例配置

3.1 初始化参数

[oracle@node1 bin]$ export ORACLE_SID=+ASM1

[oracle@node1 bin]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Feb 21 19:10:51 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> create pfile from spfile;

File created.

SQL> show parameter asm

NAME                                 TYPE        VALUE

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

asm_diskgroups                       string      FLASH_RECOVERY_AREA, DATA

asm_diskstring                       string

asm_power_limit                      integer     1

[oracle@node2 dbs]$ pwd

/u01/app/oracle/product/10.2.0/db_1/dbs

[oracle@node2 dbs]$ ls

ab_+ASM2.dat  hc_rac2.dat    initrac2.ora  orapwrac2

hc_+ASM2.dat  init+ASM2.ora  orapw+ASM2

[oracle@node2 dbs]$ more init+ASM1.ora

+ASM2.asm_diskgroups='FLASH_RECOVERY_AREA'#Manual Dismount

+ASM1.asm_diskgroups='FLASH_RECOVERY_AREA','DATA'#Manual Mount

*.asm_diskgroups='FLASH_RECOVERY_AREA','DATA'

*.background_dump_dest='/u01/app/oracle/admin/+ASM/bdump'

*.cluster_database=true

*.core_dump_dest='/u01/app/oracle/admin/+ASM/cdump'

+ASM2.instance_number=2

+ASM1.instance_number=1

*.instance_type='asm'

*.large_pool_size=12M

*.remote_login_passwordfile='exclusive'

*.user_dump_dest='/u01/app/oracle/admin/+ASM/udump'

相关说明:

ASM 实例的SGA需要的内存很小,一般默认值即可, 无需修改。ASM SGA的默认值如下:

SHARED_POOL_SIZE = 48M

LARGE_POOL_SIZE = 12M

SHARED_POOL_RESERVED_SIZE = 24M

SGA_MAX_SIZE = 88M

这些默认值可以在sqlplus中通过show parameter查看。

Instance_type:对于ASM实例, 这个应该设置成ASM,如果是数据库实例,则是RDBMS.

DB_UNIQUE_NAME:这个参数使用缺省值+ASM即可

SQL> show parameter asm_power_limit

NAME            TYPE   VALUE

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

asm_power_limit   integer    1

ASM_POWER_LIMIT:当在磁盘组中添加删除磁盘时,磁盘组会自动对数据在新旧磁盘间重新分配, 从而实现分散IO,这个过程就叫再平衡(Rebalance);

这个动作会在磁盘间移动数据,因此虽然是联机操作,仍然会影响部分性能,所以要在系统空闲的时候进行。  该参数控制Rebalance速度, 取值范围0-11.最小值0代表不做Rebalance, 最大值11代表最快的速度,也意味着严重影响性能,1代表最慢的速度和最小的性能影响。 除了在初始化参数中定义该参数, 也可以在操作时指定。

比如:

SQL> alter diskgroupDATArebalance power 5;

Disk groups can be rebalanced manually using the REBALANCE clause of the ALTER DISKGROUP statement. If the POWER clause is omitted the ASM_POWER_LIMIT parameter value is used. Rebalancing is only needed when the speed of the automatic rebalancing is not appropriate.

ASM_DISKSTRING:定义哪些磁盘可以被ASM使用,ASM实例启动时就根据这个参数值扫描发现ASM磁盘,配置了这个参数以后,还必须确认ORACLE用户对这些磁盘有操作的权限

1.如果使用裸设备, 用逗号分隔每个设备名:

Asm_diskstring='/dev/raw/raw1','/dev/raw/raw2','/dev/raw/raw3'

2. 如果使用ASMLib时,就需要使用"ORCL:磁盘名"

Asm_diskstring='ORCL:VOL1'

3. 使用ASMLib时, 也可以使用通配符

Asm_diskstring='ORCL:VOL*'

ASM_DISKGROUPS:这个参数用于定义ASM实例启动后自动挂载的磁盘组, 如果不自动挂载, 也可以使用命令挂载。

注意:ASM 实例启动即可以通过pfile, 也可以通过spfile,如果使用spfile启动,那么如果创建新的磁盘组, 这个参数会被自动修改, 下次启动时会自动挂载这个新建的磁盘组,如果是使用pfile, 这个参数不会自动更新, 需要手工的更新。

3.2 CSS 进程

无论是否在RAC环境下,ASM实例都是需要CSS进程的, 所以,如果是非RAC环境, 在启动ASM实例之前用脚本

$ORACLE_HOME/bin/localconfig add 启动CSS, 否则ASM实例启动时会报ORA-29701:unable to connect to Cluster Manager,并提示执行该脚本

3.3 ASM 实例的相关操作

ASM 管理登录,启动,关闭:

[oracle@node2 dbs]$ export ORACLE_SID=+ASM2

[oracle@node2 dbs]$ sqlplus / as sysdba

SQL> startup

SQL> shutdown immediate;

检查disk group信息的SQL:

SQL> col state format a10

SQL> col name format a15

SQL> col failgroup format a20

SQL> set line 200

SQL> selectSTATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP

from v$asm_disk;

SQL>selectGROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB,

UNBALANCEDfrom v$asm_diskgroup;

创建新的diskgroup

SQL> create diskgroup dgtest normal redundancy

2  failgroupDATA1disk '/dev/oracleasm/VOL5' nameDATA1

3  failgroupDATA2 disk '/dev/oracleasm/VOL6' nameDATA2;

删除diskgroup

SQL> drop diskgroupDATAincluding contents;

-- 对于多结点的diskgroup, 只能有在一个asm实例上挂载之后才能被dorp, 其他结点必须dismount。

手动mount命令

ALTER DISKGROUP ALL DISMOUNT;

ALTER DISKGROUP ALL MOUNT;

ALTER DISKGROUPDATADISMOUNT;

ALTER DISKGROUPDATAMOUNT;

为diskgroup增加disk

SQL> alter diskgroupDATAadd disk '/dev/oracleasm/VOL5' name

VOL5,'/dev/oracleasm/VOL6' nameVOL6;

从diskgroup删除disk

SQL> alter diskgroupDATAdrop diskVOL5;

取消删除disk的命令,只能在上述命令没执行完成的时候有效

ALTER DISKGROUPDATAUNDROP DISKS;

The UNDROP DISKS clause of the ALTER DISKGROUP statement allows pending disk drops to beundone. It will not revert drops that have completed, or disk drops associated with the

dropping of a disk group.

数据文件的管理

Aliases allow you to reference ASM files using user-friendly names, rather than the fully

qualified ASM filenames.

-- Create an alias using the fully qualified filename.

ALTER DISKGROUP disk_group_1 ADD ALIAS '+disk_group_1/my_dir/my_file.dbf'

FOR '+disk_group_1/mydb/datafile/my_ts.342.3';

-- Create an alias using the numeric form filename.

ALTER DISKGROUP disk_group_1 ADD ALIAS '+disk_group_1/my_dir/my_file.dbf'

FOR '+disk_group_1.342.3';

-- Rename an alias.

ALTER DISKGROUP disk_group_1 RENAME ALIAS '+disk_group_1/my_dir/my_file.dbf'

TO '+disk_group_1/my_dir/my_file2.dbf';

-- Delete an alias.

ALTER DISKGROUP disk_group_1 DELETE ALIAS '+disk_group_1/my_dir/my_file.dbf';

-- Drop file using an alias.

ALTER DISKGROUP disk_group_1 DROP FILE '+disk_group_1/my_dir/my_file.dbf';

-- Drop file using a numeric form filename.

ALTER DISKGROUP disk_group_1 DROP FILE '+disk_group_1.342.3';

-- Drop file using a fully qualified filename.

ALTER DISKGROUP disk_group_1 DROP FILE '+disk_group_1/mydb/datafile/my_ts.342.3';

-- create datafile

SQL> create tablespace users2 datafile '+TESTDB_DATA1' size 100m;

注意事项:

1.ASM 实例在配置好并且创建了ASM磁盘组之后,还必须保证已经注册到Listener中后才能在数据库实例中使用,否则就需要手工注册ASM实例:

SQL>alter system register;

2. 一旦数据库实例使用ASM作为存储, 那么在数据库实例运行时是无法关闭ASM实例的。 否则会报ORA-15097:cannot SHUTDOWN ASM instance with connected RDBMS instance.错误。

4.Oracle 中删除ASM实例

删除自动存储管理实例+ASM实例+ASM的删除是在数据库被卸载之后完成的,并删除/ORACLE_HOME/dbs目录下的所有文件(除了与ASM相关的)。因此必须完成下列步骤:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值