浅析SQL Server复制的向后兼容性

虽然说SQL Server 2008到目前为止已经算是新版本的数据库系统了。但是其以后还会不断的更新换代。为此在部署SQL Server 2008的时候,数据库管理员仍然需要考虑到向后兼容性的问题。为了减少以后升级的麻烦,数据库管理员有必要了解这个话题。具体来说,就是要了解SQLServer2008的数据库版本中,哪些功能可能在以后的数据库版本中会被抛弃。然后数据库管理员在部署这些功能时,要慎重。能够不用就不用,或者用其他功能来代替。免得在以后数据库升级过程中,再来进行调整。笔者现在就以数据复制功能为例,谈谈如何做好这个向后的兼容性。

一、 在SQL Server 2008中不推荐使用事务复制的订阅过期

其实这个订阅保持期就好像是一个“有效期”或者叫做“质保期”。如果数据库系统未能够在有效的“质保期”内完成同步订阅工作,则这订约作业就会停用或者过期。如假设最大的分发保持期为72小时(这是SQLServer数据库的默认设置,管理员可以根据实际情况来调整),如果订阅未能够在72小时内同步的话,而且分发数据库中还存在尚未传递到订阅服务器的更改,则订阅作业将会被分发服务器上运行的“清除分发”作业标记为停用。此时数据库管理员如果要重新启用这个订阅功能的话,那么就必须重新初始化订阅。

而在数据库中,主要是这个sp_addpublication过程来控制这个订阅周期。在这个存储过程中,有一个@retention 属性。这个属性主要用来设置订阅活动的保持期。默认情况下这个属性的值为336小时。如果订阅活动在保持期内不活动的话,则过期后系统就会将其自动删除。一般来说,这个值可以大于发布服务期使用的分发数据库的最大保持期。也就是说,他们具有一定的独立性。如果数据库管理员想让订阅永远不过期的话,则只需要将这个参数设置为0即可。不过根据微软的官方资料可以知道,这个参数的话在以后的版本中可能会被逐渐的淘汰。因为这个属性如果设置不当的话,会给合并复制造成一系列的不利影响,影响合并复制作业的稳定性。为此数据库管理员在部署复制作业时,最好不要使用这个参数,以免跟后续的数据库版本不兼容。

如果一定要使用这个参数的话,那么最好能够遵循下面的一些建议。

一是如果采用合并复制,那么合并发布的保持期最好给一个宽限期。因为可能数据库部署在不同的时区,如果没有宽限期的话,那么这些分布在不同时区中的订阅服务器,运行起来就可能会出现问题。为此笔者建议,通常情况下需要给其一个24小时的宽限期。即使现在企业用不到,但是随着后续规模的扩大,很有可能要在不同的国家设置数据库服务器。如美国的企业,可能会在国内的办事处设置一台订阅服务器,以提高办公的效率。此时就应该为其设置24小时的宽限期。

二是尽量不要将这个参数设置为0。如果把这个参数设置为0,就表示没有保持期的限制。虽然这从某个程度来讲,可以简化数据库管理员的维护工作。但是将这个参数的值设置为0,可能会产生一系列的负面效应。如此时数据库系统将无法删除元数据等等。

为此,笔者的建议时,在实现复制服务时,最好不要采用这个参数。如果一定要用的话,那么要给其设置一个合理的宽限期;并且最好不要将这个参数设置为0。虽然这不是强制性的规定,但是为了复制服务能够稳定运行,各位数据库管理员最好还是好好考虑笔者的这个建议。

二、 非SQL Server订阅服务器的处理

SQL Server数据库在横向的兼容性上表现还是不错的。其不但可以支持SQL Server订阅服务器,还能够支持非SQLServer的订阅服务器。如果企业需要采用非SQLServer的订阅服务器,那么有两个实现的渠道,分别为ODBC与OLE DB。不过由于ODBC其在性能、安全上都不如OLE DB接口,为此在后续的版本中,微软数据库可能不会再支持ODBC接口。所以在2008版本中实现订阅服务器的话,那么最好不要再使用这个ODBC接口,而改用OLE DB接口。

到目前为止,SQL Server数据库支持Oracle与IBMDB2两个产品的订阅服务期。如果要支持者两个数据库服务器的话,SQL Server现在已经提供了比较完备的OLE DB访问接口。为此数据库管理员也不用再担心接口不兼容的问题。不过采用这个非微软的订阅服务器,有比较多的限制条件。作为数据库管理员要了解这些限制条件,并且在实际工作中一丝不苟的遵守它。类似的限制条件主要有以下几个方面。

如果订阅服务器即有SQL Server定于服务器,也有Oracle订阅服务器或者其他非微软的订阅服务器,那么必须先为Oracle等非微软的订阅服务期启用发布,然后再创建SQLServer订阅服务器。数据库管理员只要用四个字就可以记住这个规则,即客人优先。另外,如果在这种混合型的订阅服务器,则必须要使用OLE DB访问接口,而不能够采用ODBC访问接口。而且运行分发代理时所使用的帐户必须对OLE DB访问接口的安装目录具有读取的权限。这也是为什么笔者强烈推荐使用OLE DB访问接口的原因。因为采用了这个接口之后,则以后如果要兼容其它订阅服务器,就是一个水到渠成的事情。不需要经过额外的调整与配置,就可以在对现有架构影响不大的情况下部署非SQL Server的订阅服务器。

另外需要注意的是,不同的数据库处理NULL值的方式不同。为此采用不同牌子的订阅服务器,可能会影响到空值、空字符串和NULL值的显示方式,而且这个显示方式又会影响在定义了唯一约束的列中插入值的行为。如在Oracle数据库中,如果在某一列中设置为了唯一行约束,那么这个列仍然可以具有多个NULL值。但是在SQL Servre数据库中则不同。只要这个列设置了唯一行约束,那么这个列就职能够有一个Null值。所以,在混合型的订阅服务器中,有时候还需要通过应用程序或者其他手段来消除这种差异。或者在数据库设计时,要有意识的避免这种情况,如禁用NULL值等等。或者可以跟Oracle或者IBM DB2的数据库管理员联系。往往这些大牌的数据库为了相互之间实现兼容,都会在数据库中预先实现了一些措施,来防止各个操作系统处理机制不同所导致的兼容问题。

三、 合并复制过程中同时更新多列

在合并复制到过程中,可能需要对目标列同时进行更新。合并复制是支持这个功能的。在合并复制执行更新时,数据库会更新一个Update语句中指定的所有列,并将没有更改的列重置为原先的值。不过合并复制更新往往涉及到比较多的记录,为此其执行速度会比较慢。为了提高这个执行的速度,在2008以前的数据库系统汇总,为此专门设置了一个fase_multicol_updateproc。如需要合并复制时,会建议数据库管理员将这个选项设置为false,以提高合并复制更新的执行效率。

不过在SQL Server 2008中,通过优化器数据库系统会自动对相关的合并复制更新语句进行优化。而且这个优化的效果比这个选贤设置为False还要明显。虽然在2008数据库中,为了向前兼容还存在这个参数,不过其存在的实际意义已经不大。为此数据库管理员在需要各并复制更新时,不用为了提高其操作性能而再单独的去设置这个参数。在以后的版本中,即使数据库管理员设置了这个参数,数据库系统也会忽略掉。

可见无论是在对数据库进行升级又或者部署最新版本的数据库时,管理员不仅需要考虑到向前兼容的问题(原有的设计要能够在新版数据库中实现),同时也要考虑到数据库系统的向后兼容(尽量避免使用过时的功能或者即将不用的参数)。毕竟企业使用数据库是一个长久的过程,如往往一用就是几十年。在这么大的事件跨度内,不知道会出现多少个数据库的版本。所以,数据库的向后兼容与数据库向前兼容一样的重要。不过相对来说,向后兼容可能实现起来相对容易一点。只要数据库管理员了解哪些参数或者功能可能在后续版本中被淘汰,就可以做好这个向后兼容性的工作。

 

【编辑推荐】

  1. 实战SQL Server 2005镜像配置全过程
  2. SQL Server使用索引实现数据访问优化
  3. 浅谈如何在SQL Server中生成脚本
  4. 详解SQL Server的版本区别及选择

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/228603.html<

(0)
管理的头像管理
上一篇2025-04-18 09:23
下一篇 2025-04-18 09:25

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注