zoukankan      html  css  js  c++  java
  • 记 一次asm磁盘组数据迁移案例

    记 一次asm磁盘组数据迁移案例
    原创 FC-Barcelona 最后发布于2018-02-07 22:13:46 阅读数 162 收藏
    展开
    前     言

    数据库在添加数据文件时报错:ORA-01119,ORA-17520,ORA-00600错误,根据报错无法判断故障点,而且生产库无法进行其他测试,比较稳妥的办法是新建一个磁盘组,将现有的数据迁移到新的磁盘组上。
    环境介绍

    操作系统:solaris 11

    数据库版本:11.2.0.4

    数据库架构:rac

    数据存储格式:asm
    处理过程

    1.备份数据库和控制文件

    #su - oracle

    $rman target /

    RMAN>backup full database format '/backdb/full2018.bak';

    RMAN>backup current controlfile format '/backdb/ctrlbak.ctl';

    2.存储划分磁盘给服务器,共划分4个500g 的磁盘,并分别在两个节点上修改磁盘的属性,操作如下:

    chown -R grid:asmadmin  /dev/rdsk/c0t600B342E749A659D6C27D56DFD0000DAd0s6

    chown -R grid:asmadmin  /dev/rdsk/c0t600B342723B68C4D0579DDA8BD0000DAd0s6

    chown -R grid:asmadmin  /dev/rdsk/c0t600B342946F4D73DF125D36CED0000DAd0s6

    chown -R grid:asmadmin  /dev/rdsk/c0t600B34251924A80D46C1DAC5AD0000DAd0s6

    chmod -R 660  /dev/rdsk/c0t600B342E749A659D6C27D56DFD0000DAd0s6

    chmod -R 660  /dev/rdsk/c0t600B342723B68C4D0579DDA8BD0000DAd0s6

    chmod -R 660  /dev/rdsk/c0t600B342946F4D73DF125D36CED0000DAd0s6

    chmod -R 660  /dev/rdsk/c0t600B34251924A80D46C1DAC5AD0000DAd0s6

    3.使用图像化界面创建磁盘组NEWDATA

    #su - grid

    $asmca



    查看磁盘组状态正常:

    $crsctl stat res -t

    4.修改CONTROLFILE在参数文件中记录的位置

    #su - oracle

    $sqlplus / as sysdba

    SQL>alter system set control_files='+NEWDATA/control01.ctl' scope=spfile;

    5.备份、恢复控制文件

    #su - oracle

    $rman target /

    $backup current controlfile format '/export/controlfile.ctl';

    省略输出结果。。。。。。

    关闭数据库并启动到nomount状态

    >shutdown immediate

    >startup nomount

    恢复控制文件

    #su - oracle

    $rman target /

    RMAN>restore controlfile from '/export/controlfile.ctl';

    省略输出结果。。。。。。

    数据库启动到mount状态

    $sqlplus / as sysdba

    >alter database mount

    6.迁移数据文件到 NEWDATA

    #su - oracle

    $rman target /

    >backup as copy database format '+NEWDATA';

    省略输出结果。。。。。。

    迁移单独的数据文件

    RMAN>switch database to copy;

    省略输出结果。。。。。。

    应用online redo log 使数据文件同步

    RMAN> RECOVER database;

    打开数据库并重置日志

    RMAN>alter database open resetlogs;

    7.新建online redo logfile,并删除原来磁盘组上的online redo log

    >alter database add logfile thread 1 group 4 ('+NEWDATA/ORCL/ONLINELOG/redo04.log') size 512m;

    >alter database drop logfile group 1;

    为全部列出。。。。。。

    8.新建temp表空间,并删除原临时表空间

    >alter tablespace temp add tempfile'+NEWDATA' size 10g;

    >select name from v$tempfile;

    >alter tablespace temp drop tempfile '原有的临时表空间';

    9.创建spfile ,修改参数文件

    >create pfile='/backdb/new.pfile' from sefile;

    >create spfile='+NEWDATA/ORCL/spfileorcl.ora' from pfile='/backdb/new.pfile';

    10.测试添加数据文件

    >alter tablespace kkk add datafile '+DATA' size 30g;

    11.备份控制文件

    >shutdown immediate

    >startup no mount

    $rman target /

    RMAN>restore controlfile to 'NEWDATA/control02.ctl' from '+NEWDATA/controlfile01.ctl';

    RMAN>restore controlfile to 'NEWDATA/control03.ctl' from '+NEWDATA/controlfile01.ctl';

    12删除原磁盘组

    #su - grid

    $sqlplus / as sysasm

    >alter diskgroup 原磁盘组 dismount;

    >drop diskgroup 原磁盘组;

    ⚠️ 删除前一定要和开发人员确认应用无误后再删除。
    ————————————————
    版权声明:本文为CSDN博主「FC-Barcelona」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/FC_BarceIona/article/details/79279384

  • 相关阅读:
    sql server 的语句形式
    restful规范
    sql server 相对应的增删改查以及表的创建及修改
    简单介绍函数sorted
    简单介绍sql server
    Python中三种格式化输出的方式
    基于socket 数据传输的粘包问题
    Python socket 套接字实现通信
    Dapr-状态管理
    Dapr-服务调用
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/12793250.html
Copyright © 2011-2022 走看看