RAC中ASM磁盘组管理

1,添加磁盘后,fdisk分区/dev/sdd     (linux)
2,创建ASM磁盘
     service oracleasm createdisk VOL1 /dev/sdd1
     service oracleasm enable
3,建立磁盘组:sqlplus '/as sysasm'
    SQL>create diskgroup VOL_DATA1 external redundancy disk 'ORCL:VOL1' name VOL_DATA_VOL1;
4,添加成员:
    SLQ>alter diskgroup VOL_DATA1 add disk 'ORCL:VOL2'  name VOL_DATA_VOL2 rebanlance power 1;
    磁盘组负载平衡 0表示不平衡, 1是缓慢的平衡,最大11平衡速度最快,对磁盘消耗较大。
    手动平衡alter diskgroup VOL_DATA1 rebanlance  power 3;
5,查看磁盘:select group_number,disk_number,name,path,total_mb,free_mb from v$asm_disk;
    查看磁盘组:select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;
6,删除磁盘组
    SLQ>drop diskgroup VOL_DATA1 including contents;     ------磁盘组要无数据
    删除组内成员
   SQL>alter diskgroup VOL_DATA1 drop disk VOL_DATA_VOL2;

7,
ASM磁盘上的文件拷贝OS中
①,用dbms_file_transfer.copy_file(); 
    
点击(此处)折叠或打开
  1. [oracle@racy1 ~]$ mkdir backup
  2. [oracle@racy1 backup]$ pwd
  3. /home/oracle/backup
  4. 创建directory对象
  5. SQL> create directory adir as '+DATA/RACDB/datafile/';
  6. Directory created.

  7. SQL> create directory bdir as '/home/oracle/backup';
  8. Directory created.

  9. SQL> select file#,name from v$datafile;

  10.      FILE# NAME
  11. ---------- --------------------------------------------------
  12.      1 +DATA/racdb/datafile/system.259.895793119
  13.      2 +DATA/racdb/datafile/sysaux.260.895793165
  14.      3 +DATA/racdb/datafile/undotbs1.261.895793205
  15.      4 +DATA/racdb/datafile/undotbs2.263.895793255
  16.      5 +DATA/racdb/datafile/users.264.895793267

  17. SQL> alter database datafile 5 offline;

  18. Database altered.
  19. SQL> begin
  20.   2     dbms_file_transfer.copy_file('adir','users.264.895793267','bdir','users.dbf');
  21.   3 end;
  22.   4 /
  23. PL/SQL procedure successfully completed.

        SQL> alter database datafile 5 online;

  1. [oracle@racy1 ~]$ cd /backup
  2. [oracle@racy1 backup]$ ls
  3. users.dbf    
 dbms_file_transfer.copy_file('bdir','users.dbf','adir','users.dbf'); //将文件copy 到ASM 磁盘组中
②,用RMAN的convert 命令
RMAN> convert tablespace test01 format  '/backup/test01.dbf';
或者
RMAN> convert datafile "+DATA/racdb/datafile/test01.268.897172749" format "/backup/test001.dbf"
还原 
RMAN>convert datafile "/backup/test001.dbf"  format  "+DATA";

--------------------------------------------------------------------------------------------------------------
解决删除磁盘组后无法启动的问题:

点击(此处)折叠或打开

  1. [oracle@racy1 ~]$ srvctl start database -d RACDB
  2. PRCR-1079 : Failed to start resource ora.racdb.db
  3. CRS-2640: Required resource 'ora.VOL_DG1.dg' is missing.
  4. [grid@racy1 ~]$ crsctl status resource ora.racdb.db -p | grep ora.VOL_DG1.dg
  5. START_DEPENDENCIES=hard(ora.DATA.dg,ora.RAC.dg,ora.VOL_DG1.dg) weak(type:ora.listener.type,global:type:ora.scan_listener.type,uniform:ora.ons,uniform:ora.eons) pullup(ora.DATA.dg,ora.RAC.dg)
  6. STOP_DEPENDENCIES=hard(intermediate:ora.asm,shutdown:ora.DATA.dg,shutdown:ora.RAC.dg,shutdown:ora.VOL_DG1.dg)
  7. [grid@racy1 ~]$ srvctl modify database -d RACDB -a 'DATA,RAC'  #引号内为我的磁盘组
  8. [grid@racy1 ~]$ crsctl status resource ora.racdb.db -p | grep ora.VOL_DG1.dg
  9. [grid@racy1 ~]$ srvctl start database -d RACDB





来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28275505/viewspace-1842328/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28275505/viewspace-1842328/

<think> 首先,用户正在查询在Oracle 12c RAC环境中添加ASM磁盘组的方法。 根据系统指令,我需要使用正确的LaTeX格式,用中文回答,并生成相关问题。 另外,在回答中引用段落时,我必须在末尾添加引用标识,比如[^1]。 我得到的引用是: - 引用[^1]:讨论了在RHEL 7.2上使用EMC Powerpath扩展磁盘空间并添加到12C RAC for ASM。 它提到了添加磁盘的步骤,主机人员通知扩展别名为data_center_16、data_center_17。 - 引用[^2]:讨论了Oracle 12c中RAC功能的新特性,特别是ASM和Grid。 它提到OCR现在可以备份在ASM磁盘组中,并给出了一个设置备份位置的例子。 - 引用[^3]:讨论了Oracle 12c ASM管理,包括在RAC环境中创建一个临时表空间。 用户的查询是关于添加ASM磁盘组,不是扩展现有磁盘或备份OCR。 所以,虽然这些引用相关,但我需要专注于添加新磁盘组的通用方法。 结构化我的回答: 1. **介绍**:简要解释在Oracle 12c RAC中添加ASM磁盘组的目的。 2. **步骤**:提供一个清晰的分步指南。 由于引用没有直接提供完整的步骤,我将基于标准Oracle实践进行推断。 引用[^1]提到了添加磁盘,但它是关于扩展现有空间,而不是创建磁盘组。 引用[^3]涉及在ASM创建文件,但没有添加磁盘组。 因此,我将使用一般知识。 标准步骤: - 准备物理磁盘。 - 配置ASM实例。 - 使用SQL或ASMCMD创建磁盘组。 在RAC环境中,由于多个节点,需要确保所有节点都能访问磁盘。 3. **包括LaTeX**:在行内使用$...$,例如,用于命令或路径。 对于独立公式(如果适用),使用$$...$$,但在这个上下文中,可能没有数学公式;更多是命令。 所以,我可能使用行内代码块或描述。 4. **中文回答**:整个回答用中文。 5. **生成相关问题**:在最后,添加一个“相关问题”部分。 6. **引用**:如果在回答中使用了引用内容,添加引用标识。 例如,如果我从引用中提取信息。 由于引用[^1]讨论了添加磁盘(尽管是用于扩展),我可以将其纳入准备步骤。 引用[^2]和[^3]可能不直接相关,但我会尽量链接。 关键点: - 添加ASM磁盘组涉及: a. 确保所有节点都能访问共享存储。 b. 使用`asmca`(ASM配置助手)或SQL*Plus命令。 c. 在RAC中,从任一节点操作,因为它会传播。 基于引用[^1]:它提到主机人员告知扩容别名的步骤,所以磁盘必须已经存在并被识别。 步骤大纲: 1. 准备存储:确保所有RAC节点都能看到磁盘。 2. 配置磁盘:可能使用工具如`udev`或ASMLib来标记磁盘。 3. 创建磁盘组:使用`asmca`或SQL命令。 在回答中使用引用: - 参考引用[^1]用于磁盘准备部分。 - 参考引用[^3]用于ASM管理命令。 最终回答结构: - 解释过程。 - 分步指南。 - 代码块用于命令(如SQL或shell命令)。 - 相关问题。 生成相关问题: - 基于主题,比如优化、故障排除等。 确保回答真实可靠: - 基于Oracle文档和标准实践。 </think>### Oracle 12c RAC环境下添加ASM磁盘组的方法 在Oracle 12c Real Application Clusters (RAC) 环境中,添加ASM (Automatic Storage Management) 磁盘组涉及多个步骤,包括物理磁盘准备、共享存储配置和ASM实例操作。以下是基于标准实践的分步指南,确保过程适用于RAC环境(所有节点需协同操作)。引用内容来自站内资料,用于补充关键点[^1][^2][^3]。 #### 1. **准备工作:确保共享存储可用** - **物理磁盘准备**: - 在存储设备上分配新磁盘(例如,通过SAN或NAS),并确保所有RAC节点都能访问这些磁盘。磁盘需格式化为裸设备或使用ASMLib标记。 - 参考主机人员提供的别名(如 `data_center_16`、`data_center_17`)来识别磁盘[^1]。 - 使用 `udev` 或 `multipath` 工具配置磁盘路径(例如,在Linux中): ```bash # 查看所有节点识别的磁盘 $ lsblk $ multipath -ll ``` - **验证磁盘权限**: 确保磁盘权限对所有节点一致(通常为 `oracle:oinstall`),避免访问冲突。 #### 2. **配置ASM磁盘(在ASM实例中)** - **登录ASM实例**: 从任一RAC节点,使用SQL*Plus连接到ASM实例(需SYSDBA权限): ```bash $ sqlplus / as sysasm ``` - **发现并标记磁盘**: 使用 `ASM_DISKSTRING` 参数指定磁盘路径,然后查询可用磁盘: ```sql SQL> ALTER SYSTEM SET ASM_DISKSTRING = '/dev/mapper/data_center_*' SCOPE=BOTH; -- 根据实际路径设置[^1] SQL> SELECT name, path, header_status FROM V$ASM_DISK; -- 确认磁盘状态为"CANDIDATE"(可用) ``` 如果磁盘未显示,检查路径权限或重启ASM实例。 #### 3. **创建ASM磁盘组** - **使用SQL命令或ASMCA工具**: - **方法1:SQL*Plus命令(推荐直接操作)**: 在ASM实例中执行 `CREATE DISKGROUP` 命令,指定磁盘组名称、冗余级别(如NORMAL、HIGH)和磁盘列表: ```sql SQL> CREATE DISKGROUP new_dg NORMAL REDUNDANCY DISK '/dev/mapper/data_center_16' NAME disk16, '/dev/mapper/data_center_17' NAME disk17; -- 磁盘别名对应主机提供的信息[^1] ``` - `NORMAL REDUNDANCY` 表示双重镜像(默认),适用于大多数场景。 - 成功创建后,验证磁盘组: ```sql SQL> SELECT name, state, total_mb FROM V$ASM_DISKGROUP; -- 检查状态为"MOUNTED" ``` - **方法2:ASM配置助手(ASMCA,图形化界面)**: 运行 `asmca` 命令启动工具: ```bash $ asmca ``` 在GUI中选择"Create",添加磁盘并设置属性(冗余级别、分配单元大小)。 #### 4. **验证和使磁盘组生效(在所有节点)** - **挂载磁盘组**: 如果未自动挂载,手动挂载到所有节点: ```sql SQL> ALTER DISKGROUP new_dg MOUNT; -- 在ASM实例中执行 ``` - **检查RAC同步**: 使用 `crsctl` 命令确认资源状态: ```bash $ crsctl status resource -t -w "NAME co new_dg" -- 确保所有节点显示"ONLINE" ``` - **测试使用**: 创建测试文件(如表空间)验证功能: ```sql SQL> CREATE TABLESPACE test_ts DATAFILE '+new_dg' SIZE 100M; -- 类似引用中的表空间创建语法[^3] ``` #### 关键注意事项 - **冗余级别选择**: - `EXTERNAL REDUNDANCY`:无镜像(依赖存储硬件)。 - `NORMAL REDUNDANCY`:双副本镜像(推荐用于高可用)。 - `HIGH REDUNDANCY`:三副本镜像(最高容错)。 - **性能影响**:添加磁盘组时,避免在业务高峰操作,以防I/O竞争。 - **OCR备份**:在12c中,OCR可备份到ASM磁盘组,简化恢复(如引用所述)[^2]。 以上步骤基于Oracle 12c最佳实践,结合了共享存储配置和ASM管理原则。如果遇到磁盘识别问题,参考主机提供的别名信息[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值