MySQL Shell 的傾印載入工具 util.loadDump()
支援將使用 MySQL Shell 的第 11.5 節「執行個體傾印工具、綱要傾印工具和表格傾印工具」所傾印的綱要或表格匯入至 HeatWave Service DB 系統或 MySQL 伺服器執行個體。傾印載入工具提供來自遠端儲存裝置的資料串流、表格或表格區塊的平行載入、進度狀態追蹤、繼續和重設功能,以及在傾印仍在進行時同時載入的選項。若要取得最佳功能,請務必使用 MySQL Shell 傾印和傾印載入工具的最新可用版本。
若要匯入至 HeatWave Service DB 系統,MySQL Shell 必須安裝在可存取 HeatWave Service DB 系統的 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 檔案和以 Tab 分隔的 .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 伺服器執行個體上執行(而非生產系統),而且此功能在 MySQL 資料庫系統上不可用。如需詳細資訊,請參閱停用重做日誌。
目標 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 服務資料庫系統配置中,此系統變數會設為ON
。LOAD DATA LOCAL INFILE
陳述式會使用非限制性資料解譯,將錯誤轉換為警告,並繼續載入作業。此程序可能包括為欄位指派預設值和隱含預設值,以及將無效值轉換為最接近的有效值(適用於欄資料類型)。如需此陳述式行為的詳細資訊,請參閱LOAD DATA
。在目標 MySQL 執行個體上,傾印載入公用程式會檢查
sql_require_primary_key
系統變數是否設為ON
,如果設為ON
,則會在傾印檔中找到沒有主索引鍵的資料表時傳回錯誤。依預設,在標準 HeatWave 服務資料庫系統配置中,此系統變數會設為OFF
。傾印載入公用程式不會自動將來源 MySQL 執行個體中的
gtid_executed
GTID 集套用至目標 MySQL 執行個體。GTID 集包含在 MySQL Shell 的執行個體傾印公用程式、結構描述傾印公用程式或資料表傾印公用程式的傾印元資料中,即@.json
傾印檔中的gtidExecuted
欄位。若要將這些 GTID 套用至目標 MySQL 執行個體以供複寫使用,請使用updateGtidSet
選項或手動匯入它們,具體取決於目標 MySQL 執行個體和 MySQL Shell 版本的發行版本。HeatWave 服務資料庫系統執行個體也支援此功能。如需詳細資訊,請參閱updateGtidSet
選項的說明。
MySQL Shell 支援使用預先驗證要求 (PAR) 從 Object Storage 儲存桶載入傾印檔。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 Object Storage 儲存桶匯入傾印檔,則 url
是傾印檔在儲存桶中所具有的路徑前置詞,此路徑前置詞是使用建立傾印檔時的 outputUrl
參數指派的。使用 osBucketName
選項來提供 Object Storage 儲存桶的名稱,並使用 osNamespace
選項來識別儲存桶的命名空間。在此 MySQL Shell JavaScript 模式的範例中,會使用 8 個執行緒將前置詞為 worlddump
的傾印檔從 Object Storage 儲存桶載入連線的 HeatWave 服務資料庫系統
shell-js> util.loadDump("worlddump", {
threads: 8, osBucketName: "hanna-bucket", osNamespace: "idx28w1ckztq"})
Object Storage 儲存桶的命名空間會顯示在 Oracle Cloud Infrastructure 主控台的儲存桶詳細資料頁面的「儲存桶資訊」索引標籤中,或者可以使用 Oracle Cloud Infrastructure 命令列介面取得。系統會使用預設 Oracle Cloud Infrastructure CLI 組態檔中的預設設定檔,或者您使用 ociConfigFile
和 ociProfile
選項指定的替代詳細資料,來建立與 Object Storage 儲存桶的連線。如需設定 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
) 匯入的進度資訊。預設值為true
,如果stdout
是終端機 (tty
),例如當 MySQL Shell 處於互動模式時,否則為false
。進度資訊包含作用中執行緒的數量及其動作、目前為止已載入的資料量、完成百分比以及輸送量。當未顯示進度資訊時,進度狀態仍會記錄在傾印載入工具的進度狀態檔案中。-
resetProgress: [ true | false ]
將此選項設定為
true
會重設進度狀態,並從頭開始重新匯入。預設值為false
。請注意,使用此選項時,傾印載入工具不會略過已建立的物件,也不會管理重複。如果您想要使用此選項,為了確保正確匯入,您必須先從目標 MySQL 執行個體手動移除所有先前載入的物件,包括來自該傾印的結構描述、資料表、使用者、檢視、觸發程序、常式和事件。否則,如果傾印檔案中的物件已存在於目標 MySQL 執行個體中,則匯入作業會停止並出現錯誤。謹慎地使用ignoreExistingObjects
選項,您可以讓工具報告重複的物件,但略過它們並繼續匯入。-
skipBinlog: [ true | false ]
藉由發出
SET sql_log_bin=0
陳述式,在工具於匯入期間使用的目標 MySQL 執行個體工作階段中,略過二進位記錄。預設值為false
,因此預設會啟用二進位記錄。對於 HeatWave 服務資料庫系統,不會使用此選項。如果您嘗試將其設定為true
,匯入作業會停止並出現錯誤。對於其他 MySQL 執行個體,如果您要將來源 MySQL 執行個體的gtid_executed
GTID 集,使用updateGtidSet
選項或手動,套用至目標 MySQL 執行個體,請務必將skipBinlog
設定為true
。當 GTID 在目標 MySQL 執行個體上使用中時 (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 服務執行個體。 -
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 伺服器的平行索引建立。先前,傾印載入工具會循序逐一加入索引。從此版本開始,會同時加入資料表中的所有索引。
如需限制和組態,請參閱 設定線上 DDL 作業的平行執行緒。
-
deferTableIndexes: [ off | fulltext | all ]
將次要索引的建立延遲到載入資料表資料之後。這可以減少載入時間。
off
表示會在資料表載入期間建立所有索引。預設設定fulltext
只會延遲全文索引。all
會延遲所有次要索引,且只會在資料表載入期間建立主要索引,以及在包含自動遞增值的資料行上定義的索引。-
analyzeTables: [ off | on | histogram ]
在載入資料表後,針對資料表執行
ANALYZE TABLE
。on
會分析所有資料表,而histogram
只會分析在傾印中儲存長條圖資訊的資料表。預設值為off
。即使已載入資料,您仍可使用此選項執行傾印載入工具,以分析資料表。-
checksum: [true|false]
-
若啟用,
loadDump
公用程式會在載入對應資料後,檢查 dump 公用程式產生的檢查碼資料。驗證僅限於已傾印的資料,會忽略由 loadDump 公用程式新增的隱形主索引鍵等產生資料。若檢查碼不符,或表格遺失而無法驗證,則會傳回錯誤。
若
checksum: true
,但由於loadData: false
或沒有傾印資料,而沒有載入任何資料,則公用程式會根據受影響表格的目前內容,驗證傾印的檢查碼資訊。若表格不存在,則會針對每個遺失的表格顯示錯誤訊息。
若
checksum: true
且dryRun: true
,則不會驗證檢查碼。會顯示訊息,說明未執行任何驗證。
-
showMetadata: [ true | false ]
-
從 MySQL Shell 的 instance dump 公用程式、schema dump 公用程式或 table dump 公用程式產生的傾印中包含的傾印中繼資料,列印來源執行個體的
gtid_executed
GTID 集,以及二進位日誌檔案名稱和位置。中繼資料會以 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 的 table dump 公用程式產生的傾印使用此選項,僅適用於 MySQL Shell 的 instance dump 公用程式或 schema dump 公用程式產生的傾印。此外,當群組複寫在目標 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 執行個體時。您也可以針對 MySQL 8.0 的目標 MySQL 執行個體使用
replace
,以來源 MySQL 執行個體的gtid_executed
GTID 集,取代目標 MySQL 執行個體上的gtid_purged
GTID 集。若要執行此作業,來源 MySQL 執行個體的gtid_executed
GTID 集必須是目標 MySQL 執行個體上的gtid_purged
GTID 集的超集,且不得與目標的gtid_executed
GTID 集中不在其gtid_purged
GTID 集中的交易集相交。對於 MySQL 5.7 的目標 MySQL 執行個體,請將選項設定為
replace
,這會以來源 MySQL 執行個體的gtid_executed
GTID 集取代目標 MySQL 執行個體上的gtid_purged
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 的 instance dump 公用程式
util.dumpInstance()
、schema dump 公用程式util.dumpSchemas()
或 table dump 公用程式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 High Availability DB System 進行輸入複寫,因為該功能目前需要在來源伺服器和複本伺服器中都存在主索引鍵。如果可能,請考慮在來源伺服器上的表格中建立主索引鍵,然後再重新傾印,而不要使用此選項。從 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
" Object Storage 儲存桶所在的 Oracle Cloud Infrastructure 命名空間,此儲存桶的名稱由
osBucketName
指定。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]
設定檔。-
ociAuth
: "string
" -
連線至 Oracle Cloud Infrastructure 時要使用的驗證方法。此選項要求
osBucketName
已設定為有效的值。可使用下列選項
-
api_key
:OCI 連線使用 OCI 組態檔。請參閱第 4.7.1 節「Oracle Cloud Infrastructure Object Storage」。如果
osBucketName
定義為有效值,但未定義ociAuth
,則會使用預設值api_key
。 -
instance_principal
:OCI 連線使用執行個體主體驗證。請參閱執行個體主體驗證。如果已定義
ociConfigFile
或ociProfile
,則無法使用此選項。 -
resource_principal
:OCI 連線使用資源主體驗證。請參閱資源主體驗證。如果已定義
ociConfigFile
或ociProfile
,則無法使用此選項。 security_token
:OCI 連線使用暫時產生的工作階段權杖。請參閱以工作階段權杖為基礎的驗證。
-
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,而非預設端點。
連線至 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})
下列範例顯示從 Object Storage 儲存桶 Bucket001
中名為 test
的前置字元載入 MySQL 傾印,使用組態設定檔 oci
和 s3EndpointOverride
將連線導向至所需租用戶和區域的 OCI 端點
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:
字串陣列
將具名結構描述排除在匯入之外。請注意,MySQL Shell 的執行個體傾印公用程式建立的傾印一律會排除
information_schema
、mysql
、ndbinfo
、performance_schema
和sys
結構描述。-
includeSchemas:
字串陣列
僅從傾印檔案載入具名結構描述。您可以同時指定這兩個選項,以包含某些結構描述並排除其他結構描述。
-
excludeTables:
字串陣列
將具名資料表排除在匯入之外,因此不會將這些資料表上傳至目標 MySQL 執行個體。資料表名稱必須以有效的結構描述名稱加以限定,且必要時使用反引號字元加以引號。請注意,MySQL Shell 的結構描述傾印公用程式建立的傾印一律會排除
mysql.apply_status
、mysql.general_log
、mysql.schema
和mysql.slow_log tables
的資料,但其中包含其 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)。可能會傳回下列錯誤