SQL Server 資料庫備份和還原

2021-09-25 00:25:20 字數 2408 閱讀 9509

備份

backup database testdb to disk='d:\testdb.bak'

還原restore database testdb from disk='d:\testdb.bak'

參考文章:

備份

sqlcmd -s . -e -q "backup database abpfirst to disk='d:\abpfirst.bak'"
還原

sqlcmd -s . -e -q "restore database abpfirst from disk='d:\abpfirst.bak'"
原文:

解決方案1.

如果你使用管理工具還原資料庫並且在microsoft sql server management studio 2016或以上版本的話,可以在還原的時候勾選"關閉到目標資料庫的現有鏈結"

解決方案2:

如果你的sqlserver management studio的版本比較低,可以設定資料庫為單使用者模式,執行完還原操作後,恢復為多使用者模式

設定方式:選中要還原的資料庫-->屬性-->選項-->限制訪問

該值從multi_user修改為single_user,此時該資料庫就會顯示為單使用者模式

這是gui的模式,語句的辦法比較簡單

---設定資料庫為單使用者模式

use master

goalter database eol_tcgroup set single_user with rollback immediate;

go

---設定資料庫為多使用者模式

use master

goalter database eol_tcgroup set multi_user with rollback immediate;

go

解決方案3:

完全使用t-sql的方式,執行備份資料庫操作

use

master

go--

-宣告變數

declare

@dbname

nvarchar(max)=

'mvc_hnhz';

declare

@dbfullname

nvarchar(max)=

'e:\newwork\web\backup\test1.bak';

--1.1修改為單用模式

exec(n'

alter database '+

@dbname+'

set single_user with rollback immediate');

--1.2結束鏈結程序

declare

@kid

varchar(max

)

set@kid=''

select

@kid

=@kid+'

kill '+

cast(spid as

varchar(10)) from

master..sysprocesses

where dbid=

db_id(@dbname

) ;

exec(@kid

) ;--

2.執行還原語句

restore

database

@dbname

from

disk

=@dbfullname

with

replace

--覆蓋現有的資料庫

--3.重置資料庫為多使用者模式

exec(n'

alter database '+

@dbname+'

set multi_user with rollback immediate

');

use

master

goalter

database

[dbname

]set single_user with

rollback

immediate

go--

檢視是否還有使用者連線

select

*from sys.[

sysprocesses

]where

db_name([

dbid

])='

dbname'go

alter

database

[dbname

]set

multi_user

go

備份SQL Server資料庫

搬遷之後,備份資料庫的功能出錯了,原因是原來資料庫與 同一臺伺服器,現在是資料庫與 分別在不同伺服器,引起在備分時,找不到路徑或是沒有許可權儲存。最初版本的儲存過程 setansi nulls ongo setquoted identifier ongo alter procedure dbo us...

備份SQL Server資料庫

搬遷之後,備份資料庫的功能出錯了,原因是原來資料庫與 同一臺伺服器,現在是資料庫與 分別在不同伺服器,引起在備分時,找不到路徑或是沒有許可權儲存。最初版本的儲存過程 set ansi nulls ongo setquoted identifier ongo alter procedure dbo u...

SQL Server 資料庫備份和還原

備份 backup database testdb to disk d testdb.bak 還原restore database testdb from disk d testdb.bak 參考文章 備份sqlcmd s e q backup database abpfirst to disk d...