- 最后登录
- 2017-5-4
- 在线时间
- 81 小时
- 威望
- 999
- 金钱
- 2391
- 注册时间
- 2013-9-11
- 阅读权限
- 150
- 帖子
- 1124
- 精华
- 5
- 积分
- 999
- UID
- 1220
|
1#
发表于 2013-10-5 23:55:57
|
查看: 2317 |
回复: 0
2.1 数据库由单机fs方式转为ASM RAC方式
1:修改pfile/spfile 将控制文件的位置指向ASM
create pfile='/tmp/initdb.bak' from spfile;
#*.control_files='/oradata/db2/control01.ctl','/oradata/db2/control02.ctl','/oradata/db2/control03.ctl'
*.control_files='+DATA/db2/control01.ctl'
2:启动数据库到nomount状态
SQL> Startup nomount
3:通过RMAN ,复制control file从文件系统到ASM
root@CSP570002A:/>su - oracle
$ rman target /
connected to target database: db2 (not mounted)
RMAN>RESTORE CONTROLFILE FROM '/oradata/db2/control01.ctl';
4:启动数据库到mount状态
SQL> ALTER DATABASE MOUNT;
configure device type disk parallelism 4;
5:使用RMAN,复制数据文件从NON-ASM到ASM
RMAN>BACKUP AS COPY DATABASE FORMAT '+DATA';
6:使用RMAN,Rename数据文件(修改controlfile)
RMAN> SWITCH DATABASE TO COPY;
7:交换临时文件,并打开数据库
RMAN> run {
set newname for tempfile 1 to '+DATA';
switch tempfile all;
}
RMAN> ALTER DATABASE OPEN;
8:转移redo log到ASM里面
SELECT a.group#, b.member, a.status FROM v$log a, v$logfile b WHERE a.group#=b.group#;
节点1的redo log组为1,2,3,节点2的redo log组为4,5,6.
节点1:
ALTER DATABASE ADD LOGFILE MEMBER '+RECO' TO GROUP 1;
ALTER DATABASE ADD LOGFILE MEMBER '+RECO' TO GROUP 2;
ALTER DATABASE ADD LOGFILE MEMBER '+RECO' TO GROUP 3;
ALTER SYSTEM SWITCH LOGFILE; (多次,确保logfile状态不是invalid)
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redoa01a.dbf';
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redoa01b.dbf';
ALTER SYSTEM SWITCH LOGFILE;
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redo02a.dbf';
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redo02b.dbf';
ALTER SYSTEM SWITCH LOGFILE;
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redo03a.dbf';
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redo03b.dbf';
ALTER SYSTEM SWITCH LOGFILE;
节点2:
ALTER DATABASE ADD LOGFILE MEMBER '+RECO' TO GROUP 4;
ALTER DATABASE ADD LOGFILE MEMBER '+RECO' TO GROUP 5;
ALTER DATABASE ADD LOGFILE MEMBER '+RECO' TO GROUP 6;
ALTER SYSTEM SWITCH LOGFILE; (多次,确保logfile状态不是invalid)
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redo04a.dbf';
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redo04b.dbf';
ALTER SYSTEM SWITCH LOGFILE;
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redo05a.dbf';
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redo05b.dbf';
ALTER SYSTEM SWITCH LOGFILE;
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redo06a.dbf';
ALTER DATABASE DROP LOGFILE MEMBER '/oradata/db2/redo06b.dbf';
ALTER SYSTEM SWITCH LOGFILE;
9:转移Spfile到ASM里面
create SPFILE='+DATA/db2/spfiledb2.ora' from pfile='/tmp/initmss_11g_2.ora'
Vi /tmp/initmss.ora
SPFILE='+DATA/db2/spfiledb2.ora'
2.2 转换过程中遇到问题
1.无法识别asmca已经创建的DG,通过dbca创建数据库时也找不到DG。
原因是grid用户$ORACLE_GRID_HOME/bin/oracle文件属性不对。
Chmod +s oracle
问题解决。
|
|