RAC 10g下从裸设备迁移到ASM

本文详细介绍如何迁移Oracle数据库,包括控制文件、数据文件、日志文件、临时表空间及归档日志等关键组件的迁移步骤,并特别关注SPFILE的迁移技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OS:OL4.8 64bit
DB:Oracle 10.2.0.5

1. 迁移控制文件

点击(此处)折叠或打开

  1. SQL> alter system set control_files='+DATA' scope=spfile;
启动到nomount模式

点击(此处)折叠或打开

  1. srvctl stop database -d racdb -o immediate
  2. srvctl start database -d racdb -o nomount
还原控制文件

点击(此处)折叠或打开

  1. ///dev/raw/raw13是原控制文件路径
  2. RMAN> restore controlfile from '/dev/raw/raw13';
启动到mount模式

点击(此处)折叠或打开

  1. srvctl stop database -d racdb -o immediate
  2. srvctl start database -d racdb -o mount

2. 迁移数据文件

点击(此处)折叠或打开

  1. rman target /
  2. RMAN> backup as copy database format='+DATA';
  3. RMAN> switch database to copy; //切换数据文件
启动数据库

点击(此处)折叠或打开

  1. srvctl stop database -d racdb -o immediate
  2. srvctl start database -d racdb
3. 迁移日志文件

点击(此处)折叠或打开

  1. alter database add logfile member '+DATA' to group 1;
  2. alter database add logfile member '+DATA' to group 2;
  3. alter database add logfile member '+DATA' to group 3;
  4. alter database add logfile member '+DATA' to group 4;

  5. //交替使用以下两条命令,删除旧的redo log
  6. alter system switch logfile;
  7. alter database drop logfile member '/dev/raw/raw16'

4. 迁移临时表空间

点击(此处)折叠或打开

  1. #新建临时表空间替换旧的
  2. create temporary tablespace temp2 tempfile '+DATA' size 200M;
  3. alter database default temporary tablespace temp2;
  4. drop tablespace temp;
5. 归档日志迁移

建议指定FRA(db_recovery_file_dest)

6. 迁移spfile

难度颇大,我做的时候发现仅仅迁移spfile后再更改init<SID>.ora中的spfile指向,无法奏效。具体表现为,
当单实例使用常规方式启动,spfile确实使用了新位置的spfile,但使用srvctl启动database,仍然使用原来的
spfile。原因是在创建database资源时,就已指定了spfile参数的路径。如下所示,


点击(此处)折叠或打开

  1. $ srvctl config database -d racdb -a
  2. node1 racdb1 /u01/app/oracle/product/10.2.0/db_1
  3. node2 racdb2 /u01/app/oracle/product/10.2.0/db_1
  4. DB_UNIQUE_NAME: racdb
  5. DB_NAME: racdb
  6. ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1
  7. SPFILE: /dev/raw/raw3
  8. DOMAIN: null
  9. DB_ROLE: null
  10. START_OPTIONS: null
  11. POLICY: AUTOMATIC
  12. ENABLE FLAG: DB ENABLED
正确做法参考这篇文章(感谢作者):http://blog.youkuaiyun.com/evils798/article/details/18014645

在open状态下,创建新的spfile

点击(此处)折叠或打开

  1. #创建新的spfile
  2. create pfile='/home/oracle/initracdb.ora' from spfile;
  3. create spfile='+DATA' from pfile='/home/oracle/initracdb.ora';
定位到新的spfile

点击(此处)折叠或打开

  1. 找到新的spfile
  2. export ORACLE_SID=+ASM2
  3. asmcmd

  4. ASMCMD> pwd
  5. +DATA/RACDB/PARAMETERFILE
  6. ASMCMD> ls
  7. spfile.271.902999477
可以在asmcmd中创建spfile的链接

点击(此处)折叠或打开

  1. mkalias +DATA/RACDB/PARAMETERFILE/spfile.271.902999477 +DATA/RACDB/spfileracdb.ora
修改RAC资源中的spfile参数

点击(此处)折叠或打开

  1. $ srvctl modify database -d racdb -p +DATA/RACDB/spfileracdb.ora

  2. $ srvctl config database -d racdb -a
  3. node1 racdb1 /u01/app/oracle/product/10.2.0/db_1
  4. node2 racdb2 /u01/app/oracle/product/10.2.0/db_1
  5. DB_UNIQUE_NAME: racdb
  6. DB_NAME: racdb
  7. ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1
  8. SPFILE: +DATA/RACDB/spfileracdb.ora
  9. DOMAIN: null
  10. DB_ROLE: null
  11. START_OPTIONS: null
  12. POLICY: AUTOMATIC
  13. ENABLE FLAG: DB ENABLED
分别在两节点上修改spfile路径


点击(此处)折叠或打开

  1. vi $ORACLE_HOME/dbs/initracdb[n].ora

  2. SPFILE='+DATA/RACDB/spfileracdb.ora'

重启数据库

点击(此处)折叠或打开

  1. srvctl stop database -d racdb -o immediate
  2. srvctl start database -d racdb
确认spfile路径


点击(此处)折叠或打开

  1. SQL> show parameter spfile;

  2. NAME TYPE VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. spfile string +DATA/racdb/spfileracdb.ora

完成!

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

转载于:http://blog.itpub.net/22621861/viewspace-1986655/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值