Прервите соединения с базой данных в MS Sql Server 2000

StackOverflow https://stackoverflow.com/questions/820231

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение 3

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

Другие советы

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

РЕЗЕРВНЫЙ ЛОГ С NO_LOG для отмены страниц из журнала,

sp_helpdb для поиска имен файлов базы данных

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

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

ALTER DATABASE [YourDB] SET SINGLE_USER WITH NO_WAIT

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

Делает

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

ALTER DATABASE [DB_NAME_HERE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE [DB_NAME_HERE] SET MULTI_USER
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top