测试SQL 2008数据库加密备份与还原[完备+差异备份]

---测试SQL 2008数据库加密备份与还原[完备+差异备份]

/* 1.完整备份test数据库(加密码)*/
Use Test
BACKUP DATABASE [test] TO  DISK = N'D:/test.bak' WITH NOFORMAT,
 NOINIT,  NAME = N'test-完整 数据库 备份',
 SKIP, NOREWIND, NOUNLOAD,  STATS = 10 ,
 PASSWORD = '123456'    --密码,很重要
 /*----,compression (Express Edition 不支持 BACKUP DATABASE WITH COMPRESSION。)*/
GO

-------
--/*--对该完整备份的备份文件进行检查*/
--Use Test
--declare @backupSetId as int
--select @backupSetId = position from msdb..backupset
-- where database_name=N'test' and backup_set_id=(select max(backup_set_id) from
--msdb..backupset where database_name=N'test' )
--if @backupSetId is null
--begin
-- raiserror(N'验证失败。找不到数据库“test”的备份信息。', 16, 1)
--end
--RESTORE VERIFYONLY FROM  DISK = N'D:/test.bak' WITH  FILE = @backupSetId,  
-- NOUNLOAD,  NOREWIND ,
-- PASSWORD = '123456'   --检查时也需要输入密码
------若备份文件正常,则返回,如:文件 1 上的备份集有效。
--GO
--------
---/* 2.差异备份test数据库(加密码)*/
Use Test
BACKUP DATABASE [test] TO  DISK = N'D:/test_diff1.bak'
WITH DIFFERENTIAL,
NOFORMAT, NOINIT,
NAME = N'test-差异 数据库 备份 differentBackup',
SKIP,password='123456', NOREWIND, NOUNLOAD, STATS = 10
/*----,compression (Express Edition 不支持 BACKUP DATABASE WITH COMPRESSION。)*/
----

/*-- 3. 用加密的完整备份文件还原TEST数据库.由于还有差异备份因此加"NORECOVERY"参数*/
Use master
RESTORE DATABASE test FROM  DISK = N'D:/test.bak'
WITH REPLACE,
NORECOVERY,--此参数表明:进行还原开始,可以继续添加需要还原的备份,如差异备份,如果此刻查看SSMS界面,该数据库是一个“正在还原”状态。
--recovery,则表示还原后可正常使用,后不可跟事务日志、差异备份继续还原等操作。
PASSWORD = '123456'    --注意输入密码
--select state from sys.databases where name='test' 可以查询出该数据库当前的状态,为1即表示正在还原.
GO
-------
 
/*-- 4. 用加密的差异备份文件继续还原TEST数据库(在最后一个完整备份已经还原的基础上进行).*/
Use master
RESTORE DATABASE test FROM  DISK = N'D:/test_diff1.bak'
WITH
RECOVERY, --由于后续没有事务日志待还原
PASSWORD = '12346'    --注意输入密码
GO

/************************PS***************************/

/******************************************************/

--指定还原后的数据库物理文件名称及路径:
RESTORE DATABASE MyDataBase
   FROM DISK = 'd:\Northwind.bak'
   WITH
   MOVE 'Northwind' TO 'd:\MyDataBase .mdf',
   MOVE 'Northwind_log' TO 'd:\MyDataBase .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 MyDataBase
   FROM DISK = 'd:\MyDataBase.bak'
   WITH REPLACE,
   MOVE 'Northwind' TO 'd:\MyDataBase.mdf',

   MOVE 'Northwind_log' TO 'd:\MyDataBase.ldf'


你可能感兴趣的:(sql,加密,数据库,测试,database,compression)