檔案及檔案組備份與還原示例 sql

2022-02-11 20:47:48 字數 1592 閱讀 4492

--以下**簡單地演示了如何進行檔案組的備份及還原(在還原時,模擬了丟失第二次檔案組備份檔案的情況)。

--建立測試資料庫

create database db

on primary(

name='db_data',

filename= 'c:\db_data.mdf'),

filegroup db_fg1(

name = 'db_fg1_data',

filename = 'c:\db_fg1_data.ndf'),

filegroup db_fg2(

name = 'db_fg2_data',

filename = 'c:\db_fg2_data.ndf')

log on(

name='db_log',

filename ='c:\db.ldf')

go--在檔案組db_fg1上建立表,並單獨建立該檔案組的備份

create table db.dbo.tb(id int) on db_fg1

backup database db filegroup='db_fg1' to disk='c:\db_fg1.bak' with format

go在其他檔案組上建立表

create table db.dbo.ta(id int) on [primary]

create table db.dbo.tc(id int) on db_fg2

insert db.dbo.tb select id from sysobjects

--備份每個檔案組,並且備份事務日誌

backup database db filegroup='primary' to disk='c:\db_primary.bak' with format

backup database db filegroup='db_fg1' to disk='c:\db_fg1_new.bak' with format

backup database db filegroup='db_fg2' to disk='c:\db_fg2.bak' with format

backup log db to disk='c:\db_log.bak' with format

go--刪除資料庫

drop database db

go--從檔案組備份中恢復資料

restore database db filegroup='primary' from disk='c:\db_primary.bak' with norecovery,replace

restore database db filegroup='db_fg1' from disk='c:\db_fg1.bak' with norecovery

restore database db filegroup='db_fg2' from disk='c:\db_fg2.bak' with norecovery

restore log db from disk='c:\db_log.bak' with recovery

select count(*) from db.dbo.tb

go--刪除測試資料庫

drop database db

轉 SQL檔案組備份和還原

from 如果乙個資料庫比較大的時候,一般會包含多個檔案組,由於備份還原是個很耗資源和時間的事情,所以檔案組的備份和還原成了另外一種選擇。在建立帶有多個檔案組的時候,建議將使用者資料放在輔助檔案組中,就是將其中乙個檔案組設定為預設,而不是用primary作為預設的檔案組 create databas...

轉 SQL檔案組備份和還原(二)

from 上次關於sql檔案組的備份和還原似乎意猶未盡,我總覺得好像欠些什麼。做了尾日誌備份,是為了能將資料庫還原到故障發生時的那個點。但如果沒有發生故障,而是因為誤操作,想還原到前面的乙個點呢,當然,同樣要先做尾日誌備份,否則還原會出錯,但是還原的時候不要還原尾日誌了。我建了乙個測試資料庫test...

sqlserver 差異備份與還原示例

建立測試資料庫 create database test gouse test go 建立測試表 create table test id uniqueidentifier default newid summary varchar 200 完整備份資料庫 backup database test ...