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';

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/zping/p/1939112.html