Инструменты пользователя

Инструменты сайта


gfix

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
gfix [2014/09/04 18:55]
a4on.tv [Описание]
gfix [2014/09/04 19:05]
a4on.tv [Версии сервера]
Строка 2: Строка 2:
  
 ===== Версии сервера ===== ===== Версии сервера =====
-^ 0.X ^ 1.X ^ 2.X ^ 3.X ^ +Все
-|  +  |  +  |  +  |  +  |+
  
 ===== Формат ===== ===== Формат =====
Строка 60: Строка 59:
 Чистка sweep происходит в фоновом режиме и может выполняться параллельно работе пользователей. Этот способ более предпочтителен,​ чем чистка gbak при восстановлении БД. Утилита gbak не делает полной чистки,​ так как остаются версии удаленных записей и записей отмененных транзакций. Принудительную чистку можно сделать так: Чистка sweep происходит в фоновом режиме и может выполняться параллельно работе пользователей. Этот способ более предпочтителен,​ чем чистка gbak при восстановлении БД. Утилита gbak не делает полной чистки,​ так как остаются версии удаленных записей и записей отмененных транзакций. Принудительную чистку можно сделать так:
  
-gfix -sweep c:​\databases\first.fdb -user sysdba -pa masterkey+<code sql>gfix -sweep c:​\databases\first.fdb -user sysdba -pa masterkey</​code>​
  
 Чистка базы данных происходит автоматически через определенное количество (по умолчанию 20 000) транзакций. Расчет интервала делается из старейшей транзакции,​ зарегистрированной в области TIP (Инвентарная страница транзакций),​ и из старейшей активной транзакции. Когда инвентарный номер старейшей активной транзакции окажется больше на указанный интервал,​ чем инвентарный номер старейшей зарегистрированной в TIP транзакции,​ произойдет автоматический запуск чистки. Изменить интервал на 10 000, например,​ можно так: Чистка базы данных происходит автоматически через определенное количество (по умолчанию 20 000) транзакций. Расчет интервала делается из старейшей транзакции,​ зарегистрированной в области TIP (Инвентарная страница транзакций),​ и из старейшей активной транзакции. Когда инвентарный номер старейшей активной транзакции окажется больше на указанный интервал,​ чем инвентарный номер старейшей зарегистрированной в TIP транзакции,​ произойдет автоматический запуск чистки. Изменить интервал на 10 000, например,​ можно так:
  
-gfix -h 10000 c:​\databases\first.fdb -user sysdba -pa masterkey+<code sql>gfix -h 10000 c:​\databases\first.fdb -user sysdba -pa masterkey</​code>​
  
 Если же вместо 10 000 указать 0, автоматическая чистка для данной БД вообще будет отменена. Как уже говорилось,​ чистка не требует монопольного доступа к базе данных,​ однако если БД очень большая,​ и много пользователей интенсивно с ней работают,​ чистка может заметно замедлить работу с БД. В этом случае,​ перед чисткой рекомендуется вначале отключить базу данных. Если же вместо 10 000 указать 0, автоматическая чистка для данной БД вообще будет отменена. Как уже говорилось,​ чистка не требует монопольного доступа к базе данных,​ однако если БД очень большая,​ и много пользователей интенсивно с ней работают,​ чистка может заметно замедлить работу с БД. В этом случае,​ перед чисткой рекомендуется вначале отключить базу данных.
Строка 70: Строка 69:
 Отключение базы данных делается командой -shut с одним из трех дополнительных параметров. Чтобы безусловно отключить базу данных через 10 минут, выполните команду:​ Отключение базы данных делается командой -shut с одним из трех дополнительных параметров. Чтобы безусловно отключить базу данных через 10 минут, выполните команду:​
  
-gfix -sh -force 600 c:​\databases\first.fdb -user sysdba -pa masterkey+<code sql>gfix -sh -force 600 c:​\databases\first.fdb -user sysdba -pa masterkey</​code>​
  
 Однако такой радикальный способ рекомендуется использовать с осторожностью:​ пользователи,​ которые на этот момент продолжали работу с БД, потеряют результаты своей работы. Вначале вместо "​-force"​ лучше попробовать более "​мягкие"​ дополнительные параметры "​-attach"​ или "​-tran"​. Однако такой радикальный способ рекомендуется использовать с осторожностью:​ пользователи,​ которые на этот момент продолжали работу с БД, потеряют результаты своей работы. Вначале вместо "​-force"​ лучше попробовать более "​мягкие"​ дополнительные параметры "​-attach"​ или "​-tran"​.
Строка 76: Строка 75:
 После того, как база данных закрыта,​ и с ней выполнены все необходимые действия,​ ее нужно открыть командой После того, как база данных закрыта,​ и с ней выполнены все необходимые действия,​ ее нужно открыть командой
  
-gfix -o c:​\databases\first.fdb -user sysdba -pa masterkey+<code sql>gfix -o c:​\databases\first.fdb -user sysdba -pa masterkey</​code>​
  
 Кэш (или буфер) - это оперативная память,​ выделяемая сервером для работы с базой данных. Операции в оперативной памяти происходят гораздо быстрее,​ чем если данные постоянно считываются с диска. Размер кэша указывается в страницах БД. Если размер страницы установлен 8192, то кэш в 5000 страниц займет примерно 40 мегабайт ОЗУ. По умолчанию,​ Firebird использует кэш в 75 страниц. Если сразу много пользователей одновременно обращаются к базе данных,​ может случиться,​ что серверу не хватит выделенной оперативной памяти. В этом случае он начнет работать с диском,​ что замедлит производительность БД. Изменить размер кэша для базы данных на 300 страниц можно так: Кэш (или буфер) - это оперативная память,​ выделяемая сервером для работы с базой данных. Операции в оперативной памяти происходят гораздо быстрее,​ чем если данные постоянно считываются с диска. Размер кэша указывается в страницах БД. Если размер страницы установлен 8192, то кэш в 5000 страниц займет примерно 40 мегабайт ОЗУ. По умолчанию,​ Firebird использует кэш в 75 страниц. Если сразу много пользователей одновременно обращаются к базе данных,​ может случиться,​ что серверу не хватит выделенной оперативной памяти. В этом случае он начнет работать с диском,​ что замедлит производительность БД. Изменить размер кэша для базы данных на 300 страниц можно так:
  
-gfix -b 300 c:​\databases\first.fdb -user sysdba -pa masterkey+<code sql>gfix -b 300 c:​\databases\first.fdb -user sysdba -pa masterkey</​code>​
  
 Другим способом установить размер кэша по умолчанию для всех вновь создаваемых БД, является изменение конфигурационного файла firebird.conf,​ который находится в папке Firbird. ​ Другим способом установить размер кэша по умолчанию для всех вновь создаваемых БД, является изменение конфигурационного файла firebird.conf,​ который находится в папке Firbird. ​
Строка 96: Строка 95:
 База данных может работать в одном из двух режимов доступа:​ только для чтения,​ или для чтения / записи (по умолчанию). Если вам понадобилось запретить пользователям модифицирование данных,​ вы можете поменять режим командой:​ База данных может работать в одном из двух режимов доступа:​ только для чтения,​ или для чтения / записи (по умолчанию). Если вам понадобилось запретить пользователям модифицирование данных,​ вы можете поменять режим командой:​
  
-gfix -mo readonly c:​\databases\first.fdb -user sysdba -pa masterkey+<code sql>gfix -mo readonly c:​\databases\first.fdb -user sysdba -pa masterkey</​code>​
  
 Операции изменения режима занимают время! Не забудьте потом вернуть режим read_write, иначе пользователи не смогут вносить изменения в БД. Операции изменения режима занимают время! Не забудьте потом вернуть режим read_write, иначе пользователи не смогут вносить изменения в БД.
Строка 105: Строка 104:
 По умолчанию,​ все БД работают с включенным Forced Writes и отключать этот режим не рекомендуется. Если все же вы не удовлетворены производительностью БД, и при этом стопроцентно уверены в своем серверном ПК, можете попробовать отключить Forced Writes командой:​ По умолчанию,​ все БД работают с включенным Forced Writes и отключать этот режим не рекомендуется. Если все же вы не удовлетворены производительностью БД, и при этом стопроцентно уверены в своем серверном ПК, можете попробовать отключить Forced Writes командой:​
  
-gfix -w async c:​\databases\first.fdb -user sysdba -pa masterkey+<code sql>gfix -w async c:​\databases\first.fdb -user sysdba -pa masterkey</​code>​
  
 Команда Команда
  
-gfix -v c:​\databases\first.fdb -user sysdba -pa masterkey выведет на экран все неназначенные страницы,​ которые являются мусором. Если на экран ничего не вышло, значит,​ таких страниц в БД нет.+<code sql>gfix -v c:​\databases\first.fdb -user sysdba -pa masterkey ​</​code>​ 
 + 
 +выведет на экран все неназначенные страницы,​ которые являются мусором. Если на экран ничего не вышло, значит,​ таких страниц в БД нет.
  
 Если база данных разрушилась,​ можно вместо нее активировать теневую копию командой Если база данных разрушилась,​ можно вместо нее активировать теневую копию командой
  
-gfix - ac d:​\databases\first.shd-user sysdba -pa masterkey+<code sql>gfix - ac d:​\databases\first.shd-user sysdba -pa masterkey</​code>​
  
 ===== См. также ===== ===== См. также =====
gfix.txt · Последние изменения: 2014/09/04 19:05 (внешнее изменение)