1、登陆+ASM实例查看ASM磁盘是否正常

[oracle@rhel5 ~]$ export ORACLE_SID=+ASM
[oracle@rhel5 ~]$ sqlplus  / as sysdba

SQL> select name,state from  v$asm_diskgroup;                                                                                                   
NAME                        STATE
---------------           -----------
DG1                         MOUNTED

2、登陆数据库prod
[oracle@rhel5 ~]$ export ORACLE_SID=prod
[oracle@rhel5 ~]$ sqlplus / as sysdba

a、查看控制文件
SQL> show parameter control_files;

NAME                                 TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
control_files                        string
/u01/app/oracle/oradata/prod/c
ontrol01.ctl, /u01/app/oracle/
oradata/prod/control02.ctl, /u
01/app/oracle/oradata/prod/con
trol03.ctl
SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/prod/control01.ctl
/u01/app/oracle/oradata/prod/control02.ctl
/u01/app/oracle/oradata/prod/control03.ctl

b、查看db_create_file_dest参数
SQL> show parameter db_create_file_dest;

NAME                                 TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
db_create_file_dest                  string

c、修改控制文件的位置

SQL>  alter system set control_files='+DG1' scope=spfile;

System altered.

SQL> alter system set db_create_file_dest='+DG1' scope=spfile;

System altered.

d、关闭数据库

SQL> shutdown immediate;

3、登陆rman

[oracle@rhel5 ~]$ export ORACLE_SID=prod
[oracle@rhel5 ~]$ rman target /

a、利用rman迁移目标数据库控制文件和数据文件

RMAN> startup nomount;

b、利用rman将文件系统上的控制文件重建控制文件到ASM磁盘的DG1上
RMAN> restore controlfile from '/u01/app/oracle/oradata/prod/control01.ctl';

c、利用rman复制数据库文件到ASM磁盘组DG1上
RMAN> alter database mount;
RMAN> run{
 allocate channel c1 type disk;
 allocate channel c2 type disk;
 allocate channel c3 type disk;
 allocate channel c4 type disk;
 backup as copy database format '+DG1';
 }

d、利用RMAN的SWITCH 命令修改控制文件内数据文件的指针,使其指向新位置
RMAN> switch database to copy;
RMAN> recover database;
RMAN> alter database open;

4、登陆数据库prod
[oracle@rhel5 ~]$ export ORACLE_SID=prod
[oracle@rhel5 ~]$ sqlplus / as sysdba

SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
+DG1/prod/controlfile/backup.271.842150617

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
+DG1/prod/datafile/system.272.842151185
+DG1/prod/datafile/undotbs1.275.842151191
+DG1/prod/datafile/sysaux.273.842151185
+DG1/prod/datafile/users.276.842151211
+DG1/prod/datafile/example.274.842151187

a、迁移temp文件
SQL> select name,status,enabled from v$tempfile;

NAME
--------------------------------------------------------------------------------
STATUS                ENABLED
--------------------- ------------------------------
/u01/app/oracle/oradata/prod/temp01.dbf
ONLINE                READ WRITE

由于temp文件没有可用的数据只是缓存数据,temp可以直接添加一个新的temp文件,然后将老的temp文件删除
SQL> alter tablespace temp add tempfile '+DG1';

Tablespace altered.

SQL> alter tablespace temp drop tempfile '/u01/app/oracle/oradata/prod/temp01.dbf';

Tablespace altered.

SQL> select name from v$tempfile;

NAME
--------------------------------------------------------------------------------
+DG1/prod/tempfile/temp.279.842151759

b、迁移日志文件,在DG1创建新的日志文件,然后将老的文件删除

SQL> select group#,member from v$logfile;

GROUP#
----------
MEMBER
--------------------------------------------------------------------------------
         3
/u01/app/oracle/oradata/prod/redo03.log

2
/u01/app/oracle/oradata/prod/redo02.log

1
/u01/app/oracle/oradata/prod/redo01.log

SQL> alter database add logfile '+DG1' size 51m;

Database altered.

SQL> alter database add logfile '+DG1' size 51m;

Database altered.

SQL> alter database add logfile '+DG1' size 51m;

Database altered.

删除的时候需要日志文件组状态为inactive状态,不过删除不了,说明日志文件组不是inactive状态

SQL> select group#,status from v$log;

GROUP# STATUS
---------- ------------------------------------------------
     1 INACTIVE
         2 CURRENT
         3 INACTIVE
         4 INACTIVE
         5 INACTIVE
         6 INACTIVE
SQL> alter database drop logfile '/u01/app/oracle/oradata/prod/redo01.log';

Database altered.

SQL> alter database drop logfile '/u01/app/oracle/oradata/prod/redo02.log';
alter database drop logfile '/u01/app/oracle/oradata/prod/redo02.log'
*
ERROR at line 1:
ORA-01623: log 2 is current log for instance prod (thread 1) - cannot drop
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/prod/redo02.log'

SQL> alter database drop logfile '/u01/app/oracle/oradata/prod/redo03.log';

Database altered.

遇到删除不了时使用如下命令更改日志文件状态,知道可以删除
SQL> alter system switch logfile;
SQL> alter database drop logfile '/u01/app/oracle/oradata/prod/redo02.log';

Database altered.

查看日志文件
SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
+DG1/prod/onlinelog/group_4.280.842152057
+DG1/prod/onlinelog/group_5.281.842152065
+DG1/prod/onlinelog/group_6.282.842152075

查看迁移后的文件
SQL> select name from v$datafile union select name from v$tempfile union select name from v$controlfile union select member from v$logfile;

NAME
--------------------------------------------------------------------------------
+DG1/prod/controlfile/backup.271.842150617
+DG1/prod/datafile/example.274.842151187
+DG1/prod/datafile/sysaux.273.842151185
+DG1/prod/datafile/system.272.842151185
+DG1/prod/datafile/undotbs1.275.842151191
+DG1/prod/datafile/users.276.842151211
+DG1/prod/onlinelog/group_4.280.842152057
+DG1/prod/onlinelog/group_5.281.842152065
+DG1/prod/onlinelog/group_6.282.842152075
+DG1/prod/tempfile/temp.279.842151759

最后迁移初始化参数文件
SQL> create pfile from spfile;

File created.

SQL> create spfile='+DG1' from pfile;

File created.

重启数据库查看是否能够正常启动

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  209715200 bytes
Fixed Size                  1218556 bytes
Variable Size              71305220 bytes
Database Buffers          134217728 bytes
Redo Buffers                2973696 bytes
Database mounted.
Database opened.

查看迁移后的文件
SQL> select name from v$datafile union select name from v$tempfile union select name from v$controlfile union select member from v$logfile;

NAME
--------------------------------------------------------------------------------
+DG1/prod/controlfile/backup.271.842150617
+DG1/prod/datafile/example.274.842151187
+DG1/prod/datafile/sysaux.273.842151185
+DG1/prod/datafile/system.272.842151185
+DG1/prod/datafile/undotbs1.275.842151191
+DG1/prod/datafile/users.276.842151211
+DG1/prod/onlinelog/group_4.280.842152057
+DG1/prod/onlinelog/group_5.281.842152065
+DG1/prod/onlinelog/group_6.282.842152075
+DG1/prod/tempfile/temp.279.842151759

转载于:https://www.cnblogs.com/houzhiqing/p/4799153.html

oracle迁移至ASM磁盘相关推荐

  1. oracle asm spfile丢失,Oracle 11g RAC ASM磁盘全部丢失后的恢复

    Oracle 11g RAC ASM磁盘全部丢失后的恢复,Oracle 11.2.0.3 RAC ON Oracle Linux 6 x86_64,只有一个ASM外部冗余磁盘组mdash;m 一.环境 ...

  2. 案例:Oracle报错ASM磁盘组不存在或没有mount

    案例:Oracle报错ASM磁盘组不存在或没有mount 环境:RHEL 6.5 + Oracle Standby RAC 11.2.0.4 我做Standby RAC实验时,在恢复控制文件时,报错无 ...

  3. ORACLE 11G RAC ASM磁盘全部丢失后的恢复

    故障描述 (1)存储故障导致ASM磁盘丢失. (2)CRS因为OCR和VOTEDISK的丢失,除了OHAS还联机外,CLUSTERWARE服务都已经停止 操作步骤 一.恢复OCR和VOTEDISK ( ...

  4. oracle 磁盘组掉了,Oracle 11g RAC ASM磁盘全部丢失后的恢复(一)

    一.环境描述 (1) 11.2.0.3 RAC ON Oracle Linux 6 x86_64,只有一个ASM外部冗余磁盘组--DATA: (2)OCR,VOTEDISK,DATAFILE,CONT ...

  5. oracle database的asm磁盘管理

    asm磁盘管理 1. 扩容 1.1 挂盘 服务器挂载共享磁盘.找出新挂载的磁盘,或者由存储工程师提供新挂载磁盘的uuid. [root@rac01 ~]# lsblk NAME MAJ:MIN RM ...

  6. oracle 11g rac asm磁盘组增加硬盘

    要增加磁盘的磁盘组为:DATA 要增加的磁盘为: /dev/sde1 在第一个节点上: [root@rac1 ~]# fdisk /dev/sde Device contains neither a ...

  7. AIX ORACLE 迁移到ASM

    1.准备2块磁盘:hdisk1.hdisk2 2.创建一个vg,加入2块磁盘:smitty mkvg 3.划分2个lv: # mklv -t jfs2 -y asmlv softvg 200 asml ...

  8. oracle 11g RAC ASM磁盘被强制下线抢修一例

    又有一段时间没写有关oracle的文章了,恐怕这也是不能成为高手的原因之一,偶有典型性拖延症和懒癌. 今天要讲的一个栗子又一个现场case,中午吃饭的时候看到来自同事的未接,处于职业敏感感觉是数据中心 ...

  9. oracle中asm磁盘不足,Oracle用户无法访问ASM磁盘组问题

    1. 权限问题引起找不到ASM磁盘组 1.1 确认操作系统用户属主 # 确认属主 Grid Infrastructure Home Owner : grid Primary Group : oinst ...

  10. ORACLE RAC ASM磁盘规划

     基于ASM冗余设计架构实现的数据库双活方案,如何规划ASM? ASM使用独特的镜像算法:不镜像磁盘,而是镜像盘区.作为结果,为了在产生故障时提供连续的保护,只需要磁盘组中的空间容量,而不需要预备一个 ...

最新文章

  1. 艾伟:WCF从理论到实践(11)-异步
  2. 【bzoj5427】最长上升子序列(贪心+LIS)
  3. php ftp rmdir,PHP中的ftp_rmdir()函数
  4. 轻轻松松,一键获取3000个外链
  5. HDU - 4608 I-number
  6. asterisk使用SIP相互对接
  7. Sklearn.metrics评估方法
  8. 使用React Router v4的嵌套路由
  9. REST无状态风格的理解
  10. CentOS7下Nginx 安装 Lua 支持
  11. 智能优化算法:蝠鲼觅食优化算法 - 附代码
  12. 计算机无法连接蓝牙键盘,终于理会电脑无法识别蓝牙鼠标键盘
  13. windows环境搭建hadoop
  14. 小米网络信号测试软件,WiFi测速
  15. 自动化 c语言学不会,为什么那么多人学不会PLC自动化编程?
  16. android 7.0 壁纸设置,android7.0怎么换锁屏壁纸
  17. pycharm运行scrapy框架爬取豆瓣电影250可能遇到的问题
  18. halcon学习_超人启蒙班10-20课
  19. webpy中如何返回json格式给前端
  20. 初学JavaScript:BOM(浏览器对象模型)介绍

热门文章

  1. Charles使用备注[1]
  2. 【转】取画刷(HBrush)的6种方法
  3. Leetcode513. Find Bottom Left Tree Value找树左下角的值
  4. jenkins 全局工具配置
  5. 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)...
  6. It's a beautiful world!
  7. Linux/Windows 文件交互读取转义字符变换
  8. 爬取自己的csdn访问排名信息
  9. python学习day02
  10. hdu1542 矩形面积并(线段树+离散化+扫描线)