自动存储管理
- 概述
- 可移植的高性能集群文件系统
- 管理 Oracle DB 文件
- 数据分布到各个磁盘中以平衡负载
- 跨磁盘的集成镜像
- 解决许多存储管理问题
- ASM 常规体系结构
- 要使用 ASM,在启动数据库实例之前,必须启动一个名为 ASM 实例的特殊实例。ASM 实例不会装载数据库,而是管理使 ASM 文件可用于普通数据库实例所必需的那些元数据。
- 数据库实例直接访问 ASM 文件的内容,它们与ASM 实例通信的目的只是为了获取这些文件的布局信息
- ASM 实例包含两个新的后台进程
-
- RBAL:负责协调磁盘组的重新平衡活动
- ARB0、ARB1,……:负责执行实际的重新平衡分配单元移动操作。在同一时刻可以存在许多此类进程
- ASM 实例任务
- 创建 ASM 实例
- DBCA--->配置自动存储管理
- 配置 ASM 实例后,DBCA 会创建 ASM 实例参数文件和ASM 实例口令文件
- ASM 实例初始化参数
- INSTANCE_TYPE:对于 ASM 实例,该参数应设置为ASM。
- DB_UNIQUE_NAME:该参数指定此 ASM 实例为其管理磁盘组的服务提供程序的名称。默认值为+ASM。仅当在同一节点上运行多个ASM 实例时才须修改默认值。
- ASM_POWER_LIMIT:该参数控制重新平衡操作的速度。值的范围在1 到 11 之间,11 表示速度最快。如果省略,该值将默认为 1。
- ASM_DISKSTRING:该参数是一个与操作系统相关的值,由ASM 用来限制搜索中涉及的磁盘集。
- ASM_DISK_GROUPS:列出 ASM 实例启动时或者使用ALTER DISKGROUP ALL MOUNT命令时装载的磁盘组的名称
- 数据库实例参数更改
- 如果 LOG_ARCHIVE_DEST 设置为不完整的 ASM 文件名(例如+dGroupA),则将忽略
- LOG_ARCHIVE_FORMAT。如果LOG_ARCHIVE_DEST 设置为 ASM 目录(例如,
- +dGroupA/myarchlogdir/),则将使用 LOG_ARCHIVE_FORMAT,并且文件是非
- OMF 文件。
- 以下参数允许将 ASM 文件名的多文件创建上下文格式作为目标
-
- DB_CREATE_ONLINE_LOG_DEST_n
- DB_CREATE_FILE_DEST
- DB_RECOVERY_FILE_DEST
- CONTROL_FILES
- LOG_ARCHIVE_DEST_n
- LOG_ARCHIVE_DEST
- STANDBY_ARCHIVE_DEST
- 启动 ASM 实例
-
$ export ORACLE_SID='+ASM‘ --更改ORACLE_SID
$ echo $ORACLE_SID --查看当前ORACLE_SID
$ sqlplus / as sysdba
sql>startup --启动ASM实例 - 访问 ASM 实例
- AS SYSDBA:所有操作
- AS SYSOPER:非破坏性操作
- STARTUP/SHUTDOWN
- ALTER DISKGROUP MOUNT/DISMOUNT
- ALTER DISKGROUP ONLINE/OFFLINE DISK
- ALTER DISKGROUP REBALANCE
- ALTER DISKGROUP CHECK
- SELECT all V$ASM_* views
- 关闭 ASM 实例
- 尝试关闭处于 NORMAL、IMMEDIATE 或 TRANSACTIONAL 模式下的ASM 实例时,只有在没有任何数据库实例连接到该ASM 实例的情况下,操作才会成功。
- ASM 存储
- 概览
- 任何单个ASM 文件只能包含在一个磁盘组中
- 一个磁盘组中可以包含属于多个数据库的多个文件,并且单个数据库可以使用来自多个磁盘组的存储空间
- ASM 磁盘组
- 作为逻辑单元管理的磁盘组
- 将磁盘总空间划分为统一大小的单元
- 将各个文件平均分配到所有磁盘中
- 根据文件类型使用粗粒度或细粒度的条带化
- 管理的是磁盘组而非文件
- 故障组
- 故障组是某个特定磁盘组中的一组磁盘,共享一个需要容错的公用资源。
- 磁盘组镜像
- 类型
- 外部冗余:不提供镜像。延迟硬件镜像
- 正常冗余:支持双向镜像
- 高冗余:提供三向镜像
- 磁盘组动态重新平衡
- 无论存储配置何时发生更改,都会自动联机重新平衡
- 仅按相应比例将数据移至添加的存储
- 无需手动优化 I/O
- 联机移植到新的存储
- 可在系统上使用ASM_POWER_LIMIT配置负载
- 管理磁盘组
- ASM 实例
- CREATE DISKGROUP
- DROP DISKGROUP
- 数据库实例
- ALTER DISKGROUP
- 创建和删除磁盘组
- 磁盘组状态
- CANDIDATE:该磁盘以前从未分配给任何一个 ASM 磁盘组。
- FORMER:该磁盘以前曾分配给 ASM 磁盘组,但目前处于未分配状态。
- PROVISIONED:正在使用 ASMLib,并且此磁盘尚未分配给磁盘组。
- 创建
-
CREATE DISKGROUP dgroupA NORMAL REDUNDANCY --默认冗余
FAILGROUP controller1 DISK
'/devices/A1' NAME diskA1 SIZE 120G FORCE, --FORCE 表示,即使指定磁盘已作为 ASM 磁盘组的成员格式化,也应该将该磁盘添加到指定磁盘组中
'/devices/A2',
'/devices/A3'
FAILGROUP controller2 DISK
'/devices/B1',
'/devices/B2',
'/devices/B3'; - 删除
-
DROP DISKGROUP dgroupA INCLUDING CONTENTS; --连内容一起删除
- 将磁盘添加至磁盘组
-
ALTER DISKGROUP dgroupA ADD DISK
'/dev/rdsk/c0t4d0s2' NAME A5,
'/dev/rdsk/c0t5d0s2' NAME A6,
'/dev/rdsk/c0t6d0s2' NAME A7,
'/dev/rdsk/c0t7d0s2' NAME A8; - 其它 ALTER 命令
-
ALTER DISKGROUP dgroupA DROP DISK A5; --从 dgroupA 中删除一个磁盘
ALTER DISKGROUP dgroupA
DROP DISK A6
ADD FAILGROUP fred
DISK '/dev/rdsk/c0t8d0s2' NAME A9; ----在单个命令中添加和删除磁盘
ALTER DISKGROUP dgroupA UNDROP DISKS; --取消磁盘删除操作 - ASM 文件
- CREATE TABLESPACE sample DATAFILE '+dgroupA';
- 将数据库移植到 ASM 存储区
- MARK。。