一步一步教你更换 Oracle 11g RAC 共享存储

一步一步教你更换 Oracle 11g RAC 共享存储
原创 丑大狗 最后发布于2016-07-26 18:24:28 阅读数 6735 收藏
展开

该环境为本人测试环境,生产环境该方案仍可使用。
一、服务器上添加新存储,根据原来的裸设备绑定方式对裸盘进行绑定。

KERNEL=="sd*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB74b34d9d-2af737fa", NAME="newasm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"

这里使用的是scsi_id进行绑定的,因此新加的盘也使用该方法。

验证新存储绑定状态:

[root@hadoop01 rules.d]# ll /dev/new*
brw-rw----. 1 grid asmadmin 8, 32 Jul 26 11:32 /dev/newasm-diskb

老存储绑定状态:

[root@hadoop01 rules.d]# ll /dev/asm*
brw-rw----. 1 grid asmadmin 8, 16 Jul 26 11:34 /dev/asm-diskb

二、grid用户asmca创建磁盘组

newdata为新增的磁盘组。
三、迁移spfile&控制文件
3.1 srvctl stop database -d orcl关闭数据库。
3.2 添加控制文件到相应路径

先nomount数据库:

    SQL> startup nomount;
    ORACLE instance started.
     
    Total System Global Area 1603411968 bytes
    Fixed Size            2228784 bytes
    Variable Size         1090522576 bytes
    Database Buffers      503316480 bytes
    Redo Buffers            7344128 bytes



然后:

    [oracle@hadoop01 ~]$ rman target /
     
    Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jul 26 17:15:43 2016
     
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
     
    connected to target database: ORCL (not mounted)
     
    RMAN>  restore controlfile to '+NEWDATA' from '+data/orcl/controlfile/Current.260.918213121';
     
    Starting restore at 26-JUL-16
    using target database control file instead of recovery catalog
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: SID=36 instance=orcl1 device type=DISK
     
    channel ORA_DISK_1: copied control file copy
    Finished restore at 26-JUL-16
     
    RMAN> restore controlfile to '+NEWDATA' from '+data/orcl/controlfile/Current.260.918213121';
     
    Starting restore at 26-JUL-16
    using channel ORA_DISK_1
     
    channel ORA_DISK_1: copied control file copy
    Finished restore at 26-JUL-16

3.3 创建pfile,并修改其部分内容

    SQL> create pfile='/home/oracle/initorcl.ora' from spfile;
     
    File created.


修改控制文件位置:

*.control_files='+DATA/orcl/controlfile/current.261.918213119','+DATA/orcl/controlfile/current.260.918213121'

修改创建数据文件默认位置:

*.db_create_file_dest='+DATA'

修改快速回复区路径:

*.db_recovery_file_dest='+DATA'

如仍存在包含老磁盘组的参数一并修改掉。

修改完成的结果如下:

    orcl1.__db_cache_size=503316480
    orcl2.__db_cache_size=587202560
    orcl1.__java_pool_size=16777216
    orcl2.__java_pool_size=16777216
    orcl1.__large_pool_size=16777216
    orcl2.__large_pool_size=16777216
    orcl1.__pga_aggregate_target=654311424
    orcl2.__pga_aggregate_target=654311424
    orcl1.__sga_target=956301312
    orcl2.__sga_target=956301312
    orcl1.__shared_io_pool_size=0
    orcl2.__shared_io_pool_size=0
    orcl1.__shared_pool_size=369098752
    orcl2.__shared_pool_size=318767104
    orcl1.__streams_pool_size=33554432
    orcl2.__streams_pool_size=0
    *.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
    *.audit_trail='db'
    *.cluster_database=true
    *.compatible='11.2.0.0.0'
    *.control_files='+newdata/orcl/controlfile/current.256.918234967','+newdata/orcl/controlfile/current.257.918234949'
    *.db_block_size=8192
    *.db_create_file_dest='+NEWDATA'
    *.db_domain=''
    *.db_name='orcl'
    *.db_recovery_file_dest='+NEWDATA'
    *.db_recovery_file_dest_size=104856551424
    *.diagnostic_dest='/u01/app/oracle'
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
    orcl1.instance_number=1
    orcl2.instance_number=2
    *.log_archive_format='%t_%s_%r.dbf'
    *.memory_target=1605369856
    *.open_cursors=300
    *.processes=150
    *.remote_listener='hadoop-cluster:1521'
    *.remote_login_passwordfile='exclusive'
    orcl2.thread=2
    orcl1.thread=1
    orcl1.undo_tablespace='UNDOTBS1'
    orcl2.undo_tablespace='UNDOTBS2'



3.4 在rac中的一个节点(此处用一号结点)指定pfile启动数据库到mount状态以验证pfile正确定,创建spfile。

SQL> startup force mount pfile='/home/oracle/initorcl.ora';
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size            2228784 bytes
Variable Size         1090522576 bytes
Database Buffers      503316480 bytes
Redo Buffers            7344128 bytes
Database mounted.

mount成功,创建spfile

    SQL> create spfile='+newdata/orcl/spfileorcl.ora' from pfile='/home/oracle/initorcl.ora';
     
    File created.


3.5 srvctl修改数据库参数文件位置。

[oracle@hadoop01 ~]$ srvctl modify database -d orcl -p +newdata/orcl/spfileorcl.ora
[oracle@hadoop01 ~]$ srvctl config database -d orcl
Database unique name: orcl
Database name: orcl
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +newdata/orcl/spfileorcl.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: orcl
Database instances: orcl1,orcl2
Disk Groups: DATA,NEWDATA
Mount point paths:
Services:
Type: RAC
Database is administrator managed

3.6 关闭数据库用新的spfile以及controlfile启动一遍,验证正确性。

[oracle@hadoop01 ~]$ srvctl start database -d orcl
[oracle@hadoop01 ~]$
[oracle@hadoop01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 26 17:29:22 2016

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> show parameter spfile

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
spfile                     string     +NEWDATA/orcl/spfileorcl.ora
SQL> show parameter control

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time         integer     7
control_files                 string     +NEWDATA/orcl/controlfile/curr
                         ent.256.918234967, +NEWDATA/or
                         cl/controlfile/current.257.918
                         234949


四、迁移数据文件

保证数据库处于归档模式。rman进行backup as copy 操作

[oracle@hadoop01 ~]$ rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jul 26 17:32:21 2016

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1445993855)

RMAN> backup as copy database format '+NEWDATA';

Starting backup at 26-JUL-16
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=53 instance=orcl1 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=+DATA/orcl/datafile/system.256.918213045
output file name=+NEWDATA/orcl/datafile/system.260.918235957 tag=TAG20160726T173235 RECID=2 STAMP=918235979
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=+DATA/orcl/datafile/sysaux.257.918213045
output file name=+NEWDATA/orcl/datafile/sysaux.261.918235981 tag=TAG20160726T173235 RECID=3 STAMP=918236002
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=+DATA/orcl/datafile/example.267.918213155
output file name=+NEWDATA/orcl/datafile/example.262.918236007 tag=TAG20160726T173235 RECID=4 STAMP=918236019
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=+DATA/orcl/datafile/undotbs1.258.918213045
output file name=+NEWDATA/orcl/datafile/undotbs1.263.918236023 tag=TAG20160726T173235 RECID=5 STAMP=918236026
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile file number=00006 name=+DATA/orcl/datafile/undotbs2.268.918213341
output file name=+NEWDATA/orcl/datafile/undotbs2.264.918236029 tag=TAG20160726T173235 RECID=6 STAMP=918236030
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile copy
copying current control file
output file name=+NEWDATA/orcl/controlfile/backup.265.918236033 tag=TAG20160726T173235 RECID=7 STAMP=918236034
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=+DATA/orcl/datafile/users.259.918213045
output file name=+NEWDATA/orcl/datafile/users.266.918236035 tag=TAG20160726T173235 RECID=8 STAMP=918236035
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 26-JUL-16
channel ORA_DISK_1: finished piece 1 at 26-JUL-16
piece handle=+NEWDATA/orcl/backupset/2016_07_26/nnsnf0_tag20160726t173235_0.267.918236037 tag=TAG20160726T173235 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 26-JUL-16

srvctl stop database -d orcl -o immediate

[oracle@hadoop01 ~]$ srvctl stop database -d orcl -o immediate
[oracle@hadoop01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 26 17:35:54 2016

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup mount
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size            2228784 bytes
Variable Size         1090522576 bytes
Database Buffers      503316480 bytes
Redo Buffers            7344128 bytes
Database mounted.
SQL> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
[oracle@hadoop01 ~]$ rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jul 26 17:36:28 2016

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1445993855, not open)

RMAN> switch database to copy;

using target database control file instead of recovery catalog
datafile 1 switched to datafile copy "+NEWDATA/orcl/datafile/system.260.918235957"
datafile 2 switched to datafile copy "+NEWDATA/orcl/datafile/sysaux.261.918235981"
datafile 3 switched to datafile copy "+NEWDATA/orcl/datafile/undotbs1.263.918236023"
datafile 4 switched to datafile copy "+NEWDATA/orcl/datafile/users.266.918236035"
datafile 5 switched to datafile copy "+NEWDATA/orcl/datafile/example.262.918236007"
datafile 6 switched to datafile copy "+NEWDATA/orcl/datafile/undotbs2.264.918236029"

RMAN>

switch完成后一定要recover一下

[oracle@hadoop01 ~]$ rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jul 26 17:40:51 2016

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1445993855, not open)

RMAN> recover database;

Starting recover at 26-JUL-16
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=35 instance=orcl1 device type=DISK

starting media recovery
media recovery complete, elapsed time: 00:00:02

Finished recover at 26-JUL-16

RMAN> exit


Recovery Manager complete.


然后srvctl方式启动数据库。

[oracle@hadoop01 ~]$ srvctl start database -d orcl
五、迁移临时文件

查看临时表空间

select * from dba_tablespaces where contents = 'TEMPORARY';



查看临时文件

select * from V$TEMPFILE;



为临时表空间添加临时文件

    SQL> alter tablespace temp add tempfile size 18M;
     
    Tablespace altered.
     

由于db_create_file_dest参数设置为+newdata,所以新临时文件会自动创建在newdata磁盘组上

删除老存储上的临时文件。

    [oracle@hadoop01 ~]$ sqlplus / as sysdba
     
    SQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 26 17:50:16 2016
     
    Copyright (c) 1982, 2011, Oracle.  All rights reserved.
     
     
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
    Data Mining and Real Application Testing options
     
    SQL> alter tablespace temp add tempfile size 18M;
     
    Tablespace altered.
     
    SQL> ALTER DATABASE TEMPFILE '+DATA/orcl/tempfile/temp.266.918213143' DROP INCLUDING DATAFILES;
     
    Database altered.


六、迁移online redo log

    ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 5 SIZE 50M;
     
    ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 6 SIZE 50M;
     
    ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 7 SIZE 50M;
     
    ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 8 SIZE 50M;
     
    ALTER DATABASE DROP LOGFILE GROUP 1;
     
    ALTER DATABASE DROP LOGFILE GROUP 2;
     
    ALTER DATABASE DROP LOGFILE GROUP 3;
     
    ALTER DATABASE DROP LOGFILE GROUP 4;


遇到在线日志或未回档的日志采用如下命令:

alter system switch logfile;

alter system checkpoint;

七、迁移OCR&voting disk&ASM spfile

[root@hadoop01 ~]# crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   4b1a5effbe514f46bfd6a45c20c06935 (/dev/asm-diskb) [DATA]
Located 1 voting disk(s).
[root@hadoop01 ~]# crsctl replace votedisk +newdata
Successful addition of voting disk 350eddf550034f2bbfb890dd05d80ed0.
Successful deletion of voting disk 4b1a5effbe514f46bfd6a45c20c06935.
Successfully replaced voting disk group with +newdata.
CRS-4266: Voting file(s) successfully replaced
[root@hadoop01 ~]# crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   350eddf550034f2bbfb890dd05d80ed0 (/dev/newasm-diskb) [NEWDATA]
Located 1 voting disk(s).


voting disk 迁移完成。

[root@hadoop01 ~]# ocrcheck
Status of Oracle Cluster Registry is as follows :
     Version                  :          3
     Total space (kbytes)     :     262120
     Used space (kbytes)      :       2864
     Available space (kbytes) :     259256
     ID                       : 1844481808
     Device/File Name         :      +DATA
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

     Cluster registry integrity check succeeded

     Logical corruption check succeeded

[root@hadoop01 ~]# ocrconfig -add +newdata
[root@hadoop01 ~]# ocrconfig -delete +data
[root@hadoop01 ~]# ocrcheck
Status of Oracle Cluster Registry is as follows :
     Version                  :          3
     Total space (kbytes)     :     262120
     Used space (kbytes)      :       2864
     Available space (kbytes) :     259256
     ID                       : 1844481808
     Device/File Name         :   +newdata
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

     Cluster registry integrity check succeeded

     Logical corruption check succeeded


OCR迁移完成。

如遇到CRS-4602,CRS-1638  错误,传送门-->http://blog.csdn.net/u011478909/article/details/51972303

SQL> create pfile='/tmp/pfile.asm' from spfile;

File created.

SQL>  create spfile='+NEWDATA' from pfile='/tmp/pfile.asm';

File created.


八、卸载老磁盘组
asmca dismount +data磁盘组 然后将其drop


至此,oracle rac存储更换完成
————————————————
版权声明:本文为CSDN博主「丑大狗」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011478909/article/details/52034184

原文地址:https://www.cnblogs.com/yaoyangding/p/12795363.html