備份資料庫:
backup database northwind to disk = 'c:\***xx.bak'
還原資料庫:
--返回由備份集內包含的資料庫和日誌檔案列表組成的結果集
restore filelistonly
from disk = 'c:\***x.bak'
--還原由backup備份的資料庫
restore database northwind
from disk = 'c:\***x.bak'
--指定還原後的資料庫物理檔名稱及路徑
restore database testdb
from disk = 'c:\***x.bak'
with
move 'northwind' to 'c:\test\testdb.mdf',
move 'northwind_log' to 'c:\test\testdb.ldf'
move 'logical_file_name' to 'operating_system_file_name'
指定應將給定的 logical_file_name 移到 operating_system_file_name。
預設情況下,logical_file_name 將還原到其原始位置。如果使用 restore
語句將資料庫複製到相同或不同的伺服器上,則可能需要使用 move 選項重
新定位資料庫檔案以避免與現有檔案衝突。可以在不同的 move 語句中指定
資料庫內的每個邏輯檔案。
--強制還原,加上replace引數,則在現有資料庫基礎上強制還原。
restore database testdb
from disk = 'c:\northwind.bak'
with replace,
move 'northwind' to 'c:\test\testdb.mdf',
move 'northwind_log' to 'c:\test\testdb.ldf'
對於還原資料庫過程中 出現失敗 主要是由於還原資料庫前沒有關閉掉該資料庫的工作執行緒。
--再master資料庫中 建立乙個 kill儲存過程 用來kill 需要還原資料庫的工作執行緒
use master
gocreate proc p_killspid
@dbname sysname --要關閉程序的資料庫名
as declare @s nvarchar(1000)
declare tb cursor local for
select s='kill '+cast(spid as varchar)
from master..sysprocesses
where dbid=db_id(@dbname)
open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
go 還原資料庫 首先要再 其他庫上 use master
在master庫上 執行儲存過程 p_killspid 來kill掉 需要還原的資料庫 的工作執行緒
然後最後進行還原restore database
--還原資料庫最後整理版
use master
goif exists(select 1 from sysobjects where id=object_id('p_killspid') and xtype='p')
begin
exec('drop procedure p_killspid')
end
gocreate proc p_killspid
@dbname sysname
as declare @s nvarchar(1000)
declare tb cursor local for
select s='kill '+cast(spid as varchar)
from master..sysprocesses
where dbid=db_id(@dbname)
open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
go use master
goexec p_killspid 'dbserver'
restore database dbserver
from disk = 'c:\dbserver.bak'
go再實際應用的vc++或其他平台裡面 還原資料庫 注意兩方面:
1 在還原前 連線的資料庫 應該是 master
use master語句 是無效的 必須用自己寫的oninitadoconn() 來連線資料庫
一般函式裡面 都在連線某個資料庫的基礎上oninitadoconn() 執行sql函式語句
所以還應該建立乙個oninitadoconnmaster() 連線資料庫函式 來專門用來給還原資料庫時候使用
2 並且 不能在 string 裡面不能含有 go 語句
可以分開 執行多次
SQL資料庫備份與還原
1.備份資料庫 bakup database db name to device with blocksize description db name資料庫備份 differential,expiredate retaindays password format noformat medianame...
資料庫備份與還原
在開發和資料庫有關的應用程式的時候,很多時候我們做的操作就是和資料庫打交道,而使用者最關心的也是資料,而一旦資料庫出現故障,我們事先又沒有做任何的預防措施,帶來的將會是災難性的錯誤。雖然資料庫本身提供備份和還原的功能,也可設定定期備份資料庫的操作,但是很多時候使用者並不知道怎樣操作,特別是還原。所以...
資料庫備份與還原
還原,將資料恢復到備份時的狀態。保護資料記錄。myisam innodb bdbmemory archive 批量插入的速度高低 高高非常高事務安全 支援 支援 全文索引 支援5.5版本支援 鎖機制 表鎖行鎖 頁鎖表鎖 行鎖儲存限制 沒有64tb沒有有 沒有b樹索引 支援支援 支援支援 雜湊索引 支...