SMO 还原

来源:互联网 发布:淘宝中的信息管理系统 编辑:程序博客网 时间:2024/04/29 18:14
三种恢复模式
(一).简单恢复模式
        事务日志被自动截断,不能使用日志文件进行恢复。
(二).完整恢复模式
        保留所有操作的完整事务日志
(三).大容量日志恢复模式
        简要记录大容量操作(索引创建和大容量加载)的日志完整记录其它事务的日



                                    ——摘自SQL SERVER 2005 数据备份与恢复 Microsoft TechNet


SQL Server Management Studio演示完整备份:
1.登录的步骤就省略了,选择任务:


2.这里指定数据库名,然后选择源设备


3.选择源设备后面的按钮,出现如下对话框

4.选择备份文件

5.选择完毕之后出现如下界面,选中复选框,这里可能出来多条,可以根据备份的时候不同还原不同时的备份。

6.这一步得注意了,如果数据库存在的话,需要勾上这个选项

7.确定,还原成功



SMO完整恢复:
 /// <summary>
        
/// 恢复该数据库
        
/// </summary>
        
/// <param name="Connection"></param>
        public static void DatabaseRestores(string  SqlSqlConnectionString)
        {
            
using (SqlConnection Connection = new SqlConnection(SqlSqlConnectionString))
                {
                Connection.Open();
                Server server 
= new Server(new ServerConnection(Connection));

                Database currentDb 
= server.Databases[SmoParm.DataBaseName];
                
                
//看是否数据库已经存在
                if (currentDb != null)
                {
                    Connection.ChangeDatabase(
"test");
                    
//Stop all processes running on the DataBase database
                    server.KillAllProcesses("test");
                }

                BackupDeviceItem bdi 
= new BackupDeviceItem(string.Format(@"{0}/{1}.{2}""D:""DB_BACK","bak"), DeviceType.File);

                Restore res 
= new Restore();
                res.Devices.Add(bdi);
                res.NoRecovery 
= false;
                res.ReplaceDatabase 
= true;
                res.Database 
= "test";

                res.SqlRestore(server);
            }
        }