Always on环境的建立,网上资料很多,主要是windows集群的建立以及Sql Server Always on的建立,略

容易忽略的是Sql server账号同步问题(Always on能实现数据库内部的同步,但是没法实现instance级别的同步,比如job、账号等)

下面来说说几种解决方式:

  1. SQL账号采用域账号,让IIS运行于域账号下
    1. 如果现状下的本地sql账号较少的话还好,否则推行困难,而且还要加入域
  2. SQL账号采用域账号,让IIS运行于本地账号下,但是在web.config或machine.config中配置模拟账号
    1. 基本上与第一种相同
  3. SQL账号采用本地账号,客户端连接字符串采用user/pwd方式连接,并且在windows集群中增加一个通用服务,目的是当主sql server服务迁移到另外一台服务器后执行一段sql脚本,这段脚本的作用是重新map本地sql账号与db的权限关系
    1. 需要与集群的通用服务一起考虑
    2. 需要自己写脚本,下载
    3. 麻烦
  4. SQL账号采用本地账号+域账号公用方式,域账号权限关联到数据库,并且设置本地sql账号拥有模拟域账号权限,同时客户端使用user/pwd方式连接,并且还需要修改框架:让每次执行sql操作时先执行切换上下文用户:EXECUTE AS LOGIN 'domain\user1'
    1. 麻烦点转移到了框架级别:C#的SqlHelper等需要注入一行SQL来模拟域账号
    2. 配置也麻烦
  5. SQL账号采用本地账号,但是账号的建立不是直接建立,步骤:从源SQL服务器上导出带SID的脚本,然后在Always on数据库中导入带SID的脚本
    1. 初次时运行
    2. 增加user时,也需要运行
    3. 无需域账号
    4. 对客户端没影响
    5. 这里的脚本用法说明
  6. 使用Always on插件,不成熟,也不清楚能否自动同步
    1. sqlskills.com插件
      1. 能实现user、job、User-defined Server Roles的同步
    2. 都是第三方的,不敢用
  7. 使用Contained Database,这种数据库能将login user/pwd包含于db级别中,但是连接的时候必须指定具体数据库名,否则无法建立连接
    1. sql 2012开始支持包含的数据库
    2. 如果数据库不多,这种最好
    3. 缺点是如果每个db的账号多了,同步、维护这些账号比较麻烦

性能方面的思考:

  • 采用了Always on后,所有的提交行为都由Master SQL来处理,因此Master的CPU占用很高(考虑到1台master,5台slave, 并且设置了3台提交成功才算整体的提交成功),而Slave的CPU几乎闲置。因此最好是用读写分离来连接侦听器IP(写入)、以及读取IP(哈西算法)
  • 主要功能是HA+中等的性能考虑
  • 不适用于非常高并发的场景(还是得拆分库,或者写DAL)

将Sql Server迁移到Always on集群 - 账号的同步的更多相关文章

  1. SQL Server上唯一的数据库集群:负载均衡、读写分离、容灾(数据零丢失、服务高可用)

    SQL Server上唯一的数据库集群:负载均衡.读写分离.容灾(数据零丢失.服务高可用).审计.优化,全面解决数据库用户问题.一键安装,易用稳定,性价比高,下载链接:http://www.zheti ...

  2. SQL Server 2016 + AlwaysOn 无域集群

    目录 AlwaysOn 搭建 WSFC 配置计算机的 DNS 后缀 安装故障转移集群 验证集群 创建集群 创建文件共享见证 配置 AlwaysOn 新建可用性组 创建侦听器 可读副本的负载均衡 主角色 ...

  3. SQL SERVER 2016 AlwaysOn 无域集群+负载均衡搭建与简测

    之前和很多群友聊天发现对2016的无域和负载均衡满心期待,毕竟可以简单搭建而且可以不适用第三方负载均衡器,SQL自己可以负载了.windows2016已经可以下载使用了,那么这回终于可以揭开令人憧憬向 ...

  4. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  5. 从 Microsoft SQL Server 迁移到 Oracle

    来源于:http://www.oracle.com/technetwork/cn/database/migration/sqlserver-095136-zhs.html Oracle SQL Dev ...

  6. SQL Server里如何随机记录集

    今天的文章,我想给你简单介绍下SQL Server里如何随机记录集. SELECT * FROM Person.Person ORDER BY NEWID() GO 这会引入新的UNIQUEIDENT ...

  7. 从Microsoft SQL Server迁移到MySQL指南

    转自 https://www.mysql.com/why-mysql/white-papers/sql-server-to-mysql-zh/ 由于 MySQL 将节约成本.自由选择平台.特性丰富等优 ...

  8. MS SQL Server迁移至Azure SQL(官方工具)

    前面,我有尝试过将MS SQL Server数据数据迁移至Azure SQL,请参考<MS SQL Server迁移至Azure SQL>,使用的是第三方工具,但现在官方更新了工具,我们尝 ...

  9. sql server迁移数据(文件组之间的互相迁移与 文件组内文件的互相迁移)

    转自:https://www.cnblogs.com/lyhabc/p/3504380.html?utm_source=tuicool SQLSERVER将数据移到另一个文件组之后清空文件组并删除文件 ...

随机推荐

  1. jsp的9大对象

    1.requset对象 主要用于接受客户端通过HTTP协议传送给服务器端的数据     request.getProtocal()获得客户使用协议     request.getServletPath ...

  2. SGU196_Matrix Multiplication

    给一个无向图,如果第i个点连接第j条边,那么mat[i][j]=1,否则mat[i][j]=0. 求mat的转置乘以本身得到的矩阵每个位置的和是多少? 理解矩阵的意义就比较好做了. mat[i][j] ...

  3. apache的80端口分发

    打开 conf 文件夹,找到下面的 httpd.conf 更改Listen 后面的端口号为:80:默认就是80端口 去掉下面的相关注释: #LoadModule proxy_module module ...

  4. 【转】让Chrome化身成为摸鱼神器,利用Chorme运行布卡漫画以及其他安卓APK应用教程

    下周就是十一了,无论是学生党还是工作党,大家的大概都会有点心不在焉,为了让大家更好的心不在焉,更好的在十一前最后一周愉快的摸鱼,今天就写一个如何让Chrome(google浏览器)运行安卓APK应用的 ...

  5. IOS-synthesize和dynamic的异同(转)

    一,retain, copy, assign区别 1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b.此时a ...

  6. struts2中的constant配置详解

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-/ ...

  7. Cache 的write back和write through

    分类: LINUX 内核 2009-09-23 16:21 4561人阅读 评论(0) 收藏 举报 cachebufferos存储算法 Cache 的write back和write through ...

  8. Programming Assignment 4: 8 Puzzle

    The Problem. 求解8数码问题.用最少的移动次数能使8数码还原. Best-first search.使用A*算法来解决,我们定义一个Seach Node,它是当前搜索局面的一种状态,记录了 ...

  9. JBOSS通过Apache负载均衡方法二:使用mod_cluster

    本文介绍使用mod_cluster组件通过apache来对JBOSS做负载均衡.基本环境为:linux RH6.3 64bit下使用jboss-eap-6.0和mod-cluster 1.2.6(集成 ...

  10. 5.7 NDK开发

    JNI开发流程主要分为以下6步: 编写Java源代码 将Java源代码编译成class字节码文件 用javah -jni命令生成.h头文件(-jni参数表示将class中用native声明的函数生成j ...