ITPub博客

首页 > 数据库 > 数据库开发技术 > ASM测试二:数据文件移植到ASM

ASM测试二:数据文件移植到ASM

原创 数据库开发技术 作者:shadowfalao 时间:2007-07-05 10:49:54 0 删除 编辑

今天试验了怎样将数据库文件从文件系统移植到ASM

测试环境:

Windows 2003 Server

Oracle 10.2.0.1

参考ORACLE文档:

Oracle Database 10g Migration to Automatic Storage Management

整个过程主要分为两部分:(1) ASM实例的创建 (2) 文件移植

(1)ASM实例的创建详见

http://shadowfalao.itpub.net/post/2483/303507

(2)文件移植

1)目前数据库运行环境

运行于archivelog模式的单节点数据库,而且还起用了flashback功能。

2)ASM磁盘组规划

需要将数据文件,redo日志文件,控制文件,以及将来的归档日志,
FLASHBACK日志都用ASM来管理,最少需要两个ASM磁盘组。
前面ASM测试中已经创建了一个DATA磁盘组。用来存放数据文件、
日志文件、控制文件等。再创建一个FLASHAREA磁盘组存放FLASHBACK日志和归档日志:

CREATE DISKGROUP FLASHAREA EXTERNAL REDUNDANCY DISK
'D:asmdisks_file_disk5',
'D:asmdisks_file_disk6',
'D:asmdisks_file_disk7',
'D:asmdisks_file_disk8';

在产品环境中,要进行更加详细的规划,这里这是以测试为目的。

3)修改相关的参数

采用ASM,可以采用OMF来管理文件。对以下参数必须修改

ALTER SYSTEM SET DB_CREATE_FILE_DEST='+DATA' SCOPE=BOTH;
ALTER SYSTEM SET DB_CREATE_ONLINE_LOG_DEST_1='+DATA' SCOPE=BOTH;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='+FLASHAREA' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+FLASHAREA' scope=BOTH;

4)备份数据库
生成数据库的副本到磁盘组+DATA,如果没有足够的磁盘空间,
可以将将数据库备份到磁带机上。
SET ORACLE_SID=ypma
RMAN TARGET /
BACKUP DEVICE TYPE DISK AS COPY DATABASE FORMAT '+DATA';
BACKUP DEVICE TYPE DISK ARCHIVELOG ALL FORMAT '+DATA';

5)移植redo日志

首先查看日志组的使用情况
SQL> select group#,status from v$log;

GROUP# STATUS
---------- ----------------
1 CURRENT
2 INACTIVE
3 ACTIVE
在LOG日志的移植过程中,需要观察判断移植的日志不能是当前日志
ALTER DATABASE ADD LOGFILE MEMBER '+DATA' TO GROUP 3;
ALTER DATABASE ADD LOGFILE MEMBER '+DATA' TO GROUP 1;
ALTER DATABASE ADD LOGFILE MEMBER '+DATA' TO GROUP 2;
ALTER DATABASE DROP LOGFILE MEMBER 'E:ORACLEPRODUCT10.2.0ORADATAYPMAREDO01.LOG';
ALTER DATABASE DROP LOGFILE MEMBER 'E:ORACLEPRODUCT10.2.0ORADATAYPMAREDO02.LOG';
ALTER DATABASE DROP LOGFILE MEMBER 'E:ORACLEPRODUCT10.2.0ORADATAYPMAREDO03.LOG';

6) 移植temp文件
ALTER TABLESPACE TEMP ADD TEMPFILE '+DATA' size 100M;
ALTER DATABASE TEMPFILE 'E:oracleproduct10.2.0oradataypmaTEMP01.DBF' DROP;
7)移植控制文件
ALTER DATABASE BACKUP CONTROLFILE TO '+DATA';
ALTER DATABASE BACKUP CONTROLFILE TO '+FLASHAREA';
ALTER SYSTEM SET CONTROL_FILES=
'+DATA/YPMA/CONTROLFILE/mycontrol.ctl',
'+FLASHAREA/YPMA/CONTROLFILE/mycontrol.ctl' SCOPE=SPFILE;
7)恢复控制文件到新的位置

set ORACLE_SID=ypma

rman taret /

SHUTDOWN IMMEDIATE;
STARTUP NOMOUNT;
RESTORE CONTROLFILE FROM 'E:oracleproduct10.2.0oradataypmaCONTROL01.CTL';
ALTER DATABASE MOUNT;


8)switch 数据文件
SWITCH DATABASE TO COPY;
RECOVER DATABASE;

9)重新启动数据库
SHUTDOWN IMMEDIATE
STARTU

10)验证数据文件是否都全部移植

select name from v$datafile;

select name from v$tempfile;

select name from controlfile;

select filename from v$flashback_database_logfile;

总结:如果要在产品环境中移植的话,需要考虑磁盘空间,系统停机时间,
归档日志是否存储到ASM磁盘组等问题,根据实际情况规划。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/129805/viewspace-924067/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: oerr小工具研究
请登录后发表评论 登录
全部评论

注册时间:2009-12-18

  • 博文量
    45
  • 访问量
    444892