Chinaunix首页 | 论坛 | 博客
  • 博客访问: 24879082
  • 博文数量: 271
  • 博客积分: 10025
  • 博客等级: 上将
  • 技术积分: 3358
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-12 15:28
文章分类

全部博文(271)

文章存档

2010年(71)

2009年(164)

2008年(36)

我的朋友

分类: Oracle

2008-11-28 13:00:18

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

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

修改初始化参数control_filesFlash 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';

正常关闭数据库。

SQL> shutdown immediate;

启动RMAN,并将数据库启动到nomount阶段。

$ rman target /

RMAN> startup nomount;

恢复刚才备份的控制文件,由于我们设置了初始化参数control_files,将其指向了磁盘组DgroupA,因此恢复出来的控制文件会存放在DgroupA里。

RMAN> restore controlfile from '/u01/control.ctl';

5) 将数据库mount起来。

RMAN> alter database mount;

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

RMAN> backup as copy database format '+DgroupA';

开始恢复数据库。

RMAN> recover database;

将临时表空间所包含的临时文件迁移到磁盘组DgroupA里。

RMAN> run{

2> switch tempfile 1 to '+DgroupA';

3> }

renamed temporary file 1 to +DgroupA in control file

通过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';

RMAN中以resetlogs选项打开数据库,从而根据控制文件里记录的联机日志文件的路径(这里也就是DgroupA),自动在DgroupA里创建联机日志文件。

RMAN> alter database open resetlogs

阅读(2213) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~