Support & Assists

Статьи и заметки системного администратора o Windows, Linux и хитростях работы с ПК

Здравствуйте.

 

Давайте представим следующую ситуацию, у вас есть большая база данных exchange, которая находится на диске D, и вам необходимо выполнить её дефрагментацию. Вроде бы всё понятно eseutil /d, но вот не задача обьём свободного места на диске  ничтожно мал и стремится к 0, выполнить дефрагментацию вам не дадут.

 

 

Нам надо скопировать нашу базу данных на диск, где обьём свободного пространства составляет > объёма базы.

Выполнять можно как из bat’ника, так и из shell’а exchange.

Для разового прогона  будем делать из под shell’а.

Запускаем Exchange Management Shell, и вписываем:

eseutil /y c:\exchange\base.edb D:\new_folder\base.edb

c:\exchange\base.edb – наша база данных.

D:\new_folder\base.edb – диск с свободным пространством.

Копирование пройдёт куда быстрее, чем из под проводника.

Дождались 100% выполнения копирования.

 

 

Теперь мы можем выполнить дефрагментацию.

Пару строк о ней:

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

Из shell’а пишем:

eseutil /d  D:\new_folder\base.edb

Начнётся процесс дефрагментации, не забываем отключать базу,  ждём окончания.

Всё, база сжата, проверена и теперь точно таким же методом переносим её на родной диск.

eseutil /y D:\new_folder\base.edb c:\exchange\base.edb

Вуаля, мы имеем свеже-отформатированную базу в старом каталоге.

Так же, чтобы не доводить до греха, либо чистите Log’и, если они находятся у вас на том же диске, что и база, ведь если у вас не включено «цикличное ведение журнала» то вам придётся удалять их руками.

Для примера логи реплики базы данных объёма 34 gb.

 

Добавить комментарий


Счётчики

Яндекс.Метрика Рейтинг@Mail.ru