Как программно добавить базу данных в существующую группу Always On Availability (AOAG)?

Я хотел бы программно (сценарии T-SQL) создать новую базу данных, а затем добавить ее в существующую группу Always On Availability (AOAG).

Пока что я в порядке с созданием базы данных, созданием полной резервной копии (которая является предварительным условием для добавления базы данных в AOAG) и добавления ее в существующий AOAG.

Однако я не знаю, как инициализировать начальную репликацию на вторичные серверы баз данных.

Вот мой сценарий до сих пор:

CREATE DATABASE Test;
GO

USE Test;
GO

BACKUP DATABASE Test
TO DISK = 'D:\Sync\Test.Bak'
   WITH FORMAT,
      MEDIANAME = 'D_Sync',
      NAME = 'Initial Full Backup for restore in AOAG group';
GO

USE Master
GO

ALTER AVAILABILITY GROUP AOAG_APP ADD DATABASE Test; 
GO

Если бы я использовал MS SQL Server Management Studio, я бы использовал мастер и в Select Data Synchronization варианты, я бы выбрал Full, а затем путь к файлам резервных копий.

Как я могу добиться того же с помощью сценария SQL? Это не кажется ALTER AVAILABILITY GROUP <group> ADD DATABASE <database> имеет опции для указания Full и path to backup files,

Любая помощь приветствуется!

1 ответ

Решение

Вы можете попробовать с кодом ниже.

--On primary node

create database test
alter database test set recovery FULL
backup database test to disk='Z:\Backups\Test Folder\test.bak'
backup log test to disk='Z:\Backups\Test Folder\test.trn'
alter availability group availablitygroup_name
add database [test];

--On secondary node

Restore database test from disk='\\node1\Backups\Test Folder\test.bak' with norecovery
restore log test from disk='\\node1\Backups\Test Folder\test.trn' with norecovery
alter database test set HADR availability group= availablitygroup_name

--On primary node

use test
go
create table abc(name varchar(15))
Insert into abc values('amarnath')
select * from abc

--On secondary node

use test
go
select * from abc
Другие вопросы по тегам