Как программно добавить базу данных в существующую группу 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