征集有点深度的MSSQL DBA面试题

zhengdows 2010-11-11 07:39:48
我这有一份:
1.把MSSQLSERVER数据库恢复到某个时间点,需要如何恢复?需要哪些备份文件?恢复过程中数据库是否需要脱机?请详细说明。
2.MSSQLSERVER数据库复制功能有几种类型?每种类型都适合在什么情况下采用?
3.集群的类型有几种?MSSQLSERVER数据库本身只能支持哪种类型的集群?
4.有一个在线的MSSQLSERVER数据库,数据库数据量不断地增长,而前台又需要快速提取数据,在这种情况下,需要你对数据库进行调优,你将从哪些方面考虑?每个方面请详细说明理由,比如说是需要增加索引,那么你要说清索引添加的原则,以及缺点和优点请详细说明。
5.有一个在线MSSQLSERVER2005数据库,瞬间运转超负荷,数据库服务器已经不能接受远程连接,这时候你作为数据库管理员应该如何解决?主要采取哪些措施?
6.MSSQLSERVER的扩展功能你还熟悉哪些?使用这些扩展功能做过些什么?
7.除MSSQLSERVER数据库之外,你还了解哪些数据库?了解到什么程度?
8.为保证数据库中数据的安全,在过去的工作中你采取过哪些措施来保护数据的安全性?
9.请写语句把下面TEST表中的name字段重复的数据删除,用一条语句完成。
TEST表结构:
id name desp
1 A C
1 A D
1 A E
2 B F
2 B G
结果集:
id name desp
1 A C
2 B F
10. 1忆条数据如何快速导入到另外一个新表中?建成的新表需要做什么配置才能保证快速的数据提取?
...全文
526 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongjian0628 2013-01-06
  • 打赏
  • 举报
回复
DECLARE @table TABLE(id int ,name varchar(10),desp varchar(10)) INSERT INTO @table( id, name, desp ) SELECT 1,'A','C' UNION ALL SELECT 1,'A','D' UNION ALL SELECT 1,'A','E' UNION ALL SELECT 2,'B','F' UNION ALL SELECT 2,'B','G' SELECT id,name,min(desp) AS desp FROM @table GROUP BY id,name
rfq 2010-12-29
  • 打赏
  • 举报
回复
哈哈哈哈上天赐给我学习的机会
,感谢上苍
psddlove 2010-12-28
  • 打赏
  • 举报
回复
哎,看来这条路还很长,学习中。。。
luoyefeng1022 2010-11-12
  • 打赏
  • 举报
回复
现在才发现都不会!
rucypli 2010-11-12
  • 打赏
  • 举报
回复
蛮好的题目
jamk 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxf163 的回复:]
SQL code
--> 测试数据:#TEST
if object_id('tempdb.dbo.#TEST') is not null drop table #TEST
create table #TEST([id] int,[name] varchar(1),[desp] varchar(1))
insert #TEST
select 1,'A','C' union all
sel……
[/Quote]
除了这题,其他的。。。汗·~~~
ask_chang 2010-11-12
  • 打赏
  • 举报
回复
悲剧啊,有一大半都不会啊。
nice_dream_li 2010-11-12
  • 打赏
  • 举报
回复
进来看看 啥也不会 悲哀呀
cjzm83 2010-11-11
  • 打赏
  • 举报
回复
楼上的几位太谦虚了
claro 2010-11-11
  • 打赏
  • 举报
回复
不会,特别是第7题。
obuntu 2010-11-11
  • 打赏
  • 举报
回复


看了自己不够专业,面壁去。

不过这些问题都比较泛,广度有,深度还谈不上吧。

zx880430 2010-11-11
  • 打赏
  • 举报
回复
我是来学习的。
王向飞 2010-11-11
  • 打赏
  • 举报
回复
需要完整备份和日志备份。先完全恢复,再按照日志一个一个的还原,


--创建测试数据库 
  CREATE DATABASE Db
  GO
  --对数据库进行备份
  BACKUP DATABASE Db TO DISK='c:db.bak' WITH FORMAT
  GO
  --创建测试表
  CREATE TABLE Db.dbo.TB_test(ID int)
  --延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败)
  WAITFOR DELAY '00:00:01'
  GO
  --假设我们现在误操作删除了 Db.dbo.TB_test 这个表
  DROP TABLE Db.dbo.TB_test
  --保存删除表的时间
  SELECT dt=GETDATE() INTO #
  GO
  --在删除操作后,发现不应该删除表 Db.dbo.TB_test
  --下面演示了如何恢复这个误删除的表 Db.dbo.TB_test
  --首先,备份事务日志(使用事务日志才能还原到指定的时间点)
  BACKUP LOG Db TO DISK='c:db_log.bak' WITH FORMAT
  GO
  --接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行)
  RESTORE DATABASE Db FROM DISK='c:db.bak' WITH REPLACE,NORECOVERY
  GO
  --将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早
  DECLARE @dt datetime
  SELECT @dt=DATEADD(ms,-20,dt) FROM # --获取比表被删除的时间略早的时间
  RESTORE LOG Db FROM DISK='c:db_log.bak' WITH RECOVERY,STOPAT=@dt
  GO
ChinaITOldMan 2010-11-11
  • 打赏
  • 举报
回复
guan zhu zhi
王向飞 2010-11-11
  • 打赏
  • 举报
回复
--> 测试数据:#TEST
if object_id('tempdb.dbo.#TEST') is not null drop table #TEST
create table #TEST([id] int,[name] varchar(1),[desp] varchar(1))
insert #TEST
select 1,'A','C' union all
select 1,'A','D' union all
select 1,'A','E' union all
select 2,'B','F' union all
select 2,'B','G'


delete from #TEST where desp not in (select min(desp) from #TEST group by name)
select * from #TEST
--小F-- 2010-11-11
  • 打赏
  • 举报
回复
所以我成不了DBA 发现都不会

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧