Оптимизация базы данных — различия между версиями
Koboox (обсуждение | вклад) |
Ilsiya (обсуждение | вклад) (→Резервирование\Восстановление базы данных) |
||
(не показано 16 промежуточных версии 2 участников) | |||
Строка 1: | Строка 1: | ||
В случае, когда база значительно увеличилась в размерах и превысила 1,5-2 Гб, следует провести оптимизацию данных. | В случае, когда база значительно увеличилась в размерах и превысила 1,5-2 Гб, следует провести оптимизацию данных. | ||
− | + | ==Создаем файловую копию базы данных== | |
+ | |||
+ | Просим всех пользователей выйти из программы! | ||
*Отключаем службу '''Firebird Server Manager''': Пуск/Панель управления, режим просмотра: "Мелкие значки". | *Отключаем службу '''Firebird Server Manager''': Пуск/Панель управления, режим просмотра: "Мелкие значки". | ||
[[Файл:Оптимизация_бд_отключение_firebird.jpg|center|Отключение Firebird]] | [[Файл:Оптимизация_бд_отключение_firebird.jpg|center|Отключение Firebird]] | ||
− | *Создаем файловую копию базы данных ZTRADE.FBD | + | *Создаем файловую копию базы данных ZTRADE.FBD. ZTRADE.FDB переименовываем в ZTRADE_orig, и работаем с файловой копией. Для удобства работы с ней переименуем, добавив в название дату: |
[[Файл:Оптимизация_бд_файловая_копия_бд.jpg|center|Файловая копия бд]] | [[Файл:Оптимизация_бд_файловая_копия_бд.jpg|center|Файловая копия бд]] | ||
Строка 12: | Строка 14: | ||
[[Файл:Оптимизация_бд_включение_firebird.jpg|center|Включение Firebird]] | [[Файл:Оптимизация_бд_включение_firebird.jpg|center|Включение Firebird]] | ||
− | + | ==Заходим в программу IBExpert, создаем подключение к копии базы данных== | |
* Заходим в меню «База данных»(Database) - «Зарегистрировать базу»(Register Database), | * Заходим в меню «База данных»(Database) - «Зарегистрировать базу»(Register Database), | ||
* В открывшемся окне указываем Имя Сервера(Server name) на котором лежит база данных, | * В открывшемся окне указываем Имя Сервера(Server name) на котором лежит база данных, | ||
* В окне Версия сервера(Server Version) выбираем Firebird 2.5, | * В окне Версия сервера(Server Version) выбираем Firebird 2.5, | ||
* Файл базы данных(Database File) по иконке с папкой выбираем путь к нашей базой данных, | * Файл базы данных(Database File) по иконке с папкой выбираем путь к нашей базой данных, | ||
− | * Пользователь(User name) - прописываем | + | * Пользователь(User name) - прописываем SYSDBA, |
* Пароль(Password) – masterkey, | * Пароль(Password) – masterkey, | ||
* Кодировка(Charset) выставляем WIN1251. | * Кодировка(Charset) выставляем WIN1251. | ||
[[Файл:Оптимизация_бд_регистрация_базы_данных.jpg|center|Регистрация бд]] | [[Файл:Оптимизация_бд_регистрация_базы_данных.jpg|center|Регистрация бд]] | ||
− | + | ==Создаем бэкап базы данных== | |
Для создания бэкапа выбираем '''«Службы»(Services)''' - '''«Резервирование базы данных»(Backup Database'''): | Для создания бэкапа выбираем '''«Службы»(Services)''' - '''«Резервирование базы данных»(Backup Database'''): | ||
[[Файл:Оптимизация_бд_бэкап_базы_данных.jpg|center|Бэкап бд]] | [[Файл:Оптимизация_бд_бэкап_базы_данных.jpg|center|Бэкап бд]] | ||
Строка 31: | Строка 33: | ||
[[Файл:Оптимизация_бд_успешное_завершение_бэкапа.jpg|center|Бэкап бд]] | [[Файл:Оптимизация_бд_успешное_завершение_бэкапа.jpg|center|Бэкап бд]] | ||
− | + | ==Просмотр системных таблиц== | |
*Заходим в меню «База данных»(Databas) - «Регистрационная информация базы …»(Database Registration Info …). | *Заходим в меню «База данных»(Databas) - «Регистрационная информация базы …»(Database Registration Info …). | ||
*В открывшемся окне «Параметры базы данных» в левой панели выбираем в пункте «Дополнительно»(Additional) подменю «Эксплорер БД»(DB Explorer). | *В открывшемся окне «Параметры базы данных» в левой панели выбираем в пункте «Дополнительно»(Additional) подменю «Эксплорер БД»(DB Explorer). | ||
Строка 39: | Строка 41: | ||
[[Файл:Оптимизация_бд_дерево_данных.jpg|center|Дерево данных]] | [[Файл:Оптимизация_бд_дерево_данных.jpg|center|Дерево данных]] | ||
− | + | ==Отключение логирования== | |
+ | Заходим в меню '''«Инструменты»(Tools)''' - '''«Менеджер протоколов данных»(Log Manager)''', | ||
+ | Должно открыться окно, но может выйти окно с ошибкой: | ||
+ | [[Файл:Оптимизация_бд_ошибка_при_открытии_менеджере_протоколов_данных.jpg|center|Ошибка]] | ||
+ | Не пугайтесь, просто нажимайте кнопку «Ок» , она ни на что не влияет.Если она у Вас появилась, то заодно закройте окно «Менеджер протоколов данных» и заново откройте. | ||
+ | |||
+ | В этом окне находим одноименную кнопку '''«Менеджер протоколов данных» (Log Manager)''' и выбираем пункт '''«Отменить протоколирование для всех таблиц»(Unprepare all tables)'''. У нас должны сняться все отметки, после чего мы нажимаем кнопку с молнией [[Файл:Оптимизация_бд_кнопка_компиляции.jpg|Компиляция]] или F9.. После чего должно появиться окно '''«Updating logging triggers…»''' , в котором необходимо нажать кнопку '''«Подтвердить»(Commit)'''. Таким образом мы отключили с вами логирование базы данных. | ||
+ | |||
+ | ==Очистка и удаление таблиц== | ||
+ | Слева в окне мы видим дерево данных, самой нижней строкой стоит пункт «Системные таблицы», подсвеченный красным цветом. | ||
+ | |||
+ | Раскрываем плюсик и видим первые четыре таблицы, их нам с Вами нужно удалить, последовательно встаем на них мышью и правой кнопкой мыши выбираем пункт '''«Удалить таблицу …»(Drop table …).''' : | ||
+ | *IBE$LOG_BLOB_FIELDS; | ||
+ | *IBE$LOG_FIELDS; | ||
+ | *IBE$LOG_KEYS | ||
+ | *IBE$LOG_TABLES. | ||
+ | |||
+ | После того как мы удалили все четыре таблицы, в этом же дереве раскрываем пункт «Генераторы» и удаляем последнюю строку в этом пункте, также выделенную красным цветом: | ||
+ | *IBE$LOG_TABLES_GEN | ||
+ | |||
+ | Удаляем также правой кнопкой мыши. | ||
+ | |||
+ | Мы удали все необходимые системные таблицы , теперь нам необходимо '''очистить''' таблицы с логами .Также по плюсу раскрываем пункт «Таблицы», и последовательно чистим следующие таблицы: | ||
+ | *ANALYTIC_DOC_DETAIL_1 | ||
+ | *ANALYTIC_DOC_DETAIL_2 | ||
+ | *ANALYTIC_DOC_DETAIL_3 | ||
+ | ... | ||
+ | Т.е все таблицы имеющие в своем название «ANALYTIC_DOC_DETAIL» | ||
+ | *ANALYTIC_FALSIFICAT | ||
+ | *ANALYTIC_GNVLS | ||
+ | *ANALYTIC_MIN_ASSORT | ||
+ | *ANALYTIC_PRICE | ||
+ | *DOCS_LOG | ||
+ | *DOC_DETAIL_ACTIVE_LOG | ||
+ | *DOC_DETAIL_LOG | ||
+ | *PARTS_LOG | ||
+ | *TMP_LOG | ||
+ | '''Ни в коем случае НЕ трогаем таблицу WARES_LOG''' | ||
+ | |||
+ | Очистку этих таблиц будем осуществлять следующим образом: | ||
+ | Двойным щелчком мыши по вышеперечисленной таблице, так чтобы она у нас открылась . Затем ищем меню «Таблица»(Table) и выбираем пункт «Очистить таблицу»(Empty table) . | ||
+ | [[Файл: Оптимизация_бд_очистка_таблицы.jpg|center| Очистка таблицы]] | ||
+ | Затем у Нас появляется окно «Подтверждение» , и мы подтверждаем свои намерения: | ||
+ | [[Файл: Оптимизация_бд_подтверждение_очистки_таблицы.jpg|center|Подтверждение очистки таблицы]] | ||
+ | |||
+ | ==Резервирование\Восстановление базы данных== | ||
+ | |||
+ | После того как очистили таблицы, необходимо снова сделать резервирование данных, а потом восстановление, для этого идем в меню «Службы»(Services) и создаем резервную копию нашей почищенной базы данных ( «Резервирование базы данных»(Backup database)), при этом не забываем отключить флажок Сборка мусора(Garbage Collection) и нажимаем кнопку «Начать резервное копирование»(Start Backup). | ||
+ | |||
+ | Ждем окончание процесса создания бэкапа, затем нам необходимо восстановить нашу базу данных из этой резервной копии, для этого в том же меню «Службы» (Services) выбираем пункт «Восстановление базы данных»(Restore Database). | ||
+ | |||
+ | В открывшемся окне с помощью кнопки [[Файл: Оптимизация_бд_кнопка_выбрать_бэкап_для_восстановления.jpg|Кнопка выбрать бэкап]] нам нужно выбрать бэкап , который мы только что создали. | ||
+ | Окно должно выглядеть следующим образом: | ||
+ | [[Файл: Оптимизация_восстановление_базы_данных.jpg|center|Восстановление базы данных]] | ||
+ | После окончания процесса создастся новая база ZTRADE_NEW.FDB, переименовываем ее в ZTRADE.FDB. | ||
+ | |||
+ | В общем все, готово! Проверьте размер базы данных, она должна значительно уменьшиться в размерах. После чего можете сообщить пользователям, что уже можно работать в программе! |
Текущая версия на 10:18, 20 января 2017
В случае, когда база значительно увеличилась в размерах и превысила 1,5-2 Гб, следует провести оптимизацию данных.
Содержание
Создаем файловую копию базы данных
Просим всех пользователей выйти из программы!
- Отключаем службу Firebird Server Manager: Пуск/Панель управления, режим просмотра: "Мелкие значки".
- Создаем файловую копию базы данных ZTRADE.FBD. ZTRADE.FDB переименовываем в ZTRADE_orig, и работаем с файловой копией. Для удобства работы с ней переименуем, добавив в название дату:
- Включаем службу Firebird Server Manager:
Заходим в программу IBExpert, создаем подключение к копии базы данных
- Заходим в меню «База данных»(Database) - «Зарегистрировать базу»(Register Database),
- В открывшемся окне указываем Имя Сервера(Server name) на котором лежит база данных,
- В окне Версия сервера(Server Version) выбираем Firebird 2.5,
- Файл базы данных(Database File) по иконке с папкой выбираем путь к нашей базой данных,
- Пользователь(User name) - прописываем SYSDBA,
- Пароль(Password) – masterkey,
- Кодировка(Charset) выставляем WIN1251.
Создаем бэкап базы данных
Для создания бэкапа выбираем «Службы»(Services) - «Резервирование базы данных»(Backup Database):
- В появившемся окне, в поле Имя файла(File Name), встает путь к базе по умолчанию , например: «С:\Standart-N\base\ztrade_20150106.fbk».
- Отключите галочку Сборка мусора(Garbage Collection) и нажимайте кнопку «Начать резервное копирование»(Start Backup).
При успешном завершении бэкапа окно будет выглядеть следующим образом:
Просмотр системных таблиц
- Заходим в меню «База данных»(Databas) - «Регистрационная информация базы …»(Database Registration Info …).
- В открывшемся окне «Параметры базы данных» в левой панели выбираем в пункте «Дополнительно»(Additional) подменю «Эксплорер БД»(DB Explorer).
- Справа отобразится несколько пунктов и нам нужно будет выбрать и установить галку «Показывать системные таблицы»(Show System Tables), после чего нажимаем кнопку «Ок».
- Дальше нам необходимо в левой панели «Database Explorer» два раза кликнуть по нашей базе, так чтобы мы увидели дерево данных в следующем виде:
Отключение логирования
Заходим в меню «Инструменты»(Tools) - «Менеджер протоколов данных»(Log Manager), Должно открыться окно, но может выйти окно с ошибкой:
Не пугайтесь, просто нажимайте кнопку «Ок» , она ни на что не влияет.Если она у Вас появилась, то заодно закройте окно «Менеджер протоколов данных» и заново откройте.
В этом окне находим одноименную кнопку «Менеджер протоколов данных» (Log Manager) и выбираем пункт «Отменить протоколирование для всех таблиц»(Unprepare all tables). У нас должны сняться все отметки, после чего мы нажимаем кнопку с молнией или F9.. После чего должно появиться окно «Updating logging triggers…» , в котором необходимо нажать кнопку «Подтвердить»(Commit). Таким образом мы отключили с вами логирование базы данных.
Очистка и удаление таблиц
Слева в окне мы видим дерево данных, самой нижней строкой стоит пункт «Системные таблицы», подсвеченный красным цветом.
Раскрываем плюсик и видим первые четыре таблицы, их нам с Вами нужно удалить, последовательно встаем на них мышью и правой кнопкой мыши выбираем пункт «Удалить таблицу …»(Drop table …). :
- IBE$LOG_BLOB_FIELDS;
- IBE$LOG_FIELDS;
- IBE$LOG_KEYS
- IBE$LOG_TABLES.
После того как мы удалили все четыре таблицы, в этом же дереве раскрываем пункт «Генераторы» и удаляем последнюю строку в этом пункте, также выделенную красным цветом:
- IBE$LOG_TABLES_GEN
Удаляем также правой кнопкой мыши.
Мы удали все необходимые системные таблицы , теперь нам необходимо очистить таблицы с логами .Также по плюсу раскрываем пункт «Таблицы», и последовательно чистим следующие таблицы:
- ANALYTIC_DOC_DETAIL_1
- ANALYTIC_DOC_DETAIL_2
- ANALYTIC_DOC_DETAIL_3
... Т.е все таблицы имеющие в своем название «ANALYTIC_DOC_DETAIL»
- ANALYTIC_FALSIFICAT
- ANALYTIC_GNVLS
- ANALYTIC_MIN_ASSORT
- ANALYTIC_PRICE
- DOCS_LOG
- DOC_DETAIL_ACTIVE_LOG
- DOC_DETAIL_LOG
- PARTS_LOG
- TMP_LOG
Ни в коем случае НЕ трогаем таблицу WARES_LOG
Очистку этих таблиц будем осуществлять следующим образом: Двойным щелчком мыши по вышеперечисленной таблице, так чтобы она у нас открылась . Затем ищем меню «Таблица»(Table) и выбираем пункт «Очистить таблицу»(Empty table) .
Затем у Нас появляется окно «Подтверждение» , и мы подтверждаем свои намерения:
Резервирование\Восстановление базы данных
После того как очистили таблицы, необходимо снова сделать резервирование данных, а потом восстановление, для этого идем в меню «Службы»(Services) и создаем резервную копию нашей почищенной базы данных ( «Резервирование базы данных»(Backup database)), при этом не забываем отключить флажок Сборка мусора(Garbage Collection) и нажимаем кнопку «Начать резервное копирование»(Start Backup).
Ждем окончание процесса создания бэкапа, затем нам необходимо восстановить нашу базу данных из этой резервной копии, для этого в том же меню «Службы» (Services) выбираем пункт «Восстановление базы данных»(Restore Database).
В открывшемся окне с помощью кнопки нам нужно выбрать бэкап , который мы только что создали. Окно должно выглядеть следующим образом:
После окончания процесса создастся новая база ZTRADE_NEW.FDB, переименовываем ее в ZTRADE.FDB.
В общем все, готово! Проверьте размер базы данных, она должна значительно уменьшиться в размерах. После чего можете сообщить пользователям, что уже можно работать в программе!