ASM磁盘扩容、添加FRA

背景描述

A系统为双节点的RAC,A系统磁盘空间不足,向甲方申请,A系统新增1T磁盘;
B系统为单实例,B系统有剩余的500G磁盘,磁盘DATA盘空间剩余800G,归档存放位置在DARA盘中,归档空间大小设置为800G,向甲方申请,B系统新增1T磁盘,新增FRA盘,将归档存放位置改为FRA,将原有的500G扩容至DATA盘,将新增的1T磁盘扩容至FRA盘

磁盘扩容

扩容思路

扫描新增盘–根据udev规则创建ASM–重启udev—扩容磁盘–查看平衡进度—扩容完成

扩容步骤

A系统新增盘盘号为:aaaaaaaaaa、一节点:dm-42、二节点:dm-47
B系统新增盘盘号为:bbbbbbbbb、dm-14
B系统原有盘盘号为:bbbbbbbb1、dm-5

扫描新增盘

multipath -l ——查看新增盘是否能显示,对照新增盘的wwn号与甲方给的是否一致
如果没有找到新增的盘,则需要重新扫描SCSI总线,以添加新设备

echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -“ > /sys/class/scsi_host/host2/scan

注:/sys/class/scsi_host/文件下有几个host文件就需要扫描几次
A系统一节点:

/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/dm-42

A系统二节点:

/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/dm-47

B系统:

/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/dm-14

B系统:

/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/dm-5

注:根据udev规则,获取新增盘的wwn号
multipath -l ——再次查看新增盘是否能显示,对比wwn号
注:扫描新增盘需要在A系统的两个节点上都执行,确保两个节点都能看到这块盘,A系统一节点的dm-42与二节点的dm47扫描出的盘号应一致,需要root用户执行。

创建ASM

根据udev规则,在99-asmdisk-udev.rules文件中添加以下内容:

A系统一节点:
vi /etv/udev/rules.d/99-asmdisk.rules
KERNEL =="dm-*", SUBSYSTEM=="block", PROGRAM==“/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="aaaaaaaaaa", NAME="asm_data23", OWNER="grid", GROUP="asmadmin", MODE="0660"
A系统2节点:
vi /etv/udev/rules.d/99-asmdisk.rules
KERNEL =="dm-*", SUBSYSTEM=="block", PROGRAM==“/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="aaaaaaaaaa", NAME="asm_data23", OWNER="grid", GROUP="asmadmin", MODE="0660"
#B系统:
vi /etv/udev/rules.d/99-asmdisk.rules
KERNEL =="dm-*", SUBSYSTEM=="block", PROGRAM==“/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="bbbbbbbbbb", NAME="asm_fra01", OWNER="grid", GROUP="asmadmin", MODE="0660"       -—为B系统系增FRA
B系统:vi /etv/udev/rules.d/99-asmdisk.rules
KERNEL =="dm-*", SUBSYSTEM=="block", PROGRAM==“/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="bbbbbbbbb1", NAME="asm_data07", OWNER="grid", GROUP="asmadmin", MODE="0660" 

注:注意正确填写盘的wwn号,以及创建盘的名称,需要root用户执行。

重启UDEV

重启udev,使之前的更改生效。
/sbin/start_udev
注:每个节点都需要重启udev,查看是否有报错,有报错应及时解决。
ls -al /dev/asm_*
查看有无识别到刚刚新增的ASM盘。
注:需要root用户执行。

磁盘扩容

在grdi用户下,首先检查磁盘当前的状态,确定新增磁盘在磁盘组中是否可以看到,检查当前磁盘容量

sqlplus / as sysasm
set lines 500;
col path for a40;
select name,path,total_mb,free_mb,state,header_status from v$asm_disk;
alter diskgroup DATA add disk/dev/asm_data23’ rebalance 4;

注:alter中的盘名和之前创建的一致,4表示并行,数据库繁忙时并行不宜太大,扩容之后会进行各个盘资源的平衡,需要一段时间

查看平衡进度

select * from v$asm_operation;

注:应时刻关注平衡进度,平衡完之后该视图中将查不到任何信息。

添加FRA

添加思路

扫描新增盘–根据udev规则创建ASM–重启udev—创建磁盘–修改归档策略

添加步骤

在之前的操作中,FRA的盘已经成功扫描出来,也就是说,“扫描新增盘–根据udev规则创建ASM–重启udev”这些步骤和之前的一致,为了方便,之前的磁盘扩容将FRA需要的盘已经成功做好了,因此,这里从创建磁盘开始。

创建磁盘

在grid用户下,检查各个磁盘状态。
在asmcmd窗口中,执行lsdg、lsct,查看磁盘组信息。

sqlplus / as sysasm
set lines 500;
col path for a40;
select name,path,total_mb,free_mb,state,header_status from v$asm_disk;
create disk group FRA external redundancy disk/dev/asm_fra01' attribute 'compatible.asm'='11.2','compatible.rdbms'='11.2';

注:几个重要的asm diskgroup参数:
1、 ACCESS_CONTROL.ENABLED 该属性用来控制某个disk group 上ASM FILE Access Control。 该参数有2个值:true 和false。 默认为false。 当这个参数设置为true。 那么就必须访问权限的控制才能访问disk group上的ASM FILES。 如果是false,那么任何用户都可以访问disk group上的文件。

--修改命令:
ALTER DISKGROUP XXX SET ATTRIBUTE 'access_control.enabled' = 'true';  

2、 COMPATIBLE.RDBMS 该属性用来指定disk group 最小能够兼容的数据库实例, 在修改这个参数之前,必须先确保所有的数据库实例的COMPATIBLE 参数大于等于该参数的值。
在Oracle 11g 数据库中,Oracle ASM disk group 的COMPATIBLE.RDBMS属性值默认是: 10.1

--查看命令: 
 SQL> set line 500;
SQL> col path for a30  ;
SQL> col value for a30  ;
SQL> select name,value from v$asm_attribute where group_number=1 and name like 'compatible%';  
--修改命令:  
SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.rdbms' = '11.2.0.0.0';  
    Diskgroup altered.  

3、 ACCESS_CONTROL.UMASK 该属性用来指定访问ASM 文件的权限,只能使用alert 命令修改。 该参数值包含3个数字:{0|2|6} {0|2|6} {0|2|6}. 默认是066。 0: 表示具有读写的权限 2: 表示只读的权限 6: 表示不能读写
修改命令: 在设置磁盘组ACCESS_CONTROL.UMASK属性之前,必须先确保ACCESS_CONTROL.ENABLED 参数设置为TRUE。 启用文件访问权限控制后,才能设置该参数。

SQL> alter diskgroup fra set attribute 'access_control.enabled' = 'true';  Diskgroup altered.  SQL> alter diskgroup fra set attribute 'access_control.umask' = 'XXX'; 
(若设置错误alert会报错)

4、COMPATIBLE.ASM 如果使用CREATE DISKGROUP 命令,或者ASMCMD的mkdg命令,或者OEM 来创建的disk group,那么参数的默认值就是10.1. 如果使用ASMCA来创建的,那么默认值就是11.2. 这个参数设置会影响磁盘上ASM metadata 的数据结构信息。 COMPATIBLE.ASM 属性决定能够使用对应disk group 的最小的Oracle ASM 实例 软件的版本。

--查看参数:
  SQL> select name,value from v$asm_attribute where group_number=1 and name like 'compatible%';  

5、 AU_SIZE AU_SIZE的值可以为如下单位: 1, 2, 4, 8, 16, 32, 和 64 MB。 该参数只能在创建disk group的时候指定,一旦指定了就不能在修改了。 在oracle 10g里面,对于较大的数据库,也是建议增加AU size,因为增加AU_SIZE 能够增加对文件的大小的限制。 在Oracle 11g,虽然默认值是1M,但是Oracle 建议将该值设置成4M。

--查看 AU_SIZE 大小。 
 SQL> select name, allocation_unit_size/1024/1024||'M' from v$asm_diskgroup;  

6、 DISK_REPAIR_TIME 在Oracle Database 11g以前,如果ASM磁盘的损坏,那就是一种灾难,即使你的ASM磁盘组是受Normal Redundancy或High Redundancy的保护。 因为在Oracle 10g中,损坏的ASM磁盘会马上offline,进而这个损坏的磁盘立刻会被Oracle drop掉。
为了避免这个问题,Oracle 在11g里引入了一个参数disk_repair_time,其默认值是3.6小时并且用户可以修改。 这个参数的单位可以是分钟(m or M)或者是小时(h or H)。 如果我们在指定属性时没有指定单位,那么默认单位是小时。 该属性只能通过ALTER 命令来进行修改。 当损坏的磁盘offline后,Oracle并不会马上将其drop,而是会等待参数disk_repair_time所表示的时间。
在这段时间内,Oracle会记录下对损坏的磁盘上的extent所做的修改,一旦这个offline的损坏的磁盘在disk_repair_time所表示的时间内重新online,则Oracle会将之前所记录的对这个磁盘上extent所做的修改重新同步到这块盘上,从而高效地同步了数据(因为这里只同步了offline后修改的extent上的数据),避免了极为耗时的重构全部数据的rebalance过程。 这个过程就是11g中的:快速镜像同步(Fast Mirror Reync),必须将磁盘组的COMPATIBLE.ASM的属性值设置大于11.1。
当出现disk 出现故障被offline 后,我们可以查看ASM_DISK视图的REPAIR_TIMER。 该列显示的是disk 被drop 之前的剩余时间,单位是秒。 一旦超过disk_repair_time指定的时间,disk 就会被drop 掉。那么我们就需要进行rebalance操作,而不能进行快速镜像同步。

--查看drop 之前的剩余时间:  
SQL> col name for a15  SQL>select disk_number,name,path,MODE_STATUS,REPAIR_TIMER from v$asm_disk where group_number=X;  

7、 SECTOR_SIZE SECTOR_SIZE 只能在创建diskgroup 时来指定。 该属性可以设置为512, 4096 或者4k。 具体的默认值由不同的平台决定。 只能在创建disk group 的时候进行设置,一般创建完成就不能修改。 传统的磁盘每个扇区512字节,随着磁盘容量的不断增大,继续使用512byte,不再是那么的合理, 于是将每个扇区512字节改为每个扇区4096 个字节,也就是现在常说的“4K扇区”。

--查看SECTOR_SIZE: 
 SQL> SELECT name, value FROM V$ASM_ATTRIBUTE WHERE name = 'sector_size' AND group_number = 1;  
如何修改:  不是所有的磁盘都支持SECTOR_SIZE值,如果要设置该属性,必须先确保物理磁盘的兼容性。  如果要修改sector size值,那么就必须确保disk group的COMPATIBLE.ASM 和 COMPATIBLE.RDBMS 属性值大于等于11.2

注意: Oracle Automatic Storage Management Cluster File System (Oracle ACFS) 不支持 4 KB sector drives.
注:磁盘组创建完成之后,应再次进行检查,查看相关资源,看是否创建成功。

修改归档策略

修改归档策略,主要是要修改归档存放路径,根据实际状况去决定如何修改该策略,在本次事件中,查看B系统的归档策略和spfile文件,发现归档策略指向的归档存放路径在+DATA中,因此,只用修改该归档策略,让该策略指向新建的FRA中即可。

sqlplus / as sysdba
create pfile=/home/oracle/spfilebak.ora' from spfile;
select * from v$parameter where name = 'db_recovery_file_dest';
select * from v$parameter where name = 'db_recovery_file_dest_size';
alter system set db_recovery_file_dest=‘+FRA' scope=both;
alter system set db_recovery_file_dest_size='1000G' scope=both;

注:创建的pfile文件可以查看当前数据库的相关策略,决定接下来如何去修改这个操作,v p a r a m e t e r 这 个 视 图 , 是 查 看 这 个 参 数 是 动 态 参 数 还 是 静 态 参 数 , 静 态 参 数 需 要 重 启 数 据 库 , 动 态 参 数 不 需 要 , v parameter这个视图,是查看这个参数是动态参数还是静态参数,静态参数需要重启数据库,动态参数不需要,v parametervparameter中的ISSYS_MODIFIABLE列中,IMMEDIATE表示动态参数,FALSEb表示静态参数,DEFERRED表示延迟参数,session下次连接有效,通过查看,都为动态参数,因此可以在线修改,不用重启数据库,scope=both,表示在内存中修改,并对当前的实例立即生效。因为之前的归档大小设置为800G,此次扩容之后,FRA盘有1T,因此将修改归档存放的大小至1T。
修改完之后,进行切换归档,测试看新产生的归档可否正常存放至新的路径下。
alter system switch logfile;
在FRA中查看是否有新归档日志生成。
有新的归档日志生成后,还要对旧的归档进行删除,清理过期归档!
注:硬盘扩容为高危操作,谨慎!谨慎!谨慎!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值