DBA不仅仅是知道如何安装服务器和设置数据库。最重要的职责之一是通过监控实例来识别潜在问题。但应该监控什么,为什么?以下是DevOps,云和数据隐私进入图片的新时代要监控的五大事项。 随着数据库越来越多地被包含在DevOps中,导致更多的变化,更常见的是,另一个附加措施已经发挥作用。 因此,除了跟踪失败的登录以及sysadmin组中有多少帐户之外,DBA还需要监视SQL注入攻击,服务器和数据库设置的更改以及对权限,用户和角色的修改。 3备份 几乎每个数据库都应定期备份,包括频繁的事务日志备份。除非您有一个工作来默认备份实例上的每个数据库,否则很容易错过添加新数据库。顺便说一句,确保您有一个流程来测试备份文件。 4文件增长 随着时间的推移,数据库文件可能会耗尽可用空间,就像这些文件所在的卷一样。因此,事务必须在数据库文件增长时等待,如果文件中没有更多空间或卷上的空间用完,应用程序将停止运行。
针对数据库的表空间增长,Bethune 提供增长趋势曲线,让数据库的空间增长清晰可见,通过选择不同的表空间,还可以通过 TOP 对象一览空间分布,例如对于 SYSTEM 表空间,以下图表就展示了空间消耗的重要对象 针对空间状况,在容量页面,还会显示数据库空间的一个月、一周、五日变化趋势,空间总量等信息,关键内容一目了然。 ? 在性能页面,通过框选一个时段,可以清晰的看到影响性能的核心SQL,如果你关系更详细的信息,一键可以生成 AWR报告,让你一览数据库总体信息。 ? 最近告警,可以通过对主机操作系统、数据库告警日志等信息的监控,及时提示系统性能问题、空间问题等。 ? 更重要的是,当您有数十上百个数据库需要监控运维时,Bethune 同样帮您保持了优雅简捷,重要的信息一点不少,次要的信息分层展示。 ?
提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。
作为DBA,有时会被挑战类似这样的问题: 如果现有业务规模增加10倍、100倍,数据库是否能够支撑? 下个月我们搞大促,数据库这边没问题吧? 计划进行去O工作,代码逻辑不变,数据库从Oracle切换到MySQL,MySQL能支撑业务吗? 服务器采购选型,到底哪款服务器更适合我们呢? 面对诸如上面的这些质疑,DBA应该如何面对? 身为DBA该如何评估现有资源使用情况? 如果现有数据库资源确实无法支撑,又该本着什么原则进行改造呢? 本文是针对上面问题的一些经验总结,供大家参考。 这也是为什么很多DBA都在不同场合,大力推荐使用闪存,其对于数据库性能的提升会带来质的飞跃。 也可以类似上面的做法,做好抽象工作,只对数据库端施加压力,观察数据库行为,判读数据库是否为瓶颈。如判断就是数据库的承载能力不够,可按照不同层次进行考虑。
为更好的帮助DBA运维数据库,腾讯云将于每月12日在社群直播开展DBbrain诊断日,腾讯云高级产品经理迪B哥直播解析经典数据库运维难题,结合腾讯云数据库智能管家DBbrain的能力,为大家提供问题优化思路和方法 1 前言 在使用MySQL的过程中,经常会遇到由于数据库性能问题导致的业务故障。对于研发、运营、产品等非运维职能的同事来说,往往更愿意请DBA来协助定位问题和优化。 如果公司确有DBA在,那么经验丰富的DBA可能可以依靠经验快速解决某些常见故障,但大多数情况下往往会通过下面“三板斧”进行排查: 1. 对于经验丰富的DBA来说,这“三板斧”早已了然于心,但大多数研发同学为了处理看似简单的数据库问题(现象往往是报错、超时或者业务明显卡顿以及不可用),不仅要面对一系列繁杂的命令、参数,而且更重要的一点是通过这些命令和方法查看到的都是故障的 “现场”和“证据”,因此还需要依靠丰富的运维经验去判断和识别,至于处理方法和优化手段更是极度依靠DBA的数据库知识体系和实战经验的。
云和AI,为数据库的进化提供了无限可能。 从“数据库+云”到“云+数据库”,腾讯云重新定义数据库云服务。 8月28日,腾讯云数据库将举办战略升级发布会,发布系列重磅新品。 腾讯20年数据沉淀和数十位顶尖专家不断优化改进,让数据库会说话,彻底解放DBA,开启“实时、简单、便捷、高效”管理数据库的新时代! 现场特邀中国计算机行业协会开源数据库专委会会长周彦伟、DBAplus社群联合创始人韩锋共同探讨如何融合云和AI的能力让数据库变得更加“智能”“稳定”“可靠”“安全”,共话未来数据库场景。
|作者 邓英明,腾讯云DBA,擅长数据库架构设计、故障诊断、性能优化,现主要负责腾讯云数据库MySQL/TDSQL-C/Redis的相关工作。 内存分配器占用的内存,具体如下: 全局共享 1. innodb_buffer_pool_size:InnoDB缓冲池的大小 2. innodb_additional_mem_pool_size:InnoDB存放数据字典和其他内部数据结构的内存大小 20/1997 Heikki Tuuri *******************************************************/ 四、总结 总的来说,只要我们的操作系统/数据库有一个相对合理的配置 关于专栏 《腾讯云数据库专家服务》是由腾讯云数据库技术服务团队维护的社区专栏,涵盖了各类数据库的实际案例,最佳实践,版本特性等内容。 MySQL到底在干什么 ↓↓一年19.9特惠云数据库点这儿~
在一次迭代的时候,我给数据库中增加了两个时间字段: `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', 当时是紧急发布在leader的劝说下DBA 允许先上了,DBA当时就提了下个迭代给撤掉。 为什么DBA不让给数据库加触发器呢? 触发器功能强大,轻松可靠地实现许多复杂的功能,为什么又要慎用呢。触发器本身没有过错,但由于我们的滥用会造成数据库及应用程序的维护困难。 在数据库操作中,我们可以通过关系、触发器、存储过程、应用程序等来实现数据操作…… 同时规则、约束、缺省值也是保证数据完整性的重要保障。 如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程度。 还有就是个人看法触发器在MySQL服务器执行的效果和在业务i代码中执行的性能浪费相对来说在业务代码比较少吧。
数据库供应商通常每个月都会发布一些有bug /安全性修补程序的补丁,我们为什么要关心这些? 在这篇博文中,我们将介绍DBA的一个最基本的任务—次要版本数据库升级和主要数据库升级。 MySQL升级 有两个MySQL官方版本已经不再关注和修复,是因为是在oracle收购MySQL之前的发行版本。 个人认为一个DBA除了要考虑性能,更多的是考虑稳定,安全。 次要版本升级 小升级相对容易执行—大多数情况下,您只需要使用发行版的软件包管理器来安装新版本即可。 该脚本遍历数据库中的表,并确保它们与当前版本兼容。如果有需要,它也可能修复你的系统表。 显然,安装新版本的软件包需要停止服务。因此您需要规划升级过程。 执行升级的推荐方式是转储并重新加载数据—这需要一些时间(取决于数据库的大小),但是在从站不再旋转的情况下执行升级通常是不可行的。
一、冷备份 数据库在关闭状态下完成所有物理系统文件拷贝的过程,也称脱机备份 适合于非归档模式下,数据库处于一致性状态 二、步骤 首先在运行的库中得到数据库运行的所有的物理文件位置,然后在计划内关闭数据库 (shutdown) 再执行拷贝物理文家到备份路径或备份设备 备份完成后立即启动数据库让其提供正常的服务 三、冷备脚本的写法 首先应该在相关视图里查出数据库的数据文件,日志文件,控制文件,临时文件所在的位置 注意:不要直接把 oradata 下的 cp 就行了,因为生产库里各个文件通常分布在不同的磁盘,不同的地 方,所以在去视图里获得真实路径 --查看实例和数据库的相关信息 SQL> select instance_name undotbs01.dbf 四、总结 优点 冷备模式下概念易于理解,即将需要备份的文件复制到安全的位置 操作比较简单,不需要太多的干预 容易恢复到某个时间点上(只需将文件再拷贝回去) 能与归档方法相结合,作数据库 缺点 备份时,数据库必须处于一致性关闭状态 只能提供到某一时间点的恢复 备份时速度比较慢,尤其是数据量大性能影响比较大 不能实现基于表和用户级别的数据恢复
一、热备的过程 Oracle 热备份是指数据库处于 open 状态下,对数据库的数据文件、控制文件、参数文件、密码文件等进 行一系列备份操作。 冻结块头-->控制 SCN 在备份时不发生变化 进行物理拷贝 解冻块头-->让 SCN 可以变化(当对 SCN 解冻后,系统会自动更新 SCN 至最新的状态) 二、基于数据库的热备 alter database 在数据文件头部冻结当前检查点事件发生时的 SCN 号 所有发生变化数据块的完整镜像(修改前后)被写入到 redo log 中 允许该表空间内数据的正常读写 建议使用基于表空间的热备,这样将尽可能的减少对系统性能的影响 create pfile from spfile ; create pfile = '<dir>' from spfile; 更多关于参数文件请参考:Oracle 参数文件 六、临时表空间的数据文件、 tablespace_name from dba_temp_files; TABLESPACE_NAME ------------------------------ TEMP --查看临时表空间的数据文件
七、还原与恢复 数据库恢复的策略,是使用最近的一次备份来实现数据库的还原,然后使用归档日志和联机日志将数据库恢复到最新或特定状态。 可以基于数据库、表空间、数据文件、控制文件、参数文件进行还原 恢复:在还原的基础上,使用归档日志和联机日志将数据库刷新到最新的 SCN,使数据库保持一致性。 介质恢复可以将整个数据库、一个表空间一个数据文件还原至指定的时间点 可分为完全恢复或不完全恢复 完全恢复:使用归档、联机日志与数据库、表空间或数据文件等的备份结合使用以将其更新至最 新的时间点。 步骤 a.将受损的数据文件脱机 b.还原受损的数据文件 c.恢复受损的数据文件 d.将已恢复的数据文件联机 不完全恢复:使用归档、联机日志与数据库、表空间或数据文件等的备份结合使用以将其更新至 过去的某个时间点或 SCN 等 步骤 a.加载数据库 b.还原所有数据文件,同时可以选择还原控制文件 c.将数据库恢复至某个时间点、序列、或系统改变号 d.使用 RESETLOGS 关键字打开数据库 不完全恢复 不完全恢复选项
七、热备脚本 1.基于数据库热备的脚本 SQL> ho cat /tmp/tmphotbak.sql; set feedback off set heading off set verify off set controlbak.ctl'; create pfile = '&dir/initorcl.ora' from spfile; SQL> start /tmp/tmphotbak.sql; --执行该脚本即可对数据库进行热备 --在另一个会话中强制关闭数据库 SQL> shutdown abort; ORACLE instance shut down. SQL> select * from dual; 数据库维护中,备份或恢复是重中之重的问题。尽管很多时候数据库系统运行缓慢,但对数据库数据的丢失而言,显然后者损失的代价是不言而喻的。 因此 DBA 至少在保证数据不丢失的情况下来提高系统的性能是最起码的要求。关于什么是备份与恢复,在此不做赘言。
支持备份数据库、表空间、数据文件、控制文件、归档日志等 可以保存频繁使用备份恢复脚本支持增量备份,跳过未使用的块,以及控制备份速度在备份期间侦测损坏的数据通过自动并发、限制 I/O 等提高备份性能 2. 关于数据库的日常规划请参考:Oracle 常见故障及日常规划 四、备份与恢复的几类重要数据结构 1.数据文件 2.联机重做日志文件 3.控制文件 4.自动管理的撤销 5.可选的备份文件(参数文件、密码文件 ) 上述有关概念请参考:Oracle 实例和 Oracle 数据库(Oracle 体系结构) 五、常见的备份类型 联机数据库备份 -->使用 archivelog 模式,SCN 不一致 脱机数据库备份 -->使用 noarchivelog 模式,SCN 保持一致 整个数据库 -->可以在不同的时间段来备份,减轻 I/O 压力,从而构建整个数据库表空间 -->在 archivelog 模式下,当处于 noarchivelog 在一致性关闭数据库后,控制文件 SCN 与数据文件头部 SCN 一致 联机备份:在数据库使用阶段发生的备份,又称为非一致性备份或热备份。
对于大部分的DBA来说,性能优化并不是一件容易的事情,造成性能问题的原因多种多样,在现实中,优化过程也会受到重重阻碍,随着云时代的到来以及自动化智能化运维的发展,那么云时代的DBA该如何优化数据库的性能呢 ,并利用机器学习学习算法为产品导入智能化模块,从而将大量的数据库的诊断分析和优化工作都自动完成,不仅将DBA从繁冗的工作中解救出来,还能够帮助企业数据库快速上云。 推荐阅读: 阿里云数据库CloudDBA的自动运维与智能优化探索 开发运维一体化从源头优化 我们都知道,在数据库运维与优化中,最难的部分往往不是技术的问题,DBA能够发现问题,但由于管理等方面的因素而很难从根本上解决问题 SQL审核与优化,通过将对数据库最熟悉的DBA参与到应用的开发与上线的过程中,让DBA走向开发前端,将数据库的性能问题从根源上杜绝。 SQL审核与优化,是DevOps在数据库领域落地的最佳实践。 三场主题分享,为你全面揭晓18c自治数据库背后的技术实现原理,并与大家一起探讨自治数据库的时代,DBA行业的发展方向。 推荐阅读: 甲骨文副总裁谈性能优化:百倍和千倍的性能提升才值得兴奋
以下为本文参与话题人数统计: 数据库内核开发 1 MySQL DBA 1 Oracle DBA 2 SQL Server DBA 1 NoSQL DBA 1 其他数据库 1 DBA新人 2 大学毕业生 纯管理型DBA逐步减少,通过开发脚本、工具乃至平台解决数据库问题,成为DBA的根本要求。 4.未来对数据治理等领域要求增多,DBA不再局限于"库"的领域,可上升为整个数据层面。 而混合型的DBA兼具开发DBA和运维DBA的工作能力, 并在数据库运维中将应用特点与数据库特点结合起来,帮助设计提供专业的应用表、索引、存储过程、SQL语句设计,同时具有专业的数据库知识和技能,并进行应用系统数据库设计从开发到生产部署无缝转换 从整体数据库发展来看,"大而全"的数据库将不会存在,在每个分支领域,都有各自擅长的数据库产品。对于DBA来说,应对各种业务需求,选择合适的解决方案就是DBA的核心价值之一。 我认为DBA属于运维工程师的一个分支,主要负责企业的数据库监控管理、数据库性能调优、数据库故障管理、数据库安全保障等。
这些数据库满足于日常记录和统计功能的实现。此时的功能比较单一,所以这个时代的 DBA 能够交付出一个完整,稳定,安全的数据库,就可以了。 ? 如果说安装是基本功,那么设计数据库架构就是内力大比拼了。 有些 DBA 维护的数据库,单机就能搞定上每日千万流量,而有些 DBA 维护的库,10 万流量,一天都要崩个好几次。这就是功底所在。 我们从头再捋一遍,作为DBA,一路要升级打怪,掌握的技能分别有,安装和配置数据库,维护高可用的数据库单机或集群,搞定高峰流量下数据库的反应。 接下来是真正热爱数据库的人,会去深入地研究和实现的事情。 : 一等一的DBA,从不会让数据库处于一个崩溃或者稍有不适的境地;第二等的 DBA,数据库稍有不适,立马能够察觉,并且修复;第三,等数据库崩溃或者明显低延迟了,只要出手就能即刻恢复。 这便是 DBA 的进阶,此时 DBA 已经不再是单纯管理数据库的人,而必须拥有设计数据库产品的能力。 举个例子,MySQL的数据复制,局限于同源数据互传。
正式干DBA 也是有些年头了,十几年是有了, 前些日子翻出最早买的一本数据库的书是2001年的。 DBA 的主体的工作主要由 1 安装运维数据库产品及PATCH FIX ,BUG FIX 等工作 2 解决生产系统的故障以及数据库运行问题,应用系统上线数据库支持 3 解决数据库安全,备份, 如果只是拿着一种数据库吃老本,那么一旦公司更换数据库类型,第一个变得没用的就是DBA ,所以DBA还必须具有新技术的好奇心和分析的能力, 不会有任何一本书教你做一个“真正的DBA”,书上写的都是“技术” 这才能活的更久,我见过一些DBA ,数据库死死抱着某一种数据库,不学习不提高,并且和业务距离十万八千里,数据库一上云,死的最惨的第一个就是你,因为你“老” 不在是优势,而是一种累赘。 2 新型智能数据库,这里指的是一些智能型的数据库,这些数据库可不需要你在去做简单的优化,之前DBA只需要精通,慢查询分析,建立建立索引,审核审核SQL之类的工作,可以由新型的数据库带代替,在建立表的时候
分布式数据库(TDSQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为用户提供完整的分布式数据库解决方案。
扫码关注云+社区
领取腾讯云代金券