ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-16014 a problem about redo log i met

ORA-16014 a problem about redo log i met

原创 Linux操作系统 作者:arthurshen_bleum 时间:2009-02-27 09:25:53 0 删除 编辑
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-16014: 日志 2 的序列号 27 未归档, 没有可用的目的地
ORA-00312: 联机日志 2 线程 1:
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'


SQL> show parameter db_recovery

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      D:\oracle\product\10.2.0/flash
                                                 _recovery_area
db_recovery_file_dest_size           big integer 2G

SQL> alter system set db_recovery_file_dest_size=3G scope=both;

系统已更改。

SQL> alter database open;

数据库已更改。

 

 

 

2.反思:

(1).检查flash recovery area的使用情况:

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE                   0                         0               0
ONLINELOG                     0                         0               0
ARCHIVELOG                 6.36                         0               4
BACKUPPIECE                 .22                         0               1
IMAGECOPY                 63.68                         0               5
FLASHBACKLOG                .51                       .25               2

已选择6行。

SQL>

(2).计算flash recovery area已经占用的空间:

SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;

SUM(PERCENT_SPACE_USED)*3/100
-----------------------------
                       2.1231

可以看到,这里已经有2.1231G使用了,这说明我们刚开始设置的db_recovery_file_dest_size=2G不足,导致online redo log无法归档,在这里,我们通过设置db_recovery_file_dest_size参数,增大了flash recovery area来解决这个问题。

(3).也可以通过删除flash recovery area中不必要的备份来释放flash recovery area空间来解决这个问题:

(1). delete obsolete;

(2). crosscheck backupset;

      delete expired backupset;

 

Then i find that i use the nocatalog login to backup the db, that means when the control file is missing or sth. else. i will lost all the backups. it's very dangerous.

 

then :

step1:连接本地数据库

C:\Documents and Settings\Administrator>set oracle_sid=orcl

C:\Documents and Settings\Administrator>rman target /

or just rman then connect target / .

list backup;

show obsolete;

delte obsolete;

 

 

step2:创建恢复目录
1、在目录数据库中创建恢复目录所用表空间
SQL> create tablespace rmants datafile 'c:\oracle\oradata\cc\rmants.ora' size 20M ;
表空间已创建。
2、在目录数据库中创建RMAN 用户并授权
SQL> create user rman identified by rman default tablespace rmants temporary tablespace temp quota
unlimited on rmants;
用户已创建
SQL> grant recovery_catalog_owner to rman ;
授权成功。
3、在目录数据库中创建恢复目录
C:\>rman catalog rman/rman
恢复管理器:版本8.1.7.0.0 - Production
RMAN-06008:连接到恢复目录数据库
RMAN-06428:未安装恢复目录
RMAN>create catalog tablespace rmants;
RMAN-06431:恢复目录已创建
4、注册目标数据库到恢复目录
注意哦,这里我的目标数据库使用的服务名称是rman,意思为要使用RMAN 进行备份的数据库,而目录
数据库使用的服务名称是CC。
C:\>rman target sys/sys@rman
恢复管理器:版本8.1.7.0.0 - Production
RMAN-06005:连接到目标数据库:RMAN (DBID=1303772234)
RMAN>connect catalog rman/rman@cc
RMAN-06008:连接到恢复目录数据库
RMAN>register database;
RMAN-03022:正在编译命令:register
RMAN-03023:正在执行命令:register
RMAN-08006:注册在恢复目录中的数据库
RMAN-03023:正在执行命令:full resync
RMAN-08002:正在启动全部恢复目录的resync
RMAN-08004:完成全部resync
好了,到此为止前面的准备工作都做好了,下面就可以使用RMAN 来进行备份和恢复了。

 

使用RMAN

 

1、备份整个数据库
RMAN>run {
2> allocate channel c1 type disk;
3> backup database format 'e:\dbbackup\2db.dmp';

4> }

 

2、复制数据文件
RMAN>run {
2> allocate channel c1 type disk;
3> copy datafile 'c:\oracle\oradata\rman\users01.dbf' to 'e:\dbbackup\u.dbf' tag
=u1215;
4> }
3、查看备份及复制的信息
RMAN>list backup;
RMAN-03022:正在编译命令:list
备份集列表
关键字Recid 标记LV 集合标记集合计数完成时间
------- ---------- ---------- -- ---------- ---------- ----------------------
216 1 417347013 0 417346992 1 26-12 月-00
备份段列表
关键字Pc# Cp# 状态完成时间段名
------- --- --- ----------- ---------------------- ------------------------
217 1 1 AVAILABLE 26-12 月-00 E:\DBBACKUP\2DB.DMP
数据文件包括列表
文件名称LV 类型检查点SCN 检查点时间
---- ------------------------------------- -- ---- ---------- -------------
1 C:\ORACLE\ORADATA\RMAN\SYSTEM01.DBF 0 Full 33224 26-12 月-00
2 C:\ORACLE\ORADATA\RMAN\RBS01.DBF 0 Full 33224 26-12 月-00
3 C:\ORACLE\ORADATA\RMAN\USERS01.DBF 0 Full 33224 26-12 月-00
4 C:\ORACLE\ORADATA\RMAN\TEMP01.DBF 0 Full 33224 26-12 月-00
5 C:\ORACLE\ORADATA\RMAN\TOOLS01.DBF 0 Full 33224 26-12 月-00
6 C:\ORACLE\ORADATA\RMAN\INDX01.DBF 0 Full 33224 26-12 月-00
RMAN>list copy of datafile 'c:\oracle\oradata\rman\users01.dbf';
RMAN-03022:正在编译命令:list
数据文件备份列表
关键字文件状态完成时间检查点SCN 检查点时间名称
------- ---- - --------------- ---------- --------------- ------
226 3 A 26-12 月-00 33226 26-12 月-00 E:\DBBACKUP\U.DBF
4、在备份是设置相关参数
format --文件输出格式,
%d--database name,
%s--backup sets sequence number,
%p--backup pieces sequence number
filesperset --每个备份集中所包括的文件数
更多参数请参考本文开始时列出的书。
RMAN>run {
2> allocate channel c1 type disk;
3> set limit channel c1 kbytes 8000;
4> backup
5> format 'e:\dbbackup\db_%d_%s_%p.bck'
6> (database filesperset=2 );
7> }
RMAN-03022:正在编译命令:allocate
RMAN-03023:正在执行命令:allocate
RMAN-08030:分配的通道:c1
RMAN-08500:通道c1:sid=9 devtype=DISK
RMAN-03022:正在编译命令:set limit
RMAN-03023:正在执行命令:set limit
RMAN-03022:正在编译命令:backup
RMAN-03023:正在执行命令:backup
RMAN-08008:通道c1:正在启动full 数据文件备份集
RMAN-08502:set_count=6 set_stamp=417351064 creation_time=26-12 月-00
RMAN-08010:通道c1:正在指定备份集中的数据文件
RMAN-08522:输入数据文件fno=00003 name=C:\ORACLE\ORADATA\RMAN\USERS01.DBF
RMAN-08522:输入数据文件fno=00005 name=C:\ORACLE\ORADATA\RMAN\TOOLS01.DBF
RMAN-08013:通道c1:已创建1 段
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_6_1.BCK comment=NONE
RMAN-08525:备份集完成,经过时间:00:00:03
RMAN-08008:通道c1:正在启动full 数据文件备份集
RMAN-08502:set_count=7 set_stamp=417351067 creation_time=26-12 月-00
RMAN-08010:通道c1:正在指定备份集中的数据文件
RMAN-08522:输入数据文件fno=00002 name=C:\ORACLE\ORADATA\RMAN\RBS01.DBF
RMAN-08522:输入数据文件fno=00006 name=C:\ORACLE\ORADATA\RMAN\INDX01.DBF
RMAN-08013:通道c1:已创建1 段
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_7_1.BCK comment=NONE
RMAN-08525:备份集完成,经过时间:00:00:04
RMAN-08008:通道c1:正在启动full 数据文件备份集
RMAN-08502:set_count=8 set_stamp=417351071 creation_time=26-12 月-00
RMAN-08010:通道c1:正在指定备份集中的数据文件
RMAN-08522:输入数据文件fno=00001 name=C:\ORACLE\ORADA

TA\RMAN\SYSTEM01.DBF
RMAN-08011:备份集中包括当前控制文件
RMAN-08013:通道c1:已创建1 段
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_1.BCK comment=NONE
RMAN-08013:通道c1:已创建2 段
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_2.BCK comment=NONE
RMAN-08013:通道c1:已创建3 段
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_3.BCK comment=NONE
RMAN-08013:通道c1:已创建4 段
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_4.BCK comment=NONE
RMAN-08013:通道c1:已创建5 段
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_5.BCK comment=NONE
RMAN-08013:通道c1:已创建6 段
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_6.BCK comment=NONE
RMAN-08013:通道c1:已创建7 段
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_7.BCK comment=NONE
RMAN-08525:备份集完成,经过时间:00:00:19
.... ....
RMAN-08008:通道c1:正在启动full 数据文件备份集
RMAN-08502:set_count=9 set_stamp=417351090 creation_time=26-12 月-00
RMAN-08010:通道c1:正在指定备份集中的数据文件
RMAN-08522:输入数据文件fno=00004 name=C:\ORACLE\ORADATA\RMAN\TEMP01.DBF
RMAN-08013:通道c1:已创建1 段
RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_9_1.BCK comment=NONE
RMAN-08525:备份集完成,经过时间:00:00:07
RMAN-03023:正在执行命令:partial resync
RMAN-08003:启动部分恢复目录的resync
RMAN-08005:完成部分resync
RMAN-08031:释放的通道:c1
5、使用脚本功能
使用脚本的目的在于方便我们操作中的方便,操作上和存储过程相似。
RMAN>create script. l0dbbackup {
2> allocate channel c1 type disk;
3> backup
4> format 'e:\dbbackup\db_%d_%s_%p.bck'
5> (database filesperset=2 );
6> }
RMAN-03022:正在编译命令:create script.
RMAN-03023:正在执行命令:create script.
RMAN-08085:已创建脚本l0dbbackup
RMAN>run {execute script. l0dbbackup; }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20945761/viewspace-558015/,如需转载,请注明出处,否则将追究法律责任。

下一篇: Using EXPLAIN PLAN
请登录后发表评论 登录
全部评论

注册时间:2009-02-26

  • 博文量
    36
  • 访问量
    26318