MyTetra Share
Делитесь знаниями!
Сжатие и восстановление базы данных
12.10.2019
20:37
Текстовые метки: VBA_Access, Compress
Раздел: !Закладки - VBA - Access - Compress

Зачем нужно сжимать и восстанавливать базу данных

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

Файлы базы данных увеличиваются в размере по мере использования

По мере добавления и обновления данных и изменения их структуры размер файла базы данных увеличивается. Это происходит отчасти из-за добавления новых данных, а отчасти — по другим причинам, перечисленным ниже.

  • Access создает временные скрытые объекты для выполнения различных задач. Иногда временные объекты остаются в базе данных, когда они уже не нужны.
  • При удалении объекта базы данных занимаемое им место на диске автоматически не освобождается — файл базы данных по-прежнему занимает место на диске даже после удаления.

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

Примечание : При сжатии данные не сжимаются — файл базы данных становится меньше за счет удаления неиспользуемого пространства.

Возможное повреждение файлов базы данных

При некоторых обстоятельствах файл базы данных может быть поврежден. Если к файлу базы данных открыт общий доступ по сети и несколько пользователей одновременно работают с ним напрямую, существует небольшой риск его повреждения. Риск повреждения тем выше, чем чаще пользователи изменяют данные в полях Memo, а со временем риск увеличивается еще больше. Снизить риск можно с помощью команды Сжать и восстановить базу данных.

Часто этого типа повреждения результаты из проблема с Visual Basic для приложений (VBA) модуль и не риска потери данных. Тем не менее этот тип повреждения угрозу повреждения конструктор базы данных, например невозможно использовать форм или потеряны код VBA.

Иногда повреждение файла базы данных приводит к потере данных. Обычно эта потеря ограничивается потерей последнего действия одного пользователя, то есть единичным изменением данных. Когда пользователь начинает изменять данные и изменение прерывается (например, из-за отказа сетевой службы), Access помечает файл базы данных как поврежденный. Файл можно восстановить, но после восстановления некоторые данные могут отсутствовать.

Совет : Разделение базы данных помогает предотвратить повреждение файлов базы данных и ограничивает потерю данных за счет хранения данных в отдельном файле, к которому пользователи не имеют прямого доступа.

Access выводит запрос на восстановление поврежденного файла базы данных

При попытке открыть поврежденный файл базы данных выводится запрос на автоматическое восстановление файла. Для восстановления и открытия поврежденного файла базы данных можно также вручную запустить команду Сжать и восстановить базу данных.

Если Access полностью восстановит поврежденный файл, отобразится сообщение об успешном восстановлении и необходимости проверить содержимое базы данных, чтобы убедиться в правильности данных.

В случае частичного восстановления Access отслеживает объекты базы данных, которые не удалось восстановить, чтобы пользователь смог самостоятельно определить, что ему необходимо восстановить из резервной копии.

Примечание : Можно настроить автоматическое выполнение команды «Сжать и восстановить базу данных» при каждом закрытии конкретной базы данных. Если с базой данных работает только один пользователь, этот параметр следует включить. В многопользовательских базах данных этот параметр включать не стоит, поскольку это может привести к кратковременному нарушению доступа к базе данных.

К началу страницы

Подготовка

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

  • Всегда создавайте резервные копии.    В ходе процедуры восстановления Access может удалить некоторые данные из поврежденной таблицы. Иногда эти данные можно восстановить из резервной копии. В дополнение к обычной стратегии резервирования перед выполнением команды Сжать и восстановить базу данных следует сделать резервную копию. Резервную копию можно сделать с помощью команды Резервная копия базы данных.
    • На вкладке файл нажмите кнопку Сохранить и опубликовать и в группе Дополнительно нажмите кнопку Резервное копирование базы данных.
  • Автоматическое сжатие и восстановление.    Если к базе данных не открыт общий доступ для пользователей по сети, для нее следует настроить автоматическое сжатие и восстановление.
  • Обратите внимание таблицы ошибок восстановления системы    При сможет восстановить все объекты в поврежденный файл базы данных Access в таблицу с именем MSysCompactErrors указаны все объекты, которые нельзя восстановить. В случае ошибки MSysCompactErrors таблица откроется в режим таблицы.
  • При наличии резервной копии, созданной перед повреждением базы данных, можно воспользоваться таблицей MSysCompactErrors для определения объектов, которые необходимо импортировать из резервной копии в восстановленную базу данных.

  • Получение монопольного доступа к базе данных для выполнения команды "Сжать и восстановить базу данных".    Если с базой данных работаете только вы, можно пропустить остальную часть этого раздела и перейти сразу к разделу Сжатие и восстановление базы данных.
  • Для операции сжатия и восстановления базы данных требуется монопольный доступ к файлу базы данных, поскольку при этом другие пользователи могут быть отключены. Перед выполнением операции сжатия и восстановления базы данных следует уведомить других пользователей, чтобы они не работали с ней в это время.

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

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

  • Сжатие и восстановление базы данных

Автоматическое сжатие и восстановление базы данных при ее закрытии

Автоматическое сжатие и восстановление базы данных при ее закрытии

Чтобы автоматически сжимать и и восстанавливать базу данных при ее закрытии, установите флажок Сжимать при закрытии.

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

  1. На вкладке Файл выберите команду Параметры.
  2. В диалоговом окне Параметры Access выберите категорию Текущая база данных.
  3. В группе Параметры приложений установите флажок Сжимать при закрытии.

К началу страницы

Сжатие и восстановление базы данных вручную

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

Сжатие и восстановление открытой базы данных

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

  • На вкладке файл выберите пункт сведения и нажмите кнопку Сжать и восстановить базу данных.

Сжатие и восстановление неоткрытой базы данных

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

  1. Запустите Access, но не открывайте базу данных.
  2. Выберите команду Сведения, а затем — Сжать и восстановить базу данных.
  3. В диалоговом окне База данных для сжатия перейдите к базе данных, которую нужно сжать и восстановить, и щелкните ее два раза.

Создание ярлыка на рабочем столе для сжатия и восстановления определенной базы данных

На рабочем столе можно создать ярлык для сжатия и восстановления определенной базы данных.

Прежде всего определите расположение файла Msaccess.exe на компьютере. Файл Msaccess.exe обычно находится в следующей папке:

C:\Program Files\Microsoft Office\Office14

Если по указанному адресу файл Msaccess.exe отсутствует, найдите этот файл и запомните полный путь к нему.

Создание ярлыка на рабочем столе   

  1. Щелкните правой кнопкой мыши на рабочем столе, в контекстном меню выберите пункт Создать, а затем пункт Ярлык.
  2. На первой странице мастера создания ярлыка в поле Тип размещение товара введите знак двойной кавычки (""), введите полный путь к файлу Msaccess.exe (включая имя файла), а затем введите другой двойных кавычек. (Кроме того, нажмите кнопку Обзор, найдите и выберите нужный файл. В данном случае кавычки автоматически добавляются.)
  3. Например, введите:"C: \Program Files\Microsoft Office\Office14\msaccess.exe"

  4. После закрывающей двойной кавычки вставьте пробел и введите полный путь к базе данных, которую необходимо сжать и восстановить. Если путь содержит пробелы, его необходимо заключить в двойные кавычки. Вставьте еще один пробел и введите /compact.
  5. Например, введите: "C:\Моя папка\Моя база данных.accdb" /compact

  6. Нажмите кнопку Далее.
  7. В поле Введите имя ярлыка введите имя ярлыка, а затем нажмите кнопку Готово.
  8. Мастер создаст ярлык и поместит его на рабочий стол.

  9. Когда нужно будет сжать и восстановить базу данных, дважды щелкните этот ярлык.

Совет : Чтобы добавить ярлык рабочего стола в меню Пуск, щелкните ярлык правой кнопкой мыши и выберите в меню команду Закрепить в меню «Пуск».

 
MyTetra Share v.0.52
Яндекс индекс цитирования