Базы данных могут быстро увеличиваться в размере по мере использования, что иногда снижает их быстродействие. Кроме того, они могут повреждаться. Для предотвращения и исправления таких проблем можно использовать команду Microsoft Office Access Сжать и восстановить базу данных.
В данной статье не описывается резервное копирование и восстановление баз данных. Ссылки на дополнительные сведениями можно найти в разделе См. также.
Примечание: После сжатия и восстановления уже опубликованной веб-базы данных не забудьте синхронизировать ее. Сжатие и восстановление могут не устранить все проблемы, возникающие с опубликованной веб-базой данных.
В этом разделе...
Зачем нужно сжимать и восстанавливать базу данных
Команда Сжать и восстановить базу данных помогает предотвратить и исправить следующие проблемы, которые могут возникнуть с базой данных: увеличение размеров файлов по мере использования и повреждение файлов.
Увеличение размера файлов базы данных по мере использования
По мере добавления и обновления данных, а также изменения их структуры размер файла базы данных увеличивается. Это происходит отчасти из-за добавления новых данных, а отчасти — по другим причинам:
-
Access создает временные скрытые объекты для выполнения различных задач. Иногда временные объекты остаются в базе данных, когда они уже не нужны.
-
При удалении объекта базы данных занимаемое им место на диске автоматически не освобождается — файл базы данных по-прежнему занимает место на диске даже после удаления.
По мере заполнения файла базы данных остатками временных и удаленных объектов его быстродействие может снизиться. Объекты могут открываться медленнее, а запросы и операции — выполняться дольше обычного.
Примечание: При сжатии сами данные не сжимаются — файл базы данных становится меньше за счет удаления неиспользуемого пространства.
Повреждение файлов базы данных
При некоторых обстоятельствах файл базы данных может быть поврежден. Если к файлу базы данных открыт общий доступ по сети и несколько пользователей одновременно работают с ним напрямую, существует небольшой риск его повреждения. Риск повреждения тем выше, чем чаще пользователи изменяют данные в полях Memo. Кроме того, он растет со временем. Снизить риск можно с помощью команды Сжать и восстановить базу данных.
Зачастую такого рода повреждения вызваны проблемой с модулем Visual Basic для приложений (VBA) и не приводят к потере данных. Однако они могут привести к нарушению структуры базы данных, например потере кода VBA или ошибкам форм.
Иногда повреждение файла базы данных приводит к потере данных. Обычно эта потеря ограничивается потерей последнего действия одного пользователя, то есть единичного изменения данных. Когда пользователь начинает изменять данные и изменение прерывается (например, из-за отказа сетевой службы), Access помечает файл базы данных как поврежденный. Файл можно восстановить, но после восстановления некоторые данные могут отсутствовать.
Совет: Разделение базы данных помогает предотвратить повреждение файлов и ограничивает потерю данных за счет хранения данных в отдельном файле, к которому пользователи не имеют прямого доступа.
Запрос на восстановление поврежденного файла базы данных
При попытке открыть поврежденный файл базы данных выводится запрос на автоматическое восстановление файла. Для восстановления и открытия поврежденного файла базы данных можно также вручную запустить команду Сжать и восстановить базу данных.
Если Access полностью восстановит поврежденный файл, отобразится сообщение об успешном восстановлении и необходимости проверить содержимое базы данных, чтобы убедиться в правильности данных.
В случае частичного восстановления Access отслеживает объекты базы данных, которые не удалось восстановить, чтобы пользователь смог самостоятельно определить, что ему необходимо восстановить из резервной копии.
Примечание: Вы можете настроить автоматическое выполнение команды "Сжать и восстановить базу данных" при каждом закрытии определенной базы данных. Если вы являетесь единственным пользователем базы данных, следует включить этот параметр. В многопользовательских базах данных этот параметр включать не стоит, поскольку это может привести к кратковременному нарушению доступа к базе данных.
Подготовка
Перед началом сжатия и восстановления рекомендуется сделать следующее:
-
Всегда создавайте резервные копии. В ходе восстановления Access может удалить некоторые данные из поврежденных таблиц. Иногда эти данные можно восстановить из резервной копии. В дополнение к обычным процедурам резервного копирования следует создавать резервную копию перед выполнением команды Сжать и восстановить базу данных. Резервную копию можно сделать с помощью команды Резервная копия базы данных:
-
На вкладке Файл нажмите кнопку Сохранить и опубликовать, а затем в разделе Дополнительно — кнопку Резервная копия базы данных.
-
-
Используйте автоматическое сжатие и восстановление. Если к базе данных не открыт общий доступ по сети, для нее следует настроить автоматическое сжатие и восстановление.
-
Просмотрите системную таблицу ошибок восстановления. Если Access не может восстановить некоторые объекты в поврежденном файле данных, они заносятся в таблицу под названием MSysCompactErrors. При наличии ошибок таблица MSysCompactErrors открывается в режиме таблицы.
Если у вас есть резервная копия, созданная перед повреждением базы данных, с помощью таблицы MSysCompactErrors можно определить объекты, которые необходимо импортировать из нее в восстановленную базу данных.
-
Получите монопольный доступ к базе данных для выполнения команды Сжать и восстановить базу данных. Если с базой данных работаете только вы, можно пропустить остальную часть этого раздела и сразу перейти к разделу Сжатие и восстановление базы данных.
Для операции сжатия и восстановления базы данных требуется монопольный доступ к файлу базы данных, так как она может привести к отключению других пользователей. Перед выполнением сжатия и восстановления базы данных следует уведомить других пользователей, чтобы они не работали с ней в это время.
Сообщите пользователям, как долго они не должны работать с базой данных. Если вы регулярно выполняете сжатие и восстановление, отмечайте, как долго выполняется эта операция. Это позволит более точно оценить, как долго пользователи не должны работать с базой данных.
-
Получите разрешения для выполнения сжатия и восстановления. Если вы используете файл базы данных более ранней версии и входите в состав рабочей группы, вероятно, вы не сможете сжать и восстановить базу данных самостоятельно. Если у вас нет нужных разрешений, обратитесь за помощью к администратору рабочей группы.
Сжатие и восстановление базы данных
Автоматическое сжатие и восстановление базы данных при ее закрытии
Чтобы автоматически сжимать и восстанавливать базу данных при ее закрытии, установите флажок Сжимать при закрытии.
Примечание: Этот параметр влияет только на открытую в данный момент базу данных. Его потребуется задать отдельно для каждой базы данных, которую вы хотите автоматически сжимать и восстанавливать.
-
На вкладке Файл нажмите кнопку Параметры.
-
В диалоговом окне Параметры Access щелкните элемент Текущая база данных.
-
В разделе Параметры приложений установите флажок Сжимать при закрытии.
Сжатие и восстановление базы данных вручную
В дополнение к использованию параметра Сжимать при закрытии или вместо него команду Сжать и восстановить базу данных можно запускать вручную. Команду можно выполнить, когда база данных открыта или не открыта. Кроме того, вы можете создать ярлык на рабочем столе для запуска команды Сжать и восстановить базу данных для определенного файла базы данных.
Сжатие и восстановление открытой базы данных
Примечание: Если другие пользователи в настоящий момент работают с файлом базы данных, операцию сжатия и восстановления нельзя выполнить.
-
На вкладке Файл перейдите к разделу Сведения и нажмите кнопку Сжать и восстановить базу данных.
Сжатие и восстановление неоткрытой базы данных
Примечание: Если другие пользователи в настоящий момент работают с файлом базы данных, операцию сжатия и восстановления нельзя выполнить. Во время сжатия и восстановления никто не должен использовать файл базы данных.
-
Запустите Access, но не открывайте базу данных.
-
Выберите Сведения и нажмите кнопку Сжать и восстановить базу данных.
-
В диалоговом окне База данных для сжатия перейдите к базе данных, которую вы хотите сжать и восстановить, и щелкните ее два раза.
Создание ярлыка на рабочем столе для сжатия и восстановления определенной базы данных
На рабочем столе можно создать ярлык для сжатия и восстановления определенной базы данных.
Прежде всего определите, где находится файл Msaccess.exe. Он обычно хранится в следующей папке:
C:\Program Files\Microsoft Office\Office14
Если в указанном расположении нет файла Msaccess.exe, найдите его и запишите полный путь к нему.
Создание ярлыка на рабочем столе
-
Щелкните правой кнопкой мыши рабочий стол, в контекстном меню выберите команду Создать, а затем — Ярлык.
-
На первой странице мастера создания ярлыка в поле Укажите расположение объекта откройте кавычки ("), укажите полный путь к файлу Msaccess.exe (включая имя файла) и закройте кавычки. (Можно также нажать кнопку Обзор и выбрать нужный файл. В этом случае кавычки будут добавлены автоматически.)
Например, введите: "C: \Program Files\Microsoft Office\Office14\msaccess.exe"
-
После закрывающей двойной кавычки вставьте пробел и введите полный путь к базе данных, которую вы хотите сжать и восстановить. Если путь содержит пробелы, его необходимо заключить в двойные кавычки. Вставьте еще один пробел и введите /compact.
Например, введите: "C:\Моя папка\Моя база данных.accdb" /compact
-
Нажмите кнопку Далее.
-
В поле Введите имя ярлыка введите имя для создаваемого ярлыка, а затем нажмите кнопку Готово.
Мастер создаст ярлык и поместит его на рабочий стол.
-
Когда вы захотите сжать и восстановить базу данных, дважды щелкните этот ярлык.
Совет: Чтобы добавить ярлык рабочего стола в меню Пуск, щелкните ярлык правой кнопкой мыши и выберите в контекстном меню команду Закрепить в меню "Пуск".