XX系统存放oracle数据文件的DATA磁盘组空间因为开发方新上线业务,造成原有数据库表空间较为紧张,应业务开发方要求,为了适应未来的数据增长要求,需要扩容。
此方案为数据库扩容常规标准步骤,无需专门测试,但是,在数据库存储扩容前,为防止变更操作带来的风险,需要对数据库数据作备份,以防万一出现问题时做回退恢复。
在实施存储扩容变更操作时,由于是底层磁盘阵列和操作系统的标准化操作,为了防止 操作失误,必须一人操作,另一人在旁监督检查,并且分步确认,步步把关,确保万无一失。
DATA磁盘组扩容:
在DS5300存储RAID10组中划分新的2个300G的LUN并添加到DATA磁盘组给XX集群数据库使用,RAID10组剩余的空间可以留给以后扩容或其他用途使用。
系统名称:XX系统;主机:两台IBM P750小型机;操作系统:AIX 6.1;
存储:1套IBM DS5300;数据库:ORACLE RAC 11.2.0.3.0;
2013年11月。
略
原有数据库需要作数据作RMAN备份;
连接到存储DS5300划分LUN,并加载到主机;
主机扫描识别,修改属性及权限;
ASM存储DATA磁盘组增加disk扩容;
检查数据库和应用。
步骤 | 花费时间 | 备注 |
1. 数据库数据备份 | 60分钟 |
|
2. 连接到存储DS5300 |
|
|
3. 创建LUN |
|
|
4. 将LUN加载到主机 |
|
|
5. 主机扫描新划分的磁盘 |
|
|
6. 修改盘符属性 |
|
|
7. 修改磁盘所有者及权限 |
|
|
8. 查看当前ASM空间使用情况 |
|
|
9. 为DATA磁盘组扩容 |
|
|
在数据库存储扩容前,为防止变更操作风险,需要对数据库数据作备份,以防万一。
在实施存储扩容变更操作时,由于是底层磁盘阵列和操作系统的标准化操作,为了防止 操作失误,必须一人操作,另一人在旁监督检查,并且分步确认,步步把关,确保万无一失。
在数据库服务器节点2上通过RMAN对数据库做全备份,历时约60分钟。
具体步骤如下:
以root用户创建备份用的目录,并更改所有者等;
#mkdir -p /backup/20131122
#chown -R oracle:dba /backup/
以oracle用户创建rman备份用的脚本,并赋权限:
#su - oracle
$cd /backup/20131122
$vi rmanbackup.sh
$chmod 744 rmanbackup.sh
RMAN全备份脚本rmanbackup.sh内容:
run{
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
allocate channel ch3 device type disk;
backup as compressed backupset full database format '/backup/20131122/db_%U_%d' tag="full" spfile include current controlfile;
sql 'alter system archive log current';
change archivelog all crosscheck;
backup as compressed backupset archivelog all format '/backup/20131122/arch_%t_%s' tag="archivelog";
release channel ch1;
release channel ch2;
release channel ch3;
}
使用脚本做RMAN备份,通过参数cmdfile指定命令文件,使用log指定日志文件:
nohup rman target / cmdfile=/backup/20131122/rmanbackup.sh log=/backup/20131122/rmanbackup.log &
将本机设置为192.168.128.XX(不要跟存储控制器的管理ip有冲突),通过集线器,连接到IBM DS5300存储的两个控制器的管理口,SPA(192.168.128.101)和SPB(192.168.128.102),在本机ping两个管理口地址,是否能ping通。
如果两个控制器管理IP均可以ping通,然后使用IBM的storage manager客户端连接到存储。
参照目前DS5300存储划分给DATA磁盘组的LUN大小,为了保证数据库存储层面的性能稳定性,这次扩容在DS5300存储RAID10组中新创建2个300G的LUN,DATA_0005- DATA_0013。
点击RAID10组(array2),查看此raid组剩余空间为1.5TB,右键点击RAID10组的free capacity,选择create logical drive,创建一个LUN;等到上一个创建完成后,继续创建下一个。
注意:在新建LUN时,选择自定义,选择将LUN分配给数据库使用,其他使用默认设置。
将刚刚创建的几个LUN加载到数据库的主机组里,映射,后台同步。
以root用户执行操作,主机扫描新划分的磁盘:
(1)登录数据库服务器节点1,使用cfgmgr命令,扫描一下新盘,然后通过lspv命令,查看扫描到的硬盘:
# lspv
# cfgmgr
# lspv
hdisk18 none None
hdisk19 none None
(2)登录数据库服务器节点2,使用cfgmgr命令,扫描一下新盘,然后通过lspv命令,查看扫描到的硬盘:
# lspv
# cfgmgr
# lspv
hdisk18 none None
hdisk19 none None
注意:要确保数据库的两个节点扫描到的盘符一致。
以root用户登录数据库服务器节点1,修改盘符属性:
# chdev -l hdisk18 -a reserve_policy=no_reserve
# chdev -l hdisk19 -a reserve_policy=no_reserve
以root用户登录数据库服务器节点2,修改盘符属性:
# chdev -l hdisk18 -a reserve_policy=no_reserve
# chdev -l hdisk19 -a reserve_policy=no_reserve
以root用户登录数据库服务器节点1,修改磁盘所有者及权限:
#cd /dev
#ls -l rhdisk*
#chown grid:dba /dev/rhdisk18
#chown grid:dba /dev/rhdisk19
#chmod 660 /dev/rhdisk18
#chmod 660 /dev/rhdisk19
#ls -l rhdisk*
以root用户登录数据库服务器节点2,修改磁盘所有者及权限:
#cd /dev
#ls -l rhdisk*
#chown grid:dba /dev/rhdisk18
#chown grid:dba /dev/rhdisk19
#chmod 660 /dev/rhdisk18
#chmod 660 /dev/rhdisk19
#ls -l rhdisk*
================================================================
说明:以下步骤(3.8-3.9)只在节点1上操作即可:
登录到数据库服务器节点1,以grid用户查看ASM磁盘组空间情况:
#su - grid
$ asmcmd
ASMCMD> lsdg
登录到数据库服务器节点1,查看asm_power_limit参数值,并调大为10,以加快后台ASM动态平衡速度:
说明:
以下如无特殊说明,均由grid用户操作;
此步骤调整asm_power_limit参数值必须是ASM类型实例下操作,否则报错ORA-15021
su - grid
sqlplus / as sysdba
show parameter asm_power_limit
alter system set asm_power_limit=10 sid= '*' scope=both;
show parameter asm_power_limit
查看磁盘组使用情况及磁盘名称和路径:
select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;
select name,path from v$asm_disk;
将新增加的磁盘依次添加到DATA磁盘组:
说明:此处必须以sysasm身份操作,否则报错ORA-15032和ORA-15260,这是oracle 11G ASM磁盘管理上的一个改进。
(参考)
http://www.oracle.com/technetwork/cn/articles/sql/11g-asm-094058-zhs.html
sqlplus / as sysasm
alter diskgroup DATA add disk '/dev/rhdisk18';
alter diskgroup DATA add disk '/dev/rhdisk19';
col name for a10
col path for a30
select name,path from v$asm_disk;
将当前的diskgroup组的rebalance速度修改为10:
alter diskgroup DATA rebalance power 10;
查看重新平衡需要的时间:
select operation,est_minutes from v$asm_operation;
select name,path from v$asm_disk;
select operation,est_minutes from v$asm_operation;
添加完毕并且重新平衡完成后,恢复到平衡速率为1,并调整参数为1:
alter diskgroup DATA rebalance power 1;
alter system set asm_power_limit=1 sid=’*’ scope=both;
查看ASM磁盘组空间情况:
SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;
================================================================
检查集群数据库和应用是否正常。
(1)检查集群数据库是否正常:
检查集群状态(grid用户):
crs_stat -t
crsctl check crs
ocrcheck
检查数据库集群两个节点告警日志是否有报错
检查结果:正常
(2)开发方人员检查检查应用是否正常
检查结果:正常
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21256317/viewspace-1061713/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21256317/viewspace-1061713/