天天看点

SMO学习笔记(二)——还原(恢复)篇之完整恢复

SQLSERVER2005恢复介绍:

三种恢复模式

(一).简单恢复模式

        事务日志被自动截断,不能使用日志文件进行恢复。

(二).完整恢复模式

        保留所有操作的完整事务日志。

(三).大容量日志恢复模式

        简要记录大容量操作(索引创建和大容量加载)的日志,完整记录其它事务的日志。

                                    ——摘自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);

            }

        }

对照SQL Server Management Studio相关备份属性设置可以得到更多启示,这里只是做了简单的例子。