首页 > Linux操作系统 > Linux操作系统 > asm 文件系统迁移
此文是在oracle10g的基础上,将数据库从文件系统迁移到ASM管理的文件系统上。
一、环境:
OS :
[oracle@yitai ~]$ lsb_release --all
LSB Version: :core-3.0-ia32:core-3.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch
Distributor ID: RedHatEnterpriseAS
Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 7)
Release: 4
Codename: NahantUpdate7
RDBMS:
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
ASM:(这里使用磁盘组DATA2)
SQL> select name, state, type from v$asm_diskgroup;
NAME STATE TYPE
------------------------------ ----------- ------
DATA1 MOUNTED EXTERN
DATA2 MOUNTED EXTERN
[oracle@yitai ~]$ export ORACLE_SID=+ASM
[oracle@yitai ~]$ asmcmd
ASMCMD> lsdg
State Type Rebal Unbal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name
MOUNTED EXTERN N N 512 4096 1048576 2038 763 0 763 0 DATA1/
MOUNTED EXTERN N N 512 4096 1048576 2038 929 0 929 0 DATA2/
二、迁移前查看rdbms的信息
查看当前文件系统的控制文件路径
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
查看临时文件信息
SQL>SQL> select file#, name from v$tempfile;
FILE#, NAME
-- --------------------------------------------------------------------------------
1 /u01/app/oracle/oradata/prod/temp01.dbf
查看日志文件信息:
SQL> SELECT a.group#, b.member, a.status FROM v$log a, v$logfile b WHERE a.group#=b.group#;
GROUP# MEMBER STATUS
---------- ------------------------------------------------------------ ----------------
1 /u01/app/oracle/oradata/prod/redo01.log CURRENT
2 /u01/app/oracle/oradata/prod/redo02.log INACTIVE
3 /u01/app/oracle/oradata/prod/redo03.log INACTIVE
查看数据文件位置:
SQL> select name from v$datafile;
NAME
----------------------------------------------------------------------------------
/u01/app/oracle/oradata/prod//system01.dbf
/u01/app/oracle/oradata/prod/undotbs01.dbf
/u01/app/oracle/oradata/prod/sysaux01.dbf
/u01/app/oracle/oradata/prod//users01.dbf
/u01/app/oracle/oradata/prod//example01.dbf
三、利用RMAN工具迁移
export ORACLE_SID=prod
SQL > shutdown immediate
SQL > startup nomount #rdbms操作控制文件的时候,需要进入nomount状态
[oracle@yitai ~]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Tue Aug 28 08:01:45 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: CUUG (DBID=1247937484)
转移控制文件
RMAN> restore controlfile to '+DATA2' from '/u01/app/oracle/oradata/prod/control01.ctl';
查看新的控制文件
ASMCMD> cd +DATA2
ASMCMD> ls
PROD/
DB_UNKNOWN/
ASMCMD> cd prod
ASMCMD> ls
CONTROLFILE/
ASMCMD> find -t controlfile . *
+DATA2/prod/CONTROLFILE/Backup.262.792483465
+DATA2/prod/CONTROLFILE/backup.256.792483231
修改当前系统的控制文件参数相关
SQL> SELECT a.group#, b.member, a.status FROM v$log a, v$logfile b WHERE a.group#=b.group#;
GROUP# MEMBER STATUS
---------- ------------------------------------------------------------ ----------------
1 /u01/app/oracle/oradata/prod/redo01.log CURRENT
2 /u01/app/oracle/oradata/prod/redo02.log INACTIVE
3 /u01/app/oracle/oradata/prod/redo03.log INACTIVE
SQL> ALTER DATABASE ADD LOGFILE MEMBER '+DATA2' TO GROUP 1;
SQL> ALTER DATABASE DROP LOGFILE MEMBER '/u01/app/oracle/oradata/prod/redo03.log';
SQL> ALTER DATABASE DROP LOGFILE MEMBER '/u01/app/oracle/oradata/prod/redo02.log';
GROUP# MEMBER STATUS
---------- ------------------------------------------------------------ ----------------
1 /u01/app/oracle/oradata/prod/redo01.log inactive 2 /u01/app/oracle/oradata/prod/redo02.log INACTIVE
3 /u01/app/oracle/oradata/prod/redo03.log INACTIVE
1 +DATA2/prodonlinelog/group_1.265.792483781 CURRENT
2 +DATA2/prod/onlinelog/group_2.266.792483795 INACTIVE
3 +DATA2/prod/onlinelog/group_3.267.792483801 INACTIVE
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27042095/viewspace-742041/ ,如需转载,请注明出处,否则将追究法律责任。