您的位置:首页 > 数据库

如何将数据库从文件系统迁移到ASM存储里

2013-10-08 16:24 796 查看

如何将数据库从文件系统迁移到ASM存储里

上一篇 /

下一篇 2008-11-20 16:06:47 / 个人分类:工作技术

查看( 1032 ) /

评论( 4 ) /
评分( 8 / 1 )

由于ASM磁盘组里的文件不能通过普通的操作系统命令访问,因此如果要将数据库从文件系统迁移到ASM磁盘组里,则必须通过RMAN。注意,迁移之前,如果启用了闪回数据库功能,则需要先关闭闪回数据库功能。

将数据库整体迁移到ASM的过程如下所示(本数据库启用了归档):

1) 修改初始化参数control_files和Flash Recovery Area:

SQL> alter database backup controlfile to '/u01/control.ctl';
SQL> alter system set control_files='+DgroupA' scope=spfile;
SQL> alter system set db_recovery_file_dest='+DgroupB';
2) 正常关闭数据库。

SQL> shutdown immediate;
3) 启动RMAN,并将数据库启动到nomount阶段。

[oracle@book ora10g]$ rman target /
RMAN> startup nomount;
4) 恢复刚才备份的控制文件,由于我们设置了初始化参数control_files,将其指向了磁盘组DgroupA,因此恢复出来的控制文件会存放在DgroupA里。

RMAN> restore controlfile from '/u01/control.ctl';
Starting restore at 18-OCT-07
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
……
output filename=+DGROUPA/ora10g/controlfile/current.256.636273263
Finished restore at 18-OCT-07
5) 将数据库mount起来。

RMAN> alter database mount;
6) 通过拷贝的方式,将所有的数据文件全都迁移到ASM磁盘组(DgroupA)里。

RMAN> backup as copy database format '+DgroupA';
Starting backup at 18-OCT-07
Starting implicit crosscheck backup at 18-OCT-07
……
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile fno=00001 name=/u01/app/oracle/oradata/ora10g/system01.dbf
output filename=+DGROUPA/ora10g/datafile/system.257.636273329 tag=TAG20071018T063528 recid=2 stamp=636273411
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:25
……
Finished backup at 18-OCT-07
RMAN-06497: WARNING: control file is not current, control file autobackup skipped
7) 开始恢复数据库。

RMAN> recover database;
……
archi.ve log thread 1 sequence 9 is already on disk as file /u01/app/oracle/oradata/ora10g/redo02.log
……
media recovery complete, elapsed time: 00:00:04
Finished recover at 19-OCT-07
8) 将临时表空间所包含的临时文件迁移到磁盘组DgroupA里。

RMAN> run{
2> switch tempfile 1 to '+DgroupA';
3> }
renamed temporary file 1 to +DgroupA in control file
9) 通过SQL*Plus连入数据库实例,将控制文件里记录的联机日志文件的路径修改为磁盘组DgroupA。

SQL> alter database rename file '/u01/app/oracle/oradata/ora10g/redo01.log' to '+DgroupA';
SQL> alter database rename file '/u01/app/oracle/oradata/ora10g/redo02.log' to '+DgroupA';
SQL> alter database rename file '/u01/app/oracle/oradata/ora10g/redo03.log' to '+DgroupA';
10) 在RMAN中以resetlogs选项打开数据库,从而根据控制文件里记录的联机日志文件的路径(这里也就是DgroupA),自动在DgroupA里创建联机日志文件。

RMAN> alter database open resetlogs;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: