Прервите соединения с базой данных в MS Sql Server 2000 - PullRequest
1 голос
/ 04 мая 2009

У меня есть база данных, с которой у нас проблемы. Каким-то образом журнал стал 400 Гб, и база данных стала бесполезной. Я хочу отбросить все существующие подключения к базе данных, а затем отсоединить базу данных.

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

Ответы [ 4 ]

1 голос
/ 04 мая 2009

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

ALTER DATABASE [YourDB] SET SINGLE_USER WITH NO_WAIT

Когда вы закончите, верните его в многопользовательский режим. ALTER DATABASE [YourDB] SET MULTI_USER с NO_WAIT

Есть

резервное копирование журнала yourdb с помощью truncate_only, а затем dbcc shrinkdatabase (yourdb) не сокращает файл журнала для вас?

1 голос
/ 04 мая 2009

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

BACKUP LOG WITH NO_LOG для игнорирования страниц из журнала,

sp_helpdb для просмотра имен файлов БД

DBCC SHRINKFILE ('имя файла журнала', 0) - для объединения физического файла до указанного размера.

0 голосов
/ 03 ноября 2009
ALTER DATABASE [DB_NAME_HERE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE [DB_NAME_HERE] SET MULTI_USER
0 голосов
/ 07 мая 2009

Ну, в принципе, никакие команды не будут выполняться с базой данных вообще. В итоге мы отключили сервис, создали пустые копии файлов mdf и ldf и заменили те, что используются сервером sql. После этого мы восстановили базу данных из последней резервной копии и вуаля, она снова работает (в основном).

...