패키지 구성에 다른 데이터베이스 연결을 어떻게 사용합니까?

StackOverflow https://stackoverflow.com/questions/38766

  •  09-06-2019
  •  | 
  •  

문제

SQL Server 패키지 구성 테이블에서 일부 변수 데이터를 설정하는 SSIS 패키지가 있습니다.("구성 설정 직접 지정" 옵션 선택)

이는 패키지를 개발할 때 지정한 데이터베이스 연결을 사용할 때 잘 작동합니다.그러나 테스트 환경(에이전트 작업 또는 패키지 직접 실행)의 서버(64비트)에서 실행하고 연결 관리자에서 새 연결 문자열을 지정하면 패키지가 여전히 DB 서버의 설정을 읽습니다. 내가 개발할 때 지정한 것입니다.

다른 모든 연결은 올바른 연결 문자열을 사용하지만 잘못된 위치에서 읽는 패키지 구성인 것 같습니다.

어떤 아이디어가 있습니까? 아니면 제가 정말 잘못하고 있습니까?

도움이 되었습니까?

해결책

제가 할 수 있었던 유일한 방법은 Windows 환경 변수를 사용하는 것이었습니다.환경 변수에 연결 문자열 및 사용자 기본 설정 등을 지정한 다음 SSIS 작업에서 해당 환경 변수를 선택할 수 있습니다.

다른 팁

저는 SQL 클라이언트 구성에서 서버 별칭을 사용하는 것을 선호합니다.이렇게 하면 패키지가 다른 SQL Server를 가리키도록 결정하는 경우 새 서버를 가리키도록 별칭을 편집하는 것만큼 간단하며 SSIS 패키지에서는 편집이 필요하지 않습니다.패키지를 라이브 서버로 이동할 때 별칭을 추가해야 하며 작동합니다.

이는 서버에 대한 정말 어려운 명명 규칙이 있는 경우에도 도움이 됩니다. 별칭은 실제 시스템 이름보다 더 설명적인 이름이 될 수 있습니다.

실제로 귀하의 질문을 완전히 이해하지는 못했지만 일반적으로 개발, 프로덕션 등과 같은 각 환경에 대해 하나의 구성 파일에 연결 설정을 저장합니다.패키지는 실행될 때 구성 파일에서 연결 설정을 읽습니다.

SSIS 패키지를 호출하는 작업을 생성하고 단계를 설정하는 경우 탭 영역이 있습니다.기본 탭은 패키지 이름을 설정하는 곳이고, 다음 탭은 구성 파일을 설정할 수 있는 곳입니다.각 패키지에 대한 구성 파일이 있고 서버(dev, test, prod)에 대한 변경이 있습니다.구성 파일은 개발, 테스트 및 프로덕션 서버에 직접 배치한 다음 해당 작업을 설정할 때 이를 가리킬 수 있습니다.

SQL Server 패키지 구성을 사용하는 경우 패키지의 모든 속성은 SQL Server 테이블에서 가져옵니다. 확인하세요.

SSIS 보안의 현재 상태는 끔찍합니다.내가 사무실 밖에 있는 동안에는 누구도 지원을 할 수 없습니다.작업이 구성 파일에서 읽히지 않습니다...포기합니다.데이터 소스 탭에서 문자열을 편집할 때만 작동합니다.그러나 해당 작업을 두 번째로 시작하면 비밀번호가 손실됩니다.끔찍한 디자인, 정말 끔찍합니다.작업 단계에서 xml 파일을 지정하면 정의된 연결 문자열을 읽을 것이라고 생각하지만 그렇지 않습니다.이것이 정말로 다른 누구에게도 효과가 있나요?

패키지 속성으로 이동하여 배포를 True로 설정합니다.이것은 당신이 한 일에 효과가 있을 것입니다.

저도 같은 질문을 받았고, 같은 대답을 받았습니다.SQL Server 연결 문자열이 환경 변수에 있어야 한다고 지정하는 경우를 제외하고는 SQL Server에서 호스팅되는 패키지 구성에 사용되는 연결 문자열을 편집할 수 없습니다.

불행히도 두 환경이 동일한 시스템에서 호스팅되는 내 개발 설정에서는 작동하지 않습니다.나는 결국 Scott Coleman의 접근 방식을 따르게 되었습니다. SQL 서버 센트럴 [무료 회원가입과 좋은 사이트].비결은 하나의 중앙 서버에 구성 설정을 저장하는 보기를 만든 다음 여기에 연결된 시스템을 사용하여 어떤 환경이 활성화되어 있는지 확인하는 것입니다.

나는 이 접근 방식을 사용했지만 결정을 내리기 위해 환경에 연결하는 사용자도 사용했습니다. 왜냐하면 내 테스트 및 개발 설정이 동일한 SSIS 인스턴스에서 실행되지만 다른 사용자 이름으로 실행되기 때문입니다.Scott은 주석에서 응용 프로그램 이름을 설정해야 한다고 제안했지만 이는 패키지 실행 작업 단계에서 변경할 수 없으므로 선택 사항이 아니었습니다.

제가 발견한 또 다른 주의 사항은 구성 변수에 대한 삽입, 업데이트 및 삭제를 수행하려면 뷰에 "대신" 트리거를 추가해야 한다는 것입니다.

우리는 패키지 구성을 데이터베이스 테이블에 유지하고 싶고, 다른 데이터와 함께 백업된다는 것과 해당 패키지를 어디서 찾을 수 있는지 알고 있습니다.단지 선호 사항입니다.

이 작업을 수행하려면 환경 변수 구성을 사용하여 패키지 구성을 읽고 있는 연결 관리자의 연결 문자열을 설정할 수 있다는 것을 알았습니다.(물론 새 환경 변수를 찾으려면 SQL Server 에이전트를 다시 시작해야 했습니다.프로덕션에 배포할 때는 적합하지 않음)

SSIS 패키지를 예약된 작업의 한 단계로 실행하면 다음 순서로 작동합니다.

  • 패키지 구성 구성자에 나타나는 순서대로 각 패키지 구성을 로드합니다.
  • 예약된 작업의 작업 단계 속성에 있는 데이터 소스 탭에서 연결 문자열을 설정합니다.
  • 패키지 실행을 시작합니다.

예약된 작업에서 내 패키지 구성에 대한 데이터 소스를 설정할 수 있도록 처음 2개는 반대 방향일 것으로 예상했습니다.패키지를 관리할 때 다른 사람들이 찾을 것으로 예상되는 곳이 바로 여기입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top