none
SQL Server 2012 AlwaysOn+包含数据库 的 BUG(求确认) RRS feed

  • 问题

  • 环境:

    Server A(主体)

    Server B(副本,可读)

    Windwos 2008 R2 SP1 X64

    SQL Server 2012 

    AlwaysON + 包含数据库

    场景:

    1.SQL Server 2012 搭建AlwsysOn后,ServerB通过SSMS查看可用组DB的table文件夹下,刷新本库下的table列表,一切OK,显示正常。

    2.如果SQL Server 2012 搭建AlwsysOn后,再指定包含数据库,ServerB通过SSMS查看可用组DB的table文件夹下会报:

    消息 451,级别 16,状态 1,第 1 行
    无法解决 add 运算符(在 SELECT 语句列 1 中)中“Chinese_PRC_CI_AS”和“Latin1_General_100_CI_AS_KS_WS_SC”之间的排序规则冲突。

    在2的场景中,执行select tbl.name+SCHEMA_NAME(tbl.schema_id) from sys.tables as tbl 依然会报以上错误,恰恰在SQL SERVER 2012 Alwsays+包含数据库的情况下,节点SERVERB刷新table文件夹会发起类似的请求。

    3.场景2中的操作在SERVER A中完全正常,SERVER A为SQL SERVER 2012 +包含数据库,单独运行TSQL也没有问题,只有在ServerB运行会出错,取消掉包含数据库,ServerB运行语句或者刷新文件夹恢复正常。

    已经反复确认,SERVER A,B的服务器排序规则和DB排序规则全部为Chinese_PRC_CI_AS

    个人怀疑bug,也许个人经验不足无法准确定位问题,求确认~



    • 已编辑 Paddy_BJ 2012年12月19日 13:48
    2012年12月19日 13:48

全部回复

  • You may install sql2012 sp1 then check again.
    2012年12月19日 14:23
  • Hi paddy_BJ,

    你有按照@rmiao的方法安装了sql2012 SP1吗, 问题得到解决了吗?

    如果你觉得是个bug的话,你可以把你的问题提交到:http://connect.microsoft.com/ 。

    Best Regards,


    Amy Peng
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年12月25日 10:04
    版主
  • 主从全部打完SP1后此BUG依然会出现,不过有所不同:

    主机A是alwayson+包含数据库,B 为副本数据库服务器

    1. B打开副本数据库->表,提示排序冲突

    2. A将包含数据库选项设置成None,返回B刷新文件夹,正常,然后再设置回包含数据库

    3. B再打开数据库->表,不再提示错误(重要:步骤2中,如果缺少设置成NONE,B刷新文件夹步骤,而直接设置none又马上设置会包含数据库,依然会提示排序冲突)

    4. B继续打开数据库->存储过程,提示排序冲突

    5. 重复步骤2的操作后,B再打开数据库->可编译性->存储过程,打开成功,不提示错误

    6. B打开数据库->可编译性->函数->表值函数,提示排序冲突,再重复步骤2后,恢复正常



    • 已编辑 Paddy_BJ 2012年12月28日 5:45
    2012年12月28日 5:40
  • 问题没有解决,BUG依旧

    2012年12月28日 5:40
  • 环境:

    Server A(主体)

    Server B(副本,可读)

    Windwos 2008 R2 SP1 X64

    SQL Server 2012 RTM

    AlwaysON + 包含数据库

    场景:

    1.SQL Server 2012 搭建AlwaysOn后,ServerB通过SSMS查看可用组DB的table文件夹下,刷新本库下的table列表,一切OK,显示正常。

    2.如果SQL Server 2012 搭建AlwaysOn后,再指定包含数据库,ServerB通过SSMS查看可用组DB的table文件夹下会报:

    消息 451,级别 16,状态 1,第 1 行
    无法解决 add 运算符(在 SELECT 语句列 1 中)中“Chinese_PRC_CI_AS”和“Latin1_General_100_CI_AS_KS_WS_SC”之间的排序规则冲突。

    在2的场景中,执行select tbl.name+SCHEMA_NAME(tbl.schema_id) from sys.tables as tbl 依然会报以上错误,恰恰在SQL SERVER 2012 Alwsays+包含数据库的情况下,节点SERVERB刷新table文件夹会发起类似的请求。

    3.场景2中的操作在SERVER A中完全正常,SERVER A为SQL SERVER 2012 +包含数据库,单独运行TSQL也没有问题,只有在ServerB运行会出错,取消掉包含数据库,ServerB运行语句或者刷新文件夹恢复正常。

    已经反复确认,SERVER A,B的服务器排序规则和DB排序规则全部为Chinese_PRC_CI_AS

    SQL Server SP1下,问题依旧:

    主机A是alwayson+包含数据库,B 为副本数据库服务器

    1. B打开副本数据库->表,提示排序冲突

    2. A将包含数据库选项设置成None,返回B刷新文件夹,正常,然后再设置回包含数据库

    3. B再打开数据库->表,不再提示错误(重要:步骤2中,如果缺少设置成NONE,B刷新文件夹步骤,而直接设置none又马上设置会包含数据库,依然会提示排序冲突)

    4. B继续打开数据库->存储过程,提示排序冲突

    5. 重复步骤2的操作后,B再打开数据库->可编译性->存储过程,打开成功,不提示错误

    6. B打开数据库->可编译性->函数->表值函数,提示排序冲突,再重复步骤2后,恢复正常

    个人怀疑BUG,请各位帮忙解答下,谢谢

    2012年12月28日 6:00
  • I am not sure if it is a good idea to post chinese letters in an english discussion board...
    2012年12月28日 6:06
  • Make sure that collation on both Server A and Server B are same, one of the prerequisite for implementing Alwayson is to have same collation settings across the servers, please review this article for more details: http://technet.microsoft.com/en-us/library/ff878487.aspx

    Thanks, Sohail ~Please mark answered if your question is completely answered; vote it as helpful to help others find a solution quicker. This posting is provided AS IS with no warranties.

    2012年12月28日 15:02
  • 不知道LZ解决了没有,我也遇到同样的问题

    2013年11月24日 14:15
  • 这个应该是BUG 吧

    解决方案,前面楼主有提到的,在 NONE 和 部分包含之间多切换几次

    另外,我测试了一下,直接做故障转移,转移到另一个副本,这个故障也没有了(有多个副本,也只需要转移到其中一个,不用每个副本都转移一次)

    2013年11月25日 6:43
  • 我的环境不是alwayson环境,只是单机环境

    后来我是这样解决的:

    ALTER DATABASE [pratice] COLLATE Latin1_General_100_CI_AS_KS_WS_SC
    GO



    将数据库原来的排序规则改为 Latin1_General_100_CI_AS_KS_WS_SC

    然后检查每个对象引用的排序规则,然后逐个逐个改

    例如,修改一张表某个字段的排序规则

    ALTER TABLE tb ALTER COLUMN col2 VARCHAR ( 10) COLLATE Latin1_General_100_CI_AS_KS_WS_SC
    GO


    2013年11月25日 7:03