유지 관리 계획을 한 SQL Server 2012에서 다른 SQL Server 2012로 복사하는 방법이 있습니까? 두 서버 모두 동시에 다른 네트워크에서 동일한 Management Studio 사본을 통해 액세스 할 수 없습니다.
유지 관리 계획을 한 SQL Server 2012에서 다른 SQL Server 2012로 복사하는 방법이 있습니까? 두 서버 모두 동시에 다른 네트워크에서 동일한 Management Studio 사본을 통해 액세스 할 수 없습니다.
답변:
작업이있는 서버로 이동하고 Management Studio의 Object Explorer에서 Management> SQL Server Agent로 이동하여 Jobs 폴더를 강조 표시하십시오. 적중 F7(또는보기> 오브젝트 탐색기 세부 사항). 오른쪽 창에 여러 작업이 나타납니다. 복사 할 항목을 강조 표시하고 마우스 오른쪽 단추로 작업을 다른 이름으로 스크립트> 작성 대상> 클립 보드로 클릭하십시오. 이제 다른 서버에 연결하고 새 쿼리 창을 열고 붙여 넣은 다음 F5를 누르십시오. SSIS를 사용하는 것보다 훨씬 쉽습니다.
계획에 따라 추가 단계를 수행해야 할 수도 있습니다. 데이터베이스 인스턴스가 아닌 Integration Services 인스턴스에 연결하고 저장된 패키지> MSDB> 유지 보수 계획을 펼친 후 계획을 마우스 오른쪽 단추로 클릭하고 패키지 내보내기를 선택하십시오. 다른 서버에서 동일한 단계를 수행하지만 유지 관리 계획을 마우스 오른쪽 단추로 클릭하고 패키지 가져 오기를 선택하십시오. 각 계획마다이 작업을 수행해야합니다.
더 많은 해킹 방법을 찾았습니다.
모든 실행 계획은 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을 편집하고 일정을 재설정 한 후 저장해야합니다.