[僅限內部部署/混合]{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 — 匯出目標環境設定(dev) step-2---export-the-target-environment-configuration--dev-

每個環境的大多數設定元素不同:外部帳戶(中間來源、路由等)、技術選項(平台名稱、DatabaseId、電子郵件地址和預設URL等)。

將來源資料庫儲存在目標資料庫之前,您需要匯出目標環境(dev)組態。 若要這麼做,請匯出這兩個資料表的內容: xtkoption ​和​ nmsextaccount

此匯出可讓您保留開發設定,並僅重新整理開發資料(工作流程、範本、Web應用程式、收件者等)。

為此,請針對下列兩個元素執行封裝匯出:

  • 將​ xtk:option ​資料表匯出至'options_dev.xml'檔案,不含具有下列內部名稱的記錄:'WdbcTimeZone'、'NmsServer_LastPostUpgrade'和'NmsBroadcast_RegexRules'。
  • 在'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 aux | 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. 檢查唯一的deliverypart是否為ID設為0的部分:

    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 — 重新啟動目標環境Web程式(dev) step-7---restart-the-target-environment-web-process--dev-

在目標環境中,為所有伺服器重新啟動Adobe Campaign程式。

NOTE
在​ 開發 ​環境中重新啟動Adobe Campaign之前,您可以套用其他安全程式:僅啟動​ Web ​模組。
若要這麼做,請編輯執行個體的設定檔(config-dev.xml),然後為每個模組(mta、stat等)在autoStart="true"選項之前新增"_"字元。

執行以下命令以啟動Web程式:

nlserver start web

使用下列命令來檢查是否只有Web處理序啟動:

nlserver pdump

檢查對使用者端主控台的存取權功能。

步驟8 — 將選項和外部帳戶匯入目標環境(開發) step-8---import-options-and-external-accounts-into-the-target-environment--dev-

IMPORTANT
在此步驟只應啟動Web程式。 如果不是這種情況,請先停止其他正在執行的程式,然後再繼續

首先,在匯入之前,檢查檔案數行的值(例如:選項表格的「NmsTracking_Pointer」,以及外部帳戶表格的傳遞或中間來源帳戶)

若要從目標環境資料庫(dev)匯入組態:

  1. 開啟資料庫的Admin Console,並清除識別碼不是0 (@id <> 0)的外部帳戶(表格nms:extAccount)。

  2. 在Adobe Campaign主控台中,匯入先前透過匯入套件功能建立的options_dev.xml套件。

    檢查​ Administration > Platform > Options ​節點中的選項是否確實已更新。

  3. 在Adobe Campaign主控台中,匯入先前透過匯入套件功能建立的extaccount_dev.xml

    檢查外部資料庫是否確實已在​ Administration > Platform > External accounts ​中匯入。

步驟9 — 重新啟動所有程式並變更使用者(dev) 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