【问题标题】:Creating Users on secondary server in log shipping在日志传送的辅助服务器上创建用户
【发布时间】:2014-03-20 21:08:38
【问题描述】:

我有一个生产服务器说ServerA 我已经设置日志传送到ServerB,它处于只读模式。此日志传送的目的是降低生产服务器上一些昂贵查询(痛苦报告)的负载。

现在,如果我必须使用我们的域帐户创建一些登录名。我不能这样做,因为辅助数据库位于standby mode

我认为如果我在主服务器上创建这些登录名,它将被复制到辅助服务器,然后日志会在那里恢复,但事实并非如此。

我在网上做了很多研究,找到了解决这个问题的方法。我为此找到了以下资源。我尝试了本文中建议的所有方法,但似乎都不起作用。

1) Log Shipping in SQL Server 2008 R2 for set BI on replicated database

2) How to transfer logins and passwords between instances of SQL Server

3)Orphaned Users with Database Mirroring and Log Shipping

有人遇到过同样的问题吗?你做了什么?有没有办法解决这个问题?任何建议请指点。

【问题讨论】:

  • 这是一个有趣的问题,我收藏了它以便稍后赶上它,但我也将它标记为转移到 dba.stackexchange,因为它可能会得到更好的关注那边的专家。
  • @JonEgerton 找到了解决方案看看here

标签: sql-server sql-server-2008-r2 log-shipping


【解决方案1】:

阿里,

我当然很狡猾……

查看这些文章。

http://technet.microsoft.com/en-us/magazine/2006.05.sqlqa.aspx http://blogs.msdn.com/b/reedme/archive/2009/04/24/log-shipping-database-snapshots-bummer-dude.aspx

数据库镜像是更好的解决方案,因为您可以创建快照并报告它。

但是,镜像和日志传送都使数据库处于只读状态。因此,您无法更改孤立用户。

最好的方法是确保您在两台服务器上的登录名匹配。因此,不会出现孤儿。

在您的情况下,您可能必须删除日志传送,在 DR 服务器上创建登录名,删除数据库,使用备份重新设置 DR 服务器并重新启动传送。

在这方面,我不是凭经验说的,因为我一直使用 SAN 集群。 请在较低的环境中对此进行测试以解决任何问题。

我即将进行的项目将使用 Always On(1 个主节点,1 个辅助节点)= 同步镜像或异步日志传送。但是 Always On 允许只读辅助节点,这很好。

请写回你是怎么做出来的。我很好奇。

照顾好我的朋友。

J

【讨论】:

  • Cheers Crafty 感谢您的帮助和有用的链接。我在 dba.exchange See this answer 上找到了解决问题的解决方案。在我遇到这个问题之前,我什至都不知道 SID 是什么,哈哈。
  • 我知道小岛屿发展中国家。我想知道 EXEC sp_change_users_login 'Auto_Fix', 'user' 是否会成功?我猜你可以在待机模式下读取数据库,这是我没有做过的。学到了新东西!
  • 我诊断的是,当我在主服务器上创建登录时。登录在服务器和数据库级别上分配了一个完全相同的 SID。当日志发送到辅助服务器时,如果我在辅助服务器上创建服务器级别的登录名,则此 SID 现在也会在数据库级别发送,它会为其分配一个新的 SID,该 SID 与从主服务器发送的 SID 不同。跨度>
  • 所以除非我在辅助服务器上使用 WITH SID 选项在主服务器中使用 SID 创建登录,否则由于服务器和数据库级别的 SID 冲突,登录将没有数据库级别的权限。 SID 在服务器和数据库级别必须相同才能使其工作。这对我来说是一个非常有教育意义的活动:)
猜你喜欢
  • 2012-08-23
  • 2020-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多