%c 备份片的拷贝数
%d 数据库名称
%D 位于该月中的第几天 (DD)
%M 位于该年中的第几月 (MM)
%F 一个基于DBID唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII为该数据库的DBID,YYYYMMDD为日期,QQ是一个1-256的序列
%n 数据库名称,向右填补到最大八个字符
%u 一个八个字符的名称代表备份集与创建时间
%p 该备份集中的备份片号,从1开始到创建的文件数
%U 一个唯一的文件名,代表%u_%p_%c
%s 备份集的号
%t 备份集时间戳
%T 年月日格式(YYYYMMDD)
Category Archives: Oracle备份恢复
ORA-38760: 此数据库实例无法启用闪回数据库
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 368263168 bytes
Fixed Size 1374668 bytes
Variable Size 276825652 bytes
Database Buffers 83886080 bytes
Redo Buffers 6176768 bytes
数据库装载完毕。
ORA-38760: 此数据库实例无法启用闪回数据库
SQL> alter database flashback off;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> alter database flashback on;
数据库已更改。
说明:如果出现以下错误,处理如下
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-38760: This database instance failed to turn on flashback database
SQL> select name from v$restore_point;
If so, drop them:
SQL> drop restore point
SQL> alter database flashback off;
.
ORA-01207/ORA-00338恢复
1、模拟环境
拷贝出来控制文件,然后对数据库进行一些操作,然后关闭数据库,使用拷贝出来的控制文件替换原控制文件,启动数据库
出现类此错误:
ORA-00338: 日志 2 (用于线程 1) 比控制文件更新
ORA-00312: 联机日志 2 线程 1: ‘E:\ORACLE\ORADATA\XFF\REDO02’
或者
ORA-01122: 数据库文件 1 验证失败
ORA-01110: 数据文件 1: ‘E:\ORACLE\ORADATA\XFF\SYSTEM01.DBF’
ORA-01207: 文件比控制文件更新 – 旧的控制文件
2、处理思路
1)创建控制文件
1.1)alter database backup controlfile to trace;
1.2)生成控制文件脚本
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "XFF" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 584
LOGFILE
GROUP 1 'E:\ORACLE\ORADATA\XFF\REDO01' SIZE 10M BLOCKSIZE 512,
GROUP 2 'E:\ORACLE\ORADATA\XFF\REDO02' SIZE 10M BLOCKSIZE 512,
GROUP 3 'E:\ORACLE\ORADATA\XFF\REDO03' SIZE 10M BLOCKSIZE 512
DATAFILE
'E:\ORACLE\ORADATA\XFF\SYSTEM01.DBF',
'E:\ORACLE\ORADATA\XFF\SYSAUX01.DBF',
'E:\ORACLE\ORADATA\XFF\UNDOTBS01.DBF',
'E:\ORACLE\ORADATA\XFF\USERS01.DBF',
'E:\ORACLE\ORADATA\XFF\EXAMPLE01.DBF',
'E:\ORACLE\ORADATA\XFF\O_ORACLE.DBF',
'E:\ORACLE\ORADATA\XFF\XIFENFEI01.DBF',
'E:\ORACLE\ORADATA\XFF\P_TEST01.DBF',
'E:\ORACLE\ORADATA\XFF\SYS_MG01.DBF',
'E:\ORACLE\ORADATA\XFF\P101.DBF',
'E:\ORACLE\ORADATA\XFF\P201.DBF',
'E:\ORACLE\ORADATA\XFF\P301.DBF',
'E:\ORACLE\ORADATA\XFF\OGG01.DBF',
'E:\ORACLE\ORADATA\XFF\SPOT01.DBF'
CHARACTER SET ZHS16GBK
;
1.3)关闭数据库
shutdown abort;
1.4)删除现在的控制文件
1.5)执行生成控制文件脚本
2)恢复数据库
recover database;
3)打开数据库
alter database open;
4)添加临时文件
alter tablespace temp add tempfile
‘E:\ORACLE\ORADATA\XFF\TEMP01.DBF’ size 20m reuse;
说明:可以使用备份的控制文件进行恢复
1:startup mount;
2:recover database using backup controlfile until cancel;
然后根据情况,指定archive log和redo file。
3:alter database open resetlogs;
undo损坏恢复–有事务
startup nomount;
create pfile=’/tmp/pfile’ from spfile;
修改pfile
*._allow_resetlogs_corruption=true
*._corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,
_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
startup pfile=’/tmp/pfile’ mount;
–undo数据文件不用离线也可以打开的时候(2),不行采用下面的方法
alter database datafile 2 offline drop;
alter database open;
CREATE UNDO TABLESPACE UNDOTBS01
DATAFILE ‘/opt/oracle/oradata/xifenfei/UNDOTBS01.dbf’ SIZE 50M;
select segment_name,status from dba_rollback_segs;–查看是否有回滚段被创建,处于offline状态
shutdown immediate;
修改pfile:
*.undo_tablespace=’UNDOTBS01′
startup pfile=’/tmp/pfile’
–alter tablespace undotbs1 offline normal;(2)–使数据文件先离线,如果开始已经离线,这里不需要处理
select segment_name,status from dba_rollback_segs;
drop rollback segment “_SYSSMUx$”;
drop tablespace UNDOTBS02 including contents and datafiles;
select * from v$recover_file;–验证是否还有文件需要恢复
shutdown immediate
修改参数文件
#*._allow_resetlogs_corruption=true
#*._corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,
_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
startup pfile=’/tmp/pfile’;
create spfile from pfile=’/tmp/pfile’;
undo损坏恢复–无事务
startup nomount;
create pfile=’/tmp/pfile’ from spfile;
修改pfile
*.undo_management=’MANUAL’
*.undo_tablespace=’SYSTEM’
#*.undo_tablespace=’UNDOTBS02′
#*.undo_management=’AUTO’
startup pfile=’/tmp/pfile’ mount;
alter database datafile 2 offline drop;
alter database open;
drop tablespace undotbs1 including contents;
select segment_name,status from dba_rollback_segs;
drop rollback segment “_SYSSMUx”$;
drop tablespace undotbs1 including contents;
CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE ‘/opt/oracle/oradata/xifenfei/UNDOTBS02.dbf’ SIZE 50M
shutdown immediate;
修改pfile
#*.undo_management=’MANUAL’
#*.undo_tablespace=’SYSTEM’
*.undo_tablespace=’UNDOTBS02′
*.undo_management=’AUTO’
startup pfile=’/tmp/pfile’;
create spfile from pfile=’/tmp/pfile’;
