유지 관리 계획을 다른 서버에 복사


19

유지 관리 계획을 한 SQL Server 2012에서 다른 SQL Server 2012로 복사하는 방법이 있습니까? 두 서버 모두 동시에 다른 네트워크에서 동일한 Management Studio 사본을 통해 액세스 할 수 없습니다.

답변:


20

작업이있는 서버로 이동하고 Management Studio의 Object Explorer에서 Management> SQL Server Agent로 이동하여 Jobs 폴더를 강조 표시하십시오. 적중 F7(또는보기> 오브젝트 탐색기 세부 사항). 오른쪽 창에 여러 작업이 나타납니다. 복사 할 항목을 강조 표시하고 마우스 오른쪽 단추로 작업을 다른 이름으로 스크립트> 작성 대상> 클립 보드로 클릭하십시오. 이제 다른 서버에 연결하고 새 쿼리 창을 열고 붙여 넣은 다음 F5를 누르십시오. SSIS를 사용하는 것보다 훨씬 쉽습니다.

계획에 따라 추가 단계를 수행해야 할 수도 있습니다. 데이터베이스 인스턴스가 아닌 Integration Services 인스턴스에 연결하고 저장된 패키지> MSDB> 유지 보수 계획을 펼친 후 계획을 마우스 오른쪽 단추로 클릭하고 패키지 내보내기를 선택하십시오. 다른 서버에서 동일한 단계를 수행하지만 유지 관리 계획을 마우스 오른쪽 단추로 클릭하고 패키지 가져 오기를 선택하십시오. 각 계획마다이 작업을 수행해야합니다.


11

더 많은 해킹 방법을 찾았습니다.

모든 실행 계획은 msdb.sysssispackages테이블 에서 하나의 레코드입니다 .

msdb.sysssispackages원본 서버 msdb.sysssispackages테이블에서 대상 서버 테이블로 레코드를 복사 할 수 있습니다 .

소스 서버에 링크 된 서버를 작성하고 소스 서버에서이 삽입을 사용하십시오.

INSERT INTO 
    YOUR-DEST-SERVER-NAME.msdb.dbo.sysssispackages
SELECT        
    name, 
    id, 
    description, 
    createdate, 
    folderid, 
    ownersid, 
    cast(
        cast(
            replace(
                cast(
                    CAST(packagedata AS VARBINARY(MAX)) AS varchar(max)
                ), 
            'YOUR-SOURCE-SERVER-NAME', 'YOUR-DEST-SERVER-NAME') 
        as XML) 
    as VARBINARY(MAX)) as packagedata, 
    packageformat, 
    packagetype, 
    vermajor, 
    verminor, 
    verbuild, 
    vercomments, 
    verid, 
    isencrypted, 
    readrolesid, 
    writerolesid

FROM
    msdb.dbo.sysssispackages AS sysssispackages_1
WHERE        
    (name = 'YourMaintenancePlanName')

정보 : 서버 이름 바꾸기는 유지 관리 계획 디자이너에서 대상 연결을 처리하는 데 중요합니다.

중요 : 레코드 복사는 유지 관리 계획의 구조 만 복사합니다. 작업을 다시 만들려면 복사를 마칠 때마다 모든 Mantainence Plan을 편집하고 일정을 재설정 한 후 저장해야합니다.


1
replace ( 'ab \', 'yz \')에 후행 백 슬래시를 사용하여 데이터의 다른 부분을 바꾸지 않도록하십시오.
crokusek 2018

-2
  1. 그렇지 않으면 "sa"로 로그가 표시되지 않습니다.

  2. 빨리 보려면 :

여기에 이미지 설명을 입력하십시오


OP는 작업과 별 개인 유지 보수 계획에 대해 요청했으며 작업에 대해 작성 스크립트를 생성 할 수 없습니다.
Jordan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.