====== Мастер репликации ====== Проект [[:dbmeta|DBMeta]]\\ Система **[[:Репликация|Репликация]]**\\ **ЦДБ** - центральная база данных Форма **"Мастер репликации"** открывается в **«DBMeta»** кнопкой **"Мастер репликации"** \\ предназначена для переключения текущей базы данных в режим центральной базы данных.\\ {{:pasted:20200113-131358.png|}}\\ Настройки всегда включены и недоступны для редактирования\\ * **Изменение номера центрального подразделения с 0 на 1**. * Если DEPS содержит только одну запись и DEPS.DEP_ID = 0, то - делаем ее центральной DEPS.DEP_ID = 1 - в глобальной настройке **Текущее подразделение** (GL_DEFDEP_ID) переключаемся на эту запись (GL_DEFDEP_ID=1) - в базу добаляется роль **"REPL_ROLE"** * **Переключение глобальной настройки Текущее подразделение**. * Если DEPS не имеет записей, то создается запись и настройка переключается на нее * Если DEPS имеет одну запись Центр, то настройка переключается на нее * Если DEPS имеет записей Центр больше одной, то выдается сообщение об ошибке и процесс прерывается * Если DEPS имеет записей больше одной и ни одна из них не отмечена как "Центр", то выдается сообщение об ошибке и процесс прерывается * **Создание репликационной структуры**. * Выполняется корректировка триггеров [[develop:Реализация системы репликации|Реализация системы репликации]] для * добавления записи * редактирования записи * удаления записи * **Подготовка центрального подразделения**. * Если текущее подразделение типа Центр, то выполняются следующие операции: - Удаление изменений из лога (MST_META_CHANGES) - Добавление всех пользователей в текущее подразделение - Глобальная настройка "ОСНОВНЫЕ: Цены одинаковые во всех подразделениях" (GL_TOVARS_GLOBALPRICE) устанавливается в 0 - Глобальная настройка "" (GL_REPL_ACTIVE) устанавливается в 0 - Обновляется список ограничений целостности (Foreign keys) - Обновляется список первичных ключей (Primary keys) - Устанавливается "префикс ключа" в 100 независимо от DEPS.DEP_ID * **Для роли REPL_ROLE поставить GRANT ALL**. ===== Подготовительные операции ===== - [[:Отключение_и_переименование_базы|Переименование базы данных]] - Создание копии базы данных - Проверка по дате **актуальности DBMeta** (При необходимости скачать новую версию из папки Z:\Agbis\_NonVersion\DBMeta.exe).\\ ===== Кнопки ===== * **Запуск** - запускает процесс создания и настройки ЦДБ, * **Открыть текущий лог...** - открывает в блокноте текущий лог программы, * **Close** - закрывает форму, * **Помощь** - открывает текст с описанием формы. ===== Создание и настройка ЦДБ ===== Кнопка **Запуск** выдает запрос на подтверждение начала процесса настройки ЦБД\\ После подтверждения процесс не может быть остановлен.\\ Блокируются возможность изменения настроек и кнопка **Запуск**.\\ Индикатор отображает степень выполнения процесса.\\ ==== 1. Включение ЦБД ==== Считывается список подразделений из таблицы [[:deps|deps]]\\ * Если записей нет, то добавляется новое подразделение, которое назначается центральным.\\ * Если запись единственная, то подразделение назначается центральным. \\ * Если записей больше одной и центральное подразделение единственное, то это подразделение остается центральным.\\ Если записей больше одной и центральное подразделение не единственное или нет ни одного центрального подразделение, то процесс прерывается.\\ Если подразделение единственное, то * подразделение назначается центральным, * DEP_ID назначается равным 1. * добавляется роль REPL_ROLE типа SYSDBA * в глобальной настройке **Текущее подразделение** (GL_DEFDEP_ID) переключаемся на эту запись (GL_DEFDEP_ID=1). Если подразделение не единственное, то считается что эти настройки уже были сделаны раньше.\\ ==== 2. Создание репликационной структуры ==== Выполняется корректировка триггеров для * добавления записи * редактирования записи * удаления записи ==== 3. Подготовка центрального подразделения ==== * Удаление изменений из лога (MST_META_CHANGES) * Добавление всех пользователей в текущее подразделение * Глобальная настройка "ОСНОВНЫЕ: Цены одинаковые во всех подразделениях" (GL_TOVARS_GLOBALPRICE) устанавливается в 0 * Глобальная настройка "" (GL_REPL_ACTIVE) устанавливается в 0 * Обновляется список ограничений целостности (Foreign keys) * Обновляется список первичных ключей (Primary keys) * Устанавливается "префикс ключа" (GEN_CUR_DEP_ID) в 100 независимо от DEPS.DEP_ID * Устанавливается GEN_IS_CENTR в 1 ==== 4. Настройка REPL_ROLE ==== Для роли REPL_ROLE поставить GRANT ALL По завершении операции просмотреть логи для проверки успешности проведенных работ (кнопка Открыть текущий лог...)\\ Файл лога лежит в той же папке, где находится DBMeta.\\ ===== Дополнительная информация ===== [[develop:repl_param_test|Тестирование репликационных параметров БД]] \\ [[:mt_DBMainForm|Главная форма "DBMeta"]]\\ [[:mt_OptReplForm|Мастер репликации]]\\ [[:mt_CopyDepForm|Создание нового подразделения]]\\ [[:mt_DepForm|Подразделение]]\\ [[:Репликация|Репликация]]\\ [[:dbmeta|Назад]]\\