• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

ORACLE数据库文件系统迁移到ASM磁盘

mysql 搞代码 4年前 (2022-01-09) 62次浏览 已收录 0个评论

1、登陆+ASM实例查看ASM磁盘是否正[oracle@rhel5~]$exportORACLE_SID=+ASM[oracle@rhel5~]$sqlplus/assysdbaSQLselectname,statefromv$asm_diskgroup;&nbsp..

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 ~]$ expor

本文来源gaodai.ma#com搞##代!^码@网3

t 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;


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:ORACLE数据库文件系统迁移到ASM磁盘

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址