2020年11月12日 星期四
SQL SERVER出現The activated proc '[dbo].[sp_syspolicy_events_reader]' running on queue 'msdb.dbo.syspolicy_event_queue' output the following: 'Cannot execute as the database principal because the principal "##MS_PolicyEventProcessingLogin##" does not exist, this type of principal cannot be impersonated, or you do not have permission.' 錯誤
在SQL SERVER的LOG上有發現這個錯誤訊息,每5秒出現一則,原因為msdb使用還原的方式且系統架構由C變為C、D
先使用以下命令檢查,會發現master和msdb的SID不一樣
USE master
SELECT * FROM sys.database_principals
WHERE [name] = '##MS_PolicyEventProcessingLogin##'
go
USE msdb
SELECT * FROM sys.database_principals
WHERE [name] = '##MS_PolicyEventProcessingLogin##'
go
使用以下命令來修正
use [master]
go
exec sp_change_users_login 'Auto_Fix', '##MS_PolicyEventProcessingLogin##';
go
use [msdb]
go
exec sp_change_users_login 'Auto_Fix', '##MS_PolicyEventProcessingLogin##';
go
再使用以下命令來檢查是否有修正
USE master
SELECT * FROM sys.database_principals
WHERE [name] = '##MS_PolicyEventProcessingLogin##'
go
USE msdb
SELECT * FROM sys.database_principals
WHERE [name] = '##MS_PolicyEventProcessingLogin##'
go
參考資料
https://dbamohsin.wordpress.com/2017/01/12/cannot-execute-as-the-database-principal-because-the-principal-ms_policyeventprocessinglogin/
SQL SERVER 維護計畫無法啟用,出現SSIS 子系統無法載入 [see the SQLAGENT.OUT file for details]; 已暫停作業
當MSDB使用還原的方式,如果SQL SERVER架構變更,例如由C碟改為C、D兩碟,在使用SQL維護計畫時SQL Agent會有錯誤發生,導致無法執行維護計畫
解決方法如下
檢查MSDB的資料
select * from msdb.dbo.syssubsystems
會發現subsystem_dll的資料仍然是指到C碟
執行以下指令
delete from msdb.dbo.syssubsystems
exec msdb.dbo.sp_verify_subsystems 1
再重新啟動 Agent 服務即可
參考資料
https://byronhu.wordpress.com/2011/07/04/sql-agent-job-%E6%9A%AB%E5%81%9Csuspend/
2019年5月14日 星期二
TSQL取得SQL SERVER IP
SELECT
CONNECTIONPROPERTY('net_transport') AS net_transport,
CONNECTIONPROPERTY('protocol_type') AS protocol_type,
CONNECTIONPROPERTY('auth_scheme') AS auth_scheme,
CONNECTIONPROPERTY('local_net_address') AS local_net_address,
CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port,
CONNECTIONPROPERTY('client_net_address') AS client_net_address
CONNECTIONPROPERTY('net_transport') AS net_transport,
CONNECTIONPROPERTY('protocol_type') AS protocol_type,
CONNECTIONPROPERTY('auth_scheme') AS auth_scheme,
CONNECTIONPROPERTY('local_net_address') AS local_net_address,
CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port,
CONNECTIONPROPERTY('client_net_address') AS client_net_address
2014年7月8日 星期二
SQL SERVER 2008R2 的轉送交易紀錄(Log Shipping)
在設定轉送交易紀錄時,需要建立一個網路分享目錄,提供給次要伺服器讀取備份資料,
在主體及次要伺服器的SQL Server和SQL Server Agent的服務啟動帳號必須調整,
如果是網域架構建議要設成網域的帳號並在分享目錄的權限中需加入主體及次要的SQL Server和SQL Server Agent的服務啟動帳號,如果是使用本機帳號,則主體及次要必須要有相同帳號密碼的帳號並設為SQL Server和SQL Server Agent的服務啟動帳號.
如果要啟用次要伺服器上的資料庫,須先停止Log Shipping,然後在次要資料庫中的master中,使用RESTORE DATABASE dbname WITH RECOVERY將資料庫從還原狀態變成啟用狀態
在主體及次要伺服器的SQL Server和SQL Server Agent的服務啟動帳號必須調整,
如果是網域架構建議要設成網域的帳號並在分享目錄的權限中需加入主體及次要的SQL Server和SQL Server Agent的服務啟動帳號,如果是使用本機帳號,則主體及次要必須要有相同帳號密碼的帳號並設為SQL Server和SQL Server Agent的服務啟動帳號.
如果要啟用次要伺服器上的資料庫,須先停止Log Shipping,然後在次要資料庫中的master中,使用RESTORE DATABASE dbname WITH RECOVERY將資料庫從還原狀態變成啟用狀態
2014年5月29日 星期四
資料表如果有新增欄位要填入另一連集資料表的值,可用下列語法
update custom set id=b.id from custom a inner join user b on a.userna=b.userna
訂閱:
文章 (Atom)