示例:使用 Windows 身份验证设置数据库镜像 (Transact-SQL)

此示例说明使用 Windows 身份验证来创建带有见证服务器的数据库镜像会话所需的所有阶段。本主题中的示例使用 Transact-SQL。注意,可以不使用 Transact-SQL 步骤,而使用配置数据库镜像安全向导来设置数据库镜像。有关详细信息,请参阅管理数据库镜像 (SQL Server Management Studio)

前提条件

该示例使用了 AdventureWorks 示例数据库,在默认情况下该数据库使用简单恢复模式。若要对此数据库进行数据库镜像,必须将它更改为使用完整恢复模式。若要用 Transact-SQL 实现此目的,请使用 ALTER DATABASE 语句,如下所示:

USE master;
GO
ALTER DATABASE AdventureWorks 
SET RECOVERY FULL;
GO

有关在 SQL Server Management Studio 中更改恢复模式的信息,请参阅如何查看或更改数据库恢复模式 (SQL Server Management Studio)

示例

在此示例中,两个伙伴服务器和见证服务器分别是三台计算机系统上的默认服务器实例。这三个服务器实例运行同一个 Windows 域,但是在此示例中,见证服务器实例的用户帐户是不同的。

下表总结了此示例中使用的值。

初始镜像角色 宿主系统 域用户帐户

主体服务器

PARTNERHOST1

<Mydomain>\<dbousername>

镜像

PARTNERHOST5

<Mydomain>\<dbousername>

见证服务器

WITNESSHOST4

<Somedomain>\<witnessuser>

  1. 在主体服务器实例(PARTNERHOST1 中的默认实例)上创建端点。

    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=PARTNER)
    GO
    --Partners under same domain user; login already exists in master.
    --Create a login for the witness server instance,
    --which is running as Somedomain\witnessuser:
    USE master ;
    GO
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;
    GO
    -- Grant connect permissions on endpoint to login account of witness.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];
    GO
    
  2. 在镜像服务器实例(PARTNERHOST5 中的默认实例)上创建端点。

    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=ALL)
    GO
    --Partners under same domain user; login already exists in master.
    --Create a login for the witness server instance,
    --which is running as Somedomain\witnessuser:
    USE master ;
    GO
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;
    GO
    --Grant connect permissions on endpoint to login account of witness.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];
    GO
    
  3. 在见证服务器实例(WITNESSHOST4 中的默认实例)上创建端点。

    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=WITNESS)
    GO
    --Create a login for the partner server instances,
    --which are both running as Mydomain\dbousername:
    USE master ;
    GO
    CREATE LOGIN [Mydomain\dbousername] FROM WINDOWS ;
    GO
    --Grant connect permissions on endpoint to login account of partners.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];
    GO
    
  4. 创建镜像数据库。有关详细信息,请参阅如何为镜像准备镜像数据库 (Transact-SQL)

  5. 在 PARTNERHOST5 中的镜像服务器实例上,将 PARTNERHOST1 中的服务器实例设置为伙伴(使它成为初始的主体服务器实例)。

    ALTER DATABASE AdventureWorks 
        SET PARTNER = 
        'TCP://PARTNERHOST1.COM:7022'
    GO
    
  6. 在 PARTNERHOST1 中的主体服务器实例上,将 PARTNERHOST5 中的服务器实例设置为伙伴(使它成为初始的镜像服务器实例)。

    ALTER DATABASE AdventureWorks 
        SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'
    GO
    
  7. 在主体服务器中,设置见证服务器(位于 WITNESSHOST4 中)。

    ALTER DATABASE AdventureWorks 
        SET WITNESS = 
        'TCP://WITNESSHOST4.COM:7022'
    GO
    

请参阅

任务

如何启动配置数据库镜像安全向导 (SQL Server Management Studio)
如何将镜像数据库设置为使用 Trustworthy 属性

概念

数据库镜像传输安全性
管理数据库镜像 (SQL Server Management Studio)
当数据库在其他服务器实例上可用时管理元数据
数据库镜像端点

其他资源

ALTER DATABASE (Transact-SQL)
SQL Server 安全注意事项

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本 历史记录

2005 年 12 月 5 日

已更改的内容:
  • 使用相应的操作指南主题链接替换了过时的镜像数据库创建步骤。
  • 更新了示例服务器网络地址。