我确信这个问题已经被问过了,但是时代在变,SQL 偏好也在变等等...我想这个地方是问这个问题的最佳地点,我确信很多 DBA 都会来这里。
但是我需要知道什么呢?今年 12 月我将获得计算机科学学士学位,我选修了两门数据库课程,并为其中一门课程建立了自己的数据库驱动音乐商店(它很基础,但运行良好,看起来相当不错)。
无论如何,我不确定大多数公司使用什么数据库。我知道有 Mysql(但那通常是我不感兴趣的 Web 内容)、Oracle、MS-SQL 服务器,以及其他一些。
通过认证,MS-SQL 服务器似乎变得更容易(2008)并且更便宜,Oracle 似乎相当......“受欢迎”,但就工作而言,我也看到了 MSSQL 的份额。此外......差异真的那么大吗?就实际编码而言。DBA 的就业市场怎么样?好?坏?见过好日子吗?我下一步应该做什么才能确保我能找到一份体面的工作,正确的道路是什么?任何答案都是有用的答案!
谢谢
答案1
要成为 DBA,您需要了解哪些数据库相关知识?一切(或者至少是大多数事情,以及在哪里寻找其他所有事情的答案)。
不过说真的,好的DBA。如果你想成为一名好的DBA我能给你的最好建议是:
如果您的“数据库课程”没有涉及关系模型和关系代数背后的理论,您可能需要阅读一本有关该主题的好书。了解您要管理的系统背后的理论将在以后以微妙而有趣的方式发挥作用。
设计和实现某种数据库支持的系统。
您已经这样做了,但您说存储很“简单”——对其进行扩展。
将大量数据加载到您的系统中,看看性能在哪里出现问题——然后解决问题。
(根据我作为 DBA 的经验,这可能是您最常见的任务:“X 很慢。让 X 不慢。”)找到一家需要初级 DBA 或初级管理员的公司。申请该公司。
他们使用的是什么 DBMS 并不重要(但如果是你熟悉的 DBMS 或你未来想要使用的 DBMS,那就更好了)。尽可能多地从 DBA 员工那里吸收知识。
提出问题。参加设计会议。为解决性能问题的人端上咖啡,听听他们的谈话。参加培训/认证课程(特别是如果你能找到工作来支付学费的话!)。
虽然如果没有一些实际经验作为后盾,这些课程并不是特别有用,但它们通常会揭示出你在现实世界中可能不常见的数据库系统的秘密。许多课程也是面向任务的,涵盖了设置数据库备份等常见内容。
在这 5 个步骤中的某个时候,人们会开始问你问题,或者向你抛出问题并要求你解决。那时你就是一名 DBA(或者至少是 DBA 足够信任的资源,可以把工作交给你,并且期望你不会破坏任何东西 :-)
答案2
主流数据库都有免费版本,因此您可以自行探索和了解差异。插入/更新/删除的基本结构相同,但具体细节不同,而且看起来,您想要执行的操作越高级,它们的差异就越大。
你可能不会真正想学,但如果你学会了它们,你就会变得很优秀:
- 如何安排备份并确保其正常运行
- 如何快速从备份中恢复而不覆盖所有内容
- 帮助您避免意外删除数据的工作习惯
- 查找慢查询/分析
- 如何处理登录、用户、组、来自允许 IP 的连接方面的安全性
- 复制到其他服务器/集群/故障转移(然后故障恢复)
- 尽可能多地了解不同环境的客户端连接字符串和数据库库。
下载:
- SQL 2008 R2 Express:http://www.microsoft.com/express/database/
- (还可获得 SQL Management Studio Express 进行管理)
- PostgreSQL的:http://www.postgresql.org/download/
- MySQL的:http://dev.mysql.com/downloads/
- (还可获得 MySQL Workbench 进行管理)
- Oracle 10g Express:http://www.oracle.com/technetwork/database/express-edition/overview/index.html
- IBM DB2 Express-C:http://www-01.ibm.com/software/data/db2/express/
- SQLite的:http://www.sqlite.org/download.html
答案3
正如您正确指出的那样,您可能会遇到的基本上是两个主要的服务器,根据我的经验,MS SQL Server 更为常见,因为在大多数情况下它相对容易管理。
Oracle 的学习曲线更大,因为它确实为您提供了更多的系统配置范围,但确实需要更深入的理解才能使其有效运行。
在工作方面,我建议寻找在小型 DBA 团队中担任初级 DBA 的机会,这将使您有机会学习相关知识而不局限于特定的任务。
TSQL 和 PL/SQL 之间存在差异,因此我建议您从 TSQL 开始,只是因为您可能在中小型公司中更频繁地遇到它
最后请记住,这与你使用的数据库无关,你需要对数据保持警惕,因为这与你是否丢失数据无关,只与何时丢失数据以及丢失多少有关。因此,请确保你彻底了解以下内容。
备份;如何备份以及何时备份。事务日志;选项以及可能丢失的数据量。检查备份/事务日志是否可以恢复。检查数据库的健康状况。使用情况和所需资源并了解如何纠正它们。
完成这些任务后,您可以转向其他管理任务和开发工作。
最后,尽量避免使用混合环境,直到您积累了一些经验。根据我的经验,数据库确实存在一些细微的差异,在学习成为 DBA 的同时尝试解决这些问题是远远不够的。