[온-프레미스/하이브리드만]{class="badge yellow" title="온-프레미스 및 하이브리드 배포에만 적용"}

환경 복제 duplicating-environments

소개 introduction

개요 overview

IMPORTANT
서버 및 데이터베이스(호스팅된 환경)에 대한 액세스 권한이 없는 경우 아래에 설명된 절차를 수행할 수 없습니다. Adobe에 문의하십시오.

Adobe Campaign을 사용하려면 개발, 테스트, 사전 프로덕션, 프로덕션 등 하나 이상의 환경을 설치하고 구성해야 합니다.

각 환경에는 Adobe Campaign 인스턴스가 포함되어 있으며 각 Adobe Campaign 인스턴스는 하나 이상의 데이터베이스에 연결되어 있습니다. 애플리케이션 서버는 하나 이상의 프로세스를 실행할 수 있습니다. 이러한 프로세스 대부분은 인스턴스 데이터베이스에 직접 액세스할 수 있습니다.

이 섹션에서는 Adobe Campaign 환경 복제에 적용할 프로세스, 즉 소스 환경을 타겟 환경으로 복원하여 두 개의 동일한 작업 환경을 만드는 프로세스에 대해 자세히 설명합니다.

그렇게 하려면 다음 단계를 적용합니다.

  1. 소스 환경의 모든 인스턴스에 데이터베이스 복사본을 만듭니다.

  2. 타겟 환경의 모든 인스턴스에서 이러한 복사본을 복원합니다.

  3. 시작하기 전에 대상 환경에서 nms:freezeInstance.js 소작 스크립트를 실행하십시오.

    이 프로세스는 서버와 서버 구성에 영향을 주지 않습니다.

    note note
    NOTE
    Adobe Campaign의 컨텍스트에서 설명 ​은(는) 로그, 추적, 게재, 캠페인 워크플로 등과 같이 외부와 상호 작용하는 모든 프로세스를 중지할 수 있는 작업을 결합합니다.
    이 단계는 메시지를 여러 번(명목 환경에서 한 번, 중복 환경에서 한 번) 배달하지 않도록 하는 데 필요합니다.
    note important
    IMPORTANT
    하나의 환경에 여러 인스턴스가 포함될 수 있습니다. 각 Adobe Campaign 인스턴스는 라이선스 계약의 적용을 받습니다. 사용 가능한 환경 수를 확인하려면 라이선스 계약을 확인하십시오.
    아래 절차를 사용하면 설치한 환경 및 인스턴스 수에 영향을 주지 않고 환경을 전송할 수 있습니다.

시작하기 전에 before-you-start

IMPORTANT
전송 프로세스를 시작하기 전에 소스 및 타겟 환경의 모든 인스턴스에 대해 데이터베이스의 전체 백업을 실행하는 것이 좋습니다. 이렇게 하면 문제가 발생할 경우 백업을 복원하고 초기 구성으로 돌아갈 수 있습니다.

이 프로세스가 작동하려면 소스 및 타겟 환경에 동일한 수의 인스턴스, 동일한 목적(마케팅 인스턴스, 게재 인스턴스) 및 유사한 구성이 있어야 합니다. 기술 구성은 소프트웨어 사전 요구 사항을 준수해야 합니다. 두 환경 모두에 동일한 구성 요소를 설치해야 합니다.

구현 implementation

전송 절차 transfer-procedure

이 섹션은 사례 연구를 통해 소스 환경을 대상 환경으로 전송하는 데 필요한 단계를 이해하는 데 도움이 됩니다. 여기서의 목표는 프로덕션 환경(prod 인스턴스)을 개발 환경(dev 인스턴스)으로 복원하여 '라이브' 플랫폼에 최대한 가까운 컨텍스트에서 작동하는 것입니다.

다음 단계는 주의해서 수행해야 합니다. 소스 환경 데이터베이스를 복사할 때 일부 프로세스가 계속 진행 중일 수 있습니다. 소작(아래 3단계)은 메시지가 두 번 전송되지 않도록 하고 데이터 일관성을 유지합니다.

IMPORTANT
  • 다음 프로시저는 PostgreSQL 언어로 유효합니다. SQL 언어가 다른 경우(예: Oracle) SQL 쿼리를 조정해야 합니다.
  • 아래 명령은 PostgreSQL 아래의 prod 인스턴스 및 dev 인스턴스의 컨텍스트에서 적용됩니다.

1단계 - 소스 환경(prod) 데이터 백업 step-1---make-a-backup-of-the-source-environment--prod--data

데이터베이스 복사

모든 소스 환경 데이터베이스를 복사하는 것부터 시작합니다. 작업은 데이터베이스 엔진에 따라 다르며 데이터베이스 관리자의 책임입니다.

PostgreSQL에서 명령은 다음과 같습니다.

pg_dump mydatabase > mydatabase.sql

2단계 - Target 환경 구성(개발) 내보내기 step-2---export-the-target-environment-configuration--dev-

대부분의 구성 요소는 외부 계정(중간 소싱, 라우팅 등), 기술 옵션(플랫폼 이름, DatabaseId, 이메일 주소 및 기본 URL 등)마다 다릅니다.

대상 데이터베이스에 소스 데이터베이스를 저장하기 전에 대상 환경(개발) 구성을 내보내야 합니다. 이렇게 하려면 xtkoptionnmsextaccount 테이블의 내용을 내보냅니다.

이 내보내기를 사용하면 개발 구성을 유지하고 개발 데이터(워크플로우, 템플릿, 웹 애플리케이션, 수신자 등)만 새로 고칠 수 있습니다.

이렇게 하려면 다음 두 요소에 대해 패키지 내보내기를 수행합니다.

  • 내부 이름이 'WdbcTimeZone', 'NmsServer_LastPostUpgrade' 및 'NmsBroadcast_RegexRules'인 레코드 없이 xtk:option 테이블을 'options_dev.xml' 파일로 내보냅니다.
  • 'extaccount_dev.xml' 파일에서 ID가 0이 아닌 모든 레코드(@id <> 0)에 대해 nms:extAccount 테이블을 내보냅니다.

내보낸 옵션/계정의 수가 각 파일에서 내보낼 라인 수와 같은지 확인합니다.

NOTE
패키지 내보내기에서 내보낼 라인 수는 1000라인입니다. 옵션 또는 외부 계정 수가 1000개를 초과하는 경우 여러 번 내보내기를 수행해야 합니다.
자세한 정보는 이 섹션을 참조하십시오.
NOTE
nmsextaccount 테이블을 내보내면 외부 계정과 관련된 암호(예: 중간 소싱, 메시지 센터 실행, SMPP, IMS 및 기타 외부 계정의 암호)는 내보내지지 않습니다. 외부 계정을 환경으로 다시 가져온 후 다시 입력해야 할 수 있으므로 올바른 암호에 미리 액세스할 수 있는지 확인하십시오.

3단계 - 대상 환경 중지(개발) step-3---stop-the-target-environment--dev-

모든 대상 환경 서버에서 Adobe Campaign 프로세스를 중지해야 합니다. 이 작업은 운영 체제에 따라 다릅니다.

모든 프로세스를 정지하거나 데이터베이스에 쓰는 프로세스만 정지할 수 있습니다.

모든 프로세스를 중지하려면 다음 명령을 사용합니다.

  • Windows에서는:

    code language-none
    net stop nlserver6
    
  • Linux에서:

    code language-none
    /etc/init.d/nlserver6 stop
    

다음 명령을 사용하여 모든 프로세스가 중지되었는지 확인합니다.

nlserver pdump
NOTE
Windows에서는 다른 작업에 영향을 주지 않고 webmdl 프로세스를 계속 활성화할 수 있습니다.

아직 실행 중인 시스템 프로세스가 없는지 확인할 수도 있습니다.

이렇게 하려면 다음 프로세스를 사용합니다.

  • Windows에서 작업 관리자 ​를 열고 nlserver.exe 프로세스가 없는지 확인합니다.
  • Linux에서: ps 보조 실행 | grep nlserver 명령과 nlserver 프로세스가 없는지 확인합니다.

4단계 - 대상 환경(개발)에서 데이터베이스 복원 step-4---restore-the-databases-in-the-target-environment--dev-

대상 환경에서 소스 데이터베이스를 복원하려면 다음 명령을 사용합니다.

psql mydatabase < mydatabase.sql

5단계 - 대상 환경(개발) 소작 step-5---cauterize-the-target-environment--dev-

오작동을 방지하려면 대상 환경이 활성화될 때 게재 전송 및 워크플로우 실행에 연결된 프로세스를 자동으로 실행하지 않아야 합니다.

이렇게 하려면 다음 명령을 실행합니다.

nlserver javascript nms:freezeInstance.js -instance:<dev> -arg:run

6단계 - 소작 확인 step-6---check-cauterization

  1. ID가 0으로 설정된 deliverypart만 있는지 확인합니다.

    code language-none
    SELECT * FROM neolane.nmsdeliverypart;
    
  2. 게재 상태 업데이트가 올바른지 확인합니다.

    code language-none
    SELECT iState, count(*) FROM neolane.nmsdelivery GROUP BY iState;
    
  3. 워크플로우 상태 업데이트가 올바른지 확인합니다.

    code language-none
    SELECT iState, count(*) FROM neolane.xtkworkflow GROUP BY iState;
    SELECT iStatus, count(*) FROM neolane.xtkworkflow GROUP BY iStatus;
    

7단계 - 대상 환경 웹 프로세스(개발) 다시 시작 step-7---restart-the-target-environment-web-process--dev-

대상 환경에서 모든 서버에 대한 Adobe Campaign 프로세스를 다시 시작합니다.

NOTE
dev 환경에서 Adobe Campaign을 다시 시작하기 전에 추가 안전 절차를 적용할 수 있습니다. web 모듈만 시작합니다.
이렇게 하려면 인스턴스의 구성 파일(config-dev.xml)을 편집한 다음 각 모듈(mta, stat 등)의 autoStart="true" 옵션 앞에 "_" 문자를 추가합니다.

다음 명령을 실행하여 웹 프로세스를 시작합니다.

nlserver start web

다음 명령을 사용하여 웹 프로세스만 시작되었는지 확인합니다.

nlserver pdump

클라이언트 콘솔 기능에 대한 액세스를 확인합니다.

8단계 - 대상 환경(개발)으로 옵션 및 외부 계정 가져오기 step-8---import-options-and-external-accounts-into-the-target-environment--dev-

IMPORTANT
이 단계에서는 웹 프로세스만 시작해야 합니다. 그렇지 않은 경우 계속하기 전에 다른 실행 중인 프로세스를 중지하십시오

무엇보다도 가져오기 전에 파일의 여러 라인의 값을 확인합니다(예: 옵션 테이블의 경우 'NmsTracking_Pointer', 외부 계정 테이블의 경우 게재 또는 중간 소싱 계정).

대상 환경 데이터베이스(개발)에서 구성을 가져오려면 다음을 수행합니다.

  1. 데이터베이스의 Admin Console을 열고 ID가 0이 아닌 외부 계정(테이블 nms:extAccount)을 제거합니다(@id <> 0).

  2. Adobe Campaign 콘솔에서 패키지 가져오기 기능을 통해 이전에 만든 options_dev.xml 패키지를 가져옵니다.

    Administration > Platform > Options 노드에서 옵션이 업데이트되었는지 확인합니다.

  3. Adobe Campaign 콘솔에서 패키지 가져오기 기능을 통해 이전에 만든 extaccount_dev.xml을 가져옵니다

    외부 데이터베이스를 Administration > Platform > External accounts ​에서 가져왔는지 확인하십시오.

9단계 - 모든 프로세스 다시 시작 및 사용자 변경(개발) step-9---restart-all-processes-and-change-users--dev-

Adobe Campaign 프로세스를 시작하려면 다음 명령을 사용합니다.

  • Windows에서는:

    code language-none
    net start nlserver6
    
  • Linux에서:

    code language-none
    /etc/init.d/nlserver6 start
    

다음 명령을 사용하여 프로세스가 시작되었는지 확인합니다.

nlserver pdump

개발 플랫폼에 이미 존재하는 사용자를 찾으려면 사용자를 변경하십시오.

recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1