Как настроить сервер sql для отправки мне электронных писем, когда базы данных достигают максимального размера? - PullRequest
1 голос
/ 25 августа 2011

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

Я подумал, что хотел бы знать, когда я подхожу к максимальному размеру. Я знаю, как настроить сервер sql для уведомлений по электронной почте, но я отправлял только тестовые сообщения. Я посмотрел на свойства своих баз данных, надеясь, что у меня появятся некоторые опции, связанные с электронной почтой, но я ничего не увидел.

Я видел, где вы можете отправить электронное письмо после работы, так что я надеюсь, что вы тоже можете это сделать. Кто-нибудь знает, как мне этого добиться?

1 Ответ

0 голосов
/ 25 августа 2011

sys.database_files имеет столбец size, в котором хранится количество страниц. Страница занимает 8 КБ, поэтому вам нужно умножить ее на 8 * 1,024, что составляет 8,192. Это покажет нам размер файла на диске. Просто замените [database name] на фактическое имя вашей базы данных и настройте проверку размера, если вы хотите, чтобы в качестве порога предупреждения использовалось что-то отличное от 2 ГБ.

DECLARE @size DECIMAL(20,2);
SELECT @size = SUM(size * 8.192)/1000 FROM [database name].sys.database_files;
IF @size >= 2000 -- this is in MB
BEGIN
    -- send e-mail
END

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

...