SQL文件的自动增长方式为

在一个高可用组里面添加一个数據库需要很多手动任务和一些必要条件需要完成的这些工作中,有一些是有些困难的比如:

  • 我们需要从主副本中备份数据库,并将这个備份分发到可用组的其他副本中这是基于手动操作的,因为这需要你从主数据库备份还原数据库到次要副本
  • 有时候,我们不能通过网絡防火墙在副本之间传送数据库备份文件这种情况下,需要开放SMB协议端口以便能在节点间传输备份文件。
  • 通常复制一个备份文件会占用更多空间,这是额外的需求更多的磁盘空间。
  • 特别是针对第三方备份的方案会导致备份/还原链的中断。但是这又取决于数据库的備份策略
  • 分发和还原数据库是耗时并且不透明的过程。

作为一个兼职DBA我不喜欢处理这些问题。当我创建数据库在主节点上时我想要數据库被自动创建在所有副本上,幸运的是SQLServer 2016以后这样的工作就容易多了为了更好的帮助DBA们处理这些问题,微软引入了可用组的自动增长數据库即SQL Server 2016 引入了用于初始化次要副本的新功能 - 我一般称之为数据库自增长(自动种子设定)

那么这个自动化如何实现的?

当你打算创建┅个数据库在主副本上并且加入数据库到AG里面时,自动填充就会在数据库镜像端间进行通信并且复制数据库到次要副本中。假设有一個可用组由N个副本组成,replicas - Replica1, Replica2, ... ReplicaN当前你的主副本是Replica2 ,然后你创建一个新的数据库在主副本上下一步就是要尽快把数据库加入到可用组的其怹副本上。这个解决方案就如下图的流程所示:

数据库自动种子设定(自增长)没有特殊的必要条件和限制,只是需要数据和日志文件路徑在可用组中是完全一致的这个可用组配置自增长,数据库在可用组中一定是完整还原模式需要有一个完成备份以及事务日志备份。洳果在可用组中用手动同步加入的数据库也需要上述一样的条件

在每一个需要自增长数据库的副本上,需要允许可用组创建数据库下媔的脚本用来允许AG创建数据库,但是确保你可以连接到master数据库并且能够对所有可用组中的副本执行这个脚本:

可用组必须被切换为自动增长模式该模式可以通过在每个副本中执行下面额T-SQL代码来实现(或者每个副本中启动自增模式):

另外,对于Always On 的可用组来说自增期间能够使鼡跟踪标记trace flag 9567压缩数据流,从而大大减少传输时间相关内容可以再找个连接看到:

添加一个带有自增长属性的数据库

这个菜单选项将会激活配置向导如下:

选择打算加入到可用组的数据库:

在次要节点,你会看到数据库已经被还原的信息:

这个脚本必须在可用组的每个数据库上执行

我通常使用自动数据库填充为可用组并且发现它很有价值。例如微软SharePoint 支持组有权去创建新的数据库在主副本上,但是他们不能直接把數据库加入到可用组中因为这样做影响了数据库的高可用。当我们使用自动数据填充在指定的可用组上时我们可以自动添加新的Sharepoint 数据庫在可用组上,使用一个将所有最近创建的Sharepoint 数据库添加到可用组上的脚本使用2016这个特性不在需要使用手动操作。

综上所述使用自动填充的优势有如下几点:

  • 节省备份还原事件,因为SQLServer复制数据库使用网络.
  • 使用追踪标记9567能够大大减少同步时间。

在可用组中使用自动增长的缺點:

  • 在同步过程中需要巨大的网络流
  • 处理需要一些手动处理步骤

    引用本文请注明原文地址:

设置主键:在数据库表的“设计堺面” 右键单击弹出菜单中选择设置为“主键”即可;

设置自动增长 在列属性下方 找到“标识规范 ”选择 “是” ;

单击保存此时可能会弹絀错误

  • 一、概念数据模型概述数据模型是现实世界中数据特征的抽象数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实...

  • 夜巳深,月已圆焉抹阑珊,静兮辉月本宁静安详的夜,却因动荡变得狰狞火光耀天,仿佛想要吞噬那无边天际数万将...

  • 最近不知是否峩也没有了耐性 面对魏晨 做作业晃荡 我好像也进入了一种怪圈子 责怪 批评 然后再自我批评 改 只有一...

contentprovider作为标准数据共享的唯一方式其作用也是非常强大的,网上太多的例子都是相互抄袭没有完全自己去实现,对初学者contentprovider也是有一定难度的,鉴于此分享代码,希望能帮到你

我要回帖

 

随机推荐