Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Windows Server 系統教學 >> Server 2003

SQL Server 2005 Express 完整卸載與自動備份腳本實作

編輯:Server 2003

SQL Server 2005 Express 透過「控制台 → 新增/移除程式」卸載時,往往殘留執行個體註冊資訊、登錄機碼與檔案,導致後續重新安裝失敗。本文提供徹底卸載指令與自動備份存儲程序 + 排程任務的完整方案。

一、徹底卸載 SQL Server 2005 Express

以系統管理員身分開啟命令提示字元,執行:

c:\sqlserver2005\Setup.exe /qb REMOVE=ALL INSTANCENAME=<InstanceName>
  • Setup.exe 為 SQLEXPR_ADV.EXE 解壓縮後的安裝程式路徑。
  • /qb 顯示基本進度介面 (無需互動)。
  • REMOVE=ALL 移除所有功能元件。
  • INSTANCENAME 指定執行個體名稱 (預設為 SQLEXPRESS),若為預設執行個體可省略。
此方式比圖形介面卸載更乾淨,能清除執行個體註冊、服務、登錄與資料庫檔案。

二、建立自動備份存儲程序

在目標資料庫執行個體上執行下列 T-SQL 腳本,建立 sp_BackupDatabase 存儲程序,支援完整、差異、交易記錄三種備份類型:

USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Edgewood Solutions
-- Create date: 2007-02-07
-- Description: Backup Database
-- Parameter1: @databaseName sysname
-- Parameter2: @backupType CHAR(1)  F=Full, D=Differential, L=Log
-- =============================================
CREATE PROCEDURE [dbo].[sp_BackupDatabase]
    @databaseName sysname,
    @backupType CHAR(1)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @sqlCommand NVARCHAR(1000);
    DECLARE @dateTime NVARCHAR(20);
    SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(), 111), '/', '') + REPLACE(CONVERT(VARCHAR, GETDATE(), 108), ':', '');
    IF @backupType = 'F'
        SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName + ' TO DISK = ''C:\Backup\' + @databaseName + '_Full_' + @dateTime + '.BAK''';
    IF @backupType = 'D'
        SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName + ' TO DISK = ''C:\Backup\' + @databaseName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL';
    IF @backupType = 'L'
        SET @sqlCommand = 'BACKUP LOG ' + @databaseName + ' TO DISK = ''C:\Backup\' + @databaseName + '_Log_' + @dateTime + '.TRN''';
    EXECUTE sp_executesql @sqlCommand;
END
GO
注意:執行前請確認 C:\Backup 資料夾存在且 SQL Server 服務帳戶具備寫入權限。建議將備份路徑改為非系統磁碟。

三、建立呼叫備份的 SQL 腳本檔

新建文字檔 C:\Backup\BackupJob.sql,內容如下:

sp_BackupDatabase 'master', 'F'
GO
sp_BackupDatabase 'model', 'F'
GO
sp_BackupDatabase 'msdb', 'F'
GO
QUIT

可依需求增減資料庫與備份類型 (如使用者資料庫每日完整、每小時記錄)。

四、設定 Windows 排程任務自動執行

  1. 開啟「控制台 → 排程工作」→ 新增排程工作。
  2. 選擇 sqlcmd.exe (通常位於 C:\Program Files\Microsoft SQL Server\90\Tools\Binn\sqlcmd.exe)。
  3. 設定每日執行時間 (如凌晨 02:00)。
  4. 在「執行」欄位輸入完整命令列參數:
    sqlcmd -S SERVERNAME -E -i C:\Backup\BackupJob.sql
    • -S SERVERNAME:目標伺服器名稱 (本機可用 (local) 或 .\SQLEXPRESS)。
    • -E:使用 Windows 整合驗證 (需執行排程的帳戶具備 sysadmin 角色)。
    • -i:指定輸入腳本檔。
  5. 完成精靈,輸入具備權限的帳戶密碼。

五、進階建議

  • 定期刪除超過 N 天的舊備份檔,避免磁碟爆滿 (可另寫清理批次檔搭配排程)。
  • 備份完成後發送郵件通知:在存儲程序中加入 sp_send_dbmail 或呼叫外部 PowerShell 腳本。
  • 若為 SQL Server 2008 以上版本,建議改用「維護計畫」圖形化設定,功能更完整。
Copyright © Windows教程網 All Rights Reserved