Инструменты для управления sql зеркальным отражением базы данных 2008 года?

Все точки elses являются великими поэтому просто несколько комментариев.

30 минут невозможно гарантировать, специально для всего. Можно сказать, что это - цель, но нет никакого способа, которым это может быть гарантия, потому что всегда существует The X Factor. У Вас могло быть 2 строки ISP, и грузовик врезался в здание и берет их обоих, потому что Вы не думали, что маршрутизация их от противоположных концов здания имела значение, один пример.

Как запуск для стоения, дважды всего. У Вас есть 5 серверов, таким образом, необходимо удвоиться, это. Этому не нужно ко всем быть на аппаратных средствах, можно виртуализировать, но Вы видите то, что я имею в виду. Вдобавок ко всему, все должно быть HA, знающим, который также добавит к стоимости, можно узнать, что Вы оказываетесь перед необходимостью заменять свой маршрутизатор новым, и о Вам нужны 2 из них. Не забывайте удваивать кабель питания и получать генератор, потому что Вы не можете гарантировать, что энергетическая компания вернется в течение 30 минут.

Эти примеры думают более или менее установка горячего резервирования, которая является тем, что я подозреваю, что Ваш босс думает.

То, что я нахожу лучше для малого бизнеса, должно разработать план восстановить и классифицировать все.

Фигура, которая сервисы

очень важный (бизнес-остановки)

важный (бизнес замедляется),

стандартная программа (бизнес может суметь обойтись без него некоторое время).

Например, Ваши телефоны центра обработки вызовов являются critial, настолько возможно, что каждый стоит купить второй сервер и второй ISP, и Ваше отключение электричества средней мощности составляет приблизительно 15 минут, таким образом, мы доберемся, UPS для этого продлится, 60 минут (не забывайте рабочие станции ни один). Теперь позволяет, говорят, что ERP только важен, означание Вашего может функционировать без него некоторое время. Возможно, Ваши люди центра обработки вызовов используют его, но если это снижается, они могут вернуться назад к перу и бумаге или блокноту и затем обновить ERP после. Процедура, чтобы сделать это, если это снижается на желание, может быть более дешево затем попытка сделать это критическим сервисом. И стандартные могли бы быть чем-то как принтеры, хорошо это - боль, но мы можем сделать должным в течение нескольких дней, если они все понижаются.

Это также дает Вам распоряжение зафиксировать материал, если s ** t действительно поражает вентилятор однажды :)

0
задан 12 August 2010 в 17:20
2 ответа

Я создал серию пакетных файлов и сценариев SQL, чтобы сделать шаги ниже. Я только включал сценарии для материала зеркального отражения, но другие сценарии SQL, на которые ссылаются, являются довольно основными командами SQL (кроме сценария базы данных восстановления, что каждый довольно хитер из-за того, как я реализовал его), и создание их даст Вам возможность заменить переменные режима SQLCMD. Если Вы хотите к Прямому, передают меня в Твиттере (@jcumberland) с Вашим адресом электронной почты, я могу отправить Вам полный набор сценариев. Я удалил полные пути на именах файлов также.

  • режим восстановления наборов для базы данных
  • удаляет зеркальное отражение
  • удалите зеркальную базу данных
  • резервная база данных
  • журнал резервного копирования
  • копии bak файл
  • копии trn файл
  • резервное копирование базы данных восстановлений
  • восстановления регистрируют резервное копирование
  • удаляет bak файл
  • удаляет trn файл
  • настройте зеркальное отражение между принципалом и зеркалом
/*------------------------------------------------------*/
--  REPLACE THESE VALUES
/*------------------------------------------------------*/











/*------------------------------------------------------*/
--  BATCH FILE 1, CALLS UTILITY BATCH FILE
/*------------------------------------------------------*/
@echo off

set PRIMARYHOST=
set MIRRORHOST=
set INST=
set DRIVE=
set DRTARGETDIR="%DRIVE%:\MSSQL.1\MSSQL\DATA\"
set LOGDIR="%DRIVE%:\MSSQL.1\MSSQL\DATA\"
set PORT=
set PRIMARYINST=%PRIMARYHOST%\%INST%
set MIRRORINST=%MIRRORHOST%\%INST%

@echo on


call drdbsetup.bat %PRIMARYHOST% %MIRRORHOST% %PRIMARYINST% %MIRRORINST% %DRIVE% %DRTARGETDIR% %PORT%  %LOGDIR%

pause







/*------------------------------------------------------*/
--  BATCH FILE 2 - CALLS THE SQL SCRIPTS
/*------------------------------------------------------*/
rem -- set recovery mode to full
sqlcmd /E /S%3 -i SetRecoveryMode.sql -v DATABASE="%8"

rem -- remove mirroring
sqlcmd /E /S%3 -i MirroringRemove.sql -v DATABASE="%8"

sqlcmd /E /S%4 -i MirroringRemoveMirror.sql -v DATABASE="%8"

rem -- full backup
sqlcmd /E /S%3 -i BackupDatabaseFull.sql -v BACKUPPATH="%5:\" -v DATABASE=%8

rem -- log backup
sqlcmd /E /S%3 -i BackupDatabaseLog.sql -v BACKUPPATH="%5:\" -v DATABASE=%8

rem -- copy backup files to mirror
copy \\%1\%5$\*.bak %6 /y
copy \\%1\%5$\*.trn %6 /y

rem -- remove backup files from primary
del \\%1\%5$\*.bak
del \\%1\%5$\*.trn

rem -- restore database from backup directory
sqlcmd /E /S%4 -i RestoreDatabase.sql -v BKDIR=%6 -v DATADIR=%6 -v LOGDIR=%9

rem -- restore database log
sqlcmd /E /S%4 -i RestoreLog.sql -v BACKUPPATH=%6 -v DATABASE=%8

rem -- remove backup files from mirror
del %6\*.bak
del %6\*.trn

rem -- set up mirroring
sqlcmd /E /S%4 -i MirroringSetup.sql -v PRINCIPAL="%3" -v MIRROR="%4" -v PRINCIPAL_DNS="%1." -v MIRROR_DNS="%2.yourdomain.local" -v DATABASE_NAME="%8" -v PORT=%7







/*------------------------------------------------------*/
--  MirroringSetup.sql
/*------------------------------------------------------*/


/*-----------------------------------------------------*/
--  run on principal
/*-----------------------------------------------------*/
:connect $(PRINCIPAL)
GO

--  creates endpoint
if not exists (select * from sys.endpoints where name = 'Mirroring')
begin
    CREATE ENDPOINT Mirroring
    AUTHORIZATION []
    STATE = STARTED AS TCP (
        LISTENER_PORT = $(PORT)
        ,LISTENER_IP = ALL
    )
    FOR DATA_MIRRORING (
        ROLE = PARTNER
        ,AUTHENTICATION = WINDOWS NEGOTIATE
        ,ENCRYPTION = REQUIRED ALGORITHM RC4
    )
end
go

/*-----------------------------------------------------*/
--  run on mirror
/*-----------------------------------------------------*/
:connect $(MIRROR)
GO

--  creates endpoint
if not exists (select * from sys.endpoints where name = 'Mirroring')
begin
    CREATE ENDPOINT Mirroring
    AUTHORIZATION []
    STATE = STARTED AS TCP (
        LISTENER_PORT = $(PORT)
        ,LISTENER_IP = ALL
    )
    FOR DATA_MIRRORING (
        ROLE = PARTNER
        ,AUTHENTICATION = WINDOWS NEGOTIATE
        ,ENCRYPTION = REQUIRED ALGORITHM RC4
    )
end
go

-- Sets up mirror partnership
ALTER DATABASE [$(DATABASE_NAME)] SET PARTNER = N'TCP://$(PRINCIPAL_DNS):$(PORT)'
go

-- Removes mirror monitoring
if exists (select * from msdb..sysjobs where [name] ='Database Mirroring Monitor Job')
begin
    EXEC sp_dbmmonitordropmonitoring
end
go

-- Sets up mirror monitoring
EXEC sys.sp_dbmmonitoraddmonitoring -- default is 1 minute
go


/*-----------------------------------------------------*/
--  run on principal
/*-----------------------------------------------------*/
:connect $(PRINCIPAL)
GO

-- Sets up mirror partnership
ALTER DATABASE [$(DATABASE_NAME)] SET PARTNER = N'TCP://$(MIRROR_DNS):$(PORT)'
go

-- Removes mirror monitoring
if exists (select * from msdb..sysjobs where [name] ='Database Mirroring Monitor Job')
begin
    EXEC sp_dbmmonitordropmonitoring
end
go

-- Sets up mirror monitoring
EXEC sys.sp_dbmmonitoraddmonitoring -- default is 1 minute 
go






/*------------------------------------------------------*/
--  DRMirroringRemove.sql
/*------------------------------------------------------*/
if exists ( select * from sys.database_mirroring where db_name(database_id) = '$(DATABASE)' and mirroring_guid is not null )
begin
    ALTER DATABASE [$(DATABASE)] SET PARTNER OFF
end
go

WAITFOR DELAY '00:00:10'
go







/*------------------------------------------------------*/
--  DRMirroringRemoveMirror.sql
/*------------------------------------------------------*/
if exists ( select * from sys.database_mirroring where db_name(database_id) = '$(DATABASE)' and mirroring_guid is not null )
begin
    ALTER DATABASE [$(DATABASE)] SET PARTNER OFF
end
go

WAITFOR DELAY '00:00:10'
go

DROP DATABASE [$(DATABASE)]
go
3
ответ дан 4 December 2019 в 13:05
0
ответ дан 4 December 2019 в 13:05

Теги

Похожие вопросы