数据库从文件系统迁移到ASM
2013-07-08 22:56
537 查看
一、打开ASM实例
[oracle@ASM ~]$ echo $ORACLE_SID
+ASM
[oracle@ASM ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Apr 601:01:28 2009
Copyright (c) 1982, 2005, Oracle. All rightsreserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ASM instance started
Total System Global Area 79691776 bytes
FixedSize 1217812 bytes
VariableSize 53308140 bytes
ASMCache 25165824 bytes
ASM diskgroups mounted
SQL> select name,state fromv$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA MOUNTED
DGROUP1 MOUNTED
二、修改目标数据库(TOASM)的SPFILE
SQL> ALTER SYSTEM SETCONTROL_FILES='+DGROUP1' SCOPE=SPFILE;
System altered.
SQL> ALTER SYSTEM SETDB_CREATE_FILE_DEST='+DGROUP1' SCOPE=SPFILE;
System altered.
三、关闭目标数据库
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
四、通过RMAN连接到目标数据库,并启动到NOMOUNT状态
[oracle@ASM admin]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Mon Apr 601:06:39 2009
Copyright (c) 1982, 2005, Oracle. All rightsreserved.
connected to target database (not started)
RMAN> startup nomount
Oracle instance started
Total System GlobalArea 230686720 bytes
FixedSize 1218676 bytes
VariableSize 75499404 bytes
DatabaseBuffers 150994944 bytes
RedoBuffers 2973696 bytes
RMAN>
五、还原控制文件到ASM磁盘组,并将数据库启动到MOUNT状态
RMAN> RESTORE CONTROLFILE FROM'/u01/oradata/TOASM/control01.ctl';
Starting restore at 06-APR-09
using target database control file instead of recoverycatalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK
channel ORA_DISK_1: copied control file copy
outputfilename=+DGROUP1/toasm/controlfile/backup.269.683428107
Finished restore at 06-APR-09
RMAN> ALTER DATABASE MOUNT;
database mounted
released channel: ORA_DISK_1
RMAN>
六、利用RMAN复制数据文件到ASM磁盘组
RMAN > BACKUP AS COPY DATABASE FORMAT'+DGROUP1';
Starting backup at 06-APR-09
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK
channel ORA_DISK_1: starting datafile copy
input datafile fno=00001name=/u01/oradata/TOASM/system01.dbf
output filename=+DGROUP1/toasm/datafile/system.258.683428337tag=TAG20090406T011215 recid=2 stamp=683428412
channel ORA_DISK_1: datafile copy complete, elapsed time:00:01:25
channel ORA_DISK_1: starting datafile copy
input datafile fno=00003name=/u01/oradata/TOASM/sysaux01.dbf
output filename=+DGROUP1/toasm/datafile/sysaux.259.683428421tag=TAG20090406T011215 recid=3 stamp=683428457
channel ORA_DISK_1: datafile copy complete, elapsed time:00:00:45
channel ORA_DISK_1: starting datafile copy
input datafile fno=00005name=/u01/oradata/TOASM/example01.dbf
output filename=+DGROUP1/toasm/datafile/example.261.683428467tag=TAG20090406T011215 recid=4 stamp=683428481
channel ORA_DISK_1: datafile copy complete, elapsed time:00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile fno=00002name=/u01/oradata/TOASM/undotbs01.dbf
output filename=+DGROUP1/toasm/datafile/undotbs1.260.683428483tag=TAG20090406T011215 recid=5 stamp=683428486
channel ORA_DISK_1: datafile copy complete, elapsed time:00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile fno=00004name=/u01/oradata/TOASM/users01.dbf
output filename=+DGROUP1/toasm/datafile/users.262.683428489tag=TAG20090406T011215 recid=6 stamp=683428491
channel ORA_DISK_1: datafile copy complete, elapsed time:00:00:03
channel ORA_DISK_1: starting datafile copy
copying current control file
outputfilename=+DGROUP1/toasm/controlfile/backup.278.683428493tag=TAG20090406T011215 recid=7 stamp=683428495
channel ORA_DISK_1: datafile copy complete, elapsed time:00:00:03
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 06-APR-09
channel ORA_DISK_1: finished piece 1 at 06-APR-09
piecehandle=+DGROUP1/toasm/backupset/2009_04_06/nnsnf0_tag20090406t011215_0.277.683428497tag=TAG20090406T011215 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time:00:00:05
Finished backup at 06-APR-09
RMAN>
七、利用RMAN的SWITCH 命令修改控制文件内数据文件的指针,使其指向新位置。
RMAN> SWITCH DATABASE TO COPY;
datafile 1 switched to datafile copy"+DGROUP1/toasm/datafile/system.258.683428337"
datafile 2 switched to datafile copy"+DGROUP1/toasm/datafile/undotbs1.260.683428483"
datafile 3 switched to datafile copy"+DGROUP1/toasm/datafile/sysaux.259.683428421"
datafile 4 switched to datafile copy"+DGROUP1/toasm/datafile/users.262.683428489"
datafile 5 switched to datafile copy"+DGROUP1/toasm/datafile/example.261.683428467"
RMAN> RECOVER DATABASE;
Starting recover at 06-APR-09
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:00
Finished recover at 06-APR-09
RMAN>
八、打开数据库
RMAN> ALTER DATABASE OPEN;
database opened
RMAN>
九、迁移临时文件
由于临时文件不会被迁移,所以我们只需要删除原来的增加新的就可以。
SQL> SELECT NAME FROM V$TEMPFILE;
NAME
--------------------------------------------------
/u01/oradata/TOASM/temp01.dbf
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE'+DGROUP1';
Tablespace altered.
SQL> ALTER TABLESPACE TEMP DROP TEMPFILE'/u01/oradata/TOASM/temp01.dbf';
Tablespace altered.
SQL> SELECT NAME FROM V$TEMPFILE;
NAME
--------------------------------------------------
+DGROUP1/toasm/tempfile/temp.263.683428909
SQL>
十、增加新的ONLINE REDOLOGS 到ASM
SQL> SELECT * FROM V$LOG;
GROUP# THREAD# SEQUENCE# BYTES MEMBERSARCSTATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- ------------------- ------------- ---------
1 1 5 10485760 1 YESINACTIVE 473286
06-APR-09
2 1 6 10485760 1 NO CURRENT 474627
06-APR-09
3 1 4 10485760 1 YESINACTIVE 472097
06-APR-09
SQL> ALTER DATABASE ADD LOGFILE '+DGROUP1' SIZE10M;
Database altered.
SQL> ALTER DATABASE ADD LOGFILE '+DGROUP1' SIZE10M;
Database altered.
SQL> ALTER DATABASE ADD LOGFILE '+DGROUP1' SIZE10M;
Database altered.
SQL> ALTER DATABASE DROP LOGFILE GROUP 1;
Database altered.
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SQL> SQL> ALTER DATABASE DROPLOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 2
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance TOASM(thread 1)
ORA-00312: online log 2 thread 1:'/u01/oradata/TOASM/redo02.log'
SQL> ALTER SYSTEM CHECKPOINT;
System altered.
SQL> ALTER DATABASE DROP LOGFILE GROUP 2;
Database altered.
SQL>ALTER DATABASE DROP LOGFILE GROUP 3;
Database altered.
SQL> SELECT MEMBER FROM V$LOGFILE;
MEMBER
--------------------------------------------------
+DGROUP1/toasm/onlinelog/group_4.275.683429043
+DGROUP1/toasm/onlinelog/group_5.276.683429047
+DGROUP1/toasm/onlinelog/group_6.264.683429049
SQL>
十一、最后删除原来的数据库文件
[oracle@ASM ~]$ ls -lh /u01/oradata/TOASM/
total 892M
-rw-r----- 1 oracle oinstall 6.8MApr 6 01:05 control01.ctl
-rw-r----- 1 oracle oinstall 6.8MApr 6 01:05 control02.ctl
-rw-r----- 1 oracle oinstall 6.8MApr 6 01:05 control03.ctl
-rw-r----- 1 oracle oinstall 101MApr 6 01:05 example01.dbf
-rw-r----- 1 oracleoinstall 11M Apr 6 01:17redo01.log
-rw-r----- 1 oracleoinstall 11M Apr 6 01:24redo02.log
-rw-r----- 1 oracleoinstall 11M Apr 6 01:17redo03.log
-rw-r----- 1 oracle oinstall 231MApr 6 01:05 sysaux01.dbf
-rw-r----- 1 oracle oinstall 481MApr 6 01:05 system01.dbf
-rw-r----- 1 oracleoinstall 26M Apr 6 01:05undotbs01.dbf
-rw-r----- 1 oracle oinstall 5.1MApr 6 01:05 users01.dbf
[oracle@ASM ~]$ rm -rf /u01/oradata/TOASM/*
[oracle@ASM ~]$ ls -lh /u01/oradata/TOASM/
total 0
[oracle@ASM ~]$
迁移完毕!
[oracle@ASM ~]$ echo $ORACLE_SID
+ASM
[oracle@ASM ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Apr 601:01:28 2009
Copyright (c) 1982, 2005, Oracle. All rightsreserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ASM instance started
Total System Global Area 79691776 bytes
FixedSize 1217812 bytes
VariableSize 53308140 bytes
ASMCache 25165824 bytes
ASM diskgroups mounted
SQL> select name,state fromv$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA MOUNTED
DGROUP1 MOUNTED
二、修改目标数据库(TOASM)的SPFILE
SQL> ALTER SYSTEM SETCONTROL_FILES='+DGROUP1' SCOPE=SPFILE;
System altered.
SQL> ALTER SYSTEM SETDB_CREATE_FILE_DEST='+DGROUP1' SCOPE=SPFILE;
System altered.
三、关闭目标数据库
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
四、通过RMAN连接到目标数据库,并启动到NOMOUNT状态
[oracle@ASM admin]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Mon Apr 601:06:39 2009
Copyright (c) 1982, 2005, Oracle. All rightsreserved.
connected to target database (not started)
RMAN> startup nomount
Oracle instance started
Total System GlobalArea 230686720 bytes
FixedSize 1218676 bytes
VariableSize 75499404 bytes
DatabaseBuffers 150994944 bytes
RedoBuffers 2973696 bytes
RMAN>
五、还原控制文件到ASM磁盘组,并将数据库启动到MOUNT状态
RMAN> RESTORE CONTROLFILE FROM'/u01/oradata/TOASM/control01.ctl';
Starting restore at 06-APR-09
using target database control file instead of recoverycatalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK
channel ORA_DISK_1: copied control file copy
outputfilename=+DGROUP1/toasm/controlfile/backup.269.683428107
Finished restore at 06-APR-09
RMAN> ALTER DATABASE MOUNT;
database mounted
released channel: ORA_DISK_1
RMAN>
六、利用RMAN复制数据文件到ASM磁盘组
RMAN > BACKUP AS COPY DATABASE FORMAT'+DGROUP1';
Starting backup at 06-APR-09
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK
channel ORA_DISK_1: starting datafile copy
input datafile fno=00001name=/u01/oradata/TOASM/system01.dbf
output filename=+DGROUP1/toasm/datafile/system.258.683428337tag=TAG20090406T011215 recid=2 stamp=683428412
channel ORA_DISK_1: datafile copy complete, elapsed time:00:01:25
channel ORA_DISK_1: starting datafile copy
input datafile fno=00003name=/u01/oradata/TOASM/sysaux01.dbf
output filename=+DGROUP1/toasm/datafile/sysaux.259.683428421tag=TAG20090406T011215 recid=3 stamp=683428457
channel ORA_DISK_1: datafile copy complete, elapsed time:00:00:45
channel ORA_DISK_1: starting datafile copy
input datafile fno=00005name=/u01/oradata/TOASM/example01.dbf
output filename=+DGROUP1/toasm/datafile/example.261.683428467tag=TAG20090406T011215 recid=4 stamp=683428481
channel ORA_DISK_1: datafile copy complete, elapsed time:00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile fno=00002name=/u01/oradata/TOASM/undotbs01.dbf
output filename=+DGROUP1/toasm/datafile/undotbs1.260.683428483tag=TAG20090406T011215 recid=5 stamp=683428486
channel ORA_DISK_1: datafile copy complete, elapsed time:00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile fno=00004name=/u01/oradata/TOASM/users01.dbf
output filename=+DGROUP1/toasm/datafile/users.262.683428489tag=TAG20090406T011215 recid=6 stamp=683428491
channel ORA_DISK_1: datafile copy complete, elapsed time:00:00:03
channel ORA_DISK_1: starting datafile copy
copying current control file
outputfilename=+DGROUP1/toasm/controlfile/backup.278.683428493tag=TAG20090406T011215 recid=7 stamp=683428495
channel ORA_DISK_1: datafile copy complete, elapsed time:00:00:03
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 06-APR-09
channel ORA_DISK_1: finished piece 1 at 06-APR-09
piecehandle=+DGROUP1/toasm/backupset/2009_04_06/nnsnf0_tag20090406t011215_0.277.683428497tag=TAG20090406T011215 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time:00:00:05
Finished backup at 06-APR-09
RMAN>
七、利用RMAN的SWITCH 命令修改控制文件内数据文件的指针,使其指向新位置。
RMAN> SWITCH DATABASE TO COPY;
datafile 1 switched to datafile copy"+DGROUP1/toasm/datafile/system.258.683428337"
datafile 2 switched to datafile copy"+DGROUP1/toasm/datafile/undotbs1.260.683428483"
datafile 3 switched to datafile copy"+DGROUP1/toasm/datafile/sysaux.259.683428421"
datafile 4 switched to datafile copy"+DGROUP1/toasm/datafile/users.262.683428489"
datafile 5 switched to datafile copy"+DGROUP1/toasm/datafile/example.261.683428467"
RMAN> RECOVER DATABASE;
Starting recover at 06-APR-09
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:00
Finished recover at 06-APR-09
RMAN>
八、打开数据库
RMAN> ALTER DATABASE OPEN;
database opened
RMAN>
九、迁移临时文件
由于临时文件不会被迁移,所以我们只需要删除原来的增加新的就可以。
SQL> SELECT NAME FROM V$TEMPFILE;
NAME
--------------------------------------------------
/u01/oradata/TOASM/temp01.dbf
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE'+DGROUP1';
Tablespace altered.
SQL> ALTER TABLESPACE TEMP DROP TEMPFILE'/u01/oradata/TOASM/temp01.dbf';
Tablespace altered.
SQL> SELECT NAME FROM V$TEMPFILE;
NAME
--------------------------------------------------
+DGROUP1/toasm/tempfile/temp.263.683428909
SQL>
十、增加新的ONLINE REDOLOGS 到ASM
SQL> SELECT * FROM V$LOG;
GROUP# THREAD# SEQUENCE# BYTES MEMBERSARCSTATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- ------------------- ------------- ---------
1 1 5 10485760 1 YESINACTIVE 473286
06-APR-09
2 1 6 10485760 1 NO CURRENT 474627
06-APR-09
3 1 4 10485760 1 YESINACTIVE 472097
06-APR-09
SQL> ALTER DATABASE ADD LOGFILE '+DGROUP1' SIZE10M;
Database altered.
SQL> ALTER DATABASE ADD LOGFILE '+DGROUP1' SIZE10M;
Database altered.
SQL> ALTER DATABASE ADD LOGFILE '+DGROUP1' SIZE10M;
Database altered.
SQL> ALTER DATABASE DROP LOGFILE GROUP 1;
Database altered.
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SQL> SQL> ALTER DATABASE DROPLOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 2
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance TOASM(thread 1)
ORA-00312: online log 2 thread 1:'/u01/oradata/TOASM/redo02.log'
SQL> ALTER SYSTEM CHECKPOINT;
System altered.
SQL> ALTER DATABASE DROP LOGFILE GROUP 2;
Database altered.
SQL>ALTER DATABASE DROP LOGFILE GROUP 3;
Database altered.
SQL> SELECT MEMBER FROM V$LOGFILE;
MEMBER
--------------------------------------------------
+DGROUP1/toasm/onlinelog/group_4.275.683429043
+DGROUP1/toasm/onlinelog/group_5.276.683429047
+DGROUP1/toasm/onlinelog/group_6.264.683429049
SQL>
十一、最后删除原来的数据库文件
[oracle@ASM ~]$ ls -lh /u01/oradata/TOASM/
total 892M
-rw-r----- 1 oracle oinstall 6.8MApr 6 01:05 control01.ctl
-rw-r----- 1 oracle oinstall 6.8MApr 6 01:05 control02.ctl
-rw-r----- 1 oracle oinstall 6.8MApr 6 01:05 control03.ctl
-rw-r----- 1 oracle oinstall 101MApr 6 01:05 example01.dbf
-rw-r----- 1 oracleoinstall 11M Apr 6 01:17redo01.log
-rw-r----- 1 oracleoinstall 11M Apr 6 01:24redo02.log
-rw-r----- 1 oracleoinstall 11M Apr 6 01:17redo03.log
-rw-r----- 1 oracle oinstall 231MApr 6 01:05 sysaux01.dbf
-rw-r----- 1 oracle oinstall 481MApr 6 01:05 system01.dbf
-rw-r----- 1 oracleoinstall 26M Apr 6 01:05undotbs01.dbf
-rw-r----- 1 oracle oinstall 5.1MApr 6 01:05 users01.dbf
[oracle@ASM ~]$ rm -rf /u01/oradata/TOASM/*
[oracle@ASM ~]$ ls -lh /u01/oradata/TOASM/
total 0
[oracle@ASM ~]$
迁移完毕!
相关文章推荐
- 把数据库从文件系统迁移到ASM
- 利用RMAN将数据库从文件系统迁移到ASM
- 将数据库从普通文件系统迁移到ASM中
- 网络研讨会的邀请:网络公开课_文件系统迁移数据库到ASM存储
- 将数据库从普通文件系统迁移到ASM中
- 使用RMAN迁移文件系统数据库到ASM
- 使用RMAN迁移文件系统数据库到ASM
- 数据库迁移:文件系统迁至ASM
- 利用RMAN将数据库从文件系统迁移到ASM
- 使用RMAN迁移文件系统数据库到ASM
- 如何将数据库从文件系统迁移到ASM存储里
- Linux下使用RMAN迁移文件系统数据库到ASM
- 使用RMAN迁移文件系统数据库到ASM
- 使用RMAN迁移文件系统数据库到ASM
- 使用RMAN迁移文件系统数据库到ASM
- 将文件系统数据库迁移到ASM中
- 把数据库从asm迁移到文件系统,完全卸载asm实例。
- 数据库迁移-从文件系统到ASM
- oracle数据库文件系统迁移到ASM