Replication MSSQL Process

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

3. Create master key on primary instance.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '8888888888888888';


GO
4. Create certificate on primary.
CREATE CERTIFICATE primary_cert WITH SUBJECT = 'primary certificate for
Availability Group'
GO
8. Backup primary instance�s certificate to /tmp.
BACKUP CERTIFICATE primary_cert TO FILE = '/tmp/primary_cert.cer';
GO

10. On primary, create a new user that can map to the secondary certificate that
allow secondary to access the primary.
CREATE LOGIN aglogin WITH PASSWORD = '88888888888888888';
create user aguser for login aglogin
GO

11. On primary, create the certificate for the aguser that allow access from
secondary to primary.
CREATE CERTIFICATE secondary_cert AUTHORIZATION aguser FROM FILE =
'/tmp/secondary_cert.cer'
GO
select * from sys.certificates

III. Create endpoint for replicas

1. Create endpoint for the primary replica.


CREATE ENDPOINT Hadr_endpoint
STATE = STARTED
AS TCP
(
LISTENER_PORT = 5022, LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING
(
AUTHENTICATION = CERTIFICATE primary_cert,
ENCRYPTION = REQUIRED ALGORITHM AES,
ROLE = ALL
);
GO

2. Grant the aglogin permission for accessing Hadr_endpoint.


grant connect on endpoint::Hadr_endpoint to aglogin

. Create AG for replicas


1. Create AG on the primary.
CREATE AVAILABILITY GROUP [AGt24db]
WITH (CLUSTER_TYPE = none)
FOR REPLICA ON
N'T24DBPR,2105'
WITH (
ENDPOINT_URL = N'tcp://T24DBPR:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL ),
N'T24DBDR,2105'
WITH (
ENDPOINT_URL = N'tcp://T24DBDR:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL
);
select @@servername
drop AVAILABILITY GROUP [AGt24db]
2. Grant AG to create database permission.
ALTER AVAILABILITY GROUP [AGt24db] GRANT CREATE ANY DATABASE;

Create AG DB.
backup database sales to disk=N'/tmp/sales.bak'
backup log sales to disk = N'/tmp/sales.trn'

--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.


:Connect t24dbpr,2105

USE [master]

GO

ALTER AVAILABILITY GROUP [AGt24db]


MODIFY REPLICA ON N'T24DBDR,2105' WITH (SEEDING_MODE = MANUAL)

GO

USE [master]

GO

ALTER AVAILABILITY GROUP [AGt24db] ADD DATABASE t24RWProdDb;

GO

ALTER DATABASE [sales] SET HADR AVAILABILITY GROUP = [AGt24db];

SELECT ag.name,
drs.database_id,
drs.group_id,
drs.replica_id,
drs.synchronization_state_desc,
ag.sequence_number
FROM sys.dm_hadr_database_replica_states drs, sys.availability_groups ag
WHERE drs.group_id = ag.group_id;
select @@servername
use sales
create table test20220526 (id int,c1 int,c2 int)

insert into test20220526 values(1,1,1

select * from sys.sysprocesses where spid=72

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-availability-group-
configure-rs?view=sql-server-ver16#manual-failover-without-data-loss
select text from sys.dm_exec_requests cross apply sys.dm_exec_sql_text(sql_handle)
where session_id=72

backup database t24RWProdDb to disk=N'/sqllog/t24RWProdDb-new.bak'


backup log t24RWProdDb to disk=N'/sqllog/t24RWProdDbnew.trn'
sp_helpdb
use master
alter database t24RWProdDb set hadr availability group = [AGt24db]
select name,log_reuse_wait_desc from sys.databases
use t24RWProdDb
dbcc opentran
dbcc inputbuffer(72)
kill 72
dbcc sqlperf(logspace)
dbcc shrinkfile(2)

You might also like