• Oracle 11G RAC For ASM 利用RMAN COPY进行存储迁移


    转载请注明出处


    一、需求背景

    客户数据库存储空间接近存满,需购置一台新的存储,进行数据迁移,客户允许少量停机时间。
    

    二、实施方法讨论

    • 利用ASM rebalance 进行迁移
      可以实现0宕机进行迁移,过程简单,但迁移时间周期太长。

    • 利用rman copy进行迁移
      需要少量停机时间,迁移时间短,过程复杂。

    结合客户的需求,最终采用的是rman copy进行存储迁移。

    三、实施项目步骤

    • 添加新ASM磁盘
    • 备份
    • 数据迁移
    • 删除原存储

    3.1 添加新ASM盘

    3.1.1 查询原ASM磁盘信息

    运行以下sql命令

    SET PAGES 1000
    SET LINES 1000
    COL PATH FOR A30
    SELECT A.GROUP_NUMBER,
           B.NAME ASM_NAME,
           A.NAME DISK_NAME,
           A.FAILGROUP,
           A.PATH,
           B.TYPE,
           A.TOTAL_MB,
           A.FREE_MB
      FROM V$ASM_DISK A, V$ASM_DISKGROUP B
     WHERE A.GROUP_NUMBER = B.GROUP_NUMBER;
    

    3.1.2 划分磁盘

    存储工程师安照需求划分存储,并采用多路径软件。
    
    略 
    

    3.1.3 绑定ASM 盘

    根据不同的操作系统,使用不同的方法进行绑定。
    
    绑定过程略
    

    3.2 备份

    备份包括ocr、votedisk
    

    3.2.1 备份ocr与votedisk

     # ocrconfig -manualbackup    --手工备份 (需root用户)
    
     # ocrconfig -showbackup      --查看备份
    
     # ocrconfig -restore <filename>  --恢复ocr
    

    11G 中只需只需上面的命令,就能同时备份ocr与vote

    3.3 数据迁移

    3.3.1 创建ASM Diskgroup

    利用asmca命令创建以下diskgroup:
    ocrdg                                        --存放ocr与vote
    newdata                                      --存放数据文件
    

    3.3.2 迁移ocr,vote

    添加ocr信息至ocrdg上(root用户)
    # ocrconfig -add  +OCRDG
    
    检查ocr
    # ocrcheck 
    
    查看votedisk信息(grid用户)
    $ crsctl query css votedisk
    
    迁移votedisk(grid用户)
    $ crsctl replace votedisk +OCRDG
    

    3.3.3 创建asm实例spfile至ocrdg上

    SQL> create pfile='/home/grid/asmspfile.ora' from spfile;
    SQL> create spfile='+OCRDG' from pfile='/home/grid/asmspfile.ora';

    3.3.4 迁移数据库文件至新磁盘上

    3.3.4.1 创建数据库spfile至newdata上

    SQL> create pfile='/home/oracle/orcl_pfile.ora' from spfile='+DATADG/orcl/spfileorcl.ora';
    SQL> create spfile='+NEWDATA' from pfile='/home/oracle/orcl_pfile.ora';

    3.3.4.2 查询数据文件信息

     SQL> select ''''||file_name||'''' from dba_data_files; 

    3.3.4.3 利用rman copy备份数据库

    $ vi rman_copy.sh
    
    
    ----------
    
    
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
    export ORACLE_SID=orcl1
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
    rman target / nocatalog log=/tmp/rman_copy.log<<EOF
    run{
    allocate channel c1 type disk;
    allocate channel c2 type disk;
    copy 
    datafile '+DATADG/orcl/datafile/system.259.874699969'   to '+NEWDATA',
    datafile '+DATADG/orcl/datafile/sysaux.260.874699995'   to '+NEWDATA',
    datafile '+DATADG/orcl/datafile/undotbs1.261.874700013' to '+NEWDATA',
    datafile '+DATADG/orcl/datafile/undotbs2.263.874700041' to '+NEWDATA',
    datafile '+DATADG/orcl/datafile/users.264.874700049'    to '+NEWDATA';
    }
    EOF
    
    rman target / nocatalog log=/tmp/rman_copy.log append <<EOF 
    copy current controlfile to '+NEWDATA';
    EOF
    
    --赋予执行权限
    $ chmod +x rman_copy.sh     

    3.3.4.4 拷贝控制文件,并确认控制文件新的存放位置

    ASMCD> cd +newdata/orcl/CONTROLFILE
    ASMCMD> ls 
    Backup.261.960651757
    ASMCMD> cp Backup.261.960651757 control01.dbf
    ASMCMD> cp Backup.261.960651757 control02.dbf

    3.3.4.5 修改spfile参数

    #control_files:
    SQL> alter system set control_files='+newdata/orcl/CONTROLFILE/control01.dbf','+newdata/orcl/CONTROLFILE/control02.dbf' scope=spfile;
    
    #db_create_file_dest
    SQL> alter system set db_create_file_dest='+NEWDATA' SCOPE=SPFILE;
    
    #archive:
    SQL> alter system set log_archive_dest_1='LOCATION=+NEWDATA'
    

    3.3.4.6 利用集群命令,更改数据库状态(oracle用户)

    停止数据库
    $ srvctl stop database -d orcl
    
    启动至mount状态
    $ srvctl start database -d orcl -o mount
    
    SQL> show parameter control_files
    

    3.3.4.7 rename数据库

    数据文件
    SQL> alter database rename file '+DATADG/orcl/datafile/sysaux.260.874699995' to '+newdata/orcl/datafile/SYSAUX.258.960651703';
    SQL> alter database rename file '+DATADG/orcl/datafile/system.259.874699969' to '+newdata/orcl/datafile/SYSTEM.256.960651621';
    SQL> alter database rename file '+DATADG/orcl/datafile/undotbs1.261.874700013' to '+newdata/orcl/datafile/UNDOTBS1.257.960651621';
    SQL> alter database rename file '+DATADG/orcl/datafile/undotbs2.263.874700041' to '+newdata/orcl/datafile/UNDOTBS2.259.960651707';
    SQL> alter database rename file '+DATADG/orcl/datafile/users.264.874700049' to '+newdata/orcl/datafile/USERS.260.960651735';
    
    temp文件
    SQL> alter database rename file '+DATADG/orcl/tempfile/temp.262.874700019' to '+newdata';
    

    3.3.4.8 recover 数据库

    $ rman target /
    RMAN> recover database;
    

    3.3.4.9 以open resetlogs方式打开数据库

    SQL> alter database open resetlogs;

    3.3.4.10 修改redo日志

    --增加redo日志组
    alter database add logfile thread 1 group 5 '+Newdata' size 50m;
    alter database add logfile thread 1 group 6 '+Newdata' size 50m;
    alter database add logfile thread 2 group 7 '+Newdata' size 50m;
    alter database add logfile thread 2 group 8 '+Newdata' size 50m;
    
    --删除redo日志组
    select GROUP#,status from v$log;
    
    当status状态为inactive和unused状态时可以删除。
    
    alter database drop logfile group 4;
    alter database drop logfile group 2;
    alter database drop logfile group 1;
    alter database drop logfile group 3;
    

    3.3.4.11 集群修改信息

    $ srvctl modify database -d orcl -n orcl -p +NEWDATA/orcl/spfileorcl.ora
    
    $ srvctl modify database -d orcl -n orcl -a NEWDATA

    3.3.4.12 以集群方式启动数据库

    $ srvctl stop database -d orcl
    $ srvctl start database -d orcl
    

    3.4 删除原存储

    --删除原OCR,vote磁盘组
    # ocrconfig -delete +CRSDG
    # ocrcheck
    确认信息
    # crsctl query css votedisk
    
    --dismount disk(每个节点)
    $ sqlplus / as sysasm
    SQL> ALTER DISKGROUP CRSDG DISMOUNT; 
    SQL> alter diskgroup DATADG dismount;
    
    --drop disk(任一节点执行)
    $ sqlplus / as sysasm
    SQL> drop diskgroup CRSDG force including contents;
    SQL> drop diskgroup DATADG force including contents;
    
    --delete resource(任一节点执行)
    $ crsctl delete resource ora.NEWOCR.dg
    $ crsctl delete resource ora.DATADG.dg
    
  • 相关阅读:
    118/119. Pascal's Triangle/II
    160. Intersection of Two Linked Lists
    168. Excel Sheet Column Title
    167. Two Sum II
    172. Factorial Trailing Zeroes
    169. Majority Element
    189. Rotate Array
    202. Happy Number
    204. Count Primes
    MVC之Model元数据
  • 原文地址:https://www.cnblogs.com/wanbin/p/9514725.html
Copyright © 2020-2023  润新知