DBA入门之路:由浅入深的总结学习法

有很多DBA朋友在入门时总觉得不得路径,长久的徘徊于门外,而过来人的经验又往往高屋建瓴难以落地,两者总觉得难以对接起来,如何才能解决这个问题呢?

我一直推荐的学习方法,之前在文章 DBA入门之路:学习与进阶之经验谈 中就有描述。如果能讲这些方法和实践一一对应起来,我想就可以更形象的帮助一些朋友。结合今天的一个小案例,和大家做一个分享。

回顾:由点及面由浅入深的学习方案

我一直主张"由点到线再及面"的学习方法。特别是对于初学者,如果没有经过专门的培训和系统学习,那么自己通过实践的学习和思考就应当深入,在知识上,从某个角度来说,是"不患寡,而患不精深"。在我们遇到问题时,就应该不断深入研究,直至问题的核心本质,这样通过一个案例或实际问题的诊断学习和研究,我们就可以带动很多连带知识的学习,这样从一个点深入下去就形成一条线,再横向扩展就可以形成一个知识网,解决和研究的问题多了,就可以逐渐覆盖一个面,形成一个知识体系,这样慢慢的你就会觉得学习不再困难,而是一件得心应手的事情。

案例:Expdp ORA-31626 错误的启示

今天有朋友在‘云和恩墨大讲堂’提出一个关于expdp的导出问题。

操作:

expdp system/password directory=expdir full=y dumpfile=20151230.dmp logfile=20151230.log

错误提示:

UDE-00008: 操作产生了 ORACLE 错误 31626 ORA-31626: 作业不存在 ORA-39086: 无法检索作业信息 ORA-06512: 在 "SYS.DBMS_DATAPUMP", line 2772 ORA-06512: 在 "SYS.DBMS_DATAPUMP", line 3886 ORA-06512: 在 line 1

在面对错误的时候,DBA不能有畏缩的心理,一定要认真阅读错误,对于这个提示,其实可以看到明确的信息“作业不存在”,也就是JOB检测不到了,那么要么这个JOB执行完了,要么异常中止了。

建议:

以下两条是我们给所有初学者的建议,收集信息、保护现场,这是寻求解决和帮助的必要手段。

在面对任何错误时,都应当详细的排查所有可以获得的日志; 在面对复杂问题时,一定要得出结论后再操作,在操作前尽量保留可回退的现场。

其实在获取了充足的信息之后,无论是提问还是自己排查都容易接近真相。

结论:

检查导出操作日志,可以看到导出是完整成功的,我们由此可以判定导出的正常执行,那么前台抛出的错误可以安全的忽略。当然也可以测试一下,判定导出文件是完好的。到这一步判断,是每一个工程师应该自主做出的。

. . 导出了 "SYSTEM"."REPCAT$_USER_ATH"0 KB 0 行 . . 导出了 "SYSTEM"."REPCAT$_USER_PS" 0 KB 0 行 . . 导出了 "SYSTEM"."SQLPLS_T_PROFILE" 0 KB 0 行 . . 导出了 "TSMSYS"."SRS$" 0 KB 0 行 已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_FULL_01" *************************************************************************** SYSTEM.SYS_EXPORT_FULL_01 的转储文件集为: /oradata/20151230.dmp 作业 "SYSTEM"."SYS_EXPORT_FULL_01" 已于 09:41:33 成功完成

进一步的确认:

通过MOS官网进一步的确认问题,是Oracle DBA的必要技能。在MOS上可以找到这个问题的相关BUG,BUG号是5969934。

Bug 5969934 : EXPDP CLIENT GETS UDE-00008 ORA-31626 WHILE THE SERVER SIDE EXPORT IS OK

这个BUG的从 10.2.0.2 到 11.2.0.3,都可能发生,其根本原因是JOB的执行和客户端的通讯出现问题。

Oracle Support的提示也包括检查日志:

Relying on information in the log file is one way to verify that the job actually completed successfully.

问题源自:DBMS_DATAPUMP.GET_STAUS 的调用。在以下的MOS回复中,可以看到,执行EXPDP的工作是通过DBMS_DATAPUMP包进行的,其中GET_STAUS用于状态获取。当获取状态时发现JOB进程失踪,就抛出前台的异常,而从日志可以判断,事实上是导出已经完成。如果EXPDP能够争取反馈给客户端完成状态,那么这个问题就不会出现了。

The expdp client makes calls to DBMS_DATAPUMP package to start and monitor export job. Once the export job is underway, the client just monitors the job status by issuing DBMS_DATAPUMP.GET_STAUS. Therefore, if the export logfile says “job successfully completed”, the dump file generated by the job should be fine. You can simply ignore the errors, since the dump file is still valid for an import.

这是一个简单的例子,我们希望大家也能够分析、总结自己遇到的问题,如此即可以分享给大家,又可以提升自我的学习和总结能力。

这个案例,从一个最简单的错误分析猜测,到日志检查判断,进一步确认BUG根源,由此又可以进一步了解EXPDP的工作原理,这就是由浅入深,逐层递进,形成思路和方法。在遇到任何问题时,都可以借鉴这样的过程和方法。

点滴知识,在于分享;授人玫瑰,手有余香。欢迎大家向我们投稿,或者在微信群参与分享。

近期文章分享

【往期文章】

Oracle 12c ASM 防火防盗新特性揭秘

DBA入门之路:学习与进阶之经验谈

DBA入门之路:关于日常工作的建议

三十八载,Oracle伴我同行—记我的成长之路

从Approx_Count_Distinct到M7的CPU集成

诊断工具与方法:从OS到数据库

Cloud时代DBA的DevOps最佳实践 - SQL 审核

Oracle Database 12.2新特性详解

云和恩墨

数据驱动,成就未来。整合业界顶尖的技术与合作伙伴资源,围绕数据及相关领域,提供解决方案和专业服务。

业务架构

电子渠道(网络销售)分析系统、数据治理

IT基础架构

分布式存储解决方案

数据架构

Oracle DB2 MySQL NoSQL

专项服务:架构/安全/容灾/优化/整合/升级/迁移

运维服务:运维服务 代维服务

人才培养:个人认证 企业内训

软件产品:SQL审核、监控、数据恢复

应用架构

应用软件开发管控:数据建模 | SQL审核和优化

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2015-12-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

漫谈DPI工具

01 聊聊DPI DPI即深度数据包检测,这种技术一般是针对应用层的流量进行检测和控制。当有流量经过时基于DPI的监控系统后,系统需要读取报文中OSI七层协议...

33413

云原生应用的成熟度模型探讨

原文地址:https://dzone.com/articles/cloud-native-application

21410
来自专栏腾讯Bugly的专栏

【团队分享】苍翼之刃:论File Descriptor泄漏如何导致Crash?

这一期的团队分享,我们特邀苍翼之刃的开发负责人Jay,为大家分享在Android项目中遇到的一些Crash。 苍翼之刃 外文:BlazBlue Revolut...

4717
来自专栏牛客网

运维工程师养成实录:从确立目标到收获offer

作为一名渣硕,找工作陆陆续续从今年的三月份开始断断续续的刷一些题,看基础到八月份的猛攻阶段,到此,算是得到了一个不错的收获,也拿到了几个offer,算是对自己的...

46712
来自专栏Golang语言社区

Golang语言社区--学习游戏服务器编程基础篇

大家好,我是Golang语言社区主编彬哥,本篇给大家转载一篇关于游戏服务器相关的文章。

4166
来自专栏性能与架构

内容平台 Medium 的技术体系

Medium 是全球知名的内容平台,访问量惊人 据半年前的数据统计,用户在 Medium 上阅读时间的总和已经达到 2600年,每月有2500万阅读者,每周有数...

3306
来自专栏CSDN技术头条

为什么要从PHP转向Go,及满足于使用MySQL

? 左:ElePHPant(Vincent Pontier),右:Gophers (golang.org)。此二者分别是PHP和Golang的吉祥物 【译者注...

23510
来自专栏EAWorld

如何完美使用微服务

译者的话: 一直以来面向对象理念的布道者们都在期待一个大杀器来能使应用设计高内聚,低耦合,团队能协同开发,后期交付后可以快速部署,维护成本低。微服务其实就是他们...

33013
来自专栏数据和云

自相矛盾:一个进程可以自成死锁么?

崔华,网名 dbsnake Oracle ACE Director,ACOUG 核心专家 编辑手记:感谢崔华授权我们独家转载其精品文章,也欢迎大家向“Oracl...

3364
来自专栏即时通讯技术

如何选择即时通讯应用的数据传输格式前言 学习交流更多资料数据格式的选型需要考虑的方面不同类别的数据传输协议(格式)的比较你会选择哪种格式?结语相关技术资料分类

即时通讯应用(包括IM聊天应用、实时消息推送应用等)开发的前期技术选型时,关于数据传输格式的选择,在即时通讯开发者同行的眼里,是个极富争议话题。

583

扫描关注云+社区