zoukankan      html  css  js  c++  java
  • SQL Server 高可用使用环境

    1, 数据库镜像

    2, 同步复制

    3, 日志传送

    4, 数据库快照

    镜像:

       准确来说是主机的备机,主机挂掉后可以迅速恢复。

       清理日志

    主要用来备份数据。需要做日志“完整“记录,如果记录的日志太大,备份主机的日志3次到不同的文件中,在收缩日志。收缩日志不要太小,适当大一点,具体看事务量,如到原有的10%左右,清理主库日志后,镜像的备机也将自动清理日志。

     

       原因:第一次备份没释放掉日志空间。

     同步复制

      

    主要用来做读写分离。

    同步复制一般用中转机 ,然后备机的内存要求比较高。

    事务复制通常在修改发生时(几乎实时)便传递给订阅服务器。

    同步事务复制要复制的表必须要主键,不读取全部数据。

    快照复制:某时间的快照,数据按一段时间同步一次,不实时。以特定时刻的瞬时状态分发,而不监视对数据的更新

    :每次需要重新读全部数据,传递到订阅服务器上,无需主键

    合并复制服务器和客户端之间复制数据,如区域办事处和总部之间单向或双向流动

    据 ASE_SNAPSHOT = 'Snapshot_Test注: 所有合并项目都必须包含带有唯一索引的 uniqueidentifier 列和 ROWGUIDCOL 属性。SQL Server 将在生成第一个快照时向没有 uniqueidentifier 列的已发布表添加该列。

     

     日志传送

    传送日志 IO 开销大,而且实时程度比镜像差。

    数据库快照

    数据库快照是数据库(称为“源数据库”)的只读静态视图。在创建时,每个数据库快照在事务上都与源数据库一致。在创建数据库快照时,源数据库通常会有打开的事务。在快照可以使用之前,打开的事务会回滚以使数据库快照在事务上取得一致。 

      客户端可以查询数据库快照,这对于基于创建快照时的数据编写报表是很有用的。而且,如果以后源数据库损坏了,便可以将源数据库恢复到它在创建快照时的状态。 

    是数据库镜像的备机如过要查询,因为其一直在还原状态,可以通过记录数据库快照来查看数据。

    --创建数据库快照


    代码
    --多逻辑文件名
    create database NDB_shot ON
     (Name 
    = NDB_Data,--是源数据库的文件逻辑名
        --新快照文件地址
        FileName = 'D:\Snapshot_son2.ss'),    
     (Name 
    = son2, --是源数据库的文件逻辑名
        --新快照文件地址
        FileName = 'D:\Snapshot_son1.ss'
     
    AS SNAPSHOT OF NDB ;

    --从数据库快照恢复数据库

    use master;

    GO

    RESTORE DATABASE Snapshot from

    DATABASE_SNAPSHOT = 'Snapshot_shot';

    要存在数据库快照,快照的源数据库就存在以下限制:

    ·                      不能对数据库进行删除、分离或还原。

    ·                      源数据库的性能受到影响。

    ·                      不能从源数据库或任何快照中删除文件。

    ·                      源数据库必须处于联机状态,除非该数据库在数据库镜像会话中是镜像数据库。

    ·                      若要在镜像数据库中创建数据库快照,数据库必须处于同步镜像状态。

  • 相关阅读:
    一个简单的瀑布流效果
    C#遇到的一些奇怪问题
    能够按页号提取word文档文本内容的小程序,由C#实现
    设计模式学习之简单工场模式
    设计模式学习之策略模式
    检查机器是否安装了.NET Framework 或已经安装了哪些.net版本
    书籍清单
    使用Func<T>对对象进行排序
    定义一个委托的三种形式
    设计模式学习之设计原则
  • 原文地址:https://www.cnblogs.com/zping/p/1939112.html
Copyright © 2011-2022 走看看