很多开发人员都想成为一名DBA也有很多人一开始就把自己定位成为一名DBADBA究竟需要掌握些什么知识和技能呢?以下是我做DBA工作和面试DBA时整理的一些DBA方面的三十个问题三十个大问题中还有许多小的问题涵括了SQLServer DBA比较多的技术知识点与大家分享下希望给有志做DBA的朋友们一些帮助
charvarcharnvarchar之间的区别(包括用途和空间占用);xml类型查找某个节点的数据有哪些方法哪个效率高;使用存储过程和使用TSQL查询数据有啥不一样;
系统DB有哪些都有什么作用需不需要做备份为什么;损坏了如何做还原(主要是master库);
有哪些操作会使用到TempDB;如果TempDB异常变大可能的原因是什么该如何处理;
Index有哪些类型它们的区别和实现原理是什么索引有啥优点和缺点;如何为SQL语句创建合适的索引索引创建时有哪些需要注意的项如何查看你创建的索引是否被使用;如何维护索引;索引损坏如何检查怎么修复;TSQL有更好的索引存在但是运行时并没有使用该索引原因可能是什么;
视图上我们能建索引吗如果能建的话会啥好处和坏处;视图上建索引和表上建索引有啥区别;
Job信息我们可以通过哪些表获取;系统正在运行的语句可以通过哪些视图获取;如何获取某个TSQL语句的IOTime等信息;
在线系统一个表有五千万记录现在要你将其中的两千万条记录导入到另一台服务器的某个表中导完后需要将这两千万数据删除你预备如何处理优缺点是什么;
数据库服务器报磁盘空间不足你将如何应对要求尽快恢复;
临时表表变量CTE(公用表表达式)有啥区别和联系保存位置有啥不一样使用时如何决定选哪种;
SQLServer有哪些隔离级别默认级别是哪个;数据库有哪些主要的锁类型;行版本控制是如何实现的;
死锁如何跟蹤;阻塞如何跟蹤和查找;发现有问题的语句后如何进行处理;用Profile做跟蹤时一般我们需要跟蹤哪些事件;
Windows日志主要有哪几种SQLServer日志一般保留几个什么情况下会产生新的SQL日志;数据库日志恢复模式有哪几种区别是什么;数据库日志突然变得很大而且你无法收缩可能的原因是什么怎么查找原因分别将如何处理;
分区表和分区视图是什么概念一般是在什么情况下使用有啥好处;
如何比较两个同结构的表数据的差异;如果表损坏了如何修复;如何在备份文件有问题的情况下尽量还原数据;如何将一个表的Identity属性归零;
CheckPoint和LazyWriter区别;DDL Trigger 和 DML Trigger有啥用区别是啥;
Mirroring 和Logshipping 的区别和使用场景;SQLServer的Mirroring与Oracle的哪像技术比较接近它们的区别是啥;
Mirroring的搭建步骤Mirroring三种模式区别Mirroring 中同步和异步的原理和要求搭建了Mirroring后需要对数据库日志做什么处理;
Replication配置和使用场景;Replication有哪几种模式;PUSH和PULL有啥区别;搭建Replication后会产生一个什么库;报错时用什么来查看报错的具体语句清理掉某个库的Replication使用什么语句查看同步链信息主要通过哪些表;
Replication发布端的表能truncate吗为什么;Replication Identity列如何处理缺失字段错误如何处理主键沖突错误如何处理如何跳过指定的错误订阅端表被删除了如何处理大规模改动数据如何处理;某条同步链因为其中的某个表一次性改动数据很大造成同步链的严重延时要求尽快恢复同步链如何处理
SSB(Service Broker)使用场景如何创建都会创建些什么对象有啥优缺点主要通过什么方式实现不同服务器之间的消息传递;可以通过哪些方式排错;
跟蹤数据库数据的变更有哪些方法它们(CDC(Change Data Capture)CT(Change Tracking)Trigger等)使用上的优缺点;
SQL调优步骤如何来判断SQL语句存在问题怎么定位问题如何解决这些问题;
数据库故障排查步骤如何处理紧急数据库问题;
如何考虑和制定数据库备份计划;公司要求对一个非常大的数据库或者表做备份而且要求数据量尽可能少丢失你可能会采用什么方法;
如果要你做数据库监控你会关注那些指标(包括SQLServer和Windows)如何制定性能基线你使用过哪些监控软件;
数据库迁移步骤;重建一套比较大的测试系统(最少个数据库实例)如果原来DB数据量都不大但DB比较多新搭建的系统数据都不需要如何快速实现;
创建Cluster 简要步骤最少需要几个IP需要安装些什么服务需要哪些固定的磁盘Raid如何设置磁盘如何划分;SQLServerCluster与Mysql Cluster 和 Oracle RAC的区别等;
如果遇到一个性能不理想代码复杂的存储过程很难通过数据库方面的调优来解决问题你如何说服开发人员修改它(可能开发人员并不愿意修改);
你有没有遇到过因为你的误操作造成系统故障发生的情况你当时是如何处理的;如果没有假定你误删了一个重要的表你该如何处理;
你准备成为一名什么样的DBA为此你将如何准备(或者你有怎样的职业规划准备怎样度过你的DBA生涯);如果你进入公司你最想获得的是什么