笔记16-徐 解决resource数据库和model数据库和tempdb数据库和msdb数据库和master数据库错误问题步骤
1 --解决resource数据库和model数据库和tempdb数据库和msdb数据库和master数据库错误问题步骤
2 --resource数据库
3 --1、安装好SQL和补丁之后,备份资源数据库的两个文件,把他们放到安全的地方,紧急情况下将它们拷贝回来
4 --2、可以把别的机器的相同版本好的资源数据库拷贝过来,或者测试机里拷过来
5 --3、重装SQL
6
7 --model数据库
8 --(1)用特殊参数启动SQL
9 --net start MSSQLSERVER /f /m /T3608
10
11 --(2)恢复model数据库
12 RESTORE DATABASE model FROM DISK='C:\lab\model.bak'
13 WITH move 'modeldev' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\model.mdf',
14 MOVE 'modellog' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\modellog.ldf',REPLACE
15
16
17
18 --(3)恢复成功后,用正常方式重启SQL
19
20
21 --tempdb数据库
22 --因为SQL根据master数据库记录的信息以model为蓝本创建的
23 --SQL读master的时候是从其他机器备份来的
24 --找不到路径
25 --net start MSSQLSERVER /f /m /T3608
26
27 ALTER DATABASE tempdb MODIFY FILE(NAME=tempdev,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\tempdb.mdf')
28 GO
29 ALTER DATABASE tempdb MODIFY FILE(NAME=templog,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\tempdb.ldf')
30 GO
31 --修改成功后,用正常方式重启SQL
32
33 --如果磁盘空间不足,可以修改tempdb的文件大小
34
35 --net start MSSQLSERVER /f /m /T3608
36
37 ALTER DATABASE tempdb MODIFY FILE(NAME=tempdev,SIZE=100MB)
38 GO
39 ALTER DATABASE tempdb MODIFY FILE(NAME=templog,SIZE=100MB)
40 GO
41
42 --修改成功,用正常方式重启SQL
43
44
45 --msdb数据库
46 --还原之前要先关闭SQL Agent服务
47
48 --因为msdb数据库默认恢复模式是简单,可以设置为完整恢复模式,然后做一个完整数据库备份
49 --损坏的时候按照还原用户数据库的步骤还原就可以了
50
51 --msdb存储的信息:存储SSMS和SQL agent的数据包括:计划信息,备份与还原历史记录信息,在线备份与
52 --还原历史记录信息包括:备份一方的名称,备份时间,用来存储备份的设备或文件。
53 --SSMS利用这新信息提取计划以还原数据库并应用事务日志备份,记录有关所有数据库的备份事件,
54 --即使他们是由自定义应用程序或第三方工具创建的。
55
56 --例如:SMO
57 --SQL Agent使用的所有计划信息,包括:计划的定义,执行的排程,历史日志都放在msdb
58
59 RESTORE DATABASE msdb FROM DISK='C:\Users\Administrator\Desktop\msdb_backup_201210120900.bak' WITH replace ,RECOVERY
60
61
62
63 --master数据库
64 --如果master数据库损坏,还原master数据库的最近完整数据库备份,轻松修复已经损坏的数据库
65
66 --如果由于master数据库损坏严重到无法启动服务器实例,又没要备份,则必须重建
67 --重建master数据库将所有系统数据库恢复到其原始状态.例如,重建master数据库会
68 --删除并重新创建msdb数据库,导致丢失所有维护计划信息和备份还原历史记录。重建master后
69 --SQL就像重装过一样,所用用户记录都会丢失,用户数据库需要再次附加,SQL任务计划都需要
70 --重建。这是一个非常折腾的过程,重建master是个万不得已的选择
71
72 --建议不要在master数据库中创建用户对象
73
74
75 --确认备用服务器的SQL版本和原服务器的版本一致
76 SELECT @@VERSION
77
78 --在sqlcmd下
79 --net start MSSQLSERVER /m
80
81 --sqlcmd /E /S joe
82
83 RESTORE DATABASE master FROM DISK='c:\lab\master.bak'
84
85 --sql服务会自动停止
86 --net start MSSQLSERVER /f /m /T3608
87
88 --sqlcmd /E /S joe