ORA-16014 与 ORA-00312

场景:

SQL> alter system archive log current;

alter system archive log current

*

第 1 行出现错误:

ORA-16014: 日志 2 sequence# 34 未归档, 没有可用的目的地

ORA-00312: 联机日志 2 线程 1: ‘+DATA_DG/orcl/onlinelog/group_2.258.885126161‘

ORA-00312: 联机日志 2 线程 1: ‘/orabak/clog/orcl02.log‘

环境是个人的实验环境。

排查:

切日志时发现该日志无法归档了。然后进行下面排查

1. 检查日志格式。确定日志格式log_archive_format正确

2. 检查日志归档文件夹正常。包含位置、权限、可用空间。确定无误

3. 查看错误日志

cat /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_18338.trc

ORA-00313: 无法打开日志组 4 (用于线程 2) 的成员

DDE: Problem Key ‘ORA 313‘ was flood controlled (0x1) (no incident)

ORA-00313: 无法打开日志组 4 (用于线程 2) 的成员

ORA-00313: 无法打开日志组 4 (用于线程 2) 的成员

Initial buffer sizes: read 1024K, overflow 832K, change 805K

DDE: Problem Key ‘ORA 313‘ was flood controlled (0x1) (no incident)

ORA-00313: 无法打开日志组 4 (用于线程 2) 的成员

ORA-00313: 无法打开日志组 4 (用于线程 2) 的成员

能够看到内存有一定溢出

分析:

经过排查能够确定是日志本身出现了问题,比較官方的解释例如以下

ORA-01624: log string needed
for crash recovery of instance string (thread string).

Cause: A log cannot be dropped or cleared until the thread‘s checkpoint has advanced out of the log..

Action: If the database is not open, then open it. Crash recovery will advance the checkpoint. If the database is open force a global
checkpoint. If the log is corrupted so that the database cannot be opened, it may be necessary to do incomplete recovery until cancel at this log.

大概意思是检查点进程在一直在处理该文件,不能被删除或清除其内容,类似于卡死。能够通过recover来恢复。通过错误日志,我们猜測该问题非常有可能是由于内存溢出造成的。

查看内存:

[[email protected] ~]# free -m

total       used       free     shared    buffers     cached

Mem:          1878       1736        142          0          6        683

-/+ buffers/cache:       1045        832

Swap:         3999        354       3645

空暇内存不足,而且swap分区发生了交换。确实内存不足。

解决方式:

数据库有rman备份,启动到mount状态进行recover.

SQL>shutdown immediate

SQL>startup mount;

SQL>recover

ORA-00283: 恢复会话因错误而取消

ORA-00264: 不要求恢复

SQL>alter database open;

数据库已更改。

SQL>alter system archive log current;

系统已更改。

回想:

recover的时候报错了。但库启动后能够归档,而且是无损恢复,数据没有不论什么的丢失。那么这个过程发生了什么?

recover会读取日志文件、undo等文件,进行数据库事务的回滚前滚等操作,而在open数据库的时候还会对数据库文件的一致进行处理。

查看alert能够看到下面过程

Thread 2 advanced to log sequence 33 (before internal thread enable)

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_18338.trc:

ORA-00313: 无法打开日志组 4 (用于线程 2) 的成员

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_18338.trc:

ORA-00313: 无法打开日志组 4 (用于线程 2) 的成员

Archived Log entry 56 added for thread 2 sequence 32 ID 0xb9a2cd8c dest 1:

Thread 2 advanced to log sequence 34 (after internal thread enable)

Wed Jul 22 18:28:47 2015

ARC2 started with pid=35, OS id=18513

Wed Jul 22 18:28:47 2015

Thread 1 opened at log sequence 39

Current log# 1 seq# 39 mem# 0: +DATA_DG/orcl/onlinelog/group_1.257.885126161

Current log# 1 seq# 39 mem# 1: /orabak/clog/orcl01.log

Successful open of redo thread 1

MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set

Wed Jul 22 18:28:47 2015

SMON: enabling cache recovery

Instance recovery: looking for dead threads

Instance recovery: lock domain invalid but no dead threads

ARC1: Archival started

能够看到Oracle进行了缓存的恢复并对死进程进行了处理。

时间: 2024-10-27 16:41:12

ORA-16014 与 ORA-00312的相关文章

真心崩溃了,oracle安装完成后居然没有tnsnames.ora和listener.ora文件

problem: oracle  11  r2  64位安装完成后NETWORK/ADMIN目录下居然没有tnsnames.ora和listener.ora文件 solution: 问题是之前安装了另外一个版本的oracle,我是安装了oracle xe,没有卸载干净,导致在环境变量中存在TNS_ADMIN指向了不正确的目录.如下图所示: 上图中的TNS_ADMIN的配置是正确的,原来的配置是错误的.原来的配置指向的是d:\oraclexe下的某个目录,因为指向的目录已经被删除,所以用oracl

listener.ora 、sqlnet.ora 、tnsnames.ora的关系以及手工配置

listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME\network\admin目录下. --begin 重点:三个文件的作用和使用 #----------------------- sqlnet.ora(客户及服务器端) --作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串, 例如我们客户端输入 sqlplus sys/[email protected] 假如我的s

Oracel数据库 listener.ora和tnsnames.ora配置

oracel服务经常会出现各种监听问题,很多情况是 listener.ora和tnsnames.ora 的配置有问题  D:\app\Administrator\product\11.2.0\dbhome_1 oracel安装路径径参考自己的 listener.ora配置 # listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.or

Oracle的listener.ora、tnsnames.ora的配置

使用DBCA建库,Global Database Name为:prod.origtec.com      SID:prod An Oracle database is uniquely identified by a Global Database Name,typically of the form "name.domain" Global Database Name: A database is referenced by at least one Oracle instance

安装好oracle11gR2之后在相应路径下却没有生成tnsnames.ora和listener.ora

oracle安装帖子:https://blog.csdn.net/wjb123sw99/article/details/80780277 oracle安装过程中检查失败:需开启C盘共享,或者勾选忽略,参考帖子http://blog.itpub.net/22969361/viewspace-1188283/ Oracle安装失败后,彻底卸载Oracle帖子:https://blog.csdn.net/Devin_LiuYM/article/details/59539020 安装完oracle,C:

oracle instant client,tnsping,tnsnames.ora和ORACLE_HOME

前段时间要远程连接oracle数据库,但是又不想在自己电脑上完整安装oracle客户端,于是到oracle官网下载了轻量级客户端instant client.这玩意没有图形界面,全靠sqlplus远程连接服务器,所以不占地方,正好满足我这种追求"简单就好"的强迫症患者需求. 但是呢,可能是服务器那边没开监听端口,我在自己的机子上尝试了各种配置,包括tnsnames.ora,sqlnet.ora等,远程连接均告失败.为了排查问题,我先ping了一下服务器的外网地址,发现没问题.网上说,光

(转)认识oracle中的sqlnet.ora tnsnames.ora listener.ora三个文件

概述 在oracle安装目录$HOME/network/admin下,,经常看到sqlnet.ora tnsnames.ora listener.ora这三个文件,除了tnsnames.ora,其他两个文件详细的用途很多人都不太了解.sqlnet.ora 用在oracle client端,用于配置连接服务端oracle的相关参数. tnsnames.ora 用在oracle client端,用户配置连接数据库的别名参数,就像系统中的hosts文件一样.listener.ora 用在oracle

tnsnames.ora配置小结

oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin文件夹下. 1.  sqlnet.ora-–作用类似于linux或者其它unix的nsswitch.conf文件.通过这个文件来决定怎么样找一个连接中出现的连接字符串. 比如我们client输入 sqlplus sys/[email protected] 假如我的sqlnet.ora是以下这个样子 SQLNET.AUTHENT

oracle的listener.ora sqlnet.ora tnsnames.ora三个文件的关联性

学习:http://www.cnblogs.com/william-lee/archive/2010/10/20/1856261.html 之前因为安装的是windows server 2008 r2的系统,oracle是11g r2 64bit,因为像很多网友一样,无法使用pl/sql developer 8连接oracle,今天可算连上了,对listener.ora sqlnet.ora tnsnames.ora三个文件.TNSListener服务的认识也深了一层. 先说说我是怎么样连接上的

listener.ora/sqlnet.ora/tnsnames.ora配置文件详解

oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下. 英文说明: The sqlnet.ora is an optional file expressing more parameters about the connection (eg: the trace level for debugging, the types of authentication you wo