首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server T-SQL 備份還原腳本:BACKUP/RESTORE 與強制踢用戶

     編輯:MySQL 資料庫相關知識

完整備份

BACKUP DATABASE mydb
TO DISK = 'C:\DBBACK\mydb.BAK';
-- 路徑資料夾必須預先存在,文件名可含日期

還原(含強制覆蓋)

USE master;
RESTORE DATABASE mydb
FROM DISK = 'C:\DBBACK\mydb.BAK'
WITH REPLACE;

常見阻礙:數據庫被佔用無法獨佔還原

解決:Kill 所有連接 + 單用戶模式

-- 1. 建立 Kill 存儲過程
CREATE PROC KillSpid(@DBName varchar(100))
AS
BEGIN
    DECLARE @SQL varchar(500), @SPID int;
    SET @SQL = 'DECLARE CurrentID CURSOR FOR SELECT spid FROM sysprocesses WHERE dbid=db_id('''+@DBName+''')';
    EXEC(@SQL);
    OPEN CurrentID;
    FETCH NEXT FROM CurrentID INTO @SPID;
    WHILE @@FETCH_STATUS <> -1
    BEGIN
        EXEC('KILL '+@SPID);
        FETCH NEXT FROM CurrentID INTO @SPID;
    END
    CLOSE CurrentID;
    DEALLOCATE CurrentID;
END

-- 2. 執行殺進程
EXEC KillSpid 'mydb';

-- 3. 切單用戶模式
EXEC SP_DBOPTION @DBName, 'single user', 'true';

-- 4. 再執行 RESTORE

⚠️ 本文針對 SQL Server (T-SQL),非 MySQL。MySQL 請參考 mysqldump/mysqlbinlog 方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved