集群 RMAN备份
RAC备份可以在任意一个结点做备份
备份可以存放在Flash Recovery下,也就是共享磁盘上,也可以放在本地,但一般放到Flash Recovery上。
RAC下只能用RMAN做备份,不能用手工备份,因为通过操作系统是读不出ASM管理的磁盘下的文件的。
*********************************************************************
SQL> select file_id,file_name,tablespace_name from dba_data_files;
*********************************************************************
RMAN备份
SQL> select file_id,file_name,tablespace_name from dba_data_files;
[oracle@rac1 arch1]$ rman target /
RMAN> show all;
关库做冷备份冷备份
[oracle@rac1 arch1]$ srvctl stop database -d prod
[oracle@rac1 arch1]$ srvctl stop instance -d prod -i prod1
[oracle@rac1 arch1]$ srvctl stop instance -d prod -I prod2
[oracle@rac1 arch1]$ rman target /
connected to target database: PROD (DBID=180712749) //注意这里显示不对
RMAN> run {
startup force mount;
allocate channel c1 type disk;
allocate channel c2 type disk;
backup database;
alter database open; }
RMAN-03009: failure of backup command on c2 channel at 12/04/2011 01:36:41
ORA-01138: database must either be open in this instance or not at all
正在做冷备份的时候报以上错误,执行以下命令
[oracle@rac2 ~]$ crs_stat -t
[oracle@rac2 ~]$ srvctl stop database -d prod
再进入RMAN
[oracle@rac1 arch1]$ rman target /
RMAN-03009: failure of backup command on c2 channel at 12/04/2011 01:47:44
ORA-01138: database must either be open in this instance or not at all
这里还是报错了
手工把两结点都启动到MOUNT状态 ,刚才是实例1启动到MOUNT实例2没有启动到MOUNT,所以报错了。
手工分别在两结点启动到MOUNT
SQL> shutdown immediate
SQL> startup mount
Database mounted.
备份
RMAN> run {
> allocate channel c1 type disk;
> allocate channel c2 type disk;
> backup database;
> alter database open; }