最近一段时间在公司忙于将各类系统进行升级,其最主要的目标有两个,一个是将TFS2010升级到TFS2013,另外一个是将SharePoint 2010升级到SharePoint 2013。本记录旨在记录升级过程中的一般性准备工作及在升级中可能存在的各种坑的解决方案。本记录会大量引用外部文章来作为解释说明,并不是一个step by step的指引,本文章并不适合小白用户而适合具有一定IT管理经验的人阅读。另外本文也并不保证完全正确。

第一篇:SQL Server 2012的群集安装

1. 基本的拓扑结构描述

存储环境:

  我司具有两个计算机机房,一个主机房和一个备机房,两个机房相隔40公里通过裸光纤连接,在8K数据包的情况下裸光纤的延迟在4毫秒。对存储本身进行了群集,当往主机房存储写入的时候会实时同步到备份机房。

云环境:

办公网使用Windows Server 2012 Hyper-V搭建了云服务,Hyper-V本身做了群集,虚拟机放在存储上,这样可以保证虚拟机在几十秒内能够从主机房移动到备机房。

整个网络以高可用性为主,以保证在遇到主机房完全损毁时可以无损的迁移到备机房。

2. 现在的SQL Server 2008 R2环境

现在的SQL Server 2008 R2放于一台相对强悍的物理服务器上,并且未作群集,上面承载了所有SharePoint站点数据库、TFS数据库及其它几个小型业务系统数据库。

3. 升级所要考虑的问题

环境:

Windows Server 2012 R2 + SQL Server 2012

高可用性:

考虑到原先在一台物理服务器上,并且数据都存在本机磁盘上,可靠性太差。所以这次需要考虑高可用性方案,总结为两点:

    1.   建立双节点SQL Server 2012故障转移群集。
    2.   双节点SQL Server 2012服务器均做虚拟机。
    3.   主节点SQL Server虚拟机限制在主机房Hyper-V群集机器中漂移。
    4.   备节点SQL Server虚拟机限制在备机房Hyper-V群集机器中漂移。
    5.   SQL Server的数据放在存储的单独卷上。

为什么选择故障转移群集?

对于SQL Server来说,提供了3种方式的高可用性,大致总结为:

1:镜像(Mirror),特点是存储为两份,主节点可读写,备节点不可读写。镜像实际上通过事务日志传递来实现两份数据同步。当主节点失效后,会立即启用备节点。Windows Server不需要做群集。从SQL Server 2005就开始支持,并且使用SQL Server标准版即可。关于此种方式更详细的介绍请参考:http://technet.microsoft.com/en-us/library/ms189852.aspx

2:Always on(AlwaysOn Failover Cluster Instances),特点是存储为两份,主节点可读写,备节点可读。Windows Server必须做群集。这个特性是SQL Server 2012才开始支持的。具体可以参考:http://technet.microsoft.com/en-us/library/ms189134.aspx

3:故障转移群集(Windows Server Failover Clustering with SQL Server):特点是存储为一份,主节点可读写,备节点不可读写,当主节点失效后会自动切换到备节点,而且此操作对于应用程序来说是透明的。Windows Server必须要做群集。具体的可以参 考:http://technet.microsoft.com/en-us/library/hh270278.aspx

考虑到我们的存储本身就是群集的,将数据存储两份有些浪费我们的存储资源,所以我们最终选择了第三种方案,也就是故障转移群集。

4. 故障转移群集需要注意的事项

  1. 要有共享磁盘,通常给3个共享磁盘,一个作为Windows Server群集的仲裁磁盘,一个作为MSDTC的磁盘,一个作为SQL Server的数据磁盘,当然SQL Server的数据磁盘你也可以给多个。
  2. Windows Server本身要先做群集,我们选择的Windows Server 2012 R2,在安装群集前,首先使用虚拟光千卡连好三个共享磁盘,然后还要注意是给每个虚拟机分配两块网卡,其中一块作为心跳线,另外一块作为正常的网络通信。安装Windows Server 2012 Failover Cluster可以参考这篇Blog:http://blogs.msdn.com/b/clustering/archive/2012/05/01/10299698.aspx
  3. Windows Server 2012 R2群集做完之后,要安装MSDTC并且加入群集,SQL Server 2012可以不安装MSDTC,而SQL Server 2008 R2及以下则必须安装,我根据习惯仍然安装了MSDTC。
  4. SQL Server安装时主节点要选择群集安装,备节点要选择添加到现有群集中。SQL Server群集的安装请参考:http://technet.microsoft.com/en-us/library/hh231721.aspx ,另外这里还有一篇图文并茂的安装步骤:http://www.sqlinstallation.com/sql-server-2012-cluster-step-step-installation-guide/

5. 就地升级问题

  非SQL Server群集不能就地升级到SQL Server群集中,必须要重新安装。

6. 数据迁移

  数据迁移非常简单,只要将原SQL Server 2008 R2的数据库backup之后,再restore回SQL Server 2012上即可。

总结:

相对而言,SQL Server的迁移过程是最简单的,SharePoint才是最折磨人的。当然下一节我会介绍TFS的迁移过程。

系统升级日记(1)- 升级到SQL Server 2012的更多相关文章

  1. SQL Server 2008 R2升级到SQL Server 2012 SP1

    1.建议对生产环境对的数据库升级之前做好备份,以防不测. 2.从SQL Server 2008 R2 升级到SQL Server 2012 SP1,需要先安装SQL Server 2008 R2 的S ...

  2. 升级到SQL Server 2012/2014时一些需要考虑的事项

    1. 使用Upgrade Adviser评估升级前需要解决的事情. https://msdn.microsoft.com/zh-cn/library/ms144256(v=sql.110).aspx ...

  3. SQL SERVER 2012 从Enterprise Evaluation Edtion 升级到 Standard Edtion SP1

    案例背景:公司从意大利购买了一套中控系统,前期我也没有参与其中(包括安装.实施都是第三方),直到最近项目负责人告诉我:前期谈判以为是数据库的License费用包含在合同中,现在经过确认SQL Serv ...

  4. 吉特仓库管理系统-.SQL Server 2012 升级企业版

    随着业务数据的不断增大,单表的数量已经上亿,查询的数据越来越慢,所以考虑到将数据库表分区,同时也将数据库升级到SQL Server 2012. 当时没有考虑更多,在服务器上安装了 SQL Server ...

  5. Sql Server 2008R2升级 Sql Server 2012 问题

    环境: Windows server 2008 r2 Standard +SqlServer2008R2  内网环境需要升级为SQL server 2012 升级安装时提示版本不支持 网上查询相关问题 ...

  6. SQL Server 2012安装图文教程

    解析SQL Server 2012安装中心 当系统打开"SQL Server安装中心",则说明我们可以开始正常的安装SQL Server 2012了. SQL Server安装中心 ...

  7. SQL Server 2012 安装图解教程

    在安装微软最新数据库SQL Server 2012之前,编者先确定一下安装环境:Windonws 7 SP1,32位操作系统.CPU是2.1GHz赛扬双核T3500,内存2.93GB 安装SQL Se ...

  8. Win7 安装SQL SERVER 2012需要SP1补丁

    在操作系统Win7上安装SQL Server 2012时,报如下错误: 也就是说SQL Server 2012如要要安装在Windows 7 上,则至少需要安装SP1补丁.否则就会弹出上面提示信息.关 ...

  9. Microsoft SQL Server 2012 数据库安装图解教程

    本文部分引用以下文章: SQL Server 2012 安装图解教程(附sql2012下载地址)_MsSql_脚本之家 http://www.jb51.net/article/36049.htm SQ ...

随机推荐

  1. MySQL入门(二)

    一 MySQL概述 MySQL是一个很受欢迎的开源数据库,当我从Oracle转来做MySQL的时候,感觉最深刻的一点就是,这家伙居然是Server和Storage分开的!而且更不能忍的是,它竟然是插件 ...

  2. MySQL-procedure(loop,repeat)

    在 MySQL-procedure(cursor,loop) 中将spam_keyword表中的文字全部分割到t表当中,且每一行的字都不重复,那t表可以用来当作一个小字典,只有1000来个字符,这次把 ...

  3. db2数组、函数

    一. 数组 在db2中,创建一个数组会在functions下生成两个对象:sys类型和用户类型的Array /*创建数组*/ ) array[]; /*删除数组*/ drop type arrName ...

  4. iNeedle日志下载功能问题

    问题: iNeedle系统本身包含日志下载功能,主要是将web服务器中的用户访问日志按照一定条件进行筛选并下载,提供管理者分析.但是这次的测试中发现iNeedle日志下载一直会卡住,web界面显示正在 ...

  5. 命令行向php传入参数的两种方法

    ##$argv or $argc  $argv 包含当运行于命令行下时传递给当前脚本的参数的数组.  $argv[0]  就是脚本文件名. $argc 包含当运行于命令行下时传递给当前脚本的参数的数目 ...

  6. SQL Learning Notes

    Sams Teach Yourself SQL in 10 Minutes

  7. 扫盲 BT Sync——不仅是同步利器,而且是【分布式】网盘

    先向大伙儿宣布个好消息-- 经过多位热心读者的大力支持,经过几天的努力,已经完成了"微软网盘"到"BitTorrent Sync"的迁移工作. 再次向这批热心读 ...

  8. switch结构的用法

    已知学生的名字和百分制分数.要求根据学生的百分制分数,分别采用"满分","优秀","良好","及格"和"不及格 ...

  9. 学习ROS的基本知识,节点、话题、服务等

    之前我在电脑上安装的ROS版本为jade版的. 可是后来发现各个教程安装的是indigo版的 于是我又去看了看ROS官网,在官网上有这样的一句话. 而且又因为indigo版的资料多一些,于是我就换了r ...

  10. 对于多个列的转行(一个值均匀分布在两个列中),对于个别字段通过取别名,join方式解决。

    例如,这个表的结构: select r.* from RPDATA2016 r WHERE r.data_bbid='HY052' 如图 对于最后两列,如果是字符类型,会存在倒数第二列,是数字类型,会 ...