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';
要存在数据库快照,快照的源数据库就存在以下限制:
· 不能对数据库进行删除、分离或还原。
· 源数据库的性能受到影响。
· 不能从源数据库或任何快照中删除文件。
· 源数据库必须处于联机状态,除非该数据库在数据库镜像会话中是镜像数据库。
· 若要在镜像数据库中创建数据库快照,数据库必须处于同步镜像状态。