zoukankan      html  css  js  c++  java
  • 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);
                }

            }


  • 相关阅读:
    Oracle 添加主键和索引
    Oracle中查询主键、外键、sequence、表基本信息等
    Spring工作原理
    Ehcache 缓存使用
    socket编程-java
    oracle触发器详解
    单例模式的几种写法
    [LeetCode] 412. Fizz Buzz 嘶嘶嗡嗡
    LeetCode Top Interview Questions
    [LeetCode] 131. Palindrome Partitioning 回文分割
  • 原文地址:https://www.cnblogs.com/over140/p/884093.html
Copyright © 2011-2022 走看看