블로그 이미지
LifeisSimple

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

'에러로그'에 해당되는 글 2

  1. 2010.12.22 SQL Server 2008의 syspolicy_purge_history Job 에러
  2. 2010.08.17 sp_readerrorlog (xp_readerrorlog)
2010. 12. 22. 11:33 Brain Trainning/Error Log

출처 : http://support.microsoft.com/kb/955726/ko

SQL Server 2008의 syspolicy_purge_history SQL Server 에이전트 작업에 실패할 수 있습니다.

이 페이지에서

현상

클러스터된 인스턴스에서 syspolicy_purge_history 작업을 실행할 때 Microsoft SQL Server 2008의syspolicy_purge_history SQL Server 에이전트 작업에 실패할 수 있습니다.syspolicy_purge_history 작업 기록 로그 파일에 다음과 유사한 오류 메시지가 나타날 수 있습니다.
날짜 datetime
(syspolicy_purge_history) 작업 기록 로그 

단계 ID 3 
서버 SQLVirtualName \ instancename
작업 이름 syspolicy_purge_history 
단계 이름 지우기 존재하지 않는 시스템 상태 레코드입니다. 
기간 00시: 33 
SQL 심각도 0 
SQL 메시지 ID 0 
전자 메일을 받는 연산자 
운영자에게 보낸 Net 
페이징 연산자 
재시도 0을 시도했습니다. 

메시지 
사용자로 실행: user. 작업 스크립트를 다음 오류가 발생했습니다. 이러한 오류는 스크립트가 중지되지 않았습니다: A 작업 단계 1 줄에서 오류가 PowerShell 스크립트에서 받은. '(Get-Item SQLSERVER:\SQLPolicy\SQLVirtualName\instancename).EraseSystemHealthPhantomRecords() 해당 줄이 '. 

스크립트를 수정하고 작업을 다시 예약하십시오. PowerShell에 의해 반환된 오류 정보: ' SQL Server PowerShell 공급자 오류: 연결할 수 없습니다. ' SQLVirtualName \ instancename '. [SQLVirtualName서버에 연결하지 못했습니다. \ instancename. 서버에 연결하는 동안--> 오류가 발생했습니다. 

SQL Server 2005 연결할 때 기본 설정에서 SQL Server 원격 연결을 허용하지 않도록 팩트에 의해 이 오류가 발생할 수 있습니다. (provider: Named Pipes Provider, error: 40-Could not open a connection to SQL Server)] SQLVirtualName 서버에 연결하지 못했습니다. \ instancename. 서버에 연결하는 동안 오류가 발생했습니다. SQL Server 2005 연결할 때 기본 설정에서 SQL Server 원격 연결을 허용하지 않도록 팩트에 의해 이 오류가 발생할 수 있습니다. (공급자: 명명된 파이프 공급자 오류: 40 - SQL Server로의 연결을 열 수 없습니다.) ' 

작업 단계 1 줄에서 오류가 PowerShell 스크립트에서 받았습니다. '(Get-Item SQLSERVER:\SQLPolicy\SQLVirtualName\instancename).EraseSystemHealthPhantomRecords() 해당 줄이 '. 스크립트를 수정하고 작업을 다시 예약하십시오. PowerShell에 의해 반환된 오류 정보: '경로를 찾을 수 없습니다.' SQLSERVER:\SQLPolicy\ SQLVirtualName \ instancename ' 존재하지 않기 때문에. ' 작업 단계를 PowerShell 스크립트를 1 줄에서 오류를 받았습니다. '(Get-Item SQLSERVER:\SQLPolicy\SQLVirtualName\instancename).EraseSystemHealthPhantomRecords() 해당 줄이 '. 스크립트를 수정하고 작업을 다시 예약하십시오. PowerShell에 의해 반환된 오류 정보: ' null 값 식에 대해 메서드를 호출할 수 없습니다. '. 프로세스 종료 코드 -1입니다. 단계가 실패했습니다.

원인

syspolicy_purge_history 작업 클러스터 인스턴스의 가상 서버 이름 대신 컴퓨터 노드 이름을 사용하는 경우 이 문제가 발생할 수 있습니다.

해결 방법

이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.

방법 1: syspolicy_purge_history 작업 편집

syspolicy_purge_history 작업 단계를 3 편집하십시오. 이렇게 하려면 다음과 같이 하십시오.
  1. SQL Server 관리 Studio 시작하십시오.
  2. SQL Server 에이전트 를 확장한 다음 작업 확장하십시오.
  3. syspolicy_purge_history, 마우스 오른쪽 단추로 클릭한 다음 속성 을 클릭하십시오.
  4. 단계 를 클릭하십시오.
  5. 존재하지 않는 시스템 상태 레코드 지우기 를 클릭한 다음 편집 을 클릭하십시오.
  6. 명령 상자에서 클러스터 인스턴스의 가상 서버 이름을 사용하여 컴퓨터 노드 이름을 바꿉니다.
  7. 확인 을 누른 다음 닫기 를 클릭하십시오.

방법 2: syspolicy_purge_history 작업을 다시 만들기

syspolicy_purge_history 작업 다시 만들려면 다음 Transact-SQL 문을 실행하십시오.
DECLARE @jobId uniqueidentifier

-- Obtain the current job identifier that is associated with the PurgeHistory
SELECT @jobId = CAST(current_value AS uniqueidentifier)
FROM msdb.dbo.syspolicy_configuration_internal
WHERE name = N'PurgeHistoryJobGuid'

-- Delete the job identifier association in the syspolicy configuration

DELETE FROM msdb.dbo.syspolicy_configuration_internal
WHERE name = N'PurgeHistoryJobGuid'

-- Delete the offending job
EXEC msdb.dbo.sp_delete_job @job_id = @jobId

-- Re-create the job and its association in the syspolicy configuration table
EXEC msdb.dbo.sp_syspolicy_create_purge_job
posted by LifeisSimple
2010. 8. 17. 16:23 Brain Trainning/DataBase

sp_readerrorlog

CREATE PROC [sys].[sp_readerrorlog]
   
@p1     INT = 0
   
@p2     INT = NULL, 
   
@p3     VARCHAR(255NULL, 
   
@p4     VARCHAR(255NULL) 
AS 
BEGIN 

   IF 
(NOT IS_SRVROLEMEMBER(N'securityadmin'1
   
BEGIN 
      RAISERROR
(15003,-1,-1N'securityadmin'
      
RETURN (1
   
END 
    
   IF 
(@p2 IS NULL) 
       
EXEC sys.xp_readerrorlog @p1 
   
ELSE 
       EXEC 
sys.xp_readerrorlog @p1,@p2,@p3,@p4 
END


xp_readerrorlog

Even though sp_readerrolog accepts only 4 parameters, the extended stored procedure accepts at least 7 parameters.

If this extended stored procedure is called directly the parameters are as follows:

  1. Value of error log file you want to read: 0 = current, 1 = Archive #1, 2 = Archive #2, etc...
  2. Log file type: 1 or NULL = error log, 2 = SQL Agent log
  3. Search string 1: String one you want to search for
  4. Search string 2: String two you want to search for to further refine the results
  5. Search from start time  
  6. Search to end time
  7. Sort order for results: N'asc' = ascending, N'desc' = descending
EXEC master.dbo.xp_readerrorlog 61'2005''exec', NULL, NULL, N'desc' 
EXEC master.dbo.xp_readerrorlog 61'2005''exec', NULL, NULL, N'asc'


- 날짜 조회 방법
exec master.dbo.xp_readerrorlog 0, 1, null, null, '2010-08-15', '2010-08-17', N'asc'

posted by LifeisSimple
prev 1 next