Назад | Перейти на главную страницу

Переназначение / изменение основного файла журнала - SQL 2000

У меня есть большая база данных (называемая Navision4), в которой в настоящее время есть 2 файла журнала:

Navision4_Log Navision4_Log3

Там был журнал под названием Navision4_Log2, но мне удалось это удалить.

Navision4_Log находится на диске C: \ и не используется. Navision4_Log3 расположен на диске G: \ - но огромен - и, похоже, именно здесь записываются все транзакции.

Однако я хочу удалить один, оставив только один файл журнала.

Как мне это сделать? Пытался удалить Navision4_Log - получил:

Ошибка 5020: основные данные или файл журнала не могут быть удалены из базы данных.

Какую модель восстановления использует ваша база данных? вы регулярно делаете резервные копии журналов? Если вы полностью восстанавливаетесь и не делаете резервные копии журналов, это может объяснить, почему Navision4_Log3 такой большой. Вы должны исправить это, создав резервные копии журналов или переключившись на простое восстановление.

Я бы переместил Navision4_Log на диск G, а не пытался удалить его. Я предполагаю, что Navision4_Log3 существует, потому что на сервере не хватало места на C: и администратор не знал, как его переместить.

Чтобы переместить файл журнала в G: используйте следующее:

ИЗМЕНИТЬ БАЗУ ДАННЫХ Navision4 ВЫБРАТЬ ОФЛАЙН;
- переместить файл журнала в G:
ИЗМЕНИТЬ БАЗУ ДАННЫХ Navision4
ИЗМЕНИТЬ ФАЙЛ (
ИМЯ = 'Navision4_Log',
FILENAME = 'G: \ MSSQL \ TLOG \ Navision4_Log.ldf');
ИЗМЕНИТЬ БАЗУ ДАННЫХ Navision4 SET ONLINE;

** РЕДАКТИРОВАТЬ: ** SQL Server 2000 не поддерживает эти параметры, поэтому вам придется использовать процедуры sp_detachdb и sp_attachdb, вы также можете отсоединить и подключить в графическом интерфейсе Enterprise Manager. Просто убедитесь, что вы прикрепили db и указали владельца как sa.

Затем вы можете удалить Navision4_Log3, если хотите. Что вам нужно сделать (если вы полностью восстановились), это сделать резервную копию журнала, а затем сжать журнал, используя DBCC SHRINKFILE('Navision4_Log3', EMPTYFILE) Возможно, вам потребуется сделать несколько резервных копий и несколько сжать, прежде чем файл опустеет, и тогда вы сможете его удалить.

Так как это реплицированная база данных, вам придется удалить репликацию перед отсоединением. SQL Server 2000 не позволит вам отсоединить реплицированную базу данных.

После того, как Ник будет прав, отсоедините базу данных и повторно подключите только с единственным файлом, который вы хотите использовать на G: