--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.
:Connect 192.168.2.111,1433 -U sa -P sa@PWS123456
IF (SELECT state FROM sys.endpoints WHERE name = N'Endpoint_AvailabilityGroup') <> 0
BEGIN
ALTER ENDPOINT [Endpoint_AvailabilityGroup] STATE = STARTED
END
GO
:Connect 192.168.2.111,1433 -U sa -P sa@PWS123456
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
:Connect 192.168.2.112,1433 -U sa -P sa@PWS123456
IF (SELECT state FROM sys.endpoints WHERE name = N'Endpoint_AvailabilityGroup') <> 0
BEGIN
ALTER ENDPOINT [Endpoint_AvailabilityGroup] STATE = STARTED
END
GO
:Connect 192.168.2.112,1433 -U sa -P sa@PWS123456
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
:Connect 192.168.2.113,1433 -U sa -P sa@PWS123456
IF (SELECT state FROM sys.endpoints WHERE name = N'Endpoint_AvailabilityGroup') <> 0
BEGIN
ALTER ENDPOINT [Endpoint_AvailabilityGroup] STATE = STARTED
END
GO
:Connect 192.168.2.113,1433 -U sa -P sa@PWS123456
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
:Connect 192.168.2.111,1433 -U sa -P sa@PWS123456
USE [master]
GO
CREATE AVAILABILITY GROUP [LINUX_SQLAG]
WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY,
DB_FAILOVER = ON,
DTC_SUPPORT = NONE,
CLUSTER_TYPE = EXTERNAL,
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0)
FOR DATABASE [Demo]
REPLICA ON
N'server111' WITH (
ENDPOINT_URL = N'TCP://server111:5022',
FAILOVER_MODE = EXTERNAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SEEDING_MODE = AUTOMATIC,
PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = (N'server112')),
SECONDARY_ROLE(READ_ONLY_ROUTING_URL = N'TCP://server111:1433', ALLOW_CONNECTIONS = ALL)
),
N'server112' WITH (
ENDPOINT_URL = N'TCP://server112:5022',
FAILOVER_MODE = EXTERNAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SEEDING_MODE = AUTOMATIC,
PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = (N'server111')),
SECONDARY_ROLE(READ_ONLY_ROUTING_URL = N'TCP://server112:1433', ALLOW_CONNECTIONS = ALL)
),
N'server113' WITH (
ENDPOINT_URL = N'TCP://server113:5022',
FAILOVER_MODE = EXTERNAL,
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SEEDING_MODE = AUTOMATIC,
PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = ((N'server111',N'server112'),N'server113')),
SECONDARY_ROLE(READ_ONLY_ROUTING_URL = N'TCP://server113:1433', ALLOW_CONNECTIONS = ALL)
);
GO
:Connect 192.168.2.111,1433 -U sa -P sa@PWS123456
USE [master]
GO
ALTER AVAILABILITY GROUP [LINUX_SQLAG]
ADD LISTENER N'LINUX_LSNAG' (
WITH IP ((N'192.168.2.119', N'255.255.255.0')),
PORT=1433
);
GO
:Connect 192.168.2.112,1433 -U sa -P sa@PWS123456
ALTER AVAILABILITY GROUP [LINUX_SQLAG] JOIN WITH (CLUSTER_TYPE = EXTERNAL);
GO
ALTER AVAILABILITY GROUP [LINUX_SQLAG] GRANT CREATE ANY DATABASE;
GO
:Connect 192.168.2.113,1433 -U sa -P sa@PWS123456
ALTER AVAILABILITY GROUP [LINUX_SQLAG] JOIN WITH (CLUSTER_TYPE = EXTERNAL);
GO
ALTER AVAILABILITY GROUP [LINUX_SQLAG] GRANT CREATE ANY DATABASE;
GO