MySQL Shell 的傾印載入工具程式 util.loadDump()
支援將使用 MySQL Shell 的第 11.5 節:「執行個體傾印工具程式、結構描述傾印工具程式和資料表傾印工具程式」傾印的結構描述或資料表匯入至 HeatWave Service 資料庫系統或 MySQL Server 執行個體。傾印載入工具程式提供來自遠端儲存體的資料串流、資料表或資料表區塊的平行載入、進度狀態追蹤、恢復和重設功能,以及在傾印仍在進行時同時載入的選項。為了獲得最佳功能,請務必使用最新版本的 MySQL Shell 傾印和傾印載入工具程式。
為了匯入 HeatWave Service 資料庫系統,MySQL Shell 必須安裝在可以存取 HeatWave Service 資料庫系統的 Oracle Cloud Infrastructure Compute 執行個體上。如果傾印檔案位於 Oracle Cloud Infrastructure Object Storage 儲存貯體中,您可以從 Compute 執行個體存取 Object Storage 儲存貯體。如果傾印檔案位於您的本機系統上,您需要使用您選擇的複製工具程式,將它們傳輸到 Oracle Cloud Infrastructure Compute 執行個體,具體取決於您為 Compute 執行個體選擇的作業系統。確保使用 MySQL Shell 的執行個體傾印工具程式或結構描述傾印工具程式中設定為 true
的 ocimds
選項建立傾印,以便與 HeatWave Service 相容。MySQL Shell 的資料表傾印工具程式不使用此選項。
對於執行個體傾印工具程式或結構描述傾印工具程式產生的輸出,MySQL Shell 的傾印載入工具程式會使用 DDL 檔案和以索引標籤分隔的 .tsv
資料檔案,在目標 MySQL 執行個體中設定伺服器執行個體或結構描述,然後載入資料。包含僅 DDL 檔案或僅資料檔案的傾印可用於單獨執行這些工作。傾印載入工具程式還允許您單獨套用來自包含這兩種檔案的常規傾印中的 DDL 檔案和資料檔案。
您可以使用工具程式的選項,從匯入中包含或排除指定的結構描述和資料表、使用者及其角色和權限、事件、常式和觸發器。請注意,預設情況下,會將使用者及其角色和權限從載入中排除。如果您指定衝突的包含和排除選項,或命名未包含在傾印檔案中的物件,則會報告錯誤並停止載入,以便您可以更正選項。
對於 MySQL Shell 的資料表傾印工具程式產生的輸出,傾印包含設定最初包含資料表的結構描述所需的資訊。預設情況下,從該版本開始,如果目標 MySQL 執行個體中尚不存在該結構描述,則會在其中重新建立該結構描述。或者,您可以在傾印載入工具程式中指定 schema
選項,以將資料表載入目標 MySQL 執行個體中的替代結構描述,該結構描述必須存在於該處。
您可以使用選擇的傾印載入選項執行試執行,以顯示當您使用這些選項實際執行工具程式時將執行的動作。
waitDumpTimeout
選項允許您套用仍在建立過程中的傾印。資料表會在可用時載入,並且工具程式會在新資料停止抵達傾印位置後等待指定的秒數。當逾時時間經過時,工具程式會假設傾印已完成並停止匯入。
匯入的進度狀態會儲存在持續進度狀態檔案中,該檔案會記錄成功完成的步驟和中斷或失敗的步驟。預設情況下,進度狀態檔案名為 load-progress.
,並在傾印目錄中建立,但您可以選擇不同的名稱和位置。當您恢復或重試傾印的匯入時,傾印載入工具程式會參考進度狀態檔案,並跳過已完成的步驟。對於部分載入的資料表,會自動管理重複資料刪除。如果您使用 Ctrl + C 中斷進行中的傾印,則在第一次使用該按鍵組合時,工具程式不會啟動新工作,但現有工作會繼續執行。再次按下 Ctrl + C 會停止現有工作,導致出現錯誤訊息。在任何一種情況下,工具程式仍然可以從停止的位置恢復匯入。server_uuid
.json
您可以選擇重設進度狀態,並從頭開始再次啟動傾印的匯入,但在這種情況下,工具程式不會跳過已建立的物件,也不會管理重複資料刪除。如果您這樣做,為了確保正確匯入,您必須從目標 MySQL 執行個體手動移除該傾印中所有先前載入的物件,包括結構描述、資料表、使用者、檢視、觸發器、常式和事件。否則,如果傾印檔案中的物件已存在於目標 MySQL 執行個體中,則匯入會停止並顯示錯誤。在適當的注意事項下,您可以使用 ignoreExistingObjects
選項,使工具程式報告重複物件,但跳過它們並繼續匯入。請注意,工具程式不會檢查目標 MySQL 執行個體中物件的內容與傾印檔案中的內容是否不同,因此匯入結果可能包含不正確或無效的資料。
請勿在傾印停止和傾印恢復之間變更傾印檔案中的資料。在變更資料後恢復傾印具有未定義的行為,並可能導致資料不一致和資料遺失。如果您需要在部分載入傾印後變更資料,請手動刪除在部分匯入期間建立的所有物件(如進度狀態檔案中所列),然後使用 resetProgress
選項執行傾印載入工具程式,從頭開始。
如果您需要在將資料匯入目標 MySQL 執行個體之前修改傾印的資料檔案中的任何資料,您可以將 MySQL Shell 的平行資料表匯入工具程式 util.importTable()
與傾印載入工具程式結合使用。若要執行此操作,請先使用傾印載入工具程式僅載入選定資料表的 DDL,以在目標伺服器上建立資料表。然後使用平行資料表匯入工具程式來擷取和轉換資料表輸出檔案中的資料,並將其匯入目標資料表。針對您要修改資料的任何其他資料表,視需要重複該過程。最後,使用傾印載入工具程式載入您不想修改的任何剩餘資料表的 DDL 和資料,但不包括您修改的資料表。如需有關程序的描述,請參閱修改傾印的資料。
傾印中的資料表會以您使用 threads
選項指定的執行緒數平行載入,預設值為 4。如果在建立傾印時將資料表資料分割為區塊,則可以使用多個執行緒來處理資料表,否則每個執行緒一次載入一個資料表。傾印載入工具程式會在執行緒之間排程資料匯入,以最大化平行處理。背景執行緒集區用於擷取檔案的內容。如果傾印檔案由 MySQL Shell 的傾印工具程式壓縮,則傾印載入工具程式會處理它們的解壓縮。
預設情況下,資料表的全文字索引僅在資料表完全載入後才會建立,這樣可以加快匯入速度。您可以選擇將所有索引建立(主索引除外)延遲到每個資料表完全載入後再進行。您也可以選擇在資料表匯入期間建立所有索引。您也可以選擇在匯入期間停用索引建立,然後在匯入後建立索引,例如,如果您想要在載入後變更資料表結構。
為了進一步提升資料載入效能,您可以在匯入期間停用目標 MySQL 執行個體上的 InnoDB
重做日誌。請注意,這僅應在新 MySQL Server 執行個體上執行(而非生產系統),而且此功能在 MySQL DB 系統上無法使用。如需更多資訊,請參閱停用重做日誌。
目標 MySQL 執行個體必須使用 MySQL 5.7 或更新版本才能載入傾印檔。
MySQL Shell 8.0.27 之前的版本所提供的傾印載入工具,無法載入使用 MySQL Shell 8.0.27 或更新版本中的傾印工具所建立的傾印檔。這是因為從 MySQL Shell 8.0.27 開始,傾印中繼資料包含建立傾印時所使用功能資訊。此功能列表不向下相容,但在未來版本新增功能時,支援向下相容。若要獲得最佳功能,請務必使用 MySQL Shell 傾印與傾印載入工具的最新版本。
傾印載入工具使用
LOAD DATA LOCAL INFILE
陳述式,因此目標 MySQL 執行個體上的local_infile
系統變數全域設定在匯入期間必須為ON
。依預設,在標準 HeatWave 服務 DB 系統組態中,此系統變數會設定為ON
。LOAD DATA LOCAL INFILE
陳述式使用非限制性的資料解譯,會將錯誤轉換為警告並繼續載入作業。此程序可能包括為欄位指派預設值和隱含預設值,以及將無效值轉換為欄資料類型最接近的有效值。如需此陳述式的行為詳細資訊,請參閱LOAD DATA
。在目標 MySQL 執行個體上,傾印載入工具會檢查
sql_require_primary_key
系統變數是否設為ON
,若是,則如果傾印檔中有任何資料表沒有主索引鍵,則會傳回錯誤。依預設,在標準 HeatWave 服務 DB 系統組態中,此系統變數會設定為OFF
。傾印載入工具不會自動在目標 MySQL 執行個體上套用來源 MySQL 執行個體的
gtid_executed
GTID 集。GTID 集包含在 MySQL Shell 的執行個體傾印工具、綱要傾印工具或資料表傾印工具的傾印中繼資料中,也就是@.json
傾印檔中的gtidExecuted
欄位。若要在目標 MySQL 執行個體上套用這些 GTID 以供複寫使用,請使用updateGtidSet
選項或手動匯入它們,具體取決於目標 MySQL 執行個體的版本和 MySQL Shell 版本。HeatWave 服務 DB 系統執行個體也支援此功能。請參閱updateGtidSet
選項的說明以取得詳細資訊。
MySQL Shell 支援使用預先驗證的要求 (PAR) 從物件儲存貯體載入傾印檔。PAR 提供讓使用者能夠存取貯體或物件的方式,而無需擁有自己的認證。
在使用此存取方法之前,請評估對貯體或貯體中物件進行預先驗證存取的業務需求和安全風險。PAR 會授與任何擁有 PAR 的使用者存取要求中所識別目標的權限。請謹慎管理 PAR 的散發。
MySQL Shell 支援對貯體中的所有物件或具有特定前置詞的貯體中的物件使用讀取存取 PAR (物件讀取 PAR)。如需關於建立貯體 PAR 和前置詞 PAR 的資訊,請參閱使用預先驗證的要求。使用貯體 PAR 或前置詞 PAR 時,傾印載入工具需要本機進度狀態檔。檔案內容為 JSON 格式,因此使用 .json
副檔名的文字檔是適合的(例如,progress.json
)。以下範例顯示使用為貯體中所有物件建立的 PAR 載入傾印檔的語法
JS> util.loadDump("BucketPARURL", {progressFile: "progress.json"})
相同的語法可用於載入具有特定前置詞的貯體中的物件,但在這種情況下,PAR URL 會包含前置詞
shell-js> util.loadDump("PrefixPARURL", progressFile: "progress.json"})
傾印載入工具使用 MySQL Shell 全域工作階段,取得要匯入傾印檔的目標 MySQL 執行個體連線詳細資訊。您必須先開啟全域工作階段(可以是 X 通訊協定連線或傳統 MySQL 通訊協定連線),然後才能執行公用程式。公用程式會為每個執行緒開啟自己的工作階段,從全域工作階段複製連線壓縮和 SSL 選項等選項,且不會再使用全域工作階段。
在 MySQL Shell API 中,傾印載入工具是 util
全域物件的功能,且具有以下簽名
util.loadDump(url[, options])
options
是選項的字典,如果為空則可以省略。選項會在此主題的其餘章節中列出。
如果您要匯入的傾印檔位於您正在執行公用程式的 Oracle Cloud Infrastructure Compute 執行個體的檔案系統中,則 url
是指定包含傾印檔之本機目錄的路徑的字串。您可以為本機目錄路徑加上 file://
結構描述。在 MySQL Shell 的 JavaScript 模式中的此範例中,會執行模擬執行,以檢查當從本機目錄載入傾印檔到連線的 MySQL 執行個體時,是否不會有任何問題
shell-js> util.loadDump("/mnt/data/worlddump", {dryRun: true})
如果您要從 Oracle Cloud Infrastructure 物件儲存貯體匯入傾印檔,則 url
是傾印檔在貯體中的路徑前置詞,這是使用建立傾印時的 outputUrl
參數所指派的。使用 osBucketName
選項提供物件儲存貯體的名稱,並使用 osNamespace
選項識別貯體的命名空間。在 MySQL Shell 的 JavaScript 模式中的此範例中,前置詞為 worlddump
的傾印檔會使用 8 個執行緒從物件儲存貯體載入到連線的 HeatWave 服務 DB 系統
shell-js> util.loadDump("worlddump", {
threads: 8, osBucketName: "hanna-bucket", osNamespace: "idx28w1ckztq"})
物件儲存貯體的命名空間會顯示在 Oracle Cloud Infrastructure 主控台中貯體詳細資訊頁面的 貯體資訊索引標籤中,或者可以使用 Oracle Cloud Infrastructure 命令列介面取得。使用預設 Oracle Cloud Infrastructure CLI 組態檔中的預設設定檔,或您使用 ociConfigFile
和 ociProfile
選項指定的替代詳細資訊,建立與物件儲存貯體的連線。如需設定 CLI 組態檔的指示,請參閱SDK 和 CLI 組態檔。
-
dryRun: [ true | false ]
顯示有關在指定選項和傾印檔的情況下會執行的動作資訊,包括根據傾印內容會傳回的任何錯誤,但不繼續匯入。預設值為
false
。-
waitDumpTimeout:
number
將此選項設定為大於 0 的值會啟用在產生傾印檔時同時載入傾印檔。此值是公用程式在處理完傾印位置中所有上傳的資料區塊之後,等待進一步資料的逾時時間(以秒為單位)。這讓公用程式能夠在仍處於建立傾印檔的過程中匯入傾印檔。資料會在可用時處理,並且當逾時時間超過且傾印位置中沒有出現更多資料時,匯入會停止。預設設定
0
表示當處理完所有上傳的資料區塊時,公用程式會將傾印檔標記為完成,且不會等待更多資料。使用預設設定,會停用同時載入。-
schema: "
string
" -
必須將 MySQL Shell 傾印公用程式產生的傾印檔載入其中的目標綱要。
如果綱要不存在,則會建立綱要,並且將傾印檔載入到該新綱要。如果新綱要名稱與傾印檔中的綱要名稱不同,則會將傾印檔載入到新綱要,但不會變更載入的資料。也就是說,對舊綱要名稱的任何參考會保留在資料中。所有預存程序、檢視等等都會參考原始綱要,而不是新的綱要。
此載入選項支援單一綱要傾印,或支援會產生單一綱要的篩選選項。
-
threads:
number
用於將資料區塊上傳至目標 MySQL 執行個體的平行執行緒數目。每個執行緒都有其與 MySQL 執行個體的連線。預設值為 4。如果建立傾印時已啟用區塊功能(這是預設值),則公用程式可以使用多個執行緒來載入資料表資料,否則只會使用一個執行緒來處理一個資料表。
-
backgroundThreads:
number
用於擷取檔案內容的背景執行緒集區中的執行緒數目。預設值是從本機伺服器載入的傾印檔的
threads
選項值,或是從非本機伺服器載入的傾印檔的threads
選項值的四倍。-
progressFile: "
string
" -
指定用於追蹤載入進度的本機進度狀態檔案路徑。根據載入操作的類型,允許其他值。
從本機儲存空間載入傾印時
可以省略
progressFile
選項。在此情況下,會在傾印目錄中自動建立一個名為load-progress-
的進度狀態檔案。server-uuid
.json可以將
progressFile
選項設定為空字串,以停用進度狀態追蹤,這表示傾印載入公用程式無法繼續執行部分完成的匯入作業。
當使用預先驗證的請求 (PAR) 從 OCI 物件儲存體載入傾印時,
progressFile
選項為必要項目。如果載入操作是使用儲存桶或前置字元 PAR 執行,請將
progressFile
選項設定為本機進度狀態檔案的路徑。如果載入操作是使用資訊清單檔案 PAR 執行,請將
progressFile
選項設定為本機進度狀態檔案的路徑,或為與資訊清單檔案位於相同位置的進度狀態檔案指定寫入 PAR。
如果指定本機進度狀態檔案或有效的寫入 PAR,但進度狀態檔案不存在,則會建立該檔案。
-
showProgress: [ true | false ]
顯示 (
true
) 或隱藏 (false
) 匯入的進度資訊。如果stdout
是終端機 (tty
),例如當 MySQL Shell 處於互動模式時,預設值為true
;否則為false
。進度資訊包含活動執行緒的數量及其動作、目前已載入的資料量、完成百分比和輸送量速率。當未顯示進度資訊時,進度狀態仍會記錄在傾印載入公用程式的進度狀態檔案中。-
resetProgress: [ true | false ]
將此選項設定為
true
會重設進度狀態,並從頭開始重新匯入。預設值為false
。請注意,使用此選項時,傾印載入公用程式不會跳過已建立的物件,也不會管理重複資料刪除。如果您想要使用此選項,為了確保正確匯入,您必須先手動從目標 MySQL 執行個體中移除所有先前載入的物件,包括來自該傾印的結構描述、資料表、使用者、視圖、觸發程序、常式和事件。否則,如果傾印檔案中的物件已存在於目標 MySQL 執行個體中,匯入將會停止並顯示錯誤。謹慎地使用,您可以使用ignoreExistingObjects
選項來讓公用程式報告重複物件,但跳過這些物件並繼續匯入。-
skipBinlog: [ true | false ]
藉由發出
SET sql_log_bin=0
陳述式,在匯入期間,針對公用程式使用的工作階段跳過目標 MySQL 執行個體上的二進位記錄。預設值為false
,因此預設會啟用二進位記錄。對於 HeatWave Service DB 系統,不使用此選項,如果您嘗試將其設定為true
,匯入將會停止並顯示錯誤。對於其他 MySQL 執行個體,如果您要從來源 MySQL 執行個體在目標 MySQL 執行個體上套用gtid_executed
GTID 集,無論是使用updateGtidSet
選項或手動套用,請務必將skipBinlog
設定為true
。當目標 MySQL 執行個體上使用 GTID (gtid_mode=ON
) 時,將此選項設定為true
會防止在執行匯入時產生並指派新的 GTID,以便可以使用來自來源伺服器的原始 GTID 集。使用者帳戶必須具有設定sql_log_bin
系統變數的必要權限。-
ignoreVersion: [ true | false ]
-
即使傾印資料的 MySQL 執行個體的主要版本號碼與要上傳資料的 MySQL 執行個體的主要版本號碼不連續,仍匯入傾印。預設值為
false
,這表示如果主要版本號碼不連續,則會發出錯誤且不會繼續匯入。當此選項設定為true
時,將會發出警告並繼續匯入。請注意,如果傾印檔案中的結構描述與新的主要版本沒有相容性問題,則匯入才會成功。注意在連續的主要版本之間進行複製時,例如 8.0 到 8.1,不需要
ignoreVersion
。在嘗試使用
ignoreVersion
選項進行匯入之前,請使用 MySQL Shell 的升級檢查公用程式checkForServerUpgrade()
來檢查來源 MySQL 執行個體上的結構描述。在傾印結構描述並將其匯入到目標 MySQL 執行個體之前,請修正公用程式識別的任何相容性問題。 -
ignoreExistingObjects: [ true | false ]
-
即使傾印包含已存在於 MySQL 執行個體目標結構描述中的物件,仍匯入傾印。預設值為
false
,這表示找到重複物件時會發出錯誤且停止匯入,除非是從先前嘗試使用進度狀態檔案恢復匯入,否則會跳過檢查。當此選項設定為true
時,會報告重複物件,但不會產生錯誤且會繼續匯入。使用此選項時應謹慎,因為公用程式不會檢查目標 MySQL 執行個體和傾印檔案中物件的內容是否不同,因此可能導致匯入結果包含不正確或無效的資料。另一種替代策略是使用excludeTables
選項來排除您已載入的資料表,其中您已驗證傾印檔案中的物件與目標 MySQL 執行個體中匯入的物件相同。最安全的選擇是從目標 MySQL 執行個體中移除重複物件,然後重新啟動傾印。此選項也允許將未使用
ocimds
選項建立的傾印匯入到 HeatWave Service 執行個體中。 -
handleGrantErrors: abort|drop_account|ignore
-
在發生與
GRANT
或REVOKE
錯誤相關的錯誤時採取的動作。abort
: (預設) 停止載入程序並顯示錯誤。drop_account
: 刪除帳戶並繼續載入程序。ignore
: 忽略錯誤並繼續載入程序。
-
characterSet: "
string
" 用於匯入到目標 MySQL 執行個體的字元集,例如,在
LOAD DATA
陳述式的CHARACTER SET
選項中。預設值是在由 MySQL Shell 的執行個體傾印公用程式、結構描述傾印公用程式或資料表傾印公用程式建立傾印時使用的傾印中繼資料中提供的字元集,這些字元集的預設值是使用utf8mb4
。字元集必須受character_set_client
系統變數允許,且必須由 MySQL 執行個體支援。-
maxBytesPerTransaction:
number
-
可以從單一
LOAD DATA
陳述式從資料檔案載入的最大位元組數。如果資料檔案超過maxBytesPerTransaction
值,則多個LOAD DATA
陳述式會從檔案中載入小於或等於maxBytesPerTransaction
值的區塊中的資料。可以使用單位字尾
k
代表千位元組、M
代表百萬位元組,以及G
代表十億位元組。最小值為 4096 個位元組。如果指定的值較小,則會隱式使用 4096 個位元組的最小值。如果未設定maxBytesPerTransaction
選項,則用來傾印資料的bytesPerChunk
值會作為大於 1.5 *bytesPerChunk
值的檔案的預設設定。如果未設定maxBytesPerTransaction
選項,且資料檔案小於 1.5 *bytesPerChunk
值,則會在單一LOAD DATA
陳述式中要求資料。如果資料檔案包含大於
maxBytesPerTransaction
設定的資料列,則會在單一LOAD DATA
陳述式中要求資料列的資料。對於遇到的第一個超過maxBytesPerTransaction
設定的資料列,會發出警告。如果中斷具有已設定
maxBytesPerTransaction
設定的載入操作並恢復執行,則會跳過已載入的區塊。恢復的載入操作會使用目前的maxBytesPerTransaction
設定。中斷操作之前使用的設定不會儲存到進度狀態檔案中。此選項的預期用途是在資料檔案太大而超出目標伺服器的限制時,以較小的區塊載入資料,例如伺服器的
group_replication_transaction_size_limit
或max_binlog_cache_size
設定所定義的限制。例如,如果您在載入資料時收到錯誤 「MySQL 錯誤 1197 (HY000):多陳述式交易需要超過 'max_binlog_cache_size' 位元組的儲存體」,請將maxBytesPerTransaction
設定為小於或等於伺服器執行個體的max_binlog_cache_size
設定的值。 -
sessionInitSql:
list of strings
-
一組 SQL 語句,會在每個用戶端連線階段開始時執行,用於將資料載入到目標 MySQL 實例中。您可以使用此選項來變更連線階段變數。例如,下列語句會在匯入過程中,針對此工具所使用的連線階段,略過目標 MySQL 實例上的二進位日誌記錄,並增加可用於建立索引的執行緒數量。
sessionInitSQL: ["SET SESSION sql_log_bin=0;", "SET SESSION innodb_ddl_threads=8,"]
如果在執行 SQL 語句時發生錯誤,匯入會停止並傳回錯誤訊息。
-
loadIndexes: [ true | false ]
-
建立 (
true
) 或不建立 (false
) 資料表的次要索引。預設值為true
。當此選項設定為false
時,在匯入期間不會建立次要索引,您必須在之後建立它們。如果您要分別載入 DDL 檔案和資料檔案,並且想要在載入 DDL 檔案後變更資料表結構,這會很有用。之後,您可以再次執行傾印載入工具,並將loadIndexes
設定為true
,並將deferTableIndexes
設定為all
,來建立次要索引。MySQL Shell 會利用 MySQL Server 的平行索引建立。先前,傾印載入工具會依序一次加入一個索引。從此版本開始,資料表中的所有索引都會同時加入。
如需限制和組態,請參閱設定線上 DDL 作業的平行執行緒。
-
deferTableIndexes: [ off | fulltext | all ]
將次要索引的建立延遲到資料表資料載入後。這可以減少載入時間。
off
表示所有索引都會在資料表載入期間建立。預設設定fulltext
只會延遲全文索引。all
會延遲所有次要索引,並且只會在資料表載入期間建立主要索引,以及在包含自動遞增值的欄位上定義的索引。-
analyzeTables: [ off | on | histogram ]
在資料表載入完成時,執行資料表的
ANALYZE TABLE
。on
會分析所有資料表,而histogram
只會分析傾印中儲存有直方圖資訊的資料表。預設值為off
。即使資料已經載入,您也可以使用此選項執行傾印載入工具來分析資料表。-
checksum: [true|false]
-
如果啟用,
loadDump
工具會在載入對應資料後,檢查傾印工具產生的檢查總和資料。驗證僅限於傾印的資料,會忽略載入傾印工具新增的不可見主索引鍵等產生的資料。如果檢查總和不符或資料表遺失且無法驗證,就會傳回錯誤。
如果
checksum: true
,但由於loadData: false
或沒有傾印任何資料而未載入任何資料,則此工具會針對受影響資料表的目前內容驗證傾印的檢查總和資訊。如果資料表不存在,則會針對每個遺失的資料表顯示錯誤。
如果
checksum: true
和dryRun: true
,則不會驗證檢查總和。會顯示訊息指出未進行任何驗證。
-
showMetadata: [ true | false ]
-
列印來源實例的
gtid_executed
GTID 集合以及二進位日誌檔案名稱和位置,這些資訊取自 MySQL Shell 的實例傾印工具、結構描述傾印工具或資料表傾印工具產生的傾印中包含的傾印中繼資料。中繼資料會以 YAML 格式列印。gtid_executed
GTID 集合一律會包含在傾印中,作為@.json
傾印檔案中的gtidExecuted
欄位。傾印載入工具不會自動將來源 MySQL 實例的gtid_executed
GTID 集合套用至目標 MySQL 實例。若要在目標 MySQL 實例上套用這些 GTID 以用於複寫,請使用updateGtidSet
選項或手動匯入它們,具體取決於目標 MySQL 實例的版本。HeatWave Service DB System 實例也支援此功能。如需詳細資訊,請參閱updateGtidSet
選項的描述。如果用於執行傾印工具的使用者帳戶擁有
REPLICATION CLIENT
權限,則會包含二進位日誌檔案名稱和位置。二進位日誌檔案名稱和位置可用於從未啟用 GTID 且未使用以 GTID 為基礎之複寫的來源伺服器,設定複寫到已啟用 GTID 的複本,方法是使用CHANGE REPLICATION SOURCE TO
陳述式的ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS
選項 (從 MySQL Server 8.0.23 開始可用)。 -
updateGtidSet: [ off | append | replace ]
-
將來源 MySQL 實例的
gtid_executed
GTID 集合 (如傾印中繼資料中所記錄) 套用至目標 MySQL 實例上的gtid_purged
GTID 集合。gtid_purged
GTID 集合會保留伺服器上已套用,但在伺服器上的任何二進位日誌檔案中不存在的所有交易的 GTID。預設值為off
,表示不會套用 GTID 集合。請勿將此選項用於 MySQL Shell 資料表傾印工具產生的傾印,僅適用於 MySQL Shell 實例傾印工具或結構描述傾印工具產生的傾印。此外,當 Group Replication 在目標 MySQL 實例上執行時,請勿使用此選項。
對於非 HeatWave Service DB System 實例的 MySQL 實例,當您將
append
或replace
設定為更新 GTID 集合時,也請將skipBinlog
選項設定為true
。這可確保來源伺服器上的 GTID 與目標伺服器上的 GTID 相符。對於 HeatWave Service DB System 實例,不會使用此選項。對於來自 MySQL 8.0 的目標 MySQL 實例,您可以將選項設定為
append
,這會將來源 MySQL 實例的gtid_executed
GTID 集合附加至目標 MySQL 實例上的gtid_purged
GTID 集合。要套用的gtid_executed
GTID 集合 (顯示在@.json
傾印檔案的gtidExecuted
欄位中) 不得與目標 MySQL 實例上已有的gtid_executed
集合相交。例如,當您將來自不同來源 MySQL 實例的結構描述匯入至已具有來自其他來源伺服器之結構描述的目標 MySQL 實例時,可以使用此選項。您也可以將
replace
用於來自 MySQL 8.0 的目標 MySQL 實例,以將目標 MySQL 實例上的gtid_purged
GTID 集合取代為來自來源 MySQL 實例的gtid_executed
GTID 集合。為此,來源 MySQL 實例的gtid_executed
GTID 集合必須是目標 MySQL 實例上gtid_purged
GTID 集合的超集,而且不得與目標之gtid_executed
GTID 集合中不在其gtid_purged
GTID 集合中的交易集合相交。對於 MySQL 5.7 的目標 MySQL 實例,請將選項設定為
replace
,這會將目標 MySQL 實例上的gtid_purged
GTID 集合取代為來自來源 MySQL 實例的gtid_executed
GTID 集合。在 MySQL 5.7 中,為此,目標 MySQL 實例上的gtid_executed
和gtid_purged
GTID 集合必須為空,因此實例必須是未使用且沒有先前匯入的 GTID 集合。對於 HeatWave Service DB System,不支援此方法。若要套用 GTID 集合,請在匯入之後,使用 MySQL Shell 的
\sql
命令 (或進入 SQL 模式),在連線的 MySQL 實例上發出下列陳述式,並複製傾印中繼資料中@.json
傾印檔案中的gtidExecuted
欄位中的gtid_executed
GTID 集合shell-js> \sql SET @@GLOBAL.gtid_purged= "+gtidExecuted_set";
此陳述式 (適用於 MySQL 8.0) 會將來源 MySQL 伺服器執行個體的
gtid_executed
GTID 集,新增至目標 MySQL 執行個體的gtid_purged
GTID 集。對於 MySQL 5.7,必須省略加號 (+
),而且目標 MySQL 執行個體上的gtid_executed
和gtid_purged
GTID 集必須為空。如需更多詳細資訊,請參閱目標 MySQL 執行個體版本中gtid_purged
系統變數的說明。 -
createInvisiblePKs: [ true | false ]
-
針對傾印中不包含主索引鍵的每個資料表,在不可見的欄位中新增主索引鍵。如果傾印是使用 MySQL Shell 的執行個體傾印公用程式
util.dumpInstance()
、結構描述傾印公用程式util.dumpSchemas()
或資料表傾印公用程式util.dumpTables()
的create_invisible_pks
選項建立,則會自動套用true
設定。只有在載入傾印的 DDL 時 (即loadDdl: true
) 才會新增主索引鍵。不可見的欄位 (名稱為「my_row_id
」) 對於使用上傳資料表的應用程式沒有影響。當
createInvisiblePKs
設定為true
時,目標 MySQL 執行個體必須是 MySQL Server 8.0.24 或更新版本,否則載入會失敗。不可見的欄位從 MySQL Server 8.0.23 開始提供,但是該版本中的限制會阻礙此功能的使用。以這種方式新增主索引鍵,目前還無法對 HeatWave Service 高可用性資料庫系統啟用修改後資料表的輸入複寫,因為該功能目前需要主索引鍵同時存在於來源伺服器和複本伺服器中。如果可能,請考慮在來源伺服器上的資料表中建立主索引鍵,然後再次傾印資料表,而不要使用此選項。從 MySQL 8.0.23 開始,您可以使用不可見的欄位來保存主索引鍵,因此這樣做不會對應用程式造成影響。這是效能和可用性的最佳實務,而且有助於傾印的資料庫與 HeatWave Service 無縫協同運作。
-
osBucketName: "
string
" Oracle Cloud Infrastructure Object Storage 值區的名稱,傾印檔案儲存在該值區中。依預設,位於
~/.oci/config
的 Oracle Cloud Infrastructure CLI 組態檔中的[DEFAULT]
設定檔會用來建立與值區的連線。您可以使用ociConfigFile
和ociProfile
選項,取代要用於連線的替代設定檔。如需設定 CLI 組態檔的指示,請參閱 SDK 和 CLI 組態檔。-
osNamespace: "
string
" Oracle Cloud Infrastructure 命名空間,由
osBucketName
命名的 Object Storage 值區位於其中。Object Storage 值區的命名空間會顯示在 Oracle Cloud Infrastructure 主控台中值區詳細資訊頁面的「值區資訊」標籤中,或者可以使用 Oracle Cloud Infrastructure 命令列介面取得。-
ociConfigFile: "
string
" Oracle Cloud Infrastructure CLI 組態檔,其中包含要用於連線的設定檔,而不是預設位置
~/.oci/config
中的設定檔。-
ociProfile: "
string
" 要用於連線的 Oracle Cloud Infrastructure 設定檔的設定檔名稱,而不是用於連線的 Oracle Cloud Infrastructure CLI 組態檔中的
[DEFAULT]
設定檔。
MySQL Shell 支援載入儲存在與 S3 相容之值區 (例如 Amazon Web Services (AWS) S3) 中的傾印。
-
s3BucketName: "
string
" S3 值區的名稱,傾印檔案儲存在該值區中。依預設,位於
~/.aws/
的 Amazon Web Services (AWS) CLIconfig
和credentials
檔案中的default
設定檔會用來建立與 S3 值區的連線。您可以使用s3ConfigFile
和s3CredentialsFile
選項,取代連線的替代組態和認證。如需安裝和設定 AWS CLI 的指示,請參閱 AWS CLI 入門。-
s3CredentialsFile: "
string
" 認證檔案,其中包含使用者要用於連線的認證,而不是預設位置
~/.aws/credentials
中的認證。通常,認證檔案包含要用於連線的aws_access_key_id
和aws_secret_access_key
。-
s3ConfigFile: "
string
" AWS CLI 組態檔,其中包含要用於連線的設定檔,而不是預設位置
~/.aws/config
中的設定檔。通常,組態檔包含要用於連線的區域和輸出類型。-
s3Profile: "
string
" 要用於連線的 s3 CLI 設定檔的設定檔名稱,而不是用於連線的 AWS CLI 組態檔中的
default
設定檔。-
s3Region: "
string
" 要用於連線的區域名稱。
-
s3EndpointOverride: "
string
" -
要使用的端點 URL,而不是預設的端點 URL。
連線至 Oracle Cloud Infrastructure S3 相容性 API 時,端點會採用以下格式:
https://
。將namespace
.compat.objectstorage.region
.oraclecloud.comnamespace
取代為 Object Storage 命名空間,並將region
取代為您的區域識別碼。例如,美國東部 (阿什本) 區域的區域識別碼是us-ashburn-1
。對於美國東部 (阿什本) 區域中名為 axaxnpcrorw5 的命名空間
https://axaxnpcrorw5.compat.objectstorage.us-ashburn-1.oraclecloud.com
.
以下範例顯示從 AWS S3 值區 (Bucket001
) 中的資料夾 (test
) 載入 MySQL 傾印的情況,
util.loadDump("test",{s3BucketName: "Bucket001", threads: 4})
以下範例顯示使用組態設定檔 (oci
),以及使用 s3EndpointOverride
將連線導向所需租戶和區域的 OCI 端點,從 Object Storage 值區 (Bucket001
) 中的前置詞 (test
) 載入 MySQL 傾印的情況
util.loadDump("test",{s3BucketName: "Bucket001",
s3EndpointOverride: "https://axaxnpcrorw5.compat.objectstorage.us-ashburn-1.oraclecloud.com",
s3Profile: "oci", threads: 4})
MySQL Shell 支援從 Microsoft Azure Blob Storage 載入。
MySQL Shell 支援命令列選項、環境變數和組態檔中的 Microsoft Azure Blob Storage 組態。命令列選項會覆寫環境變數和組態檔。
如需組態需求和組態類型優先順序的資訊,請參閱 第 4.7 節「雲端服務組態」。
-
azureContainerName: "
string
" 必要。要從中載入傾印的 Azure 容器名稱。容器必須存在。
-
azureConfigFile: "
string
" -
選用。組態檔,其中包含儲存空間連線參數,而不是預設位置 (例如
~/.azure/config
) 中的組態檔。如果未定義,則會使用預設組態檔。必須定義
azureContainerName
,且不得為空。 -
azureStorageAccount: "
string
" 選用。要用於作業的 Azure 儲存空間帳戶名稱。
-
azureStorageSasToken: "
string
" 選用。要用於作業驗證的 Azure 共用存取簽章 (SAS) 權杖,而不是金鑰。
在以下範例中,組態使用連線參數的組態字串,這表示傾印命令只需要 azureContainerName
。
範例 config
檔案
[cloud]
name = AzureCloud
[storage]
connection_string=alphanumericConnectionString
範例 loadDump
命令,此命令會將資料夾 (prefix1
) 中、容器 (mysqlshellazure
) 中的內容匯入至連線的 MySQL 執行個體
util.loadDump("prefix1", {azureContainerName: "mysqlshellazure", threads: 4})
-
loadDdl: [ true | false ]
將此選項設定為
false
會將傾印中的 DDL 檔案從載入中排除。預設值為true
,表示會載入 DDL 檔案。-
loadData: [ true | false ]
將此選項設定為
false
會將傾印中的資料檔案從載入中排除。預設值為true
,表示會載入資料檔案。-
loadUsers: [ true | false ]
-
將使用者及其角色和授權匯入 (
true
) 或不匯入 (false
) 至目標 MySQL 執行個體。預設值為false
,因此預設不會匯入使用者。會略過目前使用者的陳述式。如果使用者已存在於目標 MySQL 執行個體中,則會傳回錯誤,且不會套用傾印檔案中的使用者授權。您可以使用傾印載入公用程式中的excludeUsers
或includeUsers
選項,指定要從匯入中排除或包含的使用者帳戶。MySQL Shell 的結構描述傾印公用程式和資料表傾印公用程式不會在傾印中包含使用者、角色和授權,但執行個體傾印公用程式可以而且預設會包含。在執行個體傾印公用程式中,也可以使用
excludeUsers
和includeUsers
選項,從傾印檔案中排除或包含具名的使用者帳戶。如果您指定
true
,但提供的傾印檔案不包含使用者帳戶,則公用程式會傳回警告並繼續。 -
excludeUsers:
字串陣列
從匯入中排除指定的用戶帳戶。您可以使用此選項排除不被接受匯入 HeatWave Service 資料庫系統,或是目標 MySQL 執行個體中已存在或不需要的用戶帳戶。針對以使用者名稱和主機名稱定義的帳戶,請以
"'
格式指定每個用戶帳戶字串;針對僅以使用者名稱定義的帳戶,則以user_name
'@'host_name
'""'
格式指定。如果未提供主機名稱,則會排除所有具有該使用者名稱的帳戶。user_name
'"-
includeUsers:
字串陣列
僅匯入指定的用戶帳戶。如同
excludeUsers
選項一樣指定每個用戶帳戶字串。如果目標 MySQL 執行個體中只需要少數用戶帳戶,您可以使用此選項作為excludeUsers
的替代方案。您也可以同時指定這兩個選項,以包含某些帳戶並排除其他帳戶。-
excludeSchemas:
字串陣列
從匯入中排除指定的結構描述。請注意,
information_schema
、mysql
、ndbinfo
、performance_schema
和sys
結構描述一律會從 MySQL Shell 的執行個體傾印公用程式所建立的傾印中排除。-
includeSchemas:
字串陣列
僅從傾印檔案載入指定的結構描述。您也可以同時指定這兩個選項,以包含某些結構描述並排除其他結構描述。
-
excludeTables:
字串陣列
從匯入中排除指定的資料表,使其不會上傳至目標 MySQL 執行個體。資料表名稱必須以有效的結構描述名稱加以限定,並且如果需要,必須使用反引號字元引起來。請注意,
mysql.apply_status
、mysql.general_log
、mysql.schema
和mysql.slow_log tables
的資料一律會從 MySQL Shell 的結構描述傾印公用程式建立的傾印中排除,儘管其中包含 DDL 陳述式。-
includeTables:
字串陣列
僅從傾印檔案載入指定的資料表。資料表名稱必須以有效的結構描述名稱加以限定,並且如果需要,必須使用反引號字元引起來。您也可以同時指定這兩個選項,以包含某些資料表並排除其他資料表。
-
excludeEvents:
字串陣列
從匯入中排除指定的事件。事件名稱必須以有效的結構描述名稱加以限定,並且如果需要,必須使用反引號字元引起來。
-
includeEvents:
字串陣列
僅從傾印檔案載入指定的事件。事件名稱必須以有效的結構描述名稱加以限定,並且如果需要,必須使用反引號字元引起來。
-
excludeRoutines:
字串陣列
從匯入中排除指定的函式和預存程序。常式名稱必須以有效的結構描述名稱加以限定,並且如果需要,必須使用反引號字元引起來。
-
includeRoutines:
字串陣列
僅從傾印檔案載入指定的函式和預存程序。常式名稱必須以有效的結構描述名稱加以限定,並且如果需要,必須使用反引號字元引起來。
-
excludeTriggers:
字串陣列
從匯入中排除指定的觸發程序。觸發程序的名稱必須以有效的結構描述名稱和資料表名稱 (
schema.table.trigger
) 加以限定,並且如果需要,必須使用反引號字元引起來。您可以使用此選項指定結構描述名稱和資料表名稱 (schema.table
) 來排除特定資料表的所有觸發程序。-
includeTriggers:
字串陣列
僅從傾印檔案載入指定的觸發程序。觸發程序的名稱必須以有效的結構描述名稱和資料表名稱 (
schema.table.trigger
) 加以限定,並且如果需要,必須使用反引號字元引起來。您可以使用此選項指定結構描述名稱和資料表名稱 (schema.table
) 來包含特定資料表的所有觸發程序。
MySQL Server 8.0.30 導入了 GIPK 模式,產生的隱形主索引鍵。在此模式下執行時,對於任何在建立時未明確指定主索引鍵的 InnoDB 資料表,MySQL 伺服器會自動為該資料表新增產生的隱形主索引鍵 (GIPK)。您可以將 sql_generate_invisible_primary_key
設定為 ON 來啟用此模式。
MySQL Shell 的載入公用程式選項 createInvisiblePKs
會使用伺服器的 GIPK 模式,為沒有主索引鍵的資料表產生隱形主索引鍵。
在某些情況下,如果使用者沒有足夠的權限來使用 GIPK 模式,MySQL Shell 可以退回先前產生隱形主索引鍵的方法。
如果 createInvisiblePKs:false
且 sql_generate_invisible_primary_key=OFF
,則不會為從傾印載入的任何資料表產生主索引鍵。
如果 createInvisiblePKs:false
且 sql_generate_invisible_primary_key=ON
,則 MySQL Shell 會嘗試將 sql_generate_invisible_primary_key=OFF
。如果變更成功,則不會為從傾印載入的任何資料表產生主索引鍵。
如果 createInvisiblePKs:true
且 sql_generate_invisible_primary_key=OFF
,則 MySQL Shell 會嘗試將 sql_generate_invisible_primary_key=ON
。如果變更成功,則會為從傾印載入的每個沒有主索引鍵的資料表產生主索引鍵。
如果 createInvisiblePKs:true
且 sql_generate_invisible_primary_key=ON
,則會使用 MySQL 伺服器 GIPK 模式為載入的每個資料表產生主索引鍵。
如果執行 MySQL Shell 載入公用程式的使用者沒有所需的 MYSQL 伺服器權限,則設定 sql_generate_invisible_primary_key
的嘗試會失敗。如果嘗試失敗且 createInvisiblePKs:true
,則 MySQL Shell 會為任何沒有主索引鍵的資料表產生隱形主索引鍵。
如果已啟用 GIPK 伺服器選項 sql_generate_invisible_primary_key
,且已停用 MySQL Shell 載入公用程式選項 createInvisiblePKs
,且使用者沒有變更 sql_generate_invisible_primary_key
的必要權限,則會產生錯誤且載入會失敗。您可以啟用 MySQL Shell 環境變數 MYSQLSH_ALLOW_ALWAYS_GIPK
來覆寫此行為。如果已啟用 sql_generate_invisible_primary_key
,則此環境變數會覆寫 createInvisiblePKs:false
,在所有載入的資料表上啟用隱形私密金鑰。
如果已啟用 MySQL Shell 載入公用程式選項 createInvisiblePKs
,但已停用 GIPK 伺服器選項 sql_generate_invisible_primary_key
,則 MySQL Shell 會嘗試啟用 sql_generate_invisible_primary_key
。如果使用者在目標 MySQL 伺服器上具有適當的權限,則會啟用 sql_generate_invisible_primary_key
,且載入公用程式會使用伺服器的 GIPK 模式,在載入的資料表上建立隱形主索引鍵。如果使用者沒有所需的權限 (例如在 HeatWave Service 上),MySQL Shell 會回復到先前的行為,並在資料表上建立主索引鍵,而不會使用伺服器的 GIPK 模式。
MySQL Shell 的平行資料表匯入公用程式 util.importTable()
可以與傾印載入公用程式 util.loadDump()
結合使用,以修改區塊輸出檔案中的資料,然後將其上傳至目標 MySQL 執行個體。您可以透過此方法一次修改一個資料表的資料。
-
將傾印載入公用程式與
loadDdl: true
和loadData: false
選項搭配使用,僅載入 DDL 檔案,並在目標 MySQL 執行個體上建立選取的資料表,其中不含任何資料。shell-js> util.loadDump("/mnt/data/proddump", { > includeTables: ["product.pricing"], > loadDdl: true, > loadData: false});
-
使用平行資料表匯入公用程式來擷取並轉換資料表的資料,並將其匯入目標 MySQL 執行個體上的空白資料表。在此範例中,
pricing
資料表的資料位於多個壓縮檔案中,這些檔案是使用萬用字元模式比對指定的。傾印檔案中id
和prodname
欄位的值會維持不變地指派給目標資料表中相同的欄位。傾印檔案中price
欄位的值會被擷取,並指派給變數@1
。接著使用decodeColumns
選項來減少價格標準值,並將減少後的價格放置在目標資料表的price
欄位中。shell-js> util.importTable ("/mnt/data/proddump/product@pricing@*.zst", { > schema: "product", > table: "pricing", > columns: ["id", "prodname", 1], > decodeColumns: { "price": "0.8 * @1"}});
針對傾印檔案中您需要修改資料的任何其他資料表,根據需要重複步驟 1 和 2。
-
當您完成上傳所有需要修改的資料表和資料時,請使用傾印載入公用程式來載入您不需要修改的任何剩餘資料表的 DDL 和資料。請務必排除您在先前步驟中修改的資料表。
shell-js> util.loadDump("/mnt/data/proddump", {excludeTables: ["product.pricing"]});
範圍 53000-53999 中的錯誤編號特定於 MySQL Shell 的傾印載入公用程式 util.loadDump()
。可能會傳回下列錯誤
-
錯誤編號:
53000
;符號:SHERR_LOAD_MANIFEST_EXPIRED_PARS
訊息:資訊清單檔案中的 PAR 已過期,到期時間設定為:%s
-
錯誤編號:
53001
;符號:SHERR_LOAD_MANIFEST_PAR_MISMATCH
訊息:提供的 PAR 必須是傾印位置上的檔案:'%s'
-
錯誤編號:
53002
;符號:SHERR_LOAD_SPLITTING_DDL_FAILED
訊息:分割資料表 %s 的 DDL 指令碼時發生錯誤:%s
-
錯誤代碼:
53003
;符號:SHERR_LOAD_SECONDARY_ENGINE_ERROR
訊息:表格 %s 已設定次要引擎,但並非所有索引都已重新建立
-
錯誤代碼:
53004
;符號:SHERR_LOAD_FAILED_TO_DISABLE_BINLOG
訊息:'SET sql_log_bin=0' 失敗,錯誤訊息為:%s
-
錯誤代碼:
53005
;符號:SHERR_LOAD_WORKER_THREAD_FATAL_ERROR
訊息:載入傾印檔時發生錯誤
-
錯誤代碼:
53006
;符號:SHERR_LOAD_UNSUPPORTED_DUMP_VERSION
訊息:不支援的傾印檔版本
-
錯誤代碼:
53007
;符號:SHERR_LOAD_UNSUPPORTED_DUMP_CAPABILITIES
訊息:不支援的傾印檔功能
-
錯誤代碼:
53008
;符號:SHERR_LOAD_INCOMPLETE_DUMP
訊息:不完整的傾印檔
-
錯誤代碼:
53009
;符號:SHERR_LOAD_UNSUPPORTED_SERVER_VERSION
訊息:僅在 MySQL 5.7 或更新版本中支援載入傾印檔
-
錯誤代碼:
53010
;符號:SHERR_LOAD_DUMP_NOT_MDS_COMPATIBLE
訊息:傾印檔與 MDS 不相容
-
錯誤代碼:
53011
;符號:SHERR_LOAD_SERVER_VERSION_MISMATCH
訊息:MySQL 版本不符
-
錯誤代碼:
53012
;符號:SHERR_LOAD_UPDATE_GTID_GR_IS_RUNNING
訊息:在執行群組複寫的伺服器上無法使用 updateGtidSet 選項。
-
錯誤代碼:
53013
;符號:SHERR_LOAD_UPDATE_GTID_APPEND_NOT_SUPPORTED
訊息:目標 MySQL 伺服器不支援 updateGtidSet:'append'。
-
錯誤代碼:
53014
;符號:SHERR_LOAD_UPDATE_GTID_REQUIRES_SKIP_BINLOG
訊息:只有在啟用 skipBinlog 選項時,才能在 MySQL 5.7 目標伺服器上使用 updateGtidSet 選項。
-
錯誤代碼:
53015
;符號:SHERR_LOAD_UPDATE_GTID_REPLACE_REQUIRES_EMPTY_VARIABLES
訊息:只有在 GTID_PURGED 和 GTID_EXECUTED 為空時,才能在目標伺服器版本上使用 updateGtidSet:'replace' 選項,但它們並非為空。
-
錯誤代碼:
53016
;符號:SHERR_LOAD_UPDATE_GTID_REPLACE_SETS_INTERSECT
訊息:只有在目標伺服器上的 gtid_subtract(gtid_executed,gtid_purged) 與傾印的 GTID 集不相交時,才能使用 updateGtidSet:'replace' 選項。
-
錯誤代碼:
53017
;符號:SHERR_LOAD_UPDATE_GTID_REPLACE_REQUIRES_SUPERSET
訊息:只有在傾印的 GTID 集是目標伺服器上 gtid_purged 目前值的超集時,才能使用 updateGtidSet:'replace' 選項。
-
錯誤代碼:
53018
;符號:SHERR_LOAD_UPDATE_GTID_APPEND_SETS_INTERSECT
訊息:只有在目標伺服器上的 gtid_executed 與傾印的 GTID 集不相交時,才能使用 updateGtidSet:'append' 選項。
-
錯誤代碼:
53019
;符號:SHERR_LOAD_INVISIBLE_PKS_UNSUPPORTED_SERVER_VERSION
訊息:'createInvisiblePKs' 選項需要伺服器 8.0.24 或更新版本。
-
錯誤代碼:
53020
;符號:SHERR_LOAD_REQUIRE_PRIMARY_KEY_ENABLED
訊息:目的地伺服器上已啟用 sql_require_primary_key
-
錯誤代碼:
53021
;符號:SHERR_LOAD_DUPLICATE_OBJECTS_FOUND
訊息:在目的地資料庫中找到重複的物件
-
錯誤代碼:
53022
;符號:SHERR_LOAD_DUMP_WAIT_TIMEOUT
訊息:傾印逾時
-
錯誤代碼:
53023
;符號:SHERR_LOAD_INVALID_METADATA_FILE
訊息:無效的中繼資料檔案 %s
-
錯誤代碼:
53024
;符號:SHERR_LOAD_PARSING_METADATA_FILE_FAILED
訊息:無法剖析中繼資料檔案 %s:%s
-
錯誤代碼:
53025
;符號:SHERR_LOAD_LOCAL_INFILE_DISABLED
訊息:伺服器中已停用 local_infile
-
錯誤代碼:
53026
;符號:SHERR_LOAD_PROGRESS_FILE_ERROR
訊息:載入載入進度檔案 '%s' 時發生錯誤:%s
-
錯誤代碼:
53027
;符號:SHERR_LOAD_PROGRESS_FILE_UUID_MISMATCH
訊息:進度檔案是為 UUID 為 %s 的伺服器建立的,而目標伺服器的 UUID 為:%s
-
錯誤代碼:
53028
;符號:SHERR_LOAD_MANIFEST_UNKNOWN_OBJECT
訊息:清單中未知的物件:%s
錯誤代碼在 54000-54999 範圍內,適用於 MySQL Shell 的傾印載入公用程式 util.loadDump()
,或由 MySQL Shell 的執行個體傾印公用程式 util.dumpInstance()
、結構描述傾印公用程式 util.dumpSchemas()
和表格傾印公用程式 util.dumpTables()
所發生的連線和網路錯誤。在大多數情況下,錯誤代碼與所涉及的 HTTP 錯誤相符 – 例如,當找不到 URL 的目標時,會發生錯誤 54404 (HTTP 404 Not Found)。可能會傳回下列錯誤