一次系统故障排查以及SQL SERVER 2005备份的还原
负责的一个小票务公司的内部运行系统出了问题,访问奇慢,于是客户重启PC SERVER,结果电脑再也起不来了,开机
蓝屏。考虑到前一天我刚做了第二次的索引优化,可能是索引出了问题,于是赶往客户那里。
到了客户那里
发现1:可以用引导盘重启,但是没引导盘开机迅速蓝屏重启,看不清错误代码。
步骤1:跟客户网管简单商量,于是草率决定ghost恢复系统,反正数据库备份过。(事后深深后悔)。
发现2:仍旧无法启动。可能是某块硬盘出了问题。
步骤2:挨个拆分区硬盘,仍旧蓝屏。
发现3:换一个C盘的硬盘,仍旧不行。怀疑内存出问题。
步骤3:其他机器拆了两个内存,系统仍旧蓝屏,但看到代码0X0000007B.
步骤4:在BIOS中,将”SATA Operation”设置为”ATA”,系统启动成功
这个时候后悔重装了系统,已经悔之晚矣……
重装SQL SERVER 2005开始从三小时一备份的备份集合中恢复数据。
1、在“数据库”上右键,“还原数据库”,源设备,选择备份文件。在“指定备份”选项卡中点击“内容”,可以看
到备份集。但是点确定之后,在“选择用于还原的备份集”下面的列表中,死活找不到备份集。
2、在“数据库”上右键,还原文件和文件组,源设备,选择备份文件,确定,出现备份集,确定,结果是3219错误。
Server 'ASD ' The file or filegroup 'ASD_log ' can not be selected for this operation.
3、网上搜索了一下,以下方法均失败:
(1)单击“选项”,选择覆盖。失败
(2)单击“选项”,选择覆盖。重新定义“还原为”下面的MDF和LDF文件路径。失败。
(3)建立同名数据库,“还原数据库”,覆盖,失败。架构不一样。
网上搜索的所有方法全部用尽,怀疑是数据库备份的时候设置不对,几乎绝望。看了一下SQL脚本。
RESTORE DATABASE [gg] FILE = N'asd', FILE = N'asd_log' FROM DISK =
N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\asd.bak' WITH
FILE = 1, MOVE N'asd' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1
\MSSQL\DATA\gg.mdf', MOVE N'asd_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1
\MSSQL\DATA\gg_0.ldf', NOUNLOAD, REPLACE, STATS = 10 GO
既然一直报asd_log不能选择,那么,去掉这个如何呢?于是删除“FILE = N'asd', FILE = N'asd_log' ”
执行SQL成功!
数据库三小时一备份,系统挂机发生在备份后的2小时,于是丢失2小时数据。
心得:
(1)不到万不得以,排除所有的硬件故障之前,千万不要重装系统。
(2)任何重要的文件都不要放在C盘。(这次没犯这个错,不然要拆硬盘备份数据了)
(3)如果条件允许,千万别买DELL的PC server。该蓝屏现象貌似是DELL特有。
(4)如果网上办法用尽,不妨试下上面的方法。
(5)这样的中小系统,没有财力做双机热备,那么数据库的备份执行计划就要勤快一点。走的时候我把备份计划更改
为30分钟一次。