2013-07-05 5 views
0

SQL 에이전트가 SQL Server 2005의 일일 스크립트를 작업의 일부로 실행하면 마지막 줄 set fso = nothing이 실행되지 않고 개체가 메모리에서 삭제되어 작업이 수행되지 않습니다 한 달 정도 지나면 실패합니다.SQL Sever (2005) 에이전트가 VBS 스크립트를 완료하지 않음

SQL 에이전트가이 마지막 코드 행을 실행하지 않는 데는 어떤 이유가 있습니까?

dim fso 

set fso = CreateObject("Scripting.FileSystemObject") 

If fso.FileExists("E:\Foo.mdb") Then 
    fso.DeleteFile "E:\Foo.mdb", True 
End If 

fso.CopyFile "E:\Foo.temp.mdb", "E:\Foo.mdb", True 

set fso = nothing 

답변

1

먼저 패치가 매월 나올 때마다 적용해야하므로 매월 재부팅해야합니다.

사람들이 자랑스럽게 몇 년 동안 가동 시간을 측정 한 날은 불행히도 필요한 패치주기 때문에 사라졌습니다. 진정으로 24/7/365 액세스가 필요하다면 (힌트 : 거의 없을 것입니다) 클러스터링 또는 복제가 가능한 고 가용성 설정이 필요합니다.

두 번째로, 나는 진단이 정확하다고 생각하지 않습니다. 모든 개체 은 명시 적으로 해제했는지 여부에 관계없이 VBScript 엔진 개체가 파괴 될 때이 릴리스되어야합니다. 그렇다면 FSO가 기억에 남는다고 생각합니까? 이걸 어떻게 확인 했니?

원칙적으로 sysinternals 프로세스 탐색기는 SQL Server 에이전트 프로세스에서 연결된 DLL이 언로드되었는지 확인합니다.이 프로세스는 일반적으로 마지막 개체가 삭제 된 지 몇 분 이내에 발생합니다.