记 一次asm磁盘组数据迁移案例
FC-Barcelona 2018-02-07 22:13:46 164 收藏
展开
前 言
数据库在添加数据文件时报错: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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战