Quantcast
Channel: SQL Server High Availability and Disaster Recovery forum
Viewing all articles
Browse latest Browse all 4532

SQL Server 2017 || Distributed Always-On || Geo replication

$
0
0

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


Viewing all articles
Browse latest Browse all 4532

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>