打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
测试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'


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
标题:SQL常见问题:如何利用日志还原SQL数据库?
恢复数据库备份 Restore Database From *.bak
如何在 SQL Server 中备份和恢复数据库
SQL Server扩展存储过程实现远程备份与恢复
【SQLServer备份恢复】提高备份速度
SQL Server:用 SQL 语句还原数据库(with move 选项用法)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服