Oracle ASM 详解(其四)
来源:互联网 发布:知否小说全文免费阅读 编辑:程序博客网 时间:2024/05/16 08:14
ASM可以条带化和镜像磁盘,因此可以在数据库被加载的情况下添加、删除磁盘、以及自动平衡IO。
ASM不是一个文件系统,所以无法从操作系统访问ASM存储的文件,对于使用ASM的数据库只能用RMAN进行备份和恢复。
ASM作为单独的ORACLE实例实施,只有ASM运行时数据库才能访问。
一、磁盘组
ASM提供了三种磁盘组类型
1 normal redundacy 支持的映像等级有2-WAY、3-WAY、不保护 ,缺省的2-WAY 标准冗余度要求提供双向镜像,并且要求在一个磁盘组中至少有2个故障组(failuregroups),故障组中的一个磁盘出现故障不会导致磁盘组停止工作,也不会丢失数据,对查询磁盘组的对象有些性能影响,这个时候就需要管理员调整 2
highredundancy 支持的映像等级 3-WAY 高冗余度提供三向镜像,并且在一个磁盘组至少有3个故障组。故障组中任何其中两组出现故障,对用户来说就象标准冗余一样 3 external redundancy 不保护 表面冗余,仅要求有一个故障组, 在配置磁盘组时,尽量把同一类型的磁盘放到一个组里,避免不同类型的磁盘在一个组里以免影响性能
二、文件
写在ASM磁盘上的文件称之为ASM文件,他们的名字是由ASM自动生成的,你可以指定一个别名对应一个ASM文件,你可以创建一个目录 SQL> selectname,type,total_mb,free_mb from v$asm_diskgroup;
NAME
TYPE TOTAL_MB FREE_MB ——————————
—— ———- ———- DA
TA EXTERN 7248 5489 比如说我在DA
TA磁盘组上创建一个BOSON目录 alter diskgroup da
ta adddirectory ‘ da ta/boson’; SQL> alter diskgroupda
ta add directory ‘ da ta/boson’; Diskgroup altered.
看一下我的数据文件
SQL> select name fromv$datafile;
NAME
——————————————————————————–
DA
TA/rac/datafile/system.269.636854893 DA
TA/rac/datafile/undotbs1.268.636854911 DA
TA/rac/datafile/sysaux.261.636854917 DA
TA/rac/datafile/undotbs2.259.636855011 DA
TA/rac/datafile/users.258.636855023 我门现在利用刚创建的目录给users.258.636855023创建一个别名
SQL> alter diskgroupda
ta add alias ‘ da ta/boson/users.dbf’ 2 for ‘da ta/rac/datafile/users.258.636855023′; Diskgroup altered.
三、模板
ASM支持数据库所有的文件,并提供了控制文件、数据文件、在线日志文件等模板,具体的可以查看官方的资料
四、安装
确定所需的 ASMLib 版本
ASMLib 以三个 Linux 程序包组成的程序包集提供:
oracleasmlib - ASM 库
oracleasm-support - 用于管理 ASMLib的实用程序
oracleasm - ASM 库的内核模块
每个 Linux 发行套件都有其自己的 ASMLib程序包集。在每个发行套件中,每个内核版本都有一个相应的 oracleasm 程序包。以下部分介绍如何确定所需的程序包集。
首先,以 root 用户身份登录并运行以下命令来确定所使用的内核:
uname -rm
例如:
oracle:/home/oracle # uname -rm
2.6.16.21-0.8-default i686
使用此信息在 OTN 上查找相应的 ASMLib 程序包:
将 Web 浏览器指向 http://www.oracle.com/technology/global/cn/tech/linux/asmlib
1, 选择适用于您的 Linux 版本的链接。
2, 下载适用于您的 Linux 版本的 oracleasmlib 和oracleasm-support 程序包
3, 下载与您的内核相对应的 oracleasm 程序包。
oracle:/home/oracle # ls
.Xauthority .fonts .pro
file.xinitrc.templateoracleasm-2.6.16.21-0.8-default-2.0.3-1.i586.rpm .bash_history .gnu-emacs .urlview.xtalkrc oracleasm-support-2.0.3-1.i386.rpm
.bashrc .inputrc .viminfo10201_database_linux32.zip oracleasmlib-2.0.2-1.i386.rpm
.dvipsrc .kermrc .xcoralrc Documentspublic_html
.emacs .mozilla .xemacs bin
.exrc .muttrc .xim.templatedatabase
oracle:/home/oracle # rpm -aqoracleasm*
oracle:/home/oracle # rpm -ivhoracleasm*.rpm
Preparing…########################################### [100%]
1:oracleasm-support########################################### [ 33%]
2:oracleasm-2.6.16.21-0.8###########################################[ 67%]
3:oracleasmlib########################################### [100%]
oracle:/home/oracle #
配置 ASMLib
使用 ASMLib 之前,必须运行配置脚本以准备驱动程序。以 root用户身份运行以下命令,并响应如下示例中所显示的提示。
oracle:/home/oracle #/etc/init.d/oracleasm configure
Configuring the Oracle ASM librarydriver.
This will configure the on-bootproperties of the Oracle ASM library
driver. The following questions willdetermine whether the driver is
loaded on boot and what permissions itwill have. The current values
will be shown in brackets (’[]’).Hitting without typing an
answer will keep that current value.Ctrl-C will abort.
Default user to own the driverinterface []: oracle
Default group to own the driverinterface []: dba
Start Oracle ASM library driver on boot(y/n) [n]: y
Fix permissions of Oracle ASM disks onboot (y/n) [y]: y
Writing Oracle ASM library driverconfiguration: done
Creating /dev/oracleasm mount point:done
Loading module “oracleasm”: done
Mounting ASMlib driver filesystem:done
Scanning system for ASM disks: done
oracle:/home/oracle #
现在,如下所示启用 ASMLib 驱动程序。
oracle:/home/oracle #/etc/init.d/oracleasm enable
Writing Oracle ASM library driverconfiguration: done
Scanning system for ASM disks: done
oracle:/home/oracle #
为 ASM 配置磁盘
接下来,告诉 ASM驱动程序您要使用的磁盘。请注意,这些磁盘是不包含任何内容(甚至不包含分区)的空磁盘。可以将磁盘分区用于ASM,但建议您不要这样做。
通过以 root 用户身份运行以下命令来标记由 ASMLib使用的磁盘:
/etc/init.d/oracleasm creatediskDISK_NAME device_name
(提示:DISK_NAME应由大写字母组成。当前版本有一个错误,即如果使用小写字母,ASM 实例将无法识别磁盘。)
例如:
# /etc/init.d/oracleasm createdisk VOL1/dev/sdb
Marking disk “/dev/sdb” as an ASM disk[ OK ]
不过我按照上面说的运行
oracle:/home/oracle #/etc/init.d/oracleasm createdisk VOL1 /dev/sdb
Marking disk “/dev/sdb” as an ASM disk:asmtool: Device “/dev/sdb” is not a partition
failed
然后我把/dev/sdb重新分区了就可以
oracle:/home/oracle #/etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
Marking disk“/dev/sdb1″ as an ASM disk: done
oracle:/home/oracle #/etc/init.d/oracleasm createdisk VOL2 /dev/sdb2
Marking disk“/dev/sdb2″ as an ASM disk: done
oracle:/home/oracle #/etc/init.d/oracleasm createdisk VOL3 /dev/sdb3
Marking disk“/dev/sdb3″ as an ASM disk: done
oracle:/home/oracle #/etc/init.d/oracleasm createdisk VOL4 /dev/sdb5
Marking disk“/dev/sdb5″ as an ASM disk: done
以下示例演示了如何列出标记为由 ASMLib 使用的所有磁盘。
oracle:/home/oracle #/etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
oracle:/home/oracle #
既然已经安装了 ASMLib,且已将磁盘标记为可用,下面,您便可以创建一个ASM 实例,并构建一个使用 ASM 进行磁盘存储的数据库。最容易的方法就是使用数据库配置助手 (DBCA) 来完成此操作。
五、ASM的参数文件
[oracle@rac1 dbs]$ cat initASM1.ora
##############################################################################
# Copyright (c) 1991, 2001, 2002 byOracle Corporation
##############################################################################
###########################################
# Cluster Database
###########################################
cluster_database=true
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=/u01/app/oracle/admin/ ASM/bdump
core_dump_dest=/u01/app/oracle/admin/ASM/cdump
user_dump_dest=/u01/app/oracle/admin/ASM/udump
###########################################
# Miscellaneous
###########################################
instance_type=asm 必须为ASM
###########################################
# Pools
###########################################
large_pool_size=12M
###########################################
# Security and Auditing
###########################################
remote_login_passwordfile=exclusive启用了远程管理,所以必须有密码文件
asm_diskgroups=’DA
TA’ ASM2.instance_number=2
ASM1.instance_number=1
还有一些参数比如说
asm_power_limit,这个是设置磁盘重新平衡的速度缺省为1可以取值0-11
当你往ASM磁盘组添加磁盘时,修改此参数为较大值能更快让磁盘数据更块的平均分布,但是由此也待来了性能影响,
所以在做此项操作时要估计对数据库性能的影响,选择合适的值。
可以通过查询 v$asm_operation视图查看
SQL> descv$asm_operation;
Name Null? Type —————————————————–——– ———————————— GROUP_NUMBER NUMBER OPERATION VARCHAR2(5) STATE VARCHAR2(4) POWER NUMBER ACTUAL NUMBER SOFAR NUMBER EST_WORK NUMBER EST_RATE NUMBER EST_MINUTES NUMBER 参数文件错误有 ORA-15021
六、启动ASM实例
要连接ASM实例,需要设置ORACLE_SID,比说单实例的数据库缺省的为ASM
集群环境为 ASMnode#
SQL> shutdown
ORA-15097: cannot SHUTDOWN ASM instancewith connected RDBMS instance
oerr ora 15097 15097, 00000, “cannot SHUTDOWN ASMinstance with connected RDBMS instance”
// *Cause:
A SHUTDOWNcommand was issued to an ASM instance that had on e or //
more connected RDBMS instances. // *Act
ion: Connect to eachRDBMS instance and shut it down, and then reissue //
the SHUTDOWN command to the ASM instance. Alternatively, use the //
SHUTDOWN ABORT command. Note that issuing theSHUTDOWN ABORT //
command to an ASM instance results in abormal termination ofall //
RDBMS instances connected to that ASM instance. //
要关闭ASM实例,首先要关闭每一个数据库实例
% sqlplus /nolog
SQL> CONNECT / ASsysdba
Connected to an idle instance.
SQL> STARTUP
ASM instance started
Total System GlobalArea
71303168 bytes FixedSize
1069292 bytes VariableSize
45068052 bytes ASMCache
25165824 bytes ASM diskgroups mounted
CRS 根据配置管理 Oracle的群集资源,包括资源的启动、停止、监视和故障切换。
CSS 可管理 Oracle 群集成员并将其自身的组成员服务提供给 RAC实例
[oracle@rac2 ~]$ crsctl check cssd
CSS appears healthy
七、ASM限制
ASM imposes the following limits:
63 disk groups in a storage system
10,000 ASM disks in a storagesystem
4 petabyte maximum storage for each ASMdisk
40 exabyte maximum storage for eachstorage system
1 million files for each disk group
Maximum files sizes as shown in thefollowing table:
Disk Group Type Maximum File Size
External redundancy 35 TB
Normal redundancy 5.8 TB
High redundancy 3.9 TB
八、磁盘组管理
1、创建磁盘组
SQL> STARTUP NOMOUNT
SQL> CREATE DISKGROUPdgroup1 NORMAL REDUNDANCY
2 FAILGROUP controller1 DISK 3‘/devices/diska1′, 4‘/devices/diska2′, 5‘/devices/diska3′, 6‘/devices/diska4′ 7 FAILGROUPcontroller2 DISK 8‘/devices/diskb1′, 9‘/devices/diskb2′, 10‘/devices/diskb3′, 11‘/devices/diskb4′; 2、添加磁盘
ALTER DISKGROUP dgroup1 ADD DISK
‘/devices/diska5′ NAME diska5, ‘/devices/diska6′ NAME diska6; 没有指定故障组,所以两个磁盘分别添加到自己的故障组
ASM中,创建一个目录
alter diskgroup boson add directory ‘da
ta/backup’; 在已经创建的目录中在创建目录
alter diskgroup boson add directory ‘da
ta/backup/archivelog’; 重命名一个目录
alter diskgroup boson rename directory‘ da
ta/backup’ to ‘ da ta/bak’; 删除一个目录
alter diskgroup boson drop directory ‘da
ta/bak’force ASM文件别名的管理,相关视图v$asm_alias
ALTER DISKGROUP dgroup1 ADD ALIAS ‘dgroup1/mydir/second.dbf’
FOR ‘ dgroup1/sample/datafile/mytable.342.3′; 重命名一个别名
ALTER DISKGROUP dgroup1 RENAME ALIAS ‘dgroup1/mydir/datafile.dbf’
TO ‘ dgroup1/payroll/compensation.dbf’; 删除一个别名
ALTER DISKGROUP dgroup1 DROP ALIAS ‘dgroup1/payroll/compensation.dbf’;
删除一个ASM文件
ALTER DISKGROUP dgroup1 DROP FILE ‘dgroup1/payroll/compensation.dbf’;
删除一个磁盘从磁盘组中
ALTER DISKGROUP dgroup1 DROP DISKdiska5;
ALTER DISKGROUP dgroup1 DROP DISKdiska5
ADD FAILGROUP failgrp1 DISK ‘/devices/diska9′NAME diska9; 修改磁盘组中的磁盘大小
修改一个磁盘组中所有的磁盘:
ALTER DISKGROUP dgroup1
RESIZE DISKS IN FAILGROUP failgrp1 SIZE 100G 手动调整字盘平衡速度
ALTER DISKGROUP dgroup2 REBALANCE POWER5 WAIT
挂载所有磁盘组
ALTER DISKGROUP ALL DISMOUNT;
ALTER DISKGROUP dgroup1 DISMOUNT;
检查所有磁盘组的一致性
ALTER DISKGROUP dgroup1 CHECK ALL;
删除磁盘组
DROP DISKGROUP dgroup1;
- 转自:http://jiangweibj.blog.163.com/blog/static/722835902009877333335/
- Oracle ASM 详解(其四)
- Oracle ASM 详解(其三)
- Oracle ASM 详解(其二)
- Oracle ASM 详解(其一)
- Oracle RAC Cache Fusion 机制详解
- Oracle 面试题 (四)
- Oracle offline 表空间详解
- sqlserver 连接oracle 配置详解 .
- Oracle 后台进程详解
- asm add disk to diskgroup
- ORACLE(四) 行列操作
- oracle scheduler(四)使用Events
- Oracle Rman 命令详解(L…
- oracle 右边字段重复的只取其…
- 四 季 情
- oracle 11g 自动内存管理(其三)
- Linux下Oracle安装 详解
- 【转载】Oracle 监听配置详解…
- 索引组织表中的MAPPING TABLE
- Oracle COALESCE函数
- action定义request response直接重定向页面方法
- 第十三周项目三函数模版
- Oracle ASM 详解(其一)
- Oracle ASM 详解(其四)
- 如何实现利用EL表达式去获取用户头像
- oracle:ASM相关视图
- ASM文件类型和模板
- DB_nK_cache_size研究
- UVA 10720
- Oracle专用服务器与共享服务器的区…
- oracle设置共享服务器模式
- 自动pga管理