首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 實戰維護技巧彙總:掛起安裝、收縮、修復、日誌清理

     編輯:關於SqlServer

1. 解決安裝掛起

註冊表刪除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations,重開機即可。

2. 收縮資料庫與重建索引

-- 重建索引
DBCC DBREINDEX;
DBCC INDEXDEFRAG;

-- 收縮資料與記錄檔
DBCC SHRINKDATABASE;
DBCC SHRINKFILE;

3. 壓縮資料庫

DBCC SHRINKDATABASE('dbname');

4. 遷移資料庫用戶

EXEC sp_change_users_login 'update_one', 'new_user', 'old_user';

5. 驗證備份集

RESTORE VERIFYONLY FROM DISK = 'E:\dvbbs.bak';

6. 修復資料庫

ALTER DATABASE [dvbbs] SET SINGLE_USER;
GO
DBCC CHECKDB('dvbbs', REPAIR_ALLOW_DATA_LOSS) WITH TABLOCK;
GO
ALTER DATABASE [dvbbs] SET MULTI_USER;
GO

修復選項差異:
- REPAIR_FAST:輕微修復(如補充非叢集索引鍵),無資料遺失。
- REPAIR_REBUILD:含 REPAIR_FAST + 重建索引,無資料遺失。
- REPAIR_ALLOW_DATA_LOSS:含上述 + 配頁修復、刪除損毀文字物件,可能遺失資料。

7. 交易記錄清理兩法

法一:簡單模式收縮

  1. 屬性 → 選項 → 故障還原 → 簡單。
  2. 右鍵資料庫 → 所有工作 → 收縮資料庫 → 確定。
  3. 完成後改回完整/大量記錄模式。

法二:T-SQL 迴圈截斷

SET NOCOUNT ON;
DECLARE @LogicalFileName SYSNAME, @MaxMinutes INT, @NewSize INT;
USE target_db;
SELECT @LogicalFileName = 'target_db_log', @MaxMinutes = 10, @NewSize = 1;
-- 後續迴圈備份 LOG 並 SHRINKFILE 至目標大小
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved