none
没有为数据库镜像配置数据库----求救求救求救 RRS feed

  • 问题

  • ALTER DATABASE MirDB SET PARTNER = 'TCP://192.168.100.104:5022';--此时提示错误信息(没有为数据库镜像配置数据库 "MirDB "。)
    谁能给我解释一下为什么原因呢?
    --备机中执行如下语句:
    ALTER DATABASE MirDB SET PARTNER = 'TCP://192.168.100.105:5022'; --此时提示错误信息(没有为数据库镜像配置数据库 "MirDB "。)
    谁能给我解释一下为什么原因呢?

    以下我是逐步操作的,大家看看分析一下原因,谢谢--数据库MirDB
    --主机
    use master
    --alter database MirDB set recovery full

    第二步:
    BACKUP DATABASE MirDB TO DISK='C:\MirDB.BAK'
    BACKUP LOG MirDB TO DISK='C:\MirDB.LOG'
    --备机
    USE MASTER
    RESTORE DATABASE MirDB FROM DISK='C:\MirDB.BAK' WITH NORECOVERY,NOUNLOAD, REPLACE, STATS = 10    
    GO
    --此时备机处于还原状态

    1、创建证书(主备可并行执行)
    --主机执行:
    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'killkill';
    CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate' ,
    START_DATE = '01/01/2008';
    --备机执行:
    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'killkill';
    CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate',
    START_DATE = '01/01/2008';
    2、创建连接的端点(主备可并行执行)
    --主机执行:
    CREATE ENDPOINT Endpoint_Mirroring
    STATE = STARTED
    AS
    TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )
    FOR
    DATABASE_MIRRORING
    ( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );
    --备机执行
    CREATE ENDPOINT Endpoint_Mirroring
    STATE = STARTED
    AS
    TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )
    FOR
    DATABASE_MIRRORING
    ( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );
    3、备份证书以备建立互联(主备可并行执行)
    --主机执行:
    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';
    --备机执行:
    BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';
    4、互换证书
    将备份到C:\的证书进行互换,即HOST_A_cert.cer复制到备机的C:\。HOST_B_cert.cer复制到主机的C:\
    5、添加登陆名、用户(主备可并行执行)
    --主机执行:
    CREATE LOGIN HOST_B_login WITH PASSWORD = 'killkill';
    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
    CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\HOST_B_cert.cer';
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];
    --备机执行:
    CREATE LOGIN HOST_A_login WITH PASSWORD = 'killkill';
    CREATE USER HOST_A_user FOR LOGIN HOST_A_login;
    CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'C:\HOST_A_cert.cer';
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];
    三、建立镜像关系
    在主数据库中执行如下语句:
    USE master;
    select sid,name from syslogins;
    在备数据库中执行如下语句:
    SE master;
    exec sp_addlogin
    @loginame = 'us_mir',
    @passwd = 'us_mir',
    @sid = 0x074477739DCA0E499C29394FFFC4ADE4;
    3、 建立镜像
    --主机执行:
    ALTER DATABASE MirDB SET PARTNER = 'TCP://192.168.100.104:5022';--此时提示错误信息(没有为数据库镜像配置数据库 "MirDB "。)
    谁能给我解释一下为什么原因呢?
    --备机中执行如下语句:
    ALTER DATABASE MirDB SET PARTNER = 'TCP://192.168.100.105:5022'; --此时提示错误信息(没有为数据库镜像配置数据库 "MirDB "。)
    谁能给我解释一下为什么原因呢?

     

     

     


    星光总能为我指引方向
    2011年7月25日 7:55

全部回复

  • 这是主体服务器配置

    --- 主机

    以太网适配器 本地连接:
    NULL
       连接特定的 DNS 后缀 . . . . . . . :
       本地链接 IPv6 地址. . . . . . . . : fe80::41d8:5744:d767:6094%10
       IPv4 地址 . . . . . . . . . . . . : 192.168.100.105
       子网掩码  . . . . . . . . . . . . : 255.255.255.0
       默认网关. . . . . . . . . . . . . : 192.168.100.90
    NULL
    隧道适配器 本地连接*:
    NULL
       媒体状态  . . . . . . . . . . . . : 媒体已断开
       连接特定的 DNS 后缀 . . . . . . . :
    NULL
    隧道适配器 本地连接* 8:
    NULL
       媒体状态  . . . . . . . . . . . . : 媒体已断开
       连接特定的 DNS 后缀 . . . . . . . :
    select @@servername:test1

    --备机:

    以太网适配器 本地连接:
    NULL
       连接特定的 DNS 后缀 . . . . . . . :
       本地链接 IPv6 地址. . . . . . . . : fe80::ec9d:c5:5034:6031%11
       IPv4 地址 . . . . . . . . . . . . : 192.168.100.104
       子网掩码  . . . . . . . . . . . . : 255.255.255.0
       默认网关. . . . . . . . . . . . . : 192.168.100.90
    NULL
    隧道适配器 isatap.{F941FA76-BC79-4C2F-B8B2-E592F1E6E60D}:
    NULL
       媒体状态  . . . . . . . . . . . . : 媒体已断开
       连接特定的 DNS 后缀 . . . . . . . :
    NULL
    隧道适配器 Teredo Tunneling Pseudo-Interface:
    NULL
       媒体状态  . . . . . . . . . . . . : 媒体已断开
       连接特定的 DNS 后缀 . . . . . . . :
    select @@servername:test2


    星光总能为我指引方向
    2011年7月25日 8:17
  • 如果是在同一个域中 为什么要用证书验证呢?

    那样好麻烦的。


    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2011年7月25日 8:23
  • 是的,难道我不用证书就OK码,即使在同一个域中用证书,就会报这个错误吗? 这个对我很关键,谢谢能指导一下


    星光总能为我指引方向
    2011年7月25日 8:36
  • 我以前配置过几次镜像,因为每次都在在同一个域中,所以都没使用证书,都无报错。 

    第一步:

    当然是备份以及恢复到镜像实例上,注意数据库选择Full模式。注意,如果库很大,备份和传输都会花较久的时间,后面用日志备份,使得配置镜像之前,镜像数据库和主数据库不要相差太久的时间

    第二步:

    创建端点。

    第三步:

    配置安全性,即对用户授予端点的访问权限(我当时再在主实例和镜像实例上都是用同一个域账号启动的)

    第四步:启用镜像:

    set partner部分了。注意先在镜像实例上运行脚本。

    第五步:

    配置事务安全性,也即配置镜像运行方式:高可用模式,高安全模式,高性能模式。

     

     


    2011年7月25日 8:44
  • 能把你之前做过的一个景象主/备实例代码 在同一个域中的 实例,能给我 一份参考代码马


    星光总能为我指引方向
    2011年7月25日 8:57
  • 能把你之前做过的一个景象主/备实例代码 在同一个域中的 实例,能给我 一份参考代码马


    星光总能为我指引方向

    那是在前一家公司做的。

    我现在大概将代码给你写出来吧。

    对了 你是用哪种模式,也即是否有见证服务器?


    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2011年7月25日 8:59
  • 没有见证服务器,只有两个 主机和备机 ,辛苦了


    星光总能为我指引方向
    2011年7月25日 9:03
  • Step1:

    alter database dbname set recovery full;

    Step2:

    backup database dbname to disk='c:\c.BAK'

    backup log dbname to disk='c:\d.trn'

    Step3:

    将备份文件传送到镜像服务器,并恢复,注意使用norecovery选项,并数据库名称和主数据库一致

    Step4:创建端点:主库和镜像数据库都要创建,这个时候是没有顺序的

    CREATE ENDPOINT endpoint_mirroring
        STATE = STARTED
        AS TCP ( LISTENER_PORT = 5022 )
        FOR DATABASE_MIRRORING (
           AUTHENTICATION = WINDOWS KERBEROS,
           ENCRYPTION = SUPPORTED,
           ROLE=ALL);

    Step5:假如我两边都是使用的sss\bbb这个账号来启动sqlserver的,首先在两个实例上创建该windows账号。之后再赋权

    GRANT CONNECT ON ENDPOINT::endpoint_mirroring
    TO sss\bbb

    两个实例都要执行

    Step6:

    配置事务安全性。

    首先在镜像数据库上运行:

    USE MASTER
    GO
    ALTER DATABASE dbname
    SET PARTNER = 'TCP://pincipleserver:5022'

    其次:在主库上运行

    USE MASTER
    GO
    ALTER DATABASE AdventureWorks
    SET PARTNER = 'TCP://Mirrorserver:5022'

    之后可以设置safety 了(这要看你自己的需求了)

    ALTER DATABASE <dbname> SET PARTNER SAFETY FULL

    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2011年7月25日 9:11
  • 我不知道我家里的电脑上是否有当时做镜像的文档。有的话,你给我的邮箱 我传给你。
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2011年7月25日 9:13
  • If you don't know how to set mirroring in t-sql, you can do it in ssms with wizard then script it out.
    2011年7月25日 16:06
  • 谢谢你,这是我的Email: Cloudemaile@sina.com


    星光总能为我指引方向
    2011年7月26日 1:02
  • 按照上面例子做到

    首先在镜像数据库上运行:

       USE MASTER
    GO
    ALTER DATABASE Mirring_test
    SET PARTNER = 'TCP://192.168.100.194:5022' --成功

    其次:在主库上运行

    USE MASTER
    GO
    ALTER DATABASE Mirring_test
    SET PARTNER = 'TCP://192.168.100.195:5022'

    消息 1418,级别 16,状态 1,第 1 行
    服务器网络地址 "TCP://192.168.100.195:5022" 无法访问或不存在。请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。

    主服务器检测:

    name                      endpoint_id principal_id protocol protocol_desc   type type_desc             state state_desc     is_admin_endpoint role role_desc  is_encryption_enabled connection_auth connection_auth_desc   certificate_id encryption_algorithm encryption_algorithm_desc
    -------------------
    endpoint_mirroring        65542         267          2        TCP           4    DATABASE_MIRRORING     0     STARTED       0                 3    ALL         1                     2               KERBEROS               0              3                    NONE, RC4

    活动连接

     协议  本地地址          外部地址        状态
     TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
     RpcSs
    [svchost.exe]
     TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
    无法获取所有权信息
     TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING
    [sqlservr.exe]
     TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING
     TermService
    [svchost.exe]
     TCP    0.0.0.0:5022           0.0.0.0:0              LISTENING
    [sqlservr.exe]
     TCP    0.0.0.0:9089           0.0.0.0:0              LISTENING
    [vmware-converter-a.exe]
     TCP    0.0.0.0:47001          0.0.0.0:0              LISTENING
    无法获取所有权信息
    大家看看从主服务器能得到什么信息引起错误


    星光总能为我指引方向
    2011年7月26日 2:20
  • Can you set mirror with wizard in ssms?
    2011年7月26日 2:58
  • 你可以telnet对应的端口吗?
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2011年7月26日 4:52
  • 主服务器可以的

    PING WYLTEST2.SQUARE.LIFE

    正在 Ping WYLTEST2.square.life [192.168.100.195] 具有 32 字节的数据:
    来自 192.168.100.195 的回复: 字节=32 时间=1ms TTL=128
    来自 192.168.100.195 的回复: 字节=32 时间<1ms TTL=128
    来自 192.168.100.195 的回复: 字节=32 时间<1ms TTL=128
    来自 192.168.100.195 的回复: 字节=32 时间<1ms TTL=128

    镜像机器

    正在 Ping wyltest1.square.life [192.168.100.194] 具有 32 字节的数据:
    来自 192.168.100.194 的回复: 字节=32 时间=1ms TTL=128
    来自 192.168.100.194 的回复: 字节=32 时间<1ms TTL=128
    来自 192.168.100.194 的回复: 字节=32 时间<1ms TTL=128
    来自 192.168.100.194 的回复: 字节=32 时间<1ms TTL=128

    都是可以的

     


    星光总能为我指引方向
    2011年7月26日 5:29
  • 主服务器可以的

    PING WYLTEST2.SQUARE.LIFE

    正在 Ping WYLTEST2.square.life [192.168.100.195] 具有 32 字节的数据:
    来自 192.168.100.195 的回复: 字节=32 时间=1ms TTL=128
    来自 192.168.100.195 的回复: 字节=32 时间<1ms TTL=128
    来自 192.168.100.195 的回复: 字节=32 时间<1ms TTL=128
    来自 192.168.100.195 的回复: 字节=32 时间<1ms TTL=128

    镜像机器

    正在 Ping wyltest1.square.life [192.168.100.194] 具有 32 字节的数据:
    来自 192.168.100.194 的回复: 字节=32 时间=1ms TTL=128
    来自 192.168.100.194 的回复: 字节=32 时间<1ms TTL=128
    来自 192.168.100.194 的回复: 字节=32 时间<1ms TTL=128
    来自 192.168.100.194 的回复: 字节=32 时间<1ms TTL=128

    都是可以的

     


    星光总能为我指引方向

     

    不只是要能ping通,还要能telnet到对应的端口。

    比如在主服务器上:

    telnet 镜像服务器的IP地址 5022

    也在镜像服务器上这样telnet下。

    你做镜像肯定要保证两台机器能相互telnet这个端口。

    至于文档,我晚上回家之后法给你。



    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2011年7月26日 7:05
  • 哦,好的呀,但是我的操作系统是 2008的,这个telnet 没有这个命令 ,cmd->telent 192.168.100.194:5022

    我晚上等你,你有联系方式给我一个,谢谢。


    星光总能为我指引方向
    2011年7月26日 7:44
  • 我要详细描述一下过程: 首先我是用域用户登陆到计算机,之后再主机和镜像服务器: SSMS 服务设置登陆模式: DOMAN\MIR 密码:JUHOSE

    之后用域用户登陆 SSMS 之后分别在 主服务器,和镜像服务器,建立一个用户 US_MIR 密码 YOUER@1JLS  之后按照 上面代码构建镜像,

     


    星光总能为我指引方向
    2011年7月26日 12:31
  • 谢谢你,这是我的Email: Cloudemaile@sina.com


    星光总能为我指引方向

    已经传给你了.
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2011年7月26日 12:44
  • LZ你是按照这篇博文来配置的吗?结果怎么样?我现在也配置不了镜像,求解决方法

    http://www.cnblogs.com/killkill/archive/2008/05/23/1205792.html


    给我写信: QQ我:点击这里给我发消息


    2012年9月25日 15:05