none
关于SqlServer 2005 mirror的一个问题 RRS feed

  • 问题

  • 使用2台机器做mirror,A作为primary DB,B作为mirror的DB。A上有一个user在用户数据库中,但是在B上就只有一个状态为restoring的数据库,

    但是没有login对应到该user。

    如果A down掉,可以使用 alter database dbname set partner force_service_allow_data_loss
    将B启动作为primary DB使用。
    这个时候要怎么使得存在一个login对应到该user?

    是否需要另外建立一个login对应到该user,而且后续如果A启动后,使用

    alter database dbname set partner resume

    A上的数据库是否可以转换成Mirror的状态?


    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2010年3月3日 6:45

答案

  • Copy that login along with sid to server b using ssis copy login task, then you can switch db back forth.
    • 已标记为答案 Wison-Ho 2010年3月3日 21:06
    2010年3月3日 16:18
  • Copy that login along with sid to server b using ssis copy login task, then you can switch db back forth.


    這是昨天晚上睡覺前想到的問題,今天來測試發現:

    配置好Mirror后,直接在A上執行


    alter
    database dbname set partner failover

    這樣B上的Mirror數據庫就變成primary數據庫了,然後在B上創建一個login,和A上的Login名稱一樣。但是不能將這個Login映射到Primary數據庫中。

    然後在Primary數據庫中執行

    sp_change_users_login 'Update_one','username','loginname'

    可以將該user和Login對應。

    後面再alter database dbname set partner failover 也是可以實現的。


    但是還是多謝rmiao。。


    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    • 已标记为答案 Wison-Ho 2010年3月3日 21:06
    2010年3月3日 21:06
  • Open SSBIDS, cretae ssis project, choose copy sql login task from tools, select source and target server then specify sql login to copy, execute the package at the end. Or follow steps in this link: http://support.microsoft.com/kb/918992/
    • 已标记为答案 Wison-Ho 2010年3月6日 4:14
    2010年3月6日 2:57

全部回复

  • Copy that login along with sid to server b using ssis copy login task, then you can switch db back forth.
    • 已标记为答案 Wison-Ho 2010年3月3日 21:06
    2010年3月3日 16:18
  • Copy that login along with sid to server b using ssis copy login task, then you can switch db back forth.


    這是昨天晚上睡覺前想到的問題,今天來測試發現:

    配置好Mirror后,直接在A上執行


    alter
    database dbname set partner failover

    這樣B上的Mirror數據庫就變成primary數據庫了,然後在B上創建一個login,和A上的Login名稱一樣。但是不能將這個Login映射到Primary數據庫中。

    然後在Primary數據庫中執行

    sp_change_users_login 'Update_one','username','loginname'

    可以將該user和Login對應。

    後面再alter database dbname set partner failover 也是可以實現的。


    但是還是多謝rmiao。。


    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    • 已标记为答案 Wison-Ho 2010年3月3日 21:06
    2010年3月3日 21:06
  • You don't have to run sp_change_users_login every time swtiching mirrior if sql login has same sid on both server.
    2010年3月4日 2:20
  • You don't have to run sp_change_users_login every time swtiching mirrior if sql login has same sid on both server.

    可惜SSIS包我不会弄。。。

    还好,只是使用这个存储过程在第一次配置镜像后,在手动failover后,在原mirror数据库中执行后,login和user就对应起来了。后面不管怎么切换,都不会出问题了。
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2010年3月5日 6:51
  • 假如在原始的Primary DB A上存在一個Login為test,他可以訪問Primary DB,我手動故障轉移后,到現在的Primary DB B 上創建一個test帳號,并使用sp_change_users_login將該Login帳號和數據庫中的user對應起來。

    但是當我再次手動故障轉移到A后,test帳號不能訪問到數據庫。

    請問應該怎麼處理?


    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2010年3月6日 2:41
  • Open SSBIDS, cretae ssis project, choose copy sql login task from tools, select source and target server then specify sql login to copy, execute the package at the end. Or follow steps in this link: http://support.microsoft.com/kb/918992/
    • 已标记为答案 Wison-Ho 2010年3月6日 4:14
    2010年3月6日 2:57
  • You don't have to run sp_change_users_login every time swtiching mirrior if sql login has same sid on both server.

    rmiao.

    你好,請問怎麼樣設置這個SSIS包?

    多謝
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2010年3月6日 2:58
  • Open SSBIDS, cretae ssis project, choose copy sql login task from tools, select source and target server then specify sql login to copy, execute the package at the end. Or follow steps in this link: http://support.microsoft.com/kb/918992/

    多謝rmiao。

    哎,以前在SQLServer2000中有使用過這個存儲過程,現在2000的沒怎麼管理了,把這個東西忘記了。

    再次感謝
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2010年3月6日 4:14
  • Told you (-:
    2010年3月7日 1:48