1. SQL Server 2005 以上版本,利用 TempDB 建立時間來判斷
SELECT
[create_date]
FROM [sys].[databasees]
WHERE [database_id] = 2
2. SQL Server 2008 以上版本,利用 sys.dm_os_sys_info SELECT
[sqlserver_start_time]
FROM [sys].[dm_os_sys_info]
3. SQL Server 2012 以上版本,利用 sys.dm_server_services
SELECT
ServiceName ,
Last_Startup_Time
FROM sys.dm_server_services
4. SSMS 報表 - 伺服器儀錶板
-- Step 1:預存程序只能存在於 master 資料庫
USE master
GO
-- Step 2:判斷欲建立的預存程序是否存在,存在的話則刪除預存程序
IF OBJECT_ID('[dbo].[uspSQLStart]') IS NOT NULL
DROP PROC [dbo].[uspSQLStart]
-- Step 3:預存程序利用 msdb.dbo.sp_send_dbmail 來發信,當然前提是 Database Mail 已經設定好
CREATE PROC [dbo].[uspSQLStart]
AS
DECLARE @Text varchar(512)
SET @Text = 'The SQL Server [' + @@SERVERNAME + '].[' + @@SERVICENAME + '] ' +
'restart at ' + CONVERT(char(19),GETDATE(),120) + '.'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Database Mail Profile' ,
@recipients = '收件者Email' ,
@subject = 'SQL Server 通知 - SQL Server 執行個體已經啟動' ,
@body = @Text ,
@body_format = 'TEXT'
GO
-- Step 4:最後利用 sp_procoption 把預存程序設為自動執行
EXEC sp_procoption N'uspSQLStart' , 'startup' , 'on'
GO
-- Step 5:重新啟動 SQL Server instance 就可以收到 Email 通知囉
沒有留言:
張貼留言