三种恢复模式
(一).简单恢复模式
事务日志被自动截断,不能使用日志文件进行恢复。
(二).完整恢复模式
保留所有操作的完整事务日志。
(三).大容量日志恢复模式
简要记录大容量操作(索引创建和大容量加载)的日志,完整记录其它事务的日志。
![](https://i-blog.csdnimg.cn/blog_migrate/50101af0a8cb4c6939cbd857ade82587.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/903604c1abaa74755f4f788a3bdd9fcf.jpeg)
——摘自SQL SERVER 2005 数据备份与恢复 Microsoft TechNet
SQL Server Management Studio演示完整备份:
1.登录的步骤就省略了,选择任务:
![](https://i-blog.csdnimg.cn/blog_migrate/b7271617b66a8be39d67e615acc58873.jpeg)
2.这里指定数据库名,然后选择源设备
![](https://i-blog.csdnimg.cn/blog_migrate/150129c7e109f4e28300382d9e7ab599.jpeg)
3.选择源设备后面的按钮,出现如下对话框
![](https://i-blog.csdnimg.cn/blog_migrate/c997d8a6da7bac3046b8e8b4774c972b.jpeg)
4.选择备份文件
![](https://i-blog.csdnimg.cn/blog_migrate/3f41a3d20e944526bf66afbf0441cde2.jpeg)
5.选择完毕之后出现如下界面,选中复选框,这里可能出来多条,可以根据备份的时候不同还原不同时的备份。
![](https://i-blog.csdnimg.cn/blog_migrate/75f0d474b3eadded314ba2d0765a4320.jpeg)
6.这一步得注意了,如果数据库存在的话,需要勾上这个选项
![](https://i-blog.csdnimg.cn/blog_migrate/1d9dd761f5c1e1d5ec59c77a57e8e7f2.jpeg)
7.确定,还原成功
![](https://i-blog.csdnimg.cn/blog_migrate/37486b7e742b7435f80ebbe249f43e36.jpeg)
(一).简单恢复模式
事务日志被自动截断,不能使用日志文件进行恢复。
(二).完整恢复模式
保留所有操作的完整事务日志。
(三).大容量日志恢复模式
简要记录大容量操作(索引创建和大容量加载)的日志,完整记录其它事务的日志。
![](https://i-blog.csdnimg.cn/blog_migrate/50101af0a8cb4c6939cbd857ade82587.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/903604c1abaa74755f4f788a3bdd9fcf.jpeg)
——摘自SQL SERVER 2005 数据备份与恢复 Microsoft TechNet
SQL Server Management Studio演示完整备份:
1.登录的步骤就省略了,选择任务:
![](https://i-blog.csdnimg.cn/blog_migrate/b7271617b66a8be39d67e615acc58873.jpeg)
2.这里指定数据库名,然后选择源设备
![](https://i-blog.csdnimg.cn/blog_migrate/150129c7e109f4e28300382d9e7ab599.jpeg)
3.选择源设备后面的按钮,出现如下对话框
![](https://i-blog.csdnimg.cn/blog_migrate/c997d8a6da7bac3046b8e8b4774c972b.jpeg)
4.选择备份文件
![](https://i-blog.csdnimg.cn/blog_migrate/3f41a3d20e944526bf66afbf0441cde2.jpeg)
5.选择完毕之后出现如下界面,选中复选框,这里可能出来多条,可以根据备份的时候不同还原不同时的备份。
![](https://i-blog.csdnimg.cn/blog_migrate/75f0d474b3eadded314ba2d0765a4320.jpeg)
6.这一步得注意了,如果数据库存在的话,需要勾上这个选项
![](https://i-blog.csdnimg.cn/blog_migrate/1d9dd761f5c1e1d5ec59c77a57e8e7f2.jpeg)
7.确定,还原成功
![](https://i-blog.csdnimg.cn/blog_migrate/37486b7e742b7435f80ebbe249f43e36.jpeg)
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);
}
}
/// 恢复该数据库
/// </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);
}
}