文件及文件组备份与还原示例.sql
生活随笔
收集整理的這篇文章主要介紹了
文件及文件组备份与还原示例.sql
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
--以下代碼簡單地演示了如何進行文件組的備份及還原(在還原時,模擬了丟失第二次文件組備份文件的情況)。
--創建測試數據庫
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
--創建測試數據庫
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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新建账年(over partition
- 下一篇: TOMCAT/JVM关闭时候的收尾(HO