在使用ASM建立oracle数据库的时候,ASM磁盘组的缺省冗余为normal(两路冗余),而大多数数据库系统都是建立在RAID存储上次,在存储上已经有了一个冗余以保证数据的安全,如果在ASM中再建立一个两路冗余,一来会浪费很多的存储空间,二来也会增加很大的存储IO负载。

而现实中有一些DBA在建立数据库的时候一路next,最后导致了两级冗余,更有甚者,甚至在ASM中建立磁盘组时选择HIGH(至少3路冗余),在性能和cost都是很大的浪费,这就需要在建库后修改磁盘组的冗余模式,而oracle没有提供直接修改ASM磁盘组冗余模式的手段,我们可以借助磁盘组替换来修改冗余模式,本次实验使用rman的copy-switch方法来实现数据文件磁盘组的替换,接下来还有备份恢复方式实现数据文件磁盘组的替换以及闪回磁盘组的替换;

替换的具体步骤为:

1)         查看ASM中磁盘组及磁盘的情况:

SYS@+ASM1 SQL>select name,state,type from v$asm_diskgroup;

NAME                           STATE                          TYPE

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

RACDAT                         MOUNTED          NORMAL

RACFRA                         MOUNTED          NORMAL

SYS@+ASM1 SQL> select group_number,disk_number,name,path from v$asm_disk;

GROUP_NUMBER DISK_NUMBER NAME                           PATH

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

0        0                                /dev/oracleasm/disks/VOL6

0        1                                /dev/oracleasm/disks/VOL5

2         1 RACFRA_0001                    /dev/oracleasm/disks/VOL4

1        1 RACDAT_0001                    /dev/oracleasm/disks/VOL2

2        0 RACFRA_0000                    /dev/oracleasm/disks/VOL3

1        0 RACDAT_0000                    /dev/oracleasm/disks/VOL1

6 rows selected.

假设在存储级已经做了RAID,现在将用一个无冗余的磁盘组替换磁盘组RATDAT;

2)         数据库中数据库文件的存放情况:

@ SQL>conn / as sysdba

Connected.

SYS@racdb2 SQL>select name from v$datafile

union

select name from v$tempfile

union

select member from v$logfile

union

select filename from v$block_change_tracking

union

select name from v$controlfile

order by 1;

NAME

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

+RACDAT/racdb/datafile/sysaux.257.775268603

+RACDAT/racdb/datafile/system.256.775268603

+RACDAT/racdb/datafile/tbs_test.270.781050709

+RACDAT/racdb/datafile/tbs_test2.271.781050815

+RACDAT/racdb/datafile/tbs_test2.272.781050871

+RACDAT/racdb/datafile/ts_big1.269.780845025

+RACDAT/racdb/datafile/ts_big2.268.780845053

+RACDAT/racdb/datafile/undotbs1.258.775268605

+RACDAT/racdb/datafile/undotbs2.264.775269055

+RACDAT/racdb/datafile/users.259.775268605

+RACDAT/racdb/onlinelog/group_1.261.775268843

+RACDAT/racdb/onlinelog/group_2.262.775268885

+RACDAT/racdb/onlinelog/group_3.265.775269149

+RACDAT/racdb/onlinelog/group_4.266.775269189

+RACDAT/racdb/tempfile/temp.263.775268947

+RACFRA/racdb/onlinelog/group_1.257.775268863

+RACFRA/racdb/onlinelog/group_2.258.775268909

+RACFRA/racdb/onlinelog/group_3.259.775269165

+RACFRA/racdb/onlinelog/group_4.260.775269213

3)         用两块备用磁盘建一个外部冗余的磁盘组RACDAT_EXT:

SYS@+ASM1 SQL>create diskgroup racdat_ext external redundancy disk '/dev/oracleasm/disks/VOL5';

Diskgroup created.

SYS@+ASM1 SQL>alter diskgroup racdat_ext add disk '/dev/oracleasm/disks/VOL6';

Diskgroup altered.

SYS@+ASM1 SQL>select name,state,type from v$asm_diskgroup;

NAME                           STATE       TYPE

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

RACDAT                         MOUNTED     NORMAL

RACFRA                         MOUNTED     NORMAL

RACDAT_EXT                     MOUNTED     EXTERN

SYS@+ASM1 SQL>select group_number,disk_number,name,path from v$asm_disk;

GROUP_NUMBER DISK_NUMBER NAME                           PATH

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

2         1 RACFRA_0001                    /dev/oracleasm/disks/VOL4

3        1 RACDAT_EXT_0001                /dev/oracleasm/disks/VOL6

3        0 RACDAT_EXT_0000                /dev/oracleasm/disks/VOL5

1        1 RACDAT_0001                    /dev/oracleasm/disks/VOL2

2        0 RACFRA_0000                    /dev/oracleasm/disks/VOL3

1        0 RACDAT_0000                    /dev/oracleasm/disks/VOL1

6 rows selected.

SYS@+ASM1 SQL>select group_number,disk_number,name,path from v$asm_disk order by 1,2;

GROUP_NUMBER DISK_NUMBER NAME                           PATH

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

1       0      RACDAT_0000                    /dev/oracleasm/disks/VOL1

1    1       RACDAT_0001                    /dev/oracleasm/disks/VOL2

2    0       RACFRA_0000                    /dev/oracleasm/disks/VOL3

2    1      RACFRA_0001                    /dev/oracleasm/disks/VOL4

3       0      RACDAT_EXT_0000                /dev/oracleasm/disks/VOL5

3       1      RACDAT_EXT_0001                /dev/oracleasm/disks/VOL6

6 rows selected.

SYS@+ASM1 SQL>show parameter asm_diskgroup

NAME                    TYPE        VALUE

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

asm_diskgroups            string         RACDAT, RACFRA, RACDAT_EXT

4)         将控制文件备份到新建的磁盘组RACDAT_EXT并修改controlfile的指向:

SYS@racdb1 SQL>alter database backup controlfile to '+RACDAT_EXT';

Database altered.

[oracle@Linux1]asmcmd

ASMCMD> ls

RACDAT/

RACDAT_EXT/

RACFRA/

ASMCMD> cd racdat_ext

ASMCMD> ls

RACDB/

ASMCMD> cd racdb

ASMCMD> ls

CONTROLFILE/

ASMCMD> cd controlfile

ASMCMD> ls

Backup.256.781102479

SYS@racdb1 SQL>show parameter control

NAME                           TYPE        VALUE

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

control_file_record_keep_time           integer        7

control_files                      string         +RACDAT/racdb/controlfile/curr

ent.258.781288271, +RACFRA

/racdb/controlfile/current.263

.781288273

SYS@racdb1 SQL>alter system set control_files= '+RACDAT_EXT/racdb/controlfile/current.258.781288271', '+RACFRA_EXT/racdb/controlfile/current.263.781288273' SCOPE=spfile sid='*';

System altered.

SYS@racdb1 SQL>alter system set db_create_file_dest='+RACDAT_EXT'  scope=spfile SID='*';

System altered.

5)         由于spfile位于将要删除的磁盘组中,因此需要先在新磁盘组中创建一个spfile;

SYS@racdb1 SQL>create pfile='/mnt/share/init_racdb.ora' from spfile;

File created.

SYS@racdb1 SQL>show parameter pfile

NAME                        TYPE                           VALUE

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

spfile                                     string                        +RACDAT /racdb/spfileracdb. ora

SYS@racdb1 SQL>create spfile='+RACDAT_EXT/racdb/spfileracdb.ora' from pfile='/mnt/share/init_racdb.ora';

File created.

6)         修改各个节点的pfile中对spfile的指向

[oracle@Linux1]cd $ORACLE_HOME/dbs

[oracle@Linux1]vi initracdb1.ora

SPFILE='+RACDAT_EXT/racdb/spfileracdb.ora'

[oracle@Linux2]cd $ORACLE_HOME/dbs

[oracle@Linux2]vi initracdb2.ora

SPFILE='+RACDAT_EXT/racdb/spfileracdb.ora'

7)         修改srvconfig的spfile配置

[oracle@Linux1]srvctl config database -d racdb -a

linux1 racdb1 /u01/app/oracle/product/10.2.0/db_1

linux2 racdb2 /u01/app/oracle/product/10.2.0/db_1

(blog贴文不能超过8万字符,没办法,此处略去n段,具体见附件)

至此,已经用一个外部冗余的磁盘组RACDAT_EXT替换了一个两路冗余的磁盘组RACDAT

转载于:https://blog.51cto.com/ccz320/841453

修改ASM磁盘组冗余模式(一):copy-switch方式相关推荐

  1. asm冗余 oracle_oracle 11.2.0.1 rac 修改asm磁盘组的冗余模式(redundancy mode)为normal

    oracle 11.2.0.1 rac 修改asm磁盘组的冗余模式(redundancy mode)为normal 背景介绍: oracle 11.2.0.1 linux rac , ocr和vote ...

  2. Oracle ASM磁盘组冗余机制(Failure group)

    ASM数据冗余:        ASM磁盘组提供数据的冗余(镜像)用来确保数据的安全性和高可用性.与传统的磁盘不同,Oracle镜像数据是通过failure group的方式来实现的.         ...

  3. oracle asm之添加和修改asm磁盘组

    1.添加磁盘组: 相信很多人都会使用dbca创建磁盘组了,这里介绍使用SQL*PLUS创建磁盘组.主要是使用CREATE DISKGROUP语句,该语句的语法如下: CREATE DISKGROUP ...

  4. oracle 复制组删除,利用copy在ASM磁盘组之间迁移

    从+DISK迁移到+DG1磁盘组 一.复制数据库文件到ASM磁盘组 1.启动到mount状态(启动第一节点数据库到mount,其它节点数据库实例关闭) SQL> startup mount; 2 ...

  5. centos7创建asm磁盘_Oracle ASM 磁盘组基础知识整理(收藏版)

    为什么要写这么一篇基础知识呢?还是有那么一点点原因的,不是胡编乱造还真是有真实存在的事件的,前两周里因一套生产环境数据库磁盘不足无法对其进行表空间扩容,需要向存储岗申请存储资源,当存储岗划好资源加完存 ...

  6. mysql 磁盘组_AIX使用LV创建ASM磁盘组

    AIX使用LV创建ASM磁盘组 来源:互联网 作者:佚名 时间:2015-06-19 05:07 CREATE ASM ON AIX LV DEVICE OS:AIX 6100-03 ASM版本 10 ...

  7. mysql 磁盘组_有效管理 ASM 磁盘组空间

    ORA-15041: diskgroup space exhausted 对您的数据库环境的直接和间接影响?与 ASM 磁盘组相关的磁盘空间问题和 ORA-15041 错误会 ORA-15041: d ...

  8. oracle 11g asm 磁盘组兼容属性

    从oracle 11g版本开始,asm磁盘组会有两个新属性来兼容asm版本和数据库版本 COMPATIBLE.ASM - The minimum version of the ASM software ...

  9. oracle中asm磁盘不足,Oracle用户无法访问ASM磁盘组问题

    1. 权限问题引起找不到ASM磁盘组 1.1 确认操作系统用户属主 # 确认属主 Grid Infrastructure Home Owner : grid Primary Group : oinst ...

最新文章

  1. Docker 公司是如何做社区的?
  2. CentOS 安装配置memcached
  3. 一个QQ旋风的BUG
  4. 一天搞定HTML----标签类型与类型转换05
  5. jQuery.sap.storage getAccessToken的技术实现
  6. pitstop插件使用说明_PDF其他及PitStop插件
  7. async 打包异常_重新打包流中的异常
  8. 周鸿祎:在360新员工入职培训上的讲话
  9. 6 个 Java 工具,轻松分析定位 JVM 问题!
  10. 用python统计图片中的点_用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)...
  11. Qt Creator 配置Msvc 2012的调试器
  12. Idea部署web项目 与 eclipse 的不同之处
  13. ubuntu 14.04 root破解
  14. Atitit 四种自动机 fsm pda 目录 1. 自动机可分为有限自动机、后进先出自动机、线性有界自动机、图灵机等几种。它们对语言的识别能力各不相同。 2 1.1. 抽象自动机的理论。 2 1.
  15. ckc交易什么意思_在期货交易中,所谓的期货对冲是什么意思?
  16. [Java Web]敏感词过滤算法
  17. 2、金字塔原理:思考的逻辑(6-7)-阅读笔记
  18. Kali安装Nessus
  19. DirectX11编程11 Blend混合
  20. go import用法

热门文章

  1. 商汤科技、阿里巴巴及香港科技园联手成立 AI 实验室
  2. hdu 1693 Eat the Trees 插头dp
  3. jquery组件WebUploader文件上传用法详解
  4. python 基础干货 01
  5. The Importance of Money in Life
  6. 9patch(.9)怎么去掉自己画上的黑点/黑线
  7. How MapReduce Works
  8. n!的分解 soj 2666
  9. Exchange 2013 创建新用户
  10. Silverlight 用户代码未处理 TypeLoadException