Hi All,
I am trying to configure Distributed Always AG from Geo location 1 (site 1) to Geo location 2 (site 2). The distance between DC1 to DC2 is 68 Kilometers. Below is the my environment setup:
WSFC_Cluster1 (site 1): DB_Node1, DB_Node2
WSFC_Cluster2 (site 2): DB_Node3, DB_Node4
The Windows servers are in Workgroup not in Domain. So i have created Windows local users (part of admin group) for SQL services on all 4 nodes.
I have tried to configure DAG using certificates. Below steps are working for site 1. Please guide me what steps and commands I need to follow to configure DAG from site 1 to site 2 for Database: Office.
PS: I have tried to follow below link to configure DAG from site 1 to site 2. But it's not working. This may becuase servers are not in domain. The steps mentioned in below link are working where servers are in domain (tested on local temp VM's)
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/f40b6227-652b-4fdb-8688-75a94a6b3d3b/sql-2017-dag-configuration?forum=sqldisasterrecovery#f40b6227-652b-4fdb-8688-75a94a6b3d3b
Steps for site 1 using certficates:
/*Run below commands on Cluster1-DB1*/ Use Master Go CREATE MASTER KEY ENCRYPTION BY PASSWORD = '1R3@llyStr0ngP@ssw0rd!'; Go CREATE CERTIFICATE [SMC-WG1-SQL01-Cert] WITH SUBJECT = 'SMC-WG1-SQL01-Cert'; Go CREATE LOGIN [SMC-WG1-SQL02-Login] WITH PASSWORD = 'D1ff3rentStr0ngP@ssw0rd!'; Go CREATE USER [SMC-WG1-SQL02-User] FOR LOGIN [SMC-WG1-SQL02-Login]; Go BACKUP CERTIFICATE [SMC-WG1-SQL01-Cert] To FILE = 'd:\db1\SMC-WG1-SQL01CertificatesSQL-SMC-WG1-SQL01.cer'; Go CREATE CERTIFICATE [SMC-WG1-SQL02-Cert] AUTHORIZATION [SMC-WG1-SQL02-User] FROM FILE = 'D:\db2\SMC-WG1-SQL02CertificatesSQL-SMC-WG1-SQL02.cer'; Go CREATE ENDPOINT WGAG_Endpoint STATE = STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE [SMC-WG1-SQL01-Cert] , ROLE = ALL); Go GRANT CONNECT ON ENDPOINT::WGAG_Endpoint TO [SMC-WG1-SQL02-Login]; GO IF (SELECT state FROM sys.endpoints WHERE name = N'WGAG_Endpoint') <> 0 BEGIN ALTER ENDPOINT [WGAG_Endpoint] STATE = STARTED END GO IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health') BEGIN ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON); END IF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health') BEGIN ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START; END GO CREATE AVAILABILITY GROUP [SMC_WG1_AG1] WITH ( AUTOMATED_BACKUP_PREFERENCE = SECONDARY, DB_FAILOVER = ON, DTC_SUPPORT = NONE ) FOR DATABASE [Office] REPLICA ON N'DB1' WITH ( ENDPOINT_URL = N'TCP://DB1.xxx.yyyy.ua:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO) ), N'DB2' WITH ( ENDPOINT_URL = N'TCP://DB2.xxx.yyyy.ua:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO) ); GO /*Run below commands on Cluster1-DB2*/ --- Use Master Go CREATE MASTER KEY ENCRYPTION BY PASSWORD = '1R3@llyStr0ngP@ssw0rd!'; Go CREATE CERTIFICATE [SMC-WG1-SQL02-Cert] WITH SUBJECT = 'SMC-WG1-SQL02-Cert'; Go CREATE LOGIN [SMC-WG1-SQL01-Login] WITH PASSWORD = 'D1ff3rentStr0ngP@ssw0rd!'; Go CREATE USER [SMC-WG1-SQL01-User] FOR LOGIN [SMC-WG1-SQL01-Login]; Go BACKUP CERTIFICATE [SMC-WG1-SQL02-Cert] To FILE = 'd:\db2\SMC-WG1-SQL02CertificatesSQL-SMC-WG1-SQL02.cer'; Go CREATE CERTIFICATE [SMC-WG1-SQL01-Cert] AUTHORIZATION [SMC-WG1-SQL01-User] FROM FILE = 'd:\db1\SMC-WG1-SQL01CertificatesSQL-SMC-WG1-SQL01.cer'; Go CREATE ENDPOINT WGAG_Endpoint STATE = STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE [SMC-WG1-SQL02-Cert] , ROLE = ALL); Go GRANT CONNECT ON ENDPOINT::WGAG_Endpoint TO [SMC-WG1-SQL01-Login]; go IF (SELECT state FROM sys.endpoints WHERE name = N'WGAG_Endpoint') <> 0 BEGIN ALTER ENDPOINT [WGAG_Endpoint] STATE = STARTED END GO IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health') BEGIN ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON); END IF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health') BEGIN ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START; END GO ALTER AVAILABILITY GROUP [SMC_WG1_AG1] JOIN; GO ALTER DATABASE [Office] SET HADR AVAILABILITY GROUP = [SMC_WG1_AG1]; GO