?? 11.3.4 部分數據文件損壞的修復處理示例.sql
字號:
USE master
--創建數據庫
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
--創建表
CREATE TABLE db.dbo.ta(id int) ON [PRIMARY]
CREATE TABLE db.dbo.tb(id int) ON db_fg1
CREATE TABLE db.dbo.tc(id int) ON db_fg2
INSERT db.dbo.tb SELECT id FROM sysobjects
GO
--做文件組備份
BACKUP DATABASE db FILEGROUP='db_fg1' TO DISK='c:\db_fg1.bak' WITH FORMAT
--備份后,再做數據處理
INSERT db.dbo.ta SELECT id FROM sysobjects
GO
/*--下面演示了破壞數據文件的處理,這些操作在操作系統中進行
1. 停止SQL Server服務(msqlserver服務)
2. 刪除文件 c:\db_fg1_data.ndf (模擬破壞)
3. 重新SQL Server服務,此時數據庫DB置疑
--*/
GO
--下面演示了如何恢復數據
--首先要備份當前日志
BACKUP LOG db TO DISK='c:\db_log.bak' WITH FORMAT,NO_TRUNCATE
--利用文件組備份恢復破壞的文件
RESTORE DATABASE db FILEGROUP='db_fg1' FROM DISK='c:\db_fg1.bak' WITH NORECOVERY
--還原到日志點
RESTORE LOG db FROM DISK='c:\db_log.bak' WITH RECOVERY
--顯示已經恢復的數據
SELECT COUNT(*) FROM db.dbo.tb
SELECT COUNT(*) FROM db.dbo.ta
GO
--刪除測試
DROP DATABASE db
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -