/********************************************************************************************** -- Title : ÀÎÁõ¼­¸¦ ÀÌ¿ëÇÑ µ¥ÀÌÅͺ£À̽º ¹Ì·¯¸µ ±¸Çö -- Reference : feelanet.com -- Key word : ÀÎÁõ¼­ certificate mirroring ¹Ì·¯¸µ **********************************************************************************************/ /* ¹Ì·¯¸µ ±¸¼º ½Ã µµ¸ÞÀÎ °èÁ¤À» »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì ÀÎÁõ¼­¸¦ »ç¿ëÇÑ´Ù. */ /* -- ÁÖ¼­¹ö¿¡¼­(mapbakdba:5022) */ create database MirrorTest; go use MirrorTest; go create table t1(ids int primary key identity, strA varchar(10)); go insert into t1 values('a'); insert into t1 values('b'); insert into t1 values('c'); go -- backup backup database MirrorTest to disk = 'd:\databases\MirrorTest.bak' with init; go backup log MirrorTest to disk = 'd:\databases\MirrorTest.log' with init; go --ÁÖ¼­¹ö¿¡¼­ ÀÎÁõ¼­·Î ¹Ì·¯¸µ endpoint »ý¼º --ÁÖ¼­¹ö¿¡¼­ master key »ý¼º use master; go create master key encryption by password = 'principal12#$'; go --ÀÎÁõ¼­ »ý¼º create certificate principal_cert with subject = 'principal certificate' , start_date = '03/13/2008' , expiry_date = '03/13/2009'; go --endpoint »ý¼º create endpoint endpoint_mirroring state = started as tcp ( listener_port=5022 , listener_ip = all ) for database_mirroring ( authentication = certificate principal_cert , role = all ); go --ÀÎÁõ¼­ ¹é¾÷ ÈÄ ¹Ì·¯ ¼­¹ö¿Í witness ¼­¹ö·Î º¹»ç backup certificate principal_cert to file = 'd:\principal_cert.cer'; go /* -- ¹Ì·¯¼­¹ö¿¡¼­(mapbakdba\s1:5023) */ --¹Ì·¯¼­¹ö¿¡¼­ ÀÎÁõ¼­·Î ¹Ì·¯¸µ endpoint »ý¼º --¹Ì·¯¼­¹ö¿¡¼­ master key »ý¼º use master; go create master key encryption by password = 'mirror12#$'; go --ÀÎÁõ¼­ »ý¼º create certificate mirror_cert with subject = 'principal certificate' , start_date = '03/13/2008' , expiry_date = '03/13/2009'; go --endpoint »ý¼º create endpoint endpoint_mirroring state = started as tcp ( listener_port=5023 , listener_ip = all ) for database_mirroring ( authentication = certificate mirror_cert , role = all ); go --ÀÎÁõ¼­ ¹é¾÷ ÈÄ ÁÖ ¼­¹ö¿Í witness ¼­¹ö·Î º¹»ç backup certificate mirror_cert to file = 'd:\mirror_cert.cer'; go /* -- °¨½Ã¼­¹ö¿¡¼­(mapbakdba\s2:5024) */ --witness¼­¹ö¿¡¼­ ÀÎÁõ¼­·Î ¹Ì·¯¸µ endpoint »ý¼º --witness¼­¹ö¿¡¼­ master key »ý¼º use master; go create master key encryption by password = 'witness12#$'; go --ÀÎÁõ¼­ »ý¼º create certificate witness_cert with subject = 'witness certificate' , start_date = '03/13/2008' , expiry_date = '03/13/2009'; go --endpoint »ý¼º create endpoint endpoint_mirroring state = started as tcp ( listener_port=5024 , listener_ip = all ) for database_mirroring ( authentication = certificate witness_cert , role = witness ); go --ÀÎÁõ¼­ ¹é¾÷ ÈÄ ÁÖ ¼­¹ö¿Í ¹Ì·¯ ¼­¹ö·Î º¹»ç backup certificate witness_cert to file = 'd:\witness_cert.cer'; go /* -- ÁÖ¼­¹ö¿¡¼­(mapbakdba:5022) */ --¹Ì·¯¼­¹ö¿¡ ´ëÇÑ °èÁ¤ »ý¼º use master; go create login mirror_login with password = 'mirrorlogin12#$'; go --¹Ì·¯¼­¹ö¿¡´ëÇÑ »ç¿ëÀÚ »ý¼º create user mirror_user for login mirror_login; go --ÀÎÁõ¼­¿Í »ç¿ëÀÚ ¿¬°á create certificate mirror_cert authorization mirror_user from file = 'd:\mirror_cert.cer' go --ÇØ´ç ¿ø°Ý ¹Ì·¯¸µ ³¡Á¡¿¡ ´ëÇÑ ·Î±×Àο¡ connect ±ÇÇÑÀ» ºÎ¿© grant connect on endpoint::endpoint_mirroring to [mirror_login]; go --witness¼­¹ö¿¡ ´ëÇÑ °èÁ¤ »ý¼º use master; go create login witness_login with password = 'witnesslogin12#$'; go --witness¼­¹ö¿¡´ëÇÑ »ç¿ëÀÚ »ý¼º create user witness_user for login witness_login; go --ÀÎÁõ¼­¿Í »ç¿ëÀÚ ¿¬°á create certificate witness_cert authorization witness_user from file = 'd:\witness_cert.cer' go --ÇØ´ç ¿ø°Ý ¹Ì·¯¸µ ³¡Á¡¿¡ ´ëÇÑ ·Î±×Àο¡ connect ±ÇÇÑÀ» ºÎ¿© grant connect on endpoint::endpoint_mirroring to [witness_login]; go /* -- ¹Ì·¯¼­¹ö¿¡¼­(mapbakdba\s1:5023) */ --ÁÖ¼­¹ö¿¡ ´ëÇÑ °èÁ¤ »ý¼º use master; go drop login principal_login with password = 'principallogin12#$'; go --ÁÖ¼­¹ö¿¡´ëÇÑ »ç¿ëÀÚ »ý¼º drop user principal_user for login principal_login; go --ÀÎÁõ¼­¿Í »ç¿ëÀÚ ¿¬°á drop certificate principal_cert authorization principal_user from file = 'd:\principal_cert.cer' go --ÇØ´ç ¿ø°Ý ¹Ì·¯¸µ ³¡Á¡¿¡ ´ëÇÑ ·Î±×Àο¡ connect ±ÇÇÑÀ» ºÎ¿©ÇÕ´Ï´Ù. grant connect on endpoint::endpoint_mirroring to [principal_login]; go --witness¼­¹ö¿¡ ´ëÇÑ °èÁ¤ »ý¼º use master; go drop login witness_login with password = 'witnesslogin12#$'; go --witness¼­¹ö¿¡´ëÇÑ »ç¿ëÀÚ »ý¼º drop user witness_user for login witness_login; go --ÀÎÁõ¼­¿Í »ç¿ëÀÚ ¿¬°á drop certificate witness_cert authorization witness_user from file = 'd:\witness_cert.cer' go --ÇØ´ç ¿ø°Ý ¹Ì·¯¸µ ³¡Á¡¿¡ ´ëÇÑ ·Î±×Àο¡ connect ±ÇÇÑÀ» ºÎ¿© grant connect on endpoint::endpoint_mirroring to [witness_login]; go /* -- °¨½Ã¼­¹ö¿¡¼­(mapbakdba\s2:5024) */ --ÁÖ¼­¹ö¿¡ ´ëÇÑ °èÁ¤ »ý¼º use master; go drop login principal_login with password = 'principallogin12#$'; go --ÁÖ¼­¹ö¿¡´ëÇÑ »ç¿ëÀÚ »ý¼º drop user principal_user for login principal_login; go --ÀÎÁõ¼­¿Í »ç¿ëÀÚ ¿¬°á drop certificate principal_cert authorization principal_user from file = 'd:\principal_cert.cer' go --ÇØ´ç ¿ø°Ý ¹Ì·¯¸µ ³¡Á¡¿¡ ´ëÇÑ ·Î±×Àο¡ connect ±ÇÇÑÀ» ºÎ¿©ÇÕ´Ï´Ù. grant connect on endpoint::endpoint_mirroring to [principal_login]; go --¹Ì·¯¼­¹ö¿¡ ´ëÇÑ °èÁ¤ »ý¼º use master; go drop login mirror_login with password = 'mirrorlogin12#$'; go --¹Ì·¯¼­¹ö¿¡´ëÇÑ »ç¿ëÀÚ »ý¼º drop user mirror_user for login mirror_login; go --ÀÎÁõ¼­¿Í »ç¿ëÀÚ ¿¬°á drop certificate mirror_cert authorization mirror_user from file = 'd:\mirror_cert.cer' go --ÇØ´ç ¿ø°Ý ¹Ì·¯¸µ ³¡Á¡¿¡ ´ëÇÑ ·Î±×Àο¡ connect ±ÇÇÑÀ» ºÎ¿© grant connect on endpoint::endpoint_mirroring to [mirror_login]; go /* -- ¹Ì·¯¼­¹ö¿¡¼­(mapbakdba\s1:5023) */ -- restore restore filelistonly from disk = 'd:\databases\mirrortest.bak'; go restore database mirrortest from disk = 'd:\databases\mirrortest.bak' with move 'mirrortest' to 'd:\databases\mirrortest.mdf' , move 'mirrortest_log' to 'd:\databases\mirrortest_log.ldf' , norecovery; go restore log mirrortest from disk = 'd:\databases\mirrortest.log' with norecovery; go --mirroring start at mirror alter database mirrortest set partner = 'tcp://mapbakdba:5022' go /* -- ÁÖ¼­¹ö¿¡¼­(mapbakdba:5022) */ --mirroring start at principal alter database mirrortest set partner = 'tcp://mapbakdba:5023' go --witness start at principal alter database mirrortest set witness = 'tcp://mapbakdba:5024' go