數據庫有1kw數據不在使用了,影響讀寫速度,於是要刪除掉
使用delete語句
意外發生,持續了半個小時后,依然不見結束的跡象
於是強行結束(停止了服務)
再打開服務后,數據庫顯示 【正在恢復】
百度一下我就知道了
於是,停下服務,剪切了數據到別的文件夾
恢復服務
刪除數據庫
啟動服務
附加數據庫
1個小時候,附件完成(剛好中午吃飯去了)
無知的我再次使用delete語句刪除
兩個小時候,實在無法忍受,停止刪除
數據庫顯示 正在恢復
數據庫文件增大,mdf達到31g,log問價達到109g
再次剪切文件到別的文件夾,啟動服務,刪除數據庫,啟動服務,附加數據庫
1h后,sql 附加數據庫窗口崩潰
本人崩潰
再次停止服務
剪切數據庫文件,啟動服務,刪除數據庫,停止服務,附加mdf,不要log文件,報錯無法附加
百度
停止服務,剪切數據庫文件,恢復服務,創建同名數據庫,停止服務,刪除同名數據庫mdf文件,將原有數據庫mdf覆蓋同名數據mdf文件
打開服務,看到數據,為掛起狀態
百度
執行如下代碼
USE master GO ALTER DATABASE test SET SINGLE_USER GO ALTER DATABASE test SET EMERGENCY GO DBCC CHECKDB(test,REPAIR_ALLOW_DATA_LOSS) go ALTER DATABASE test SET ONLINE GO ALTER DATABASE test SET MULTI_USER GO
來自:http://blog.csdn.net/zxr85/article/details/51943011
半個小時后依然在執行狀態
本人崩潰
停止執行,數據庫此時已經 成為 單個用戶模式
崩潰,百度
執行如下代碼
USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) FROM master..sysprocesses WHERE dbid=DB_ID('數據庫名'); EXEC(@SQL); ALTER DATABASE 數據庫名 SET MULTI_USER;
代碼來自:http://www.cnblogs.com/amadeuslee/p/6608076.html
數據庫單人模式解除
刷新數據,奇跡發生了
數據庫表可以訪問了,由於只有一個表,實際要保留的數據只有8w多,於是使用
select into 語句,將數據保存至臨時表,由於磁盤空間不足
收縮數據庫
執行select into語句
執行 truncate table ,數據庫文件大小未變化
收縮數據庫
執行insert into select
一切搞定
本次一系列操作都不是生產環境,是本地服務器上的數據
本文中一系列操作僅供參考,文中奇跡發生的那一段,我同樣很蒙蔽,僅供參考