Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
dmitriymerkush Member Откуда: Сообщений: 2 |
Добрый день. Требуется написать процедуру для зеркалирования баз данных. Не до конца понимаю как реализовать проверку серверов (если уже есть зеркало, то разрушить и создать новое, если нет, то просто создать) и попеременное выполнение: создать бэкап на основном, сделать рестор на зеркале, затем указать порт на зеркале на SrcPort и на основном на MirrPort. Как я понял создавать каждый раз заново эндпоинты, сертификаты и указывать логины и пользователей необходимости нет. CREATE PROCEDURE MirrorProc @db_name, @SrcLinkedServer, @SrcBackupPath ='C:\bkups\', @SrcPort = 'TCP://name:port1', @MirrLinkedServer, @MirrBackupPath ='Z:\bkups\', @MirrPort = 'TCP://name:port2' AS BEGIN DECLARE @sql varchar(max) SELECT @SrcBackupPath=@SrcBackupPath+'\'+@db_name+'.bak' SET @sql='exec('' ... '')'+case when isnull(@SrcLinkedServer,'')='' then '' else ' AT '+@SrcLinkedServer end print @sql --exec(@sql) SELECT @MirrBackupPath=@MirrBackupPath+'\'+@db_name+'.bak' SET @sql='exec('' ... '')'+case when isnull(@MirrLinkedServer,'')='' then '' else ' AT '+@MirrLinkedServer end END На данный момент представляю себе это как-то так, подскажите, пожалуйста, если у кого то есть идеи. |
11 апр 19, 15:14 [21859586] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |