oracle 没有控制文件,rman没有控制文件和参数文件,怎么恢复

rman没有控制文件和参数文件,如何恢复?

我的备份脚本是:

[root@localhost ~]# vim /oracle/backup/scripts/rman_full_backup.sh

#!/bin/sh

export DATE=`date +%F`

export BACK_DIR='/data/oracle/backup/data'

su - oracle -c "

mkdir -p $BACK_DIR/$DATE

rman log=$BACK_DIR/$DATE/rman_backup.log target / <

run{

backup as compressed backupset database

format '$BACK_DIR/$DATE/full_%d_%T_%s.bak'

plus archivelog

format '$BACK_DIR/$DATE/arch_%d_%T_%s.bak' delete input;

sql 'alter system archive log current';

}

crosscheck backup;

crosscheck archivelog all;

delete noprompt expired backup;

delete noprompt expired archivelog all;

delete noprompt obsolete;

exit

EOF

"

su - oracle -c "

chmod 775 $BACK_DIR/$DATE/*

"

cd /home/pdbcakup/

echo "begin to copy the backup to pd servers." >>  /tmp/oracle_fullback.log

cp -r $BACK_DIR/$DATE /home/pdbcakup

echo "end to copy the backup to pd server." >>  /tmp/oracle_fullback.log

rman备份信息:

RMAN> show all;

using target database control file instead of recovery catalog

RMAN configuration parameters for database with db_unique_name PDUNQ are:

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 15 DAYS;

CONFIGURE BACKUP OPTIMIZATION OFF; # default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

CONFIGURE CONTROLFILE AUTOBACKUP ON;

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/data/oracle/backup/data/ctl_auto/%F';

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_stuorcl.f'; # default

RMAN>

现在要恢复1月23日的数据,备份集合如下:

[oracle@powerlong4 2015-01-23]$ ll

total 9049204

-rwxr-xr-x. 1 oracle oinstall  238567936 Feb  3 11:44 arch_stuorcl_20150123_3050.bak

-rwxr-xr-x. 1 oracle oinstall    1614336 Feb  3 11:44 arch_stuorcl_20150123_3052.bak

-rwxr-xr-x. 1 oracle oinstall 9026142208 Feb  3 18:00 full_stuorcl_20150123_3051.bak

-rwxr-xr-x. 1 oracle oinstall      46776 Feb  3 18:01 rman_backup.log

[oracle@powerlong4 2015-01-23]$

现在问题是备份参数文件控制文件的/data/oracle/backup/data/ctl_auto/目录没了,找不回了,记得rman恢复的第一步就是恢复参数文件控制文件,现在不知道去哪里恢复当时的参数文件和控制文件了,我如何恢复现在的ramn备份集数据呢?

------解决思路----------------------

重建controlfile,11g创建语句,自己改改。

nomount下创建控制文件;

Sqlplus/nolog;

Conn hgq as sysdba;

Startup nomount;

CREATE CONTROLFILE REUSE set DATABASE"HGQ"  RESETLOGS  ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 454

DATAFILE

'E:\oracle\oradata\HGQ\SYSTEM01.DBF',

'E:\oracle\oradata\HGQ\UNDOTBS01.DBF',

'E:\oracle\oradata\HGQ\SYSAUX01.DBF',

'E:\oracle\oradata\HGQ\USERS01.DBF',

'E:\oracle\oradata\HGQ\TEST01.DBF',

'E:\oracle\oradata\HGQ\EXAMPLE01.DBF',

'E:\oracle\oradata\HGQ\FJBB01.DBF',

'E:\oracle\oradata\HGQ\HGQ.DBF',

'E:\oracle\oradata\HGQ\HWFX1.DBF',

'E:\oracle\oradata\HGQ\KFYY01.DBF'

LOGFILE

GROUP 1 ('E:\oracle\oradata\HGQ\REDO01.LOG')  SIZE 10M,

GROUP 2 ('E:\oracle\oradata\HGQ\REDO02.LOG')  SIZE 10M,

GROUP 3 ('E:\oracle\oradata\HGQ\REDO03.LOG')  SIZE 10M

CHARACTER SET ZHS16GBK;

------解决思路----------------------

你用的我的代码了?要改的。

上面有个参数,noresetlogs或者resetlogs,如果你日志文件

没有问题,那么就用noresetlogs,这时候是完全恢复;

如果你的日志文件有问题,那么就用resetlogs,oracle认定

是日志文件已经丢失,这时候回复是不完全恢复。

最后要执行recover database; alter database open/alter database open resetlogs;

------解决思路----------------------

引用:Quote: 引用:你用的我的代码了?要改的。

上面有个参数,noresetlogs或者resetlogs,如果你日志文件

没有问题,那么就用noresetlogs,这时候是完全恢复;

如果你的日志文件有问题,那么就用resetlogs,oracle认定

是日志文件已经丢失,这时候回复是不完全恢复。

最后要执行recover database; alter database open/alter database open resetlogs;

嗯,noresetlogs或者resetlogs,如果你日志文件

没有问题,那么就用noresetlogs,这时候是完全恢复;

那我先用no restlogs吧。再用resetlogs试试吧。

如果是noresetlogs,

后面执行recover dtabase;

alter database open;

如果是Resetlogs,

后面执行recover database using backup controlfile until cancel,

如果在线日志没有随坏,直接写入指定的在线日志,或者直接利用

归档,但是最后一个归档是不存在的,输入cancel取消回复,

然后强制打开数据库alter databaes open resetlogs;

------解决思路----------------------

引用:Quote: 引用:你用的我的代码了?要改的。

上面有个参数,noresetlogs或者resetlogs,如果你日志文件

没有问题,那么就用noresetlogs,这时候是完全恢复;

如果你的日志文件有问题,那么就用resetlogs,oracle认定

是日志文件已经丢失,这时候回复是不完全恢复。

最后要执行recover database; alter database open/alter database open resetlogs;

SQL> CREATE CONTROLFILE REUSE set DATABASE "powerdes" RESETLOGS ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 454

DATAFILE

'/home/oradata/powerdes/system01.dbf',

'/home/oradata/powerdes/sysaux01.dbf',

2    3    4    5    6    7    8    9   10  '/home/oradata/powerdes/undotbs01.dbf',

'/home/oradata/powerdes/users01.dbf',

'/home/oradata/powerdes/powerdesk01.dbf',

'/home/oradata/powerdes/plas01.dbf',

'/home/oradata/powerdes/pl01.dbf',

'/home/oradata/powerdes/help01.dbf',

'/home/oradata/powerd 11   12   13   14   15   16  es/adobelc01.dbf',

'/home/oradata/powerdes/sms01.dbf'

LOGFILE

GROUP 1 ('/home/oradata/powerdes/redo03.log')  SIZE 10M,

GROUP 2 ('/home/oradata/powerdes/redo02.log')  SIZE 10M,

GROUP 3 ('/home/oradata/powerdes/redo01.log')  SIZE 10M,

GROUP 4 ('/home/or 17   18   19   20   21   22  adata/powerdes/redo_dg_01.log')  SIZE 10M,

GROUP 5 ('/home/oradata/powerdes/redo_dg_02.log')  SIZE 10M,

GROUP 6 ('/home/oradata/powerdes/redo_dg_03.log')  SIZE 10M

CHARACTER SET ZHS16GBK

NORESETLOGS;

23   24   25   26  NORESETLOGS

*

ERROR at line 26:

ORA-01968: Only specify RESETLOGS or NORESETLOGS once

SQL>

句子写错了,第一样写的是resetlogs,最后一行noresetlogs多的可以去掉

------解决思路----------------------

引用:备份集里面没有控制文件的,恢复不到控制文件。

RMAN> restore controlfile to '/oracle/data_ora/stuorcl/control01.ctl' from '/oracle/app/oracle/flash_recovery_area/POWERDES/backupset/2015-01-23/arch_POWERDES_20150123_3050.bak';

Starting restore at 04-FEB-15

using channel ORA_DISK_1

channel ORA_DISK_1: restoring control file

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of restore command at 02/04/2015 15:20:13

ORA-19870: error while restoring backup piece /oracle/app/oracle/flash_recovery_area/POWERDES/backupset/2015-01-23/arch_POWERDES_20150123_3050.bak

ORA-19626: backup set type is archived log - can not be processed by this conversation

RMAN>

我刚才说的重建控制文件。

你不是说了自动备份的控制文件丢失了吗?/data/oracle/backup/data/ctl_auto/%F'这个目录丢掉了?

如果控制文件丢了和控制文件备份丢了,那肯定不能使用你的备份进行恢复了。

你试了restore spfile from autobackup;不行嘛?

你试试这样行吗?restore controlfile from 'E:\oracle1\product\11.2.0\dbhome_1\database\SNCFQIN.ORA‘;

你找一下这个文件SNCFQIN.ORA ,那个qin换成你自己的oraclesid

------解决思路----------------------

restore controlfile from 'E:\oracle1\product\11.2.0\dbhome_1\database\SNCFQIN.ORA‘;

如果这个没丢怎么不可以,我看了你的conrolfile autobackup on自动备份是启动的,oracle

每次备份或者重要操作时候都会自动备份控制文件,这个文件就是oracle隐藏的备份。如果

你没有修改位置,就默认这个位置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值