У меня есть сервер базы данных, на котором запущено несколько экземпляров базы данных. У меня возникают проблемы при доступе к конкретной базе данных, и я хочу перезапустить ее, но без перезапуска всего сервера db, поскольку это повлияет на другие базы данных в экземпляре или других экземплярах на том же сервере.
Есть ли перезапуск одной базы данных с помощью командной строки или любых других средств?
Отсоединение базы данных от сервера и ее присоединение обратно или перевод в автономный режим и возврат в оперативный режим - это то же самое, что перезапуск этой базы данных?
Примечание: просто чтобы добавить его сервер MSSQL 2005, размещенный на win2k3.
Я не знаю, эквивалентен ли отключение отдельной БД с последующим ее повторным включением перезапуску службы SQL (по крайней мере, с точки зрения БД - это определенно не для службы), но это "сбросит" БД до степень закрытия всех существующих соединений и отката всех открытых транзакций. Если это тот эффект, который вам нужен, этого может быть достаточно, и он не повлияет на другие базы данных, работающие в этом экземпляре SQL.
Из SSMS вы можете использовать этот SQL:
-- 'rollback immediate' will disconnect existing users w/out
-- waiting for transactions to finish.
ALTER DATABASE MyDatabase SET OFFLINE WITH ROLLBACK IMMEDIATE
go
ALTER DATABASE MyDatabase SET ONLINE
go
Какие проблемы вы видите при доступе к этой конкретной базе данных? Если это повреждение базы данных, перезапуск базы данных не даст никакого эффекта, но это часто делается.
На всякий случай, если это повреждение, вам нужно выяснить масштаб проблемы: DBCC CHECKDB (yourdb) WITH NO_INFOMSGS, ALL_ERRORMSGS
А затем либо выполните восстановление из резервных копий, либо извлеките данные в новую базу данных, либо, в крайнем случае, выполните восстановление базы данных. Множество плюсов и минусов для каждого из них, в зависимости от того, что у вас не так, но я не буду наводнять эту тему подробностями и ссылками, если у вас действительно нет проблем с коррупцией. А если дело в повреждении, вы всегда можете позвонить в службу поддержки продуктов, чтобы помочь вам вылечиться в режиме реального времени, а не полагаться на форум.
Спасибо