热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

因notopenforceloggning引起的DGora-1578报错

因notopenforceloggning引起的DGora-1578报错前天,部署实施公司xx生产中心录入库一套DG,但是在之前,这其中的一台primary是我N就之前的一台测试机。记得当时我是通过寂寞方式安装的版本11.2g03小版本。本来这这也没什么,可以前段时间,因为项目

因not open force loggning 引起的DG ora-1578 报错 前天,部署实施公司xx生产中心录入库一套DG,但是在之前,这其中的一台primary 是我N就之前的一台测试机。记得当时我是通过寂寞方式安装的版本 11.2g 03小版本。本来这这也没什么,可以前段时间,因为项目

因not open force loggning 引起的DG ora-1578 报错

前天,部署实施公司xx生产中心录入库一套DG,但是在之前,这其中的一台primary 是我N就之前的一台测试机。记得当时我是通过寂寞方式安装的版本 11.2g 03小版本。本来这这也没什么,可以前段时间,因为项目,部门经理突然把正式数据导入,就这样,变成了公司的正式库运行生产。 为此,我狂汗,咋也不提前说一下。就这样,我的测试机变成了生产,由于N就前的机子,我也忘记了,这台主 当时做了什么操作。

周一上班,因其他事需处理,我也没远程看看这台xx生产中心库的性能,及设置什么的。 上午高峰期,也就这样过了。

下午,突然,RTX 闪烁这急忙忙的头像,Y的,点开一下,测试部,质检部,ETL部,xx数据生产部 都在呐喊,怎么连接不进去了? 我也赶紧远程看看这xx服务器,Y的,ORA-04031 报错?

Errors in file /u01/app/oracle/diag/rdbms/xxxdb_p/gtadb/trace/gtadb_ora_29163.trc (incident=4220):
ORA-04031: unable to allocate 56 bytes of shared memory ("streams pool","unknown object","streams pool","fixed allocation callback")
Incident details in: /u01/app/oracle/diag/rdbms/xxxdb_p/gtadb/incident/incdir_4220/gtadb_ora_29163_i4220.trc
Thu Dec 26 18:29:08 2013
Dumping diagnostic data in directory=[cdmp_20131226182908], requested by (instance=1, osid=29163), summary=[incident=4220].
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Error ORA-4031 occured during Initialization of Bufq KUPC$C_1_20131225143407
Starting background process QMNC
Thu Dec 26 18:29:09 2013
QMNC started with pid=37, OS id=29200

看看这库到底分配了多少内存:

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 512M
sga_target big integer 512M

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 5904M

在看看 dev/shm 共享内存:

tmpfs 9.8G 0 9.8G 0% /dev/shm

再通过系统看了看 物理内存及swap:

total used free shared buffers cached
Mem: 12299044 12233492 65552 0 15948 11230976
-/+ buffers/cache: 986568 11312476
Swap: 25165812 76372 25089440

top - 13:28:07 up 1 day, 3:40, 5 users, load average: 14.78, 16.62, 17.17
Tasks: 314 total, 8 running, 306 sleeping, 0 stopped, 0 zombie
Cpu(s): 64.5%us, 1.7%sy, 0.0%ni, 8.3%id, 25.4%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 12299044k total, 12230484k used, 68560k free, 16032k buffers
Swap: 25165812k total, 76372k used, 25089440k free, 11230472k cached

此时CPU :Cpu(s): 97.8%us, 2.1%sy, 0.0%ni, 0.0%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st 我也过去:

看见这情况,知道了大概,通过系统登录,Y的,也登陆不了,原来公司的一种数据同步软件在实时数据同步,原来cpu 这大,这同步软件虽说也是通过对oracle 日志分析提出的数据,其通过自己的一个专有column值变动达到数据同步,同时也做大量得 select count(*) tab 操作。

临时通过 alter system flush shared_pool ; 还是不行! 依旧登陆不了! 最后杀掉不必要的服务进程还是不行,最后 我恨,只能stop 监听了。 管理登陆,还是不行,通过执行alter system flush shared_pool ; 确保这ora-04031 错。最后最后,我直接干掉oracle 进程,库关了!(心情凉透了,万一起不来咋办? 幸好,周末晚上,这库我备了控制文件,开了归档)。

调整内存大小,重启了一下,连接OK 。 虽说有点小怨言部门经理。其他不说了! 连接正常,可以开工了,RTX 通知可用,看看时间,只发了5分钟,没造成大的影响。

考虑的这primay cpu 很大,部门经理要求部署一台standby,读写分离,分担负载。

开始搭建了,按照那些记忆,一点点的配置起来,查看库基本信息: 归档、密码文件、参数文件、监听测试、数据文件,日志文件、备份、 拷贝、 duplicate、查看备库进程、模式 、修改日志。ok都弄好了!查看trace文件,一切正常。

突然瞄了一下trace 日志: Y的,怎么又坏块,刚跑的dg, 日志如下:

Thu Dec 26 20:20:22 2013
Errors in file /u01/app/oracle/diag/rdbms/gtadb_s/gtadb2/trace/gtadb2_ora_16302.trc (incident=24222):
ORA-01578: ORACLE ?版.?..?.(?.欢??18, ?.. 399904)
ORA-01110: ?版.?.欢 18: '/u01/app/oracle/datafile/gta_input_data_07.dbf'
ORA-26040: ?版.?..浣跨. NOLOGGING ?.」?.浇?
Thu Dec 26 20:20:25 2013
Errors in file /u01/app/oracle/diag/rdbms/gtadb_s/gtadb2/trace/gtadb2_ora_16306.trc (incident=24223):
ORA-01578: ORACLE ?版.?..?.(?.欢??17, ?.. 410498)
ORA-01110: ?版.?.欢 17: '/u01/app/oracle/datafile/gta_input_data_06.dbf'
ORA-26040: ?版.?..浣跨. NOLOGGING ?.」?.浇?
Thu Dec 26 20:21:05 2013
Sweep [inc][28066]: completed
Sweep [inc][28065]: completed
Sweep [inc][24223]: completed
Sweep [inc][24222]: completed

看了一下,再看看表18:15,这坏块估计是那个开发的,在创建表,索引是估计加了nologging引起,先不管,回家再说,这段时间比较累,先补补觉!

第二天上班,再看看trace 文件:

Thu Dec 26 23:00:02 2013
Errors in file /u01/app/oracle/diag/rdbms/gtadb_s/gtadb2/trace/gtadb2_ora_20463.trc (incident=24577):
ORA-01578: ORACLE ?版.?..?.(?.欢??17, ?.. 410512)
ORA-01110: ?版.?.欢 17: '/u01/app/oracle/datafile/gta_input_data_06.dbf'
ORA-26040: ?版.?..浣跨. NOLOGGING ?.」?.浇?
Thu Dec 26 23:00:05 2013
Sweep [inc][24577]: completed
Thu Dec 26 23:00:17 2013
DDE: Problem Key 'ORA 1578' was completely flood controlled (0x6)
Further messages for this problem key will be suppressed for up to 10 minutes
Thu Dec 26 23:00:24 2013
DDE: Problem Key 'ORA 1578' was completely flood controlled (0x6)
Further messages for this problem key will be suppressed for up to 10 minutes
Thu Dec 26 23:16:02 2013

又报后面的错, 百度了一下DDE: Problem Key 'ORA 1578' was completely flood controlled (0x6) ,和猜测一样,说是trace 文件比较频繁,所以。。。。。

开始动手了:

通过 v$archived_gap,v$recovery_log,v$recover_file 都显示no row

通过DBV FILE 体检一下,

SQL> l
1 SELECT SEGMENT_TYPE,OWNER||'.'||SEGMENT_NAME
2 FROM DBA_EXTENTS
3 WHERE FILE_ID = 17 AND 410512 BETWEEN BLOCK_ID
4* AND BLOCK_ID+BLOCKS -1

SEGMENT_TYPE||'.'||SEGMENT_NAME
--------------------------------------------------------------------------------
INDEX.IUM46669939

看来看,原来是一条索引,好办, 同时心想,难道我忘记了forcelogging? 创建dg 的时候??

于是,毫不犹豫的 v$database 看了一下,还真是! 于是毫不犹豫在primary 上执行 alter database force logging!

通知通过user_indexes 查看这索引到底属于那张表:

SQL> select index_name,index_type,TABLE_OWNER,table_name,logging,TABLESPACE_NAME from user_indexes where index_name='IUM46669939';

INDEX_NAME INDEX_TYPE TABLE_OWNER TABLE_NAME LOG TABLESPACE_NAME
------------------------------ --------------------------- ------------------------------ ------------------------------ --- ------------------------------
IUM46669939 NORMAL INPUT TBL_ZZ_I_PERF YES GTA_INPUT_DATA

最后,通过沟通,查看,这张表上午基本没有操作,于是毫不犹豫 rebuild indexes , 强制切换日志,查看备库,ok ! 问题解决。

当然,如果是控制文件,或者其他就更具不同 而解决了! 不管bbed ,aul 或者dul , 我觉得,备份对于DBA 来说,重于一切!

DBA 必须将两份文件保持为最新状态: 一份是好的简历,一份是最近的备份! --我觉得比较赞!


推荐阅读
  • 短暂的人生中,IT和技术只是其中的一部分。无论换工作还是换行业,最终的目标是成功、荣誉和收获。本文探讨了技术人员如何跳出纯技术的局限,实现更大的职业发展。 ... [详细]
  • 随着SEO技术的发展,越来越多的企业和个人开始重视网络营销。然而,要让网站在搜索引擎中获得良好的排名,不仅需要提升网站内容的质量,还需要构建高质量的外部链接。本文将详细介绍什么是高质量的外部链接以及如何有效构建这些链接。 ... [详细]
  • 开发笔记:前端之前端初识
    开发笔记:前端之前端初识 ... [详细]
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
  • 大数据领域的职业路径与角色解析
    本文将深入探讨大数据领域的各种职业和工作角色,帮助读者全面了解大数据行业的需求、市场趋势,以及从入门到高级专业人士的职业发展路径。文章还将详细介绍不同公司对大数据人才的需求,并解析各岗位的具体职责、所需技能和经验。 ... [详细]
  • 本文为初学者提供了一条清晰的学习路线,帮助他们逐步成长为优秀的Web开发人员。通过十个关键步骤,涵盖从基础到高级的各个方面,确保每位学习者都能找到适合自己的学习方向。 ... [详细]
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • 本文介绍 DB2 中的基本概念,重点解释事务单元(UOW)和事务的概念。事务单元是指作为单个原子操作执行的一个或多个 SQL 查询。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 在将Web服务器和MySQL服务器分离的情况下,是否需要在Web服务器上安装MySQL?如果安装了MySQL,如何解决PHP连接MySQL服务器时出现的连接失败问题? ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
author-avatar
a52713849_937
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有