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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

有很多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的工作原理,这就是由浅入深,逐层递进,形成思路和方法。在遇到任何问题时,都可以借鉴这样的过程和方法。


文章转自数据和云公众号,原文链接

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
存储 网络协议 Linux
嵌入式技术知识体系问答(找工作笔试面试可能有用)
嵌入式技术知识体系问答(找工作笔试面试可能有用)
178 0
|
1月前
|
机器学习/深度学习 前端开发 算法
探索代码之美:从小白到专家的技术成长之路
【10月更文挑战第36天】技术之路,犹如攀登一座座高峰,每一步都充满挑战与惊喜。本文将带你走进编程世界,从基础语法到复杂算法,从简单项目到大型架构,一起感受代码的魅力和力量。无论你是初学者还是资深开发者,都能在这里找到共鸣和启发。让我们一起在代码的海洋中遨游,探索那些隐藏在每一行代码背后的智慧与哲理。
|
2月前
|
Python
探索代码之美:从小白到专家的技术成长之旅
编程,这个曾经让我望而却步的神秘领域,如今已成为我生活的一部分。它不仅仅是一种技能,更是一种艺术,一种解决问题的思维方式。从最初的迷茫与困惑,到现在的游刃有余,我经历了一个充满挑战与收获的学习过程。在这个过程中,我逐渐理解了编程的本质,掌握了编程语言的精髓,也学会了如何将理论知识应用于实际问题。这篇文章将分享我的技术感悟,带你一起走进编程的世界,探索代码背后的奥秘。
41 3
|
2月前
|
机器学习/深度学习 人工智能 Kubernetes
技术探索之旅:从基础到进阶的心得体会
本文记录了作者在技术领域的学习和实践过程中积累的经验与感悟。文章涵盖了从基础知识的学习、项目实践,到新技术的探索与应用,最终总结出几点对未来技术发展的思考。希望这些分享能够启发更多的技术爱好者,共同进步。
|
4月前
|
数据采集 小程序 数据挖掘
探索代码之美:从初学者到专家的技术成长之旅
编程,一门将创意与逻辑结合的艺术,其学习过程充满了挑战与发现。本文通过个人经历,探讨了如何从一个对代码一无所知的初学者成长为一个能够熟练解决问题的专家。文章不仅分享了学习编程的实用技巧和策略,还讨论了在技术成长过程中保持动力和持续学习的重要性。
40 1
|
4月前
|
自然语言处理 算法 搜索推荐
探索代码之美:从小白到专家的编程之旅
【8月更文挑战第30天】在数字时代的浪潮中,编程已成为一门艺术和科学。本文将通过个人的技术感悟,带领读者走进编程世界的大门,从基础语法到复杂算法,从单一语言到多语言融合,我们将一探究竟。文章不仅分享编程技巧和经验,还将探讨如何培养解决问题的能力,以及如何保持学习的热情和动力。无论你是编程新手还是有经验的开发者,这篇文章都将为你提供新的视角和启发。
|
5月前
|
设计模式 算法 开发者
探索代码之美:从小白到专家的技术之旅
【7月更文挑战第17天】在数字化时代的浪潮中,编程已成为一门不可或缺的技能。本文将通过个人的技术成长历程,探讨如何从一名初学者逐步成长为技术专家。我们将深入讨论基础知识的重要性、持续学习的动力、实践与项目经验的积累,以及社区参与的价值。文章旨在为那些渴望在技术领域内不断进步的人们提供一份指南和灵感。
|
6月前
|
算法 程序员
探索代码之美:技术感悟与实践
【6月更文挑战第10天】在编程的海洋中,我们都是探险者。本文将分享我在编程旅程中的一些技术感悟,包括如何理解代码之美、如何提高编程效率以及如何保持对技术的热爱。通过这些感悟,我们可以更好地理解编程的本质,提高我们的技术水平,并享受编程带来的乐趣。
32 3
|
7月前
|
机器学习/深度学习 算法 搜索推荐
数据分析师的职业规划与参考资料
数据分析师的职业规划与参考资料
|
7月前
|
大数据
大数据复习课Day02_Mysql优化补充
大数据复习课Day02_Mysql优化补充
141 0