风影子
作者风影子·2011-09-08 15:25
数据库管理员·深圳

HACMP+ORACLE 10G RAC环境下磁盘阵列扩容实施

字数 19808阅读 8188评论 12赞 9
      某一项目中的历史数据库环境为
      操作系统:AIX 6.1    双机软件:HACMP    磁盘阵列:IBM DS4800(裸存储容量300GB×5416.2TB) 数据库:ORACLE 10G RAC
    数据文件使用裸设备,用途做为生产数据库的备库,使用DATAGUARD与生产库使用物理STANDBY的方式同步。
   
    但现在的问题是磁盘阵列仅划分了1.6T的空间,在系统运行两年后空间已基本使用完,用户要求将历史磁盘阵列再划分些空间出来供历史数据库服务器使用。
 
    接到这个任务感觉还是有点没底,阵列划分跟映射倒不是什么问题,只是HACMP这玩意我一直都没去研究过,每次都只是会启动和停止,如何让新增的空间通过hacmp共享出来供oracle使用呢,对数据库会不会有什么意想不到的影响呢?不会把数据搞丢吧?
 
    但想到反正是个历史库又不是生产库,历史库的数据库和DATAGUARD也是我自己实施的,这么一想觉得也没什么大不了的,难得有这么次练手机。
 
     因为对AIX的学习还是很基础,几乎都是到要用的时候从网上查一把加上平时或多或少的自己使用些做些记录,或是看到别人敲一些自己不知道的命令时做下记录,这样一路下来倒也是每次都能应付过关。查了一下这次操作大概要用到varyonvg、varyoffvg、extendvg、importvg等这几个命令,这几个我有看到过别人使用过,大致也知道意思,就是自己没用过,在我看来自己没用过的东西就存在风险,得小心小心再小心,于是又从网上查了一下这几个命令的用法,最终还是完成了任务,但期中也遇到不少问题,下面就记录一下大致过程
 
一、磁盘阵列划分建逻辑盘并映射到两台主机
     通过到现场查看,发现整个阵列做了6个RAID 5+1并配备两块hot盘,目前只有其中的一个RAID组大概1.6T左右空间映射到服务器使用。马上将其中的三个RAID组共计6T左右建逻辑盘并映射到两台主机,另两个RAID组约5T左右,仍不使用,以备以后的不时之需。操作完后在主机用cfgmgr识别一下
          停了HACMP软件和oracle的crs服务,在操作系统中查看一下看是否识别到了,发现两台都已识别到,且两边信息一致
# lspv
hdisk0          00c9eb642f01d1db                    rootvg          active
hdisk1          00c9eb64d4336974                    rootvg          active
hdisk2          00c9eb6472209e77                    datavg          concurrent
hdisk3          none                                None           
hdisk4          none                                None           
hdisk5          none                                None
# mpio_get_config -Av
Frame id 0:
    Storage Subsystem worldwide name: 60ab80047b7aa00004b21771b
    Controller count: 2
    Partition count: 1
    Partition 0:
    Storage Subsystem Name = ''
        hdisk      LUN #   Ownership          User Label
        hdisk2         0   A (preferred)      1
        hdisk3         1   B (preferred)      data4
        hdisk4         2   A (preferred)      data3
        hdisk5         3   B (preferred)      data2
 
二、共享新划分的空间
大致步骤
A机与B机
chdev -l hdisk3 -a pv=yes
chdev -l hdisk4 -a pv=yes
chdev -l hdisk5 -a pv=yes
A机
varyonvg datavg
extendvg datavg hdisk3 hdisk4 hdisk5
/oracle/product/10.2.0/crs_1/bin/crsctl stop crs
varyoffvg datavg
exportvg datavg
B机
exportvg datavg
importvg -y datavg hdisk2
A机
importvg -y datavg hdisk2
A机、B机
chown -R oracle:dba /dev/rlv*
chown -R oracle:dba /dev/rVOT*
chown -R oracle:dba /dev/rOCR*
chown -R oracle:dba /dev/racc*
chown -R oracle:dba /dev/rtivoli*
chown -R oracle:dba /dev/rhdisk*
chown -R oracle:dba /dev/rfte*
A机、B机
smitty clstart
 
具体如下:
1、给硬盘指定PVID号
    记得是chdev命令,但老不记得具体命令,于是上网查,发现自己太依赖网络了
A机与B机都要执行
chdev -l hdisk3 -a pv=yes
chdev -l hdisk4 -a pv=yes
chdev -l hdisk5 -a pv=yes
# lspv
hdisk0          00c9eb642f01d1db                    rootvg          active
hdisk1          00c9eb64d4336974                    rootvg          active
hdisk2          00c9eb6472209e77                    datavg         
hdisk3          00c9eb643dc0f744                    None           
hdisk4          00c9eb643dc15113                    None           
hdisk5          00c9eb643dc1649f                    None         
 
2、在A机激活DATAVG卷组并将新识别到的磁盘加入DATAVG卷组
A机
varyonvg datavg
# varyonvg datavg
0516-034 varyonvg: Failed to open VG special file. Probable cause
is the VG was forced offline. Execute the varyoffvg and varyonvg
报错了,死活激活不了,在两个节点都执行lsvg -o
# lsvg -o
datavg
rootvg
但lspv看的时候都没有激活啊,真见鬼了,反复看了hacmp好像都停了,最后没法重启两台服务器,一切都恢复正常了
# lsvg -o
rootvg
# varyonvg datavg
# lsvg -o
datavg
rootvg
# extendvg datavg hdisk3 hdisk4 hdisk5
# lspv
hdisk0          00c9eb642f01d1db                    rootvg          active
hdisk1          00c9eb64d4336974                    rootvg          active
hdisk2          00c9eb6472209e77                    datavg          active
hdisk3          00c9eb643dc0f744                    datavg          active
hdisk4          00c9eb643dc15113                    datavg          active
hdisk5          00c9eb643dc1649f                    datavg          active
 
3、使A机DATAVG卷组离线
# varyoffvg datavg
# lspv          
hdisk0          00c9eb642f01d1db                    rootvg          active
hdisk1          00c9eb64d4336974                    rootvg          active
hdisk2          00c9eb6472209e77                    datavg         
hdisk3          00c9eb643dc0f744                    datavg         
hdisk4          00c9eb643dc15113                    datavg         
hdisk5          00c9eb643dc1649f                    datavg         
 
4、在A机从系统中删除datavg的VG的信息
# exportvg datavg
# lsvg -o
rootvg
 
5、在B机从系统中删除VG的信息
# exportvg datavg

6、在B机导入datavg的VG信息

# importvg datavg
0516-082 lqueryvg: Unable to access a special device file.
         Execute redefinevg and synclvodm to build correct environment.
0516-082 lqueryvg: Unable to access a special device file.
         Execute redefinevg and synclvodm to build correct environment.
0516-1140 importvg: Unable to read the volume group descriptor area
        on specified physical volume.
# importvg -y datavg hdisk2

# lspv
hdisk0          00c9ea74d434de8f                    rootvg          active
hdisk1          00c9ea742f1766a9                    rootvg          active
hdisk2          00c9eb6472209e77                    datavg         
hdisk3          00c9eb643dc0f744                    datavg         
hdisk4          00c9eb643dc15113                    datavg         
hdisk5          00c9eb643dc1649f                    datavg         

7、在A机导入datavg的VG信息

# importvg -y datavg hdisk2
datavg
0516-783 importvg: This imported volume group is concurrent capable.
        Therefore, the volume group must be varied on manually.
# lspv
hdisk0          00c9eb642f01d1db                    rootvg          active
hdisk1          00c9eb64d4336974                    rootvg          active
hdisk2          00c9eb6472209e77                    datavg         
hdisk3          00c9eb643dc0f744                    datavg         
hdisk4          00c9eb643dc15113                    datavg         
hdisk5          00c9eb643dc1649f                    datavg 

8、在A机与B机更改ORACLE相关设备的属主

    这一步一开始是不知道的,在上面步骤完成后启动hacmp,发现两个节点的datavg卷组已经共享了,但oracle数据库死活启动不起来,查看alert日志发现有

Errors in file /oracle/product/10.2.0/admin/his/bdump/his1_mrp0_1024144.trc:
ORA-01110: data file 18: '/dev/rftelogdata001'
ORA-01157: cannot identify/lock data file 18 - see DBWR trace file
ORA-01110: data file 18: '/dev/rftelogdata001'

再一看这些数据文件的属主发现全变为root:system了,于是才有了此步

# ls -l /dev/rlv*
crw-rw----    1 root     system       49, 64 Sep 06 17:15 /dev/rlvaccdata001
crw-rw----    1 root     system       49,  6 Sep 06 17:14 /dev/rlvaccdata002
crw-rw----    1 root     system       49,  7 Sep 06 17:14 /dev/rlvaccdata003

A机、B机
chown -R oracle:dba /dev/rlv*
chown -R oracle:dba /dev/rVOT*
chown -R oracle:dba /dev/rOCR*
chown -R oracle:dba /dev/racc*
chown -R oracle:dba /dev/rtivoli*
chown -R oracle:dba /dev/rhdisk*
chown -R oracle:dba /dev/rfte*

9、启动HACMP


A机、B机
smitty clstart

# lspv
hdisk0          00c9eb642f01d1db                    rootvg          active
hdisk1          00c9eb64d4336974                    rootvg          active
hdisk2          00c9eb6472209e77                    datavg          concurrent
hdisk3          00c9eb643dc0f744                    datavg          concurrent
hdisk4          00c9eb643dc15113                    datavg          concurrent
hdisk5          00c9eb643dc1649f                    datavg          concurrent

10、启动RAC CRS并检查数据库并启动同步

A、B两节点

/oracle/product/10.2.0/crs_1/bin/crsctl start crs

$ crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora.his.db     application    OFFLINE   OFFLINE              
ora....s1.inst application    OFFLINE   OFFLINE              
ora....s2.inst application    OFFLINE   OFFLINE              
ora....01.lsnr application    ONLINE    ONLINE    his01      
ora.his01.gsd  application    ONLINE    ONLINE    his01      
ora.his01.ons  application    ONLINE    ONLINE    his01      
ora.his01.vip  application    ONLINE    ONLINE    his01      
ora....02.lsnr application    ONLINE    ONLINE    his02      
ora.his02.gsd  application    ONLINE    ONLINE    his02      
ora.his02.ons  application    ONLINE    ONLINE    his02      
ora.his02.vip  application    ONLINE    ONLINE    his02   

# su - oracle
$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Tue Sep 6 17:45:05 2011

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

idle> shutdown immediate;
ORA-01507: database not mounted


ORACLE instance shut down.
idle> startup mount
ORACLE instance started.

Total System Global Area 1.6777E+10 bytes
Fixed Size                  2113472 bytes
Variable Size            1.1560E+10 bytes
Database Buffers         5200936960 bytes
Redo Buffers               14663680 bytes
Database mounted.
idle> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

Database altered.

idle> select recovery_mode from v$archive_dest_status where dest_id=2;

RECOVERY_MODE
-----------------------
MANAGED REAL TIME APPLY

 

 

 

 

 


 
 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

9

添加新评论12 条评论

猛禽一号猛禽一号数据库管理员wois
2016-04-15 10:17
学习下,以后能用到。
yszw0817yszw0817存储架构师北京
2012-05-25 15:31
yuanyi: 不错,不过ASM如何实现呢?还不是很懂
他这是RAW的吧。没有ASM。用了ASM直接加在ASM卷组里。要简单很多。
cclljiancclljian系统工程师ygnet
2011-11-16 23:16
很好的经历,值得学习。。。
flm20080704flm20080704系统工程师XXXX
2011-11-09 11:23
这个好,我要好好学习下
wjxiaoitwjxiaoit系统工程师SGC
2011-11-09 10:15
顶。。
aixkevinaixkevin存储工程师某公司
2011-10-31 09:13
过来学习一下。
yuanzhichinayuanzhichina行政办公室工作人员北京远志宏达科技发展有限公司
2011-10-26 14:11
顶,不错
zhenzongjianzhenzongjian软件开发工程师na
2011-10-19 16:51
不错。。ding
yuanyiyuanyi软件开发工程师昆明市
2011-10-13 10:38
不错,不过ASM如何实现呢?还不是很懂
风影子风影子数据库管理员深圳
2011-09-29 22:56
kkuaix01: 是历史库,数据量应该不大,可以在线做的呀,你这样做,对RAC只有坏处没有好处。
历史库目前和生产库是同步着的,数据量不小啦。能允许停机的情况下为什么要在线做呢,为什么在线做对RAC反而有好处?
kkuaix01kkuaix01软件开发工程师中软巨人
2011-09-29 16:03
是历史库,数据量应该不大,可以在线做的呀,你这样做,对RAC只有坏处没有好处。
signmesignme系统管理员guangxi
2011-09-26 00:36
很好的经历,留下脚印
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广