Опубликован: 11.12.2006 | Доступ: свободный | Студентов: 5820 / 381 | Оценка: 4.42 / 3.86 | Длительность: 57:15:00
Лекция 27:

Репликация транзакций

Конфигурирование, мониторинг и настройка дистрибьютора для репликации транзакций

В этом разделе вы узнаете, как осуществлять конфигурирование, мониторинг и настройку дистрибьютора для репликации транзакций Как уже говорилось в предыдущей лекции, дистрибьютор – это сервер, содержащий базу данных SQL Server, которая называется дистрибутивной базой данных и используется как хранилище данных репликации. Эти данные хранятся в базе данных SQL Server, обеспечивая ряд преимуществ, включая следующие:

  • Высокая производительность. SQL Server обеспечивает высокую производительность, которая требуется дистрибьютору для получения, хранения и распространения данных.
  • Надежность. Поскольку SQL Server поддерживает высокий уровень восстанавливаемости, то база данных SQL Server идеально подходит для данных репликации. Используя журнал транзакций, SQL Server может выполнять восстановление после аварий системы без потери каких-либо данных.
  • Простота использования. Поскольку процесс репликации SQL Server непосредственно взаимодействует с дистрибьютором через протоколы передачи данных, это позволяет легко устанавливать и конфигурировать дистрибьютор.
Конфигурирование дистрибьютора

В зависимости от того, как часто вносятся модификации в вашу базу данных, интенсивность операций на дистрибьюторе может оказаться довольно высокой. Поскольку дистрибьютор использует базу данных SQL Server, все модификации, выполняемые на дистрибьюторе, должны протоколироваться в журнале транзакций. Вам следует конфигурировать дистрибутивную базу данных и этот журнал достаточно большими, чтобы можно было выполнять необходимую работу, и достаточно быстрыми, чтобы выполнять эту работу эффективно. Хотя принятая по умолчанию конфигурация распространения подходит для небольших систем репликации, она не соответствует многим системам, поскольку мастера репликации SQL Server не размещают журнал транзакций и файлы данных SQL Server оптимальным образом. Они обычно размещаются на принятом по умолчанию томе SQL Server, причем журнал транзакций и файлы базы данных оказываются на одном томе.

Конфигурируя должным образом дистрибутивную базу данных, вы можете избежать дорогостоящих проблем производительности. Вот некоторые рекомендации по конфигурированию дистрибутивной базы данных.

  • Используйте RAID-контроллер для системы с дистрибутивной базой данных. Использование аппаратного RAID-контроллера более эффективно, чем использование программных RAID.
  • Конфигурируйте журнал транзакций дистрибутивной базы данных на томе RAID 1. Журнал транзакций должен быть изолирован, чтобы иметь более высокую производительность при последовательных операциях ввода-вывода.
  • Конфигурируйте журнал транзакций достаточно большим, чтобы не возникала необходимость частого резервного копирования журнала транзакций. В зависимости от ваших потребностей у вас должна быть возможность обходиться всего лишь одним резервным копированием журнала транзакций в сутки (предпочтительно вечером).
  • Конфигурируйте дистрибутивную базу данных на томе RAID 1 или RAID 10. RAID 5 не подходит в связи с большим количеством операций записи в дистрибутивную базу данных.
  • Конфигурируйте дистрибутивную базу данных достаточно большой, чтобы у нее был запас для дополнительных данных репликации. В случае отказа сервера подписчика в этой базе данных могут накопиться данные репликации за несколько дней.
  • Выполняйте настройку базы данных репликации, как и любой другой базы данных SQL Server.
Конфигурирование дистрибьютора с помощью Enterprise Manager

Для конфигурирования дистрибутивной базы данных, как это показано в предыдущем списке, вам нужно задать, где находится эта база данных. Чтобы сделать это с помощью Enterprise Manager, сначала вызовите мастер Configure Publishing and Distribution Wizard. Используйте этот мастер, чтобы задать публикование и распространение, указывая в окне Customize the Configuration (Настройка конфигурации), что вы хотите настроить параметры распространения (щелкнув на кнопке Yes). Это позволяет вам задать местоположение дистрибутивной базы данных вручную. (Это также позволяет вам выбирать имя для базы данных, активизировать публикование и создавать как публикации, так и подписчиков.)

К сожалению, используя этот мастер, вы не можете задавать размер дистрибутивной базы данных. Вы можете увеличить размер дистрибутивной базы данных, вызвав окно свойств этой базы данных в Enterprise Manager и изменив размер базы данных или файлов журнала транзакций. Если вы хотите одновременно задать местоположение базы данных и ее размер, то вы можете использовать хранимую процедуру sp_adddistributiondb.

Конфигурирование дистрибьютора с помощью sp_adddistributiondb

С помощью системной хранимой процедуры sp_adddistributiondb вы можете использовать сценарий создания дистрибутивной базы данных. Это полезно, когда вы хотите задать размер и местоположение этой базы данных и ее журнала транзакций. И написав сценарий, с помощью которого создается дистрибутивная база данных, вы можете использовать его для различных систем или для повторного создания дистрибутивной базы данных в случае реконфигурирования системы.

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

Синтаксис хранимой процедуры sp_adddistributiondb приводится в SQL Server Books Online. Ниже показан пример использования этой хранимой процедуры:

sp_adddistributor Dash

Следующий оператор SQL инициализирует систему с именем Dash как дистрибьютора.

sp_adddistributiondb @database=dist,
@data_folder=’C:\mssql2000\data’,
@data_file=’dist.mdf’,
@data_file_size=10,
@log_folder=’C:\mssql2000\data’,
@log_file=’dist.ldf’,
@log_file_size=2,
@min_distretention=0,
@max_distretention=72,
@history_retention=96,
@security_mode=0,
@login=’sa’,
@password=’’,
@createmode=0
Мониторинг дистрибьютора

Мониторинг дистрибьютора осуществляется с помощью монитора производительности Microsoft Windows 2000 Performance Monitor (perfmon). В этом мониторе имеется ряд объектов, которые добавляются при использовании репликации SQL Server. Это следующие объекты:

  • SQLServer:Replication Agents. Указывает количество работающих агентов репликации каждого типа.
  • SQLServer:Replication Dist. Предоставляет информацию о задержке при распространении.
  • SQLServer:Replication Logreader. Предоставляет данные об активности и задержке агента Log Reader Agent
  • SQLServer:Replication Merge. Предоставляет данные о частоте операций слияния
  • SQLServer:Replication Snapshot. Предоставляет информацию о производительности репликации снимков.

Используя Performance Monitor для мониторинга этих значений, вы можете иногда определять наличие проблем производительности на дистрибьюторе. Данные perfmon дают массу полезной информации, но она не всегда идентифицирует проблемы. В случае мониторинга дистрибьютора нас больше всего интересует объект SQLServer:Replication Dist. Этот объект предоставляет следующие счетчики:

  • Dist:Delivered Cmds/sec.Следит за количеством команд в секунду, переданных подписчику. Это дает вам хорошее представление об интенсивности операций на данном подписчике.
  • Dist:Delivered Trans/sec. Следит за количеством транзакций в секунду, переданных подписчику. Этот счетчик также дает вам хорошее представление об интенсивности операций на данном подписчике.
  • Dist:Delivery Latency. Следит за количеством времени, которое требуется для применения транзакций к подписчику после того, как они были доставлены на дистрибьютор. Это может дать вам некоторое представление о том, насколько перегружен дистрибьютор. (backed up).

Хотя эти счетчики являются в некотором смысле индикаторами того, как работает процесс распространения в целом, они недостаточно полезны, когда вы определяете, нужна ли вам настройка дистрибьютора, поскольку наиболее важным аспектом настройки дистрибьютора является настройка базы данных SQL Server. Вам следует на самом деле следить в основном за следующими проблемами:

  • Высокий процент использования ЦП. Не слишком ли высока интенсивность использования одного или нескольких ЦП в течение длительных периодов (больше 75 процентов от их мощности)?
  • Узкие места подсистемы ввода-вывода. Не слишком ли высока интенсивность использования ввода-вывода? Следите за количеством операций ввода-вывода в секунду и длительностью одной операции ввода-вывода.
  • Время отклика.Не слишком ли велики значения времени отклика в SQL Server?
Настройка дистрибьютора

Как уже говорилось выше, дистрибьютор – это сервер, содержащий дистрибутивную базу данных, и эта база данных должна быть настроена таким же образом, как и любая другая база данных SQL Server. Вы можете повысить производительность дистрибьютора путем выбора состава системы, хотя, как вы знаете из "Планирование мощности системы" , в некоторых случаях это сложная задача. Дистрибьютор должен обладать достаточной мощностью, чтобы выполнять дополнительную работу. Дистрибьютор является "посредником" между издателями и подписчиками, и его следует сконфигурировать так, чтобы он не был узким местом. Ниже приводятся некоторые советы по конфигурированию и настройке дистрибьютора:

  • Настройка подсистемы ввода-вывода. Обеспечьте, чтобы дистрибьютор, как и любая другая система SQL Server, имел достаточную мощность системы ввода-вывода.
  • Используйте многопроцессорную систему.Мощность ЦП обычно не является проблемой, поскольку в большинстве случаев операции, выполняемые на дистрибьюторе, не требуют интенсивного использования ЦП. Однако вам следует использовать хотя бы два ЦП, чтобы можно было выполнять параллельные операции.
  • Настраивайте операционную систему. Конфигурируйте службу Server , чтобы получать максимальную производительность для сетевых приложений. Это приведет к конфигурированию системы памяти в пользу приложений по сравнению с файловыми службами. Для этого нужно использовать значок Network в панели управления. Кроме того, удалите все службы, которые не будут использоваться, такие как IIS и FTP.
  • Следите за дистрибьютором во время репликации моментальных снимков.При репликации снимков, которая используется, когда происходит копирование начального снимка в репликации транзакций и репликации слиянием, одновременно выполняется большое число операций ввода-вывода. Поскольку на дистрибьютор записывается такое количество данных, может возникнуть перегрузка подсистемы ввода-вывода дистрибьютора. В этой ситуации возрастает время, которое требуется для применения снимка. Поэтому вам нужно следить за дистрибьютором во время передачи снимка.
  • Настраивайте SQL Server. Используя методы и рекомендации, полученные в этой книге, выполняйте настройку системы SQL Server.