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代码搜索kodersThe 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);
            }

        }

posted @ 2009-04-01 00:22  rapid  阅读(465)  评论(0编辑  收藏  举报