A数据库 线上 数据库名字 ora10g
节点 1 ora10g1
节点 2 ora10g2
RMAN备份数据库
run {
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
allocate channel ch3 device type disk;
allocate channel ch4 device type disk;
backup full
filesperset=2
tag='Full_%d'
format='/data/oracle/backup/%T_full_%d_%s_%p'
database include current controlfile;
sql 'alter system archive log current';
backup filesperset=100
format='/data/oracle/backup/logbackup_%T_%d_%s_%c_%p'
archivelog all delete input;
release channel ch1;
release channel ch2;
release channel ch3;
release channel ch4;
}
DBID=3999883340
ora10g1
[oracle@musica bin]$export ORACLE_SID=+ASM1
[oracle@musica bin]$echo $ORACLE_SID
+ASM1
[oracle@musica bin]$sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on Sat Feb 20 16:25:38 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL> conn /as sysdba
Connected.
SQL> select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA_DB MOUNTED
FAST MOUNTED
修改pfile参数--把源数据库参数的ORACLE_DATA全部换成目标数据库的DATA_DB(最好在创建磁盘组的时候把名字做成一样的)
control_files='+DATA_DB','+FAST'
db_create_file_dest='+DATA_DB'
ora10g2.local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.59)(PORT = 1521))'
ora10g1.local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.58)(PORT = 1521))'
目标数据库的硬件配置如果大于等于源数据库,一些参数如sga可以不修改,但是如果小于了,一定要修改,改小,否则报错
[root@musica backup]# su - oracle
[oracle@musica ~]$export ORACLE_SID=+ASM1
[oracle@musica ~]$sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on Sat Feb 20 16:33:06 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate;
ASM diskgroups dismounted
ASM instance shutdown
export ORACLE_SID=+ASM1
STARTUP
EXPORT ORACLE_SID=ora10g1
startup pfile='/data/oracle/backup/pfile.ora' nomount;
ORA-00371: not enough shared pool memory, should be atleast 218227097 bytes
修改了processes参数,成功oracle会根据processes参数的值在共享池中分配一定数量的内存,参数值越大,分配的内存也越多。
run
{
allocate channel ch1 device type disk;
RESTORE CONTROLFILE FROM '/data/oracle/backup/c-3999883340-20100217-00';
release channel ch1;
}
因为是controlfile的备份信息,所以一定要确定恢复的controlfile包含了所有的备份信息,否则恢复无效。
SQL> alter database mount;
RMAN> restore database from tag='FULL_GPODB_DATA';或者restore database;
RMAN> recover database;这可能会报错,因为恢复log的时候 实例2没有恢复,把备份文件拷贝到节点2上的相同位置用recover database;
RMAN> alter database open resetlogs;
会有很多错误具体看日志,分析。没有解决不了的
报错是因为目标机器配置太差 sga分配出问题,手动修改以后启动。数据能用
查看crs状态发现少了 3个进程
两个instance 一个db
ora10g1 ora10g2 oracle_home是 /data/oracle/10g
添加db
srvctl add database -d ora10g -o /data/oracle/10g
确定show parameter cluster_database 为 true
添加instance
node1
srvctl add instance -d ora10g -i ora10g1 -n musica
node2
srvctl add instance -d ora10g -i ora10g2 -n musicb
手动重启动instance
大功告成
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16719800/viewspace-662808/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16719800/viewspace-662808/