2009-03-23 21 views
0

У меня есть база данных, которая блокирует mdb и что я хотел бы сделать резервную копию. Однако инструмент (у меня есть источник), который я использую, открывает файл перед его резервным копированием и обнаруживает, что он заблокирован.Как открыть заблокированный файл mdb?

Есть ли способ открыть его для целей только для чтения?

Для справки инструмент использует C# и .NET 2.0 (но может быть обновлен до 3.5).

ответ

2

Это похоже на этот вопрос:

Opening a file's Shadow Copy if the current copy is in use

Это зависит от того, как база данных открывает файл MDB. Если это не разрешает доступ к чтению, вам не повезло, если вы не можете открыть теневую копию. Там в дискуссии о том, как сделать это здесь:

How do I copy a file or folder that is locked under windows programmatically?

5

Причина ваш инструмент блокирует файл, чтобы предотвратить изменения в файл, как это выполняется резервное копирование. Например, если вы начали резервное копирование, но на полпути в СУБД (т. Е. SQL Server) решили внести изменения в файл, тогда ваша резервная копия будет повреждена.

Я рекомендую вам использовать инструменты, предоставляемые с помощью своих баз данных, для выполнения резервного копирования. Другой вариант - остановить базу данных до ее резервного копирования.

+0

Пожалуйста, изучите вопрос более подробно. – Samuel

+0

@Samuel: no u. Ответ Матфея - правильный. – Welbog

+0

Нет, он имеет обратную сторону. База данных имеет исключительную блокировку чтения в файле, и инструмент не может получить блокировку. У Мэтью все наоборот. – Samuel

3

Если СУБД хранит блокировку записи в файле, и вы ее читаете, вы рискуете, что СУБД записывает файл, когда вы его читаете. В зависимости от того, какая часть была написана, вы можете получить коррумпированное резервное копирование файла. Лучше всего читать файл только в том случае, если СУБД не пишет в файл или не позволяет СУБД обрабатывать свои собственные резервные копии.

Смежные вопросы