개인 블러그에 올리고.. 여기도 올리고 이건 아마도 XBOX의 압박인가?
하여간.. 성공했다. 아자 아자..
어찌되었든 성공을 해야되겠다는 그런생각인지는 모르겠지만
첫번째 실패이후에 두번째로 해봤다.
안된다. 충돌이 여전하다.
결국 선택한건 공부(?)다 일단 기존의 10차 후기도 읽어보고 애저 동영상도 보고
그냥 가상피시도 만들어 보고, TFS서버도 해보고 온갖걸 다 해봤다.(공짜가 어디냐)
그러다 보니 몇가지 개념을 깨닫게 되는게 있었다.
결국은..
충돌을 피해서 전체 설정을 할수 있었다.
$location = "Japan West"
$affinityGroupName = "test140323Group"
$affinityGroupDescription = "Contoso SQL HADR Affinity Group"
$affinityGroupLabel = "IaaS BI Affinity Group"
$workingDir = "C:\script\"
$networkConfigPath = $workingDir + "NetworkConfig.xml"
$virtualNetworkName = "test140323Network"
$storageAccountName = "test140323"
$storageAccountLabel = "Contoso SQL HADR Storage Account"
$storageAccountContainer = "https://" + $storageAccountName + ".blob.core.windows.net/vhds/"
$serviceName = "test140323"
$sqlImageName = (Get-AzureVMImage | where {$_.Label -like "SQL Server 2012 SP1 Standard*"} | sort PublishedDate -Descending)[0].ImageName
$availabilitySetName = "SQLHADR"
$subnetName = "Back"
$domainUser = "Administrator"
$sql1ServerName = "SQLT1"
$sql2ServerName = "SQLT2"
$sql3ServerName = "SQLT3"
$dataDiskSize = 100
$vmAdminUser = "AzureAdmin"
$vmAdminPassword = "Contoso!000"
요게 성공한 설정이다.
가상피시가 만들어지는 시간은.. 대략.. 14분 정도? 소요 되는듯 보여지는데
이전과는 다르게 첫번째 가상피시를 만들때
이런형태로.. 두개의 Succeeded가 나왔다.
여하튼 성공하고 나서
모든 과정이 다 올바르게 되었다.
앞서 다른분의 사용기 처럼 확인을 하기 위한것이 에러가 발생했는데
스냅샷 기능이 제공되지 않음이다.
SQLT2라는 두번째 녀석에게 미러링 되어짐이 보인다.
하여간 시키는 데로.. 첫번째 디비를 멈추고
세번째 피시를 보니 에러 로그가 나온다.
두번이나.. 발생을 하는데 왜 두번인지는 모르겠다만… 하여간..
두번째 피시가.. 승격이 된다.
sp_readerrorlog 라고.. 명령을 실행하면.. SQL의 로그를 볼수 있다.
천천히 다시 한번 보자.
1번 디비를 멈추고.. 2번 디비가 주 디비가 되는것이다.
아래는 2번 SQL피시의 로그이다.
Database mirroring connection error 4 'The connection was closed by the remote end, or an error occurred while receiving data: '64(The specified network name is no longer available.)'' for 'TCP://SQLT1:5022'.
메시지가 잘 안보일것이다.
결국 이벤트로 에러가 발생
The mirrored database "MyDB1" is changing roles from "MIRROR" to "PRINCIPAL" because the mirroring session or availability group failed over due to automatic failover. This is an informational message only. No user action is required.
거시기 거시기 하니.. 자동으로 failover하겠다는 이야기고..
Recovery completed for database MyDB1 (database ID 5) in 58 second(s) (analysis 0 ms, redo 0 ms, undo 2 ms.) This is an informational message only. No user action is required.
순식간에 되었다는 메시지라고 보여진다.
==========
아래는 3번 피시의 로그이다.
Database mirroring connection error 4 'The connection was closed by the remote end, or an error occurred while receiving data: '64(The specified network name is no longer available.)'' for 'TCP://SQLT1:5022'.
1번이 고장났다는 소리다.. 결국
두번 발생했다. 왜 두번인지는 묻지 말자. 내도 모르니..
결국은.. 이러고 나서는.. 2번 피시의 mssql이 주 디비가 되어버리고 이제 쿼리가 된다.
2번에서 쿼리를 날린 모습이다.
이게 주 디비가 되면 쿼리가 가능하다.
재미난건 이제 1번 피시를 보자.
이녀석이 미러가 된것이다. ㅋㅋ
그럼… 2번에서 수정한 데이터가 넘어와야 될것이다.
이번에는 2번 피시를 다운시켜 보자.
3번피시에서
다운이 되었다는.. 이벤트가 발생한다.
Database mirroring connection error 4 'The connection was closed by the remote end, or an error occurred while receiving data: '64(The specified network name is no longer available.)'' for 'TCP://SQLT2:5022'.
1번 피시에 로그에
2번이 에러가 나서.. 자신이 다시 주가 되었다고 나온다.
Database mirroring connection error 4 'The connection was closed by the remote end, or an error occurred while receiving data: '64(The specified network name is no longer available.)'' for 'TCP://SQLT2:5022'.
The mirrored database "MyDB1" is changing roles from "MIRROR" to "PRINCIPAL" because the mirroring session or availability group failed over due to automatic failover. This is an informational message only. No user action is required.
Recovery completed for database MyDB1 (database ID 5) in 841 second(s) (analysis 0 ms, redo 0 ms, undo 2 ms.) This is an informational message only. No user action is required.
걸린 시간까지 말이다.. 음..
다시 주 디비가 되었다.
아까 두번째에서 넣었던 데이터가 그대로 보인다.
이제 두번째 피시를 다시 살리자.
그러면.. Disconnected가.. Synchronized로 변경이 된다.
다시 동기화를 하는것이다. 2번 피시는.. 아래와 같고 말이다.
하여간… 서로 죽였다.. 살렸다 해봤다.
이해가 안된다고 해야 될지 모르겠다만.. 3번째 피시에는 단지 죽은 경우만 이벤트가 뜬다.
다시 살아난건 이벤트가 없다.
1번피시에서 심심해서 3번의 목격자를 사용안함으로 처리해봤다
2번피시의 로그를 보니
에러가 뜬다.. 문제는.. 에러만 뜨고 자기가 주가 되지 않는다. 헐..
계속 미러로 두고.. 연결이 끊어졌다고 나온다. 오호라.. 3번의 목격자가.. 없다면.. 주로 승격을 안시키네..
다시 1번 피시를 살리니.. 싱크를 다시 맞춘다.
이시점에서.. 목격자랑.. 주 디비가 같이 죽어버리면? 어쩔수 없다는 결론이 된다.
목격자를.. 2번 피시로 해볼까? 그럼… 음..
Msg 1429, Level 16, State 1, Line 1
The witness server instance name must be distinct from both of the server instances that manage the database. The ALTER DATABASE SET WITNESS command failed.
목격자는… 달라야 한단다. 글쿤..
그러니.. 갑자기.. 4대 5대 동기화 해보면 어떨까? 생각이 든다.
아.. 상상력이 펼쳐지는군.. 하여간.. 재미난 경험이였다.
근데 애저에서 L4 만드는거나.. 이런거 하는건 이미 지나갔을것 같긴하다.