--以下**簡單地演示了如何進行檔案組的備份及還原(在還原時,模擬了丟失第二次檔案組備份檔案的情況)。
--建立測試資料庫
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 ...