SMO学习笔记(一)——备份篇之完全备份
SMO,即SQL Server Management Objects,SQL服务器管理对象。SMO是一个基于.NET架构的管理架构,是一种新型集成化管理工具。SMO可以让开发人员为服务器管理创建个性化应用,对数据库对象进行开发、部署和故障诊断等工作。与DMO相同的是,SMO允许把列、工作表、数据库和服务器当做对象来处理。
——摘自 2006年《程序员》精华本 合集
学习建议
强烈建议SQL Server Management Studio+SQL Server 2005 联机丛书+CodeSeach+Google来学习。在SQL Server Management Studio里面每一个属性设置动作,基本都对应SMO一个属性方法;SQL Server 2005 联机丛书上面有对备份以及恢复一些列的文章深入了解相关知识;CodeSeach看不懂英文可以直接看代码,有Google代码搜索、koders、The Code Project;Google可以帮你搜索到一些中英文章和代码。
参考文章
数据点:SQL Server 管理对象(严重推荐)
http://soft.zdnet.com.cn/software_zone/2007/0821/462882.shtml
http://groups.google.co.uk/group/microsoft.public.sqlserver.programming/msg/4cdc39bff40e41c1
http://www.sqldbatips.com/showarticle.asp?ID=34
等等。
SQL Server Management Studio演示完全备份:
1.登录
2.找到备份选项
3.设置备份参数
4.备份成功
SMO完全备份代码:
/// <summary>
/// 完全备份
/// (1)是备份的基准。在做备份时第一次备份都建议使用完全备份。
/// (2)完全备份会备份数据库的所有数据文件、数据对象和数据。
/// (3)会备份事务日志中任何未提交的事务。因为已提交的事务已经写入数据文件中。
/// </summary>
/// <param name="Connection"></param>
/// <param name="SmoParm">备份所需参数</param>
public static void DatabaseBackups(string SqlConnectionString)
{
using (SqlConnection Connection = new SqlConnection(SqlSqlConnectionString))
{
Server server = new Server(new ServerConnection(Connection));
Backup bak = new Backup();
//备份模式
bak.Action = BackupActionType.Database;
//将要备份数据库的名称
bak.Database = "test";
//设置为不是增量式备份
bak.Incremental = false;
//Initialize - 如设置为真(True),该备份装置将取代其他备份媒介而成为首选。
bak.Initialize = true;
///LogTruncation备份日志选项。
//TruncateOnly - 将数据库缩减后剩余的空间返还给操作系统。
//NoTruncate - 备份交易日志。日志里提供时间标记。
//Truncate - 备份交易日志,但不保留交易纪录。
bak.LogTruncation = BackupTruncateLogType.Truncate;
//DeviceType也可将备份保存到 LogicalDevice 或磁带之类的其他目的地,这里选择保存为文件
//注意!创建备份所在的目录必须存在
bak.Devices.AddDevice(string.Format(@"{0}\{1}.{2}", "D:", "DB_BACK","bak") , DeviceType.File);
bak.SqlBackup(server);
}
}