[僅限內部部署/混合]{class="badge yellow" title="僅適用於內部部署和混合部署"}
複製環境 duplicating-environments
簡介 introduction
概覽 overview
使用Adobe Campaign需要安裝和設定一個或多個環境:開發、測試、預生產、生產等。
每個環境都包含一個Adobe Campaign執行個體,而每個Adobe Campaign執行個體都連結至一或多個資料庫。 應用程式伺服器可以執行一或多個處理作業:幾乎所有處理作業都可直接存取執行處理資料庫。
本節詳細說明套用於複製Adobe Campaign環境的程式,即將來源環境還原到目標環境,這會產生兩個相同的工作環境。
若要這麼做,請套用下列步驟:
-
在來源環境的所有執行個體上建立資料庫復本,
-
在目標環境的所有執行個體上還原這些復本,
-
在啟動之前,請在目標環境中執行 nms:freezeInstance.js 燒錄指令碼。
此程式不會影響伺服器及其設定。
note note NOTE 在Adobe Campaign的內容中,驗證 結合可讓您停止與外界互動的所有處理程式的動作:記錄、追蹤、傳遞、行銷活動工作流程等。
此步驟是避免傳送訊息多次(一次來自名義環境,另一次來自重複環境)所必需的。note important IMPORTANT 一個環境可以包含多個例項。 每個Adobe Campaign執行個體都要遵守授權合約。 檢查您的授權合約,瞭解您可以擁有多少環境。
以下程式可讓您傳輸環境,而不會影響您已安裝的環境和例項數量。
開始之前 before-you-start
為了讓此程式發揮作用,來源和目標環境必須具有相同的執行個體數量、相同的目的(行銷執行個體、傳遞執行個體)和類似的設定。 技術設定必須符合軟體先決條件。 兩個環境中都必須安裝相同的元件。
實施 implementation
傳輸程式 transfer-procedure
本節將協助您瞭解透過案例研究將來源環境轉移至目標環境所需的步驟:我們的目標是將生產環境(prod 執行個體)還原至開發環境(dev 執行個體),以便在儘可能接近「即時」平台的內容中運作。
必須謹慎執行下列步驟:複製來源環境資料庫時,某些程式可能仍在進行中。 燒製(下方的步驟3)可防止訊息傳送兩次,並維持資料的一致性。
- 下列程式在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 表格。
檢查匯出的選項/帳戶數目是否等於每個檔案中要匯出的行數。
步驟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
您也可以檢查是否有任何系統處理序仍在執行中。
要執行此操作,請使用下列程式:
- 在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
-
檢查唯一的deliverypart是否為ID設為0的部分:
code language-none SELECT * FROM neolane.nmsdeliverypart;
-
檢查交貨狀態更新是否正確:
code language-none SELECT iState, count(*) FROM neolane.nmsdelivery GROUP BY iState;
-
檢查工作流程狀態更新是否正確:
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程式。
執行以下命令以啟動Web程式:
nlserver start web
使用下列命令來檢查是否只有Web處理序啟動:
nlserver pdump
檢查對使用者端主控台的存取權功能。
步驟8 — 將選項和外部帳戶匯入目標環境(開發) step-8---import-options-and-external-accounts-into-the-target-environment--dev-
首先,在匯入之前,檢查檔案數行的值(例如:選項表格的「NmsTracking_Pointer」,以及外部帳戶表格的傳遞或中間來源帳戶)
若要從目標環境資料庫(dev)匯入組態:
-
開啟資料庫的Admin Console,並清除識別碼不是0 (@id <> 0)的外部帳戶(表格nms:extAccount)。
-
在Adobe Campaign主控台中,匯入先前透過匯入套件功能建立的options_dev.xml套件。
檢查 Administration > Platform > Options 節點中的選項是否確實已更新。
-
在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
變更使用者以尋找已在開發平台上存在的使用者。