OS:OL4.8 64bit
DB:Oracle 10.2.0.5
1. 迁移控制文件
启动到nomount模式
还原控制文件
启动到mount模式
2. 迁移数据文件
启动数据库
3. 迁移日志文件
4. 迁移临时表空间
5. 归档日志迁移
建议指定FRA(db_recovery_file_dest)
6. 迁移spfile
难度颇大,我做的时候发现仅仅迁移spfile后再更改init<SID>.ora中的spfile指向,无法奏效。具体表现为,
当单实例使用常规方式启动,spfile确实使用了新位置的spfile,但使用srvctl启动database,仍然使用原来的
spfile。原因是在创建database资源时,就已指定了spfile参数的路径。如下所示,
正确做法参考这篇文章(感谢作者):http://blog.youkuaiyun.com/evils798/article/details/18014645
在open状态下,创建新的spfile
定位到新的spfile
可以在asmcmd中创建spfile的链接
修改RAC资源中的spfile参数
分别在两节点上修改spfile路径
重启数据库
确认spfile路径
完成!
DB:Oracle 10.2.0.5
1. 迁移控制文件
点击(此处)折叠或打开
- SQL> alter system set control_files='+DATA' scope=spfile;
点击(此处)折叠或打开
-
srvctl stop database -d racdb -o immediate
- srvctl start database -d racdb -o nomount
点击(此处)折叠或打开
-
///dev/raw/raw13是原控制文件路径
- RMAN> restore controlfile from '/dev/raw/raw13';
点击(此处)折叠或打开
-
srvctl stop database -d racdb -o immediate
- srvctl start database -d racdb -o mount
2. 迁移数据文件
点击(此处)折叠或打开
-
rman target /
-
RMAN> backup as copy database format='+DATA';
- RMAN> switch database to copy; //切换数据文件
点击(此处)折叠或打开
-
srvctl stop database -d racdb -o immediate
- srvctl start database -d racdb
点击(此处)折叠或打开
-
alter database add logfile member '+DATA' to group 1;
-
alter database add logfile member '+DATA' to group 2;
-
alter database add logfile member '+DATA' to group 3;
-
alter database add logfile member '+DATA' to group 4;
-
-
//交替使用以下两条命令,删除旧的redo log
-
alter system switch logfile;
- alter database drop logfile member '/dev/raw/raw16'
4. 迁移临时表空间
点击(此处)折叠或打开
-
#新建临时表空间替换旧的
-
create temporary tablespace temp2 tempfile '+DATA' size 200M;
-
alter database default temporary tablespace temp2;
- drop tablespace temp;
建议指定FRA(db_recovery_file_dest)
6. 迁移spfile
难度颇大,我做的时候发现仅仅迁移spfile后再更改init<SID>.ora中的spfile指向,无法奏效。具体表现为,
当单实例使用常规方式启动,spfile确实使用了新位置的spfile,但使用srvctl启动database,仍然使用原来的
spfile。原因是在创建database资源时,就已指定了spfile参数的路径。如下所示,
点击(此处)折叠或打开
-
$ srvctl config database -d racdb -a
-
node1 racdb1 /u01/app/oracle/product/10.2.0/db_1
-
node2 racdb2 /u01/app/oracle/product/10.2.0/db_1
-
DB_UNIQUE_NAME: racdb
-
DB_NAME: racdb
-
ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1
-
SPFILE: /dev/raw/raw3
-
DOMAIN: null
-
DB_ROLE: null
-
START_OPTIONS: null
-
POLICY: AUTOMATIC
- ENABLE FLAG: DB ENABLED
在open状态下,创建新的spfile
点击(此处)折叠或打开
-
#创建新的spfile
-
create pfile='/home/oracle/initracdb.ora' from spfile;
- create spfile='+DATA' from pfile='/home/oracle/initracdb.ora';
点击(此处)折叠或打开
-
找到新的spfile
-
export ORACLE_SID=+ASM2
-
asmcmd
-
-
ASMCMD> pwd
-
+DATA/RACDB/PARAMETERFILE
-
ASMCMD> ls
- spfile.271.902999477
点击(此处)折叠或打开
- mkalias +DATA/RACDB/PARAMETERFILE/spfile.271.902999477 +DATA/RACDB/spfileracdb.ora
点击(此处)折叠或打开
-
$ srvctl modify database -d racdb -p +DATA/RACDB/spfileracdb.ora
-
-
$ srvctl config database -d racdb -a
-
node1 racdb1 /u01/app/oracle/product/10.2.0/db_1
-
node2 racdb2 /u01/app/oracle/product/10.2.0/db_1
-
DB_UNIQUE_NAME: racdb
-
DB_NAME: racdb
-
ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1
-
SPFILE: +DATA/RACDB/spfileracdb.ora
-
DOMAIN: null
-
DB_ROLE: null
-
START_OPTIONS: null
-
POLICY: AUTOMATIC
- ENABLE FLAG: DB ENABLED
点击(此处)折叠或打开
-
vi $ORACLE_HOME/dbs/initracdb[n].ora
-
- SPFILE='+DATA/RACDB/spfileracdb.ora'
重启数据库
点击(此处)折叠或打开
-
srvctl stop database -d racdb -o immediate
- srvctl start database -d racdb
点击(此处)折叠或打开
-
SQL> show parameter spfile;
-
-
NAME TYPE VALUE
-
------------------------------------ ----------- ------------------------------
- spfile string +DATA/racdb/spfileracdb.ora
完成!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22621861/viewspace-1986655/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22621861/viewspace-1986655/