MySQL Shell 9.0  /  MySQL Shell 公用程式  /  實例轉儲工具、綱要轉儲工具和表格轉儲工具

11.5 實例轉儲工具、綱要轉儲工具和表格轉儲工具

MySQL Shell 的實例轉儲公用程式 util.dumpInstance() 和綱要轉儲公用程式 util.dumpSchemas() 支援將內部部署 MySQL 實例的所有綱要或選取的綱要匯出到 Oracle Cloud Infrastructure 物件儲存貯體或一組本機檔案中。表格轉儲公用程式 util.dumpTables() 支援對綱要中的選定表格或檢視執行相同的操作。然後,可以使用 util.loadDump() 公用程式,將匯出的項目匯入 HeatWave Service DB 系統或 MySQL Server 實例 (請參閱 第 11.6 節「轉儲載入公用程式」)。為了獲得最佳功能,請務必使用 MySQL Shell 轉儲和轉儲載入公用程式的最新版本。

關於公用程式

MySQL Shell 的實例轉儲公用程式、綱要轉儲公用程式和表格轉儲公用程式提供 Oracle Cloud Infrastructure 物件儲存串流、HeatWave Service 相容性檢查和修改、使用多個執行緒進行平行轉儲和檔案壓縮,這些功能是 mysqldump 所沒有的。轉儲期間會顯示進度資訊。您可以使用選擇的轉儲選項集執行試執行,以顯示有關將執行的動作、將轉儲的項目,以及 (針對實例轉儲公用程式和綱要轉儲公用程式) 當您使用這些選項實際執行公用程式時,需要修正哪些 HeatWave Service 相容性問題的資訊。

選擇轉儲檔案的目的地時,請注意,為了匯入 HeatWave Service DB 系統,您執行轉儲載入公用程式的 MySQL Shell 實例必須安裝在可以存取 HeatWave Service DB 系統的 Oracle Cloud Infrastructure Compute 實例上。如果您將實例、綱要或表格轉儲至物件儲存貯體,您可以從 Compute 實例存取物件儲存貯體。如果您在本機系統上建立轉儲檔案,您需要使用您選擇的複製公用程式,將它們傳輸到 Oracle Cloud Infrastructure Compute 實例,具體取決於您為 Compute 實例選擇的作業系統。

由 MySQL Shell 的實例轉儲公用程式、綱要轉儲公用程式和表格轉儲公用程式建立的轉儲包含指定綱要結構的 DDL 檔案,以及包含資料的索引標籤分隔 .tsv 檔案。如果您希望將匯出的綱要設定為與使用匯出資料填入資料庫不同的練習,您也可以選擇僅產生 DDL 檔案或僅產生資料檔案。您可以選擇是否在轉儲期間鎖定實例以確保資料一致性。依預設,轉儲公用程式會將表格資料分成多個資料檔案,並壓縮檔案。

您可以使用公用程式的選項來包含或排除指定的綱要和表格、使用者及其角色和授與、事件、常式和觸發程序。如果您指定衝突的包含和排除選項,或命名未包含在轉儲中的物件,則會報告錯誤並且轉儲會停止,以便您可以更正選項。如果您需要轉儲 MySQL 實例中的大多數綱要,作為替代策略,您可以使用實例轉儲公用程式而不是綱要轉儲公用程式,並指定 excludeSchemas 選項來列出不轉儲的綱要。同樣地,如果您需要轉儲綱要中的大多數表格,您可以將綱要轉儲公用程式與 excludeTables 選項一起使用,而不是使用表格轉儲公用程式。

雖然包含 mysql.apply_statusmysql.general_logmysql.schemamysql.slow_log tables 的 DDL 陳述式,但這些表格的資料始終會從由 MySQL Shell 綱要轉儲公用程式建立的轉儲中排除。information_schemamysqlndbinfoperformance_schemasys 綱要始終會從實例轉儲中排除。

依預設,轉儲輸出中所有時間戳記資料的時區都會標準化為 UTC,這有助於在具有不同時區的伺服器之間移動資料以及處理具有多個時區的資料。如果您願意,可以使用 tzUtc: false 選項來保留原始時間戳記。

MySQL Shell 轉儲載入公用程式 util.loadDump() 支援使用預先驗證的要求 (PAR) 從物件儲存貯體載入匯出的實例和綱要。如需使用 PAR 載入轉儲的相關資訊,請參閱 第 11.6 節「轉儲載入公用程式」

MySQL Shell 的實例轉儲公用程式、綱要轉儲公用程式和表格轉儲公用程式可感知分割 (請參閱 MySQL 手冊中的 分割)。當要轉儲的表格已分割時,每個分割區都會被視為獨立的表格;如果表格有子分割區,則每個子分割區都會被視為獨立的表格。這也表示,當啟用分塊時,分割或子分割表格的每個分割區或子分割區都會獨立分塊。為分割表格建立的轉儲檔案的基本名稱使用 schema@table@partition 格式,其中 schematable 分別是父綱要和表格的名稱,而 partition 是分割區或子分割區的 URL 編碼名稱。

為了管理 MySQL Shell 公用程式較早版本不支援的功能新增,util.dumpInstance()util.dumpSchemas()util.dumpTables()util.loadDump() 會將轉儲建立中使用的功能清單寫入轉儲中繼資料檔案;針對每個此類功能,都會將一個元素新增至清單中。當轉儲載入公用程式讀取中繼資料檔案並發現列出不支援的功能時,它會報告錯誤;錯誤訊息包含支援該功能的 MySQL Shell 版本。

需求和限制

  • 實例轉儲公用程式、綱要轉儲公用程式和表格轉儲公用程式僅支援 MySQL Server 版本的正式發行 (GA) 版本。

  • 目的地 MySQL 實例 (將載入轉儲的位置) 需要 MySQL 5.7 或更新版本。

  • 對於來源 MySQL 實例,在提供公用程式的所有 MySQL Shell 版本中,完全支援從 MySQL 5.7 或更新版本進行轉儲。

  • 實例或綱要中的物件名稱必須採用 latin1utf8 字元集。

  • 僅針對使用 InnoDB 儲存引擎的表格保證資料一致性。

  • 用來執行公用程式的使用者帳戶在所有涉及的綱要上必須具有的最低權限集如下:EVENTRELOADSELECTSHOW VIEWTRIGGER

    • 如果將 consistent 選項設定為 true (預設值),則在 LOCK TABLES 權限可用時,可替代所有已傾印資料表上的 RELOAD 權限 (如果後者不可用)。

    • 如果使用者帳戶沒有 BACKUP_ADMIN 權限,並且無法執行 LOCK INSTANCE FOR BACKUP,公用程式會在傾印期間進行額外的一致性檢查。如果此檢查失敗,將會停止執行執行個體傾印,但結構描述傾印或資料表傾印會繼續執行,並傳回錯誤訊息以警告使用者一致性檢查失敗。

    • 如果將 consistent 選項設定為 false,則不需要 BACKUP_ADMINRELOAD 權限。

    • 如果傾印來自 MySQL 5.6 執行個體,且包含使用者帳戶 (只有使用執行個體傾印公用程式才可能),則也需要 SUPER 權限。

  • 用於執行公用程式的使用者帳戶需要 REPLICATION CLIENT 權限,公用程式才能在傾印中包含二進位記錄檔名稱和位置。如果使用者 ID 沒有該權限,則會繼續執行傾印,但不包含二進位記錄資訊。在將傾印的資料載入到複本伺服器後,可以使用二進位記錄資訊,透過 CHANGE REPLICATION SOURCE TO 陳述式的 ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS 選項,使用非 GTID 來源伺服器設定複寫。

  • 用於將檔案傳輸到 Oracle Cloud Infrastructure Object Storage 儲存桶的上傳方法,其檔案大小限制為 1.2 TiB。

  • 公用程式會將資料類型不適合以文字形式儲存 (例如 BLOB) 的資料行轉換為 Base64。因此,這些資料行的大小不得超過目標 MySQL 執行個體上設定之 max_allowed_packet 系統變數 (以位元組為單位) 值的約 0.74 倍。

  • 對於資料表傾印公用程式,匯出的檢視和觸發程序不得使用完整名稱來參考其他檢視或資料表。

  • 資料表傾印公用程式不會傾印常式,因此在載入傾印的物件時,由傾印的物件 (例如,使用函式的檢視) 參考的任何常式都必須已經存在。

  • 若要匯入 HeatWave Service 資料庫系統,請將 ocimds 選項設定為 true,以確保與 HeatWave Service 相容。

    重要事項

    移轉至 HeatWave Service 時,建議一律使用最新可用的 MySQL Shell 版本。

  • 為了與 HeatWave Service 相容,所有資料表都必須使用 InnoDB 儲存引擎。ocimds 選項會檢查傾印中發現的任何例外狀況,而 compatibility 選項會變更傾印檔案,以將其他儲存引擎取代為 InnoDB

  • 對於執行個體傾印公用程式和結構描述傾印公用程式,為了與 HeatWave Service 相容,執行個體或結構描述中的所有資料表都必須位於 MySQL 資料目錄中,且必須使用預設的結構描述加密。ocimds 選項會變更傾印檔案以套用這些需求。

  • HeatWave Service 使用 partial_revokes=ON,這表示結構描述上包含萬用字元 (例如 _%) 的資料庫層級使用者授與會回報為錯誤。

    您也可以使用相容性選項 ignore_wildcard_grantsstrip_invalid_grants

    如需詳細資訊,請參閱 適用於 HeatWave Service 和 Oracle Cloud Infrastructure 的選項

  • 為了與 HeatWave Service 相容,許多其他與安全性相關的限制和需求適用於資料表空間和權限等項目。ocimds 選項會檢查在傾印期間發現的任何例外狀況,而 compatibility 選項會自動變更傾印檔案,以解決部分相容性問題。您可能需要 (或偏好) 手動進行一些變更。如需更多詳細資訊,請參閱 compatibility 選項的說明。

  • 對於使用群組複寫的 HeatWave Service 高可用性,每個資料表都需要主索引鍵。ocimds 選項會檢查並回報傾印中任何缺少主索引鍵的資料表的錯誤。compatibility 選項可以設定為忽略缺少的主索引鍵 (如果您不需要這些索引鍵),或通知 MySQL Shell 的傾印載入公用程式在不存在主索引鍵時,於隱藏資料行中加入主索引鍵。如需詳細資訊,請參閱 compatibility 選項的說明。如果可以,請考慮在再次傾印資料表之前,先在來源伺服器上的資料表中建立主索引鍵,而不是在公用程式中管理此問題。

  • 如果針對 MySQL 5.7 執行任何傾印公用程式,並將 "ocimds": true,則會自動執行 util.checkForServerUpgrade,除非透過 skipUpgradeChecks 停用這些檢查。會根據傾印中包含的物件類型執行升級前檢查。

執行公用程式

執行個體傾印公用程式、結構描述傾印公用程式和資料表傾印公用程式會使用 MySQL Shell 全域工作階段來取得要從中執行匯出的目標 MySQL 伺服器的連線詳細資料。您必須先開啟全域工作階段 (可以使用 X 通訊協定連線或傳統 MySQL 通訊協定連線),才能執行其中一個公用程式。公用程式會為每個執行緒開啟自己的工作階段,並從全域工作階段複製連線壓縮和 SSL 選項等選項,且不會再進一步使用全域工作階段。

在 MySQL Shell API 中,執行個體傾印公用程式、結構描述傾印公用程式和資料表傾印公用程式是 util 全域物件的函數,並具有下列簽章

util.dumpInstance(outputUrl[, options]) 
util.dumpSchemas(schemas, outputUrl[, options])
util.dumpTables(schema, tables, outputUrl[, options])

options 是選項的字典,如果該字典是空的,則可以省略。本主題的其餘章節中列出了執行個體傾印公用程式、結構描述傾印公用程式和資料表傾印公用程式可用的選項。

對於結構描述傾印公用程式,schemas 會指定要從 MySQL 執行個體傾印的一或多個結構描述的清單。

對於資料表傾印公用程式,schema 會指定包含要傾印之項目的結構描述,而 tables 則是一個字串陣列,指定要傾印的資料表或檢視。資料表傾印包含在目標 MySQL 執行個體中設定指定結構描述所需的資訊,儘管可以使用傾印載入公用程式的 schema 選項將其載入到替代的目標結構描述中。

資料表傾印公用程式可用於從結構描述中選取個別資料表,例如,如果您想要在結構描述之間傳輸資料表。在 MySQL Shell 的 JavaScript 模式中的此範例中,會將 hr 結構描述中的 employeessalaries 資料表匯出到本機目錄 emp,公用程式會在目前的工作目錄中建立該目錄

shell-js> util.dumpTables("hr", [ "employees", "salaries" ], "emp")

若要傾印指定結構描述中的所有檢視和資料表,請使用 all 選項,並將 tables 參數設定為空陣列,如此範例所示

shell-js> util.dumpTables("hr", [], "emp", { "all": true })

如果您要傾印到本機檔案系統,outputUrl 是指定要放置傾印檔案的本機目錄路徑的字串。您可以指定絕對路徑或相對於目前工作目錄的路徑。您可以使用 file:// 結構描述作為本機目錄路徑的前置字元。在此範例中,會將連線的 MySQL 執行個體傾印到本機目錄,並在傾印檔案中進行一些修改,以確保與 HeatWave Service 相容。使用者會先執行試執行以檢查結構描述並檢視相容性問題,然後執行傾印並套用適當的相容性選項來移除問題

shell-js> util.dumpInstance("C:/Users/hanna/worlddump", {dryRun: true, ocimds: true})
Checking for compatibility with HeatWave Service 8.0.33
...
Compatibility issues with HeatWave Service 8.0.33 were found. Please use the 
'compatibility' option to apply compatibility adaptations to the dumped DDL.
Util.dumpInstance: Compatibility issues were found (RuntimeError)
shell-js> util.dumpInstance("C:/Users/hanna/worlddump", {
        > ocimds: true, compatibility: ["strip_definers", "strip_restricted_grants"]})

執行匯出之前,目標目錄必須是空的。如果目錄尚未在其父目錄中存在,則公用程式會建立該目錄。對於匯出到本機目錄,在傾印期間建立的目錄會使用存取權限 rwxr-x--- 來建立,而檔案則會使用存取權限 rw-r----- 來建立 (在支援這些權限的作業系統上)。檔案和目錄的擁有者是正在執行 MySQL Shell 的使用者帳戶。

如果您要傾印到 Oracle Cloud Infrastructure Object Storage 儲存桶,則 outputUrl 是將用於在儲存桶中作為傾印檔案前置字元的路徑,以模擬目錄結構。請使用 osBucketName 選項來提供 Object Storage 儲存桶的名稱,並使用 osNamespace 選項來識別儲存桶的命名空間。在此範例中,使用者會將連線 MySQL 執行個體中的 world 結構描述傾印到 Object Storage 儲存桶,並使用與先前範例相同的相容性修改

shell-js> util.dumpSchemas(["world"], "worlddump", {
        > "osBucketName": "hanna-bucket", "osNamespace": "idx28w1ckztq", 
        > "ocimds": "true", "compatibility": ["strip_definers", "strip_restricted_grants"]})

在 Object Storage 儲存桶中,傾印檔案全都會顯示前置字元 worlddump,例如

worlddump/@.done.json	
worlddump/@.json	
worlddump/@.post.sql
worlddump/@.sql
worlddump/world.json	
worlddump/world.sql	
worlddump/world@city.json	
worlddump/world@city.sql	
worlddump/world@city@@0.tsv.zst
worlddump/world@city@@0.tsv.zst.idx
...

Object Storage 儲存桶的命名空間會顯示在 Oracle Cloud Infrastructure 主控台中的儲存桶詳細資料頁面的 儲存桶資訊標籤中,也可以使用 Oracle Cloud Infrastructure 命令列介面取得。使用預設 Oracle Cloud Infrastructure CLI 組態檔案中的預設設定檔,或您使用 ociConfigFileociProfile 選項指定的替代詳細資料,與 Object Storage 儲存桶建立連線。如需設定 CLI 組態檔案的指示,請參閱 SDK 和 CLI 組態檔案

傾印控制的選項

dryRun:[ true | false ]

顯示使用指定的選項集會傾印哪些項目的相關資訊,以及 HeatWave Service 相容性檢查的結果 (如果指定 ocimds 選項),但不會繼續進行傾印。設定此選項可讓您在開始傾印之前列出所有相容性問題。預設值為 false

showProgress:[ true | false ]

顯示 (true) 或隱藏 (false) 傾印的進度資訊。如果 stdout 是終端機 (tty),例如在 MySQL Shell 處於互動模式時,則預設值為 true,否則為 false。進度資訊包含要傾印的預估總列數、目前已傾印的列數、完成百分比,以及每秒的列數和位元組數輸送量。

threads:int

要用來從 MySQL 執行個體傾印資料區塊的平行執行緒數目。每個執行緒都有自己的 MySQL 執行個體連線。預設值為 4。

maxRate:"string"

傾印期間每個執行緒的資料讀取輸送量上限 (以每秒位元組為單位)。可以使用單位後置字元 k 表示千位元組、M 表示百萬位元組,以及 G 表示十億位元組 (例如,設定 100M 會將輸送量限制為每個執行緒每秒 100 百萬位元組)。設定 0 (這是預設值),或將選項設定為空字串,表示未設定任何限制。

defaultCharacterSet: "string"

在 MySQL Shell 開啟連線至伺服器以進行傾印時,所使用的字元集。預設值為 utf8mb4。系統變數 character_set_clientcharacter_set_connectioncharacter_set_results 的連線階段值會針對每個連線設定為此值。此字元集必須為 character_set_client 系統變數所允許,且為 MySQL 執行個體所支援。

consistent: [ true | false ]

啟用 (true) 或停用 (false) 一致性資料傾印,方法是在傾印期間鎖定執行個體以進行備份。預設值為 true

當設定為 true 時,公用程式會使用 FLUSH TABLES WITH READ LOCK 陳述式設定全域讀取鎖定(如果用來執行公用程式的使用者 ID 具有 RELOAD 權限),或使用 LOCK TABLES 陳述式設定一系列資料表鎖定(如果使用者 ID 沒有 RELOAD 權限,但具有 LOCK TABLES)。每個執行緒的交易都會使用陳述式 SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READSTART TRANSACTION WITH CONSISTENT SNAPSHOT 來開始。當所有執行緒都開始交易時,執行個體會鎖定以進行備份(如 LOCK INSTANCE FOR BACKUP 和 UNLOCK INSTANCE 陳述式中所述),並釋放全域讀取鎖定。

如果使用者帳戶沒有 BACKUP_ADMIN 權限,並且無法執行 LOCK INSTANCE FOR BACKUP,公用程式會在傾印期間進行額外的一致性檢查。如果此檢查失敗,將會停止執行執行個體傾印,但結構描述傾印或資料表傾印會繼續執行,並傳回錯誤訊息以警告使用者一致性檢查失敗。

skipConsistencyChecks: [ true | false ]

啟用 (true) 或停用 (false) 當 consistent: true 時執行的額外一致性檢查。預設值為 false

如果 consistent: false,則會忽略此選項。

skipUpgradeChecks: [true | false]

預設值為 false。啟用可停用當 ocimds: true 時通常會預設執行的升級檢查。將不會檢查與 MySQL 版本升級相關的相容性問題。僅當您個別執行升級檢查器時,才使用此選項。

傾印輸出的選項

tzUtc: [ true | false ]

在傾印開始時包含一個陳述式,將時區設定為 UTC。傾印輸出中的所有時間戳記資料都會轉換為這個時區。預設值為 true,因此時間戳記資料預設會轉換。將時區設定為 UTC 有助於在具有不同時區的伺服器之間移動資料,或處理具有多個時區的一組資料。如果您偏好保留原始時間戳記,請將此選項設定為 false

compression: "string;level=n"

建立傾印檔案時要使用的壓縮類型和壓縮層級。以下壓縮選項可供使用

  • none:不套用壓縮。

  • gzip:使用 gzip 壓縮程式庫。壓縮層級可以設定為 0 到 9。預設壓縮層級為 1。例如

                      "compression": "gzip;level=4"
  • zstd:預設值。使用 zstd 壓縮程式庫。壓縮層級可以設定為 1 到 22。預設壓縮層級為 1。例如

                      "compression": "zstd;level=15"
checksum: [ true | false ]

如果啟用,則會使用傾印產生一個中繼資料檔案 @.checksums.json。此檔案包含傾印的總和檢查碼資料,可在載入傾印時啟用資料驗證。請參閱載入控制的選項

如果 checksum: true,則適用下列條件

  • 如果 ddlOnly:falsechunking:true,則會為每個傾印的資料表和分割區區塊產生總和檢查碼。

  • 如果 ddlOnly:falsechunking:false,則會為每個傾印的資料表和資料表分割區產生總和檢查碼。

  • 如果 ddlOnly:true,則會為每個傾印的資料表和資料表分割區產生總和檢查碼。

chunking: [ true | false ]

啟用 (true) 或停用 (false) 資料表資料的區塊分割,這會將每個資料表的資料分割為多個檔案。預設值為 true,因此預設會啟用區塊分割。使用 bytesPerChunk 來指定區塊大小。如果您將區塊分割選項設定為 false,則不會進行區塊分割,而且公用程式會為每個資料表建立一個資料檔案。

如果資料表沒有主索引鍵或唯一索引,則會根據資料表中的列數、平均列長度和 bytesPerChunk 值來進行區塊分割。

bytesPerChunk: "string"

設定啟用區塊分割時要寫入每個資料檔案的大約位元組數。可以使用單位後綴 k 代表 KB、M 代表 MB 和 G 代表 GB。預設值為 64 MB。指定此選項會隱含地將 chunking 設定為 true。公用程式的目標是在套用壓縮之前,將每個資料表的資料區塊分割為每個都包含此資料量的檔案。區塊大小是平均值,並根據資料表統計資料和說明計畫估計值來計算。

dialect: [default|csv|csv-unix|tsv]

指定匯出資料檔案格式的一組欄位和行處理選項。您可以使用選取的方言作為進一步自訂的基礎,方法是同時指定一或多個 linesTerminatedByfieldsTerminatedByfieldsEnclosedByfieldsOptionallyEnclosedfieldsEscapedBy 選項來變更設定。

預設方言會產生一個與使用 SELECT...INTO OUTFILE 陳述式以該陳述式的預設設定所建立的資料檔案相符的資料檔案。.txt 是適合指派給這些輸出檔案的副檔名。其他方言可用於匯出 DOS 或 UNIX 系統的 CSV 檔案 (.csv) 和 TSV 檔案 (.tsv)。

針對每個方言套用的設定如下

表 11.3 資料表匯出公用程式的方言設定

方言

linesTerminatedBy

fieldsTerminatedBy

fieldsEnclosedBy

fieldsOptionallyEnclosed

fieldsEscapedBy

預設

[LF]

[TAB]

[空白]

false

\

csv

[CR][LF]

,

''

true

\

csv-unix

[LF]

,

''

false

\

tsv

[CR][LF]

[TAB]

''

true

\


注意
  1. 方言的回車和換行值與作業系統無關。

  2. 如果您使用 linesTerminatedByfieldsTerminatedByfieldsEnclosedByfieldsOptionallyEnclosedfieldsEscapedBy 選項,根據您的命令解譯器的逸出慣例,如果您在選項值中使用反斜線字元 (\),則可能需要將其加倍。

  3. 如同使用 SELECT...INTO OUTFILE 陳述式的 MySQL 伺服器,MySQL Shell 不會驗證您指定的欄位和行處理選項。這些選項的不準確選取可能會導致資料部分或不正確地匯出。請務必在開始匯出之前驗證您的設定,並在之後驗證結果。

linesTerminatedBy: "characters"

公用程式用來終止匯出資料檔案中每一行的單一或多個字元(或空字串)。預設值與指定的方言相同,如果省略方言選項,則為換行字元 (\n)。此選項相當於 SELECT...INTO OUTFILE 陳述式的 LINES TERMINATED BY 選項。請注意,公用程式沒有提供 SELECT...INTO OUTFILE 陳述式的 LINES STARTING BY 選項的對等選項,該選項設定為空字串。

fieldsTerminatedBy: "characters"

公用程式用來終止匯出資料檔案中每個欄位的單一或多個字元(或空字串)。預設值與指定的方言相同,如果省略方言選項,則為 Tab 字元 (\t)。此選項相當於 SELECT...INTO OUTFILE 陳述式的 FIELDS TERMINATED BY 選項。

fieldsEnclosedBy: "character"

公用程式用來括住匯出資料檔案中每個欄位的單一字元(或空字串)。預設值與指定的方言相同,如果省略方言選項,則為空字串。此選項相當於 SELECT...INTO OUTFILE 陳述式的 FIELDS ENCLOSED BY 選項。

fieldsOptionallyEnclosed: [ true | false ]

是否要讓 fieldsEnclosedBy 指定的字元括住匯出資料檔案中的所有欄位 (false),或僅當欄位具有字串資料類型(例如 CHARBINARYTEXTENUM)時才括住欄位 (true)。預設值與指定的方言相同,如果省略方言選項,則為 false。此選項會讓 fieldsEnclosedBy 選項相當於 SELECT...INTO OUTFILE 陳述式的 FIELDS OPTIONALLY ENCLOSED BY 選項。

fieldsEscapedBy: "character"

將在匯出資料檔案中開始逸出序列的字元。預設值與指定的方言相同,如果省略方言選項,則為反斜線 (\)。此選項相當於 SELECT...INTO OUTFILE 陳述式的 FIELDS ESCAPED BY 選項。如果您將此選項設定為空字串,則不會逸出任何字元,這是不建議的做法,因為 SELECT...INTO OUTFILE 使用的特殊字元必須逸出。

篩選的選項

where

包含有效資料表識別碼(格式為 schemaName.tableName)和用來篩選要匯出之資料的有效 SQL 條件運算式的鍵值組。

注意

SQL 只有在執行時才會經過驗證。如果您要匯出許多資料表,則任何與 SQL 語法相關的問題都只會在程序的稍後階段才會看到。因此,建議您在長時間執行的匯出程序中使用 SQL 條件之前,先測試 SQL 條件。

在下列範例中,where 只會將 actor_id 的值大於 150 的 sakila.actorsakila.actor_info 資料表的列匯出到名為 out 的本機資料夾

 util.dumpTables("sakila", ["actor","actor_info"], "out", {"where" : 
   {"sakila.actor": "actor_id > 150", "sakila.actor_info": "actor_id > 150"}})
partitions: {schemaName.tableName: ["string","string",..]}

有效的分割區名稱清單,會將匯出限制為指定的分割區。

例如,若要只從 schema.table 資料表匯出名為 p1p2 的分割區:partitions: {schema.table:["p1", "p2"]}

下列範例會從 table1 匯出分割區 p1 和 p2,並從 table2 匯出分割區 p2

              util.dumpTables("schema", ["table","table2"], "out", {"partitions" : 
              { "schema.table1":  ["p1", "p2"],"schema.table2":  ["p1"]}})
ddlOnly: [ true | false ]

將此選項設定為 true 只會在傾印中包含已傾印項目的 DDL 檔案,而不會傾印資料。預設值為 false

dataOnly: [ true | false ]

將此選項設定為 true 只會在傾印中包含已傾印項目的資料檔案,而不會包含 DDL 檔案。預設值為 false

users: [ true | false ]

(僅限執行個體傾印公用程式) 在傾印中包含 (true) 或排除 (false) 使用者及其角色和授權。預設值為 true,因此預設會包含使用者。結構描述傾印公用程式和資料表傾印公用程式不會在傾印中包含使用者、角色和授權。

您可以使用 excludeUsersincludeUsers 選項來指定要從傾印檔案中排除或包含的個別使用者帳戶。這些選項也可以與 MySQL Shell 的傾印載入公用程式 util.loadDump() 搭配使用,以便在匯入時,根據目標 MySQL 執行個體的需求來排除或包含個別使用者帳戶。

注意

如果要從 MySQL 5.6 執行個體傾印使用者,執行複製的使用者必須具有 SUPER 權限。

excludeUsers: 字串陣列

(僅限執行個體傾印公用程式) 從傾印檔案中排除指定的使用者帳戶。您可以使用它來排除不接受匯入 HeatWave Service DB 系統,或者已經存在或是不想在目標 MySQL 執行個體上的使用者帳戶。針對以使用者名稱和主機名稱定義的帳戶,請以 "'user_name'@'host_name'" 的格式指定每個使用者帳戶字串;針對僅以使用者名稱定義的帳戶,請以 "'user_name'" 的格式指定。如果您未提供主機名稱,則會排除所有具有該使用者名稱的帳戶。

includeUsers: 字串陣列

(僅限執行個體傾印公用程式) 只在傾印檔案中包含指定的使用者帳戶。指定每個使用者帳戶字串的方式與 excludeUsers 選項相同。如果傾印中只需要少數幾個使用者帳戶,則此選項是 excludeUsers 的替代選項。您也可以同時指定這兩個選項,以包含某些帳戶並排除其他帳戶。

excludeSchemas: 字串陣列

(僅限執行個體傾印公用程式) 從傾印中排除指定的結構描述。請注意,information_schemamysqlndbinfoperformance_schemasys 結構描述一律會從執行個體傾印中排除。

includeSchemas: 字串陣列

(僅限執行個體傾印公用程式) 只在傾印中包含指定的結構描述。您無法透過在此選項上命名 information_schemamysqlndbinfoperformance_schemasys 結構描述來包含它們。如果您想要傾印其中一個或多個結構描述,可以使用結構描述傾印公用程式 util.dumpSchemas() 來執行此操作。

excludeTables: 字串陣列

(僅限執行個體傾印公用程式和結構描述傾印公用程式) 從傾印中排除指定的資料表。資料表名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。由 excludeTables 選項命名的資料表在傾印中沒有 DDL 檔案或資料檔案。請注意,mysql.apply_statusmysql.general_logmysql.schemamysql.slow_log tables 的資料一律會從結構描述傾印中排除,儘管它們的 DDL 陳述式會被包含,而且您無法透過在另一個選項或公用程式中命名該資料表來包含該資料。

注意

包含多位元組字元的結構描述和資料表名稱必須以反引號括住。

includeTables: 字串陣列

(僅限執行個體傾印公用程式和結構描述傾印公用程式) 只在傾印中包含指定的資料表。資料表名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。

注意

包含多位元組字元的結構描述和資料表名稱必須以反引號括住。

events: [ true | false ]

(僅限執行個體傾印公用程式和結構描述傾印公用程式) 在傾印中包含 (true) 或排除 (false) 每個結構描述的事件。預設值為 true

excludeEvents: 字串陣列

(僅限執行個體傾印公用程式和結構描述傾印公用程式) 從傾印中排除指定的事件。事件的名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。

includeEvents: 字串陣列

(僅限執行個體傾印公用程式和結構描述傾印公用程式) 只在傾印中包含指定的事件。事件的名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。

routines: [ true | false ]

(僅限執行個體傾印公用程式和結構描述傾印公用程式) 在傾印中包含 (true) 或排除 (false) 每個結構描述的函數和預存程序。預設值為 true。請注意,即使 routines 設定為 true,也不會包含使用者定義的函數。

excludeRoutines: 字串陣列

(僅限執行個體傾印公用程式和結構描述傾印公用程式) 從傾印中排除指定的函數和預存程序。常式的名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。

includeRoutines: 字串陣列

(僅限執行個體傾印公用程式和結構描述傾印公用程式) 只在傾印中包含指定的函數和預存程序。常式的名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。

all: [ true | false ]

(僅限資料表傾印公用程式) 將此選項設定為 true 會在傾印中包含指定結構描述中的所有檢視和資料表。預設值為 false。當您使用此選項時,請將 tables 參數設定為空陣列,例如

shell-js> util.dumpTables("hr", [], "emp", { "all": true })
triggers: [ true | false ]

(所有傾印公用程式) 在傾印中包含 (true) 或排除 (false) 每個資料表的觸發程序。預設值為 true

excludeTriggers: 字串陣列

(所有傾印公用程式) 從傾印中排除指定的觸發程序。觸發程序的名稱必須以有效的結構描述名稱和資料表名稱 (schema.table.trigger) 來限定,並且在需要時使用反引號字元引起來。您可以使用此選項 (schema.table) 來指定結構描述名稱和資料表名稱,以排除特定資料表的所有觸發程序。

includeTriggers: 字串陣列

(所有傾印公用程式) 只在傾印中包含指定的觸發程序。觸發程序的名稱必須以有效的結構描述名稱和資料表名稱 (schema.table.trigger) 來限定,並且在需要時使用反引號字元引起來。您可以使用此選項 (schema.table) 來指定結構描述名稱和資料表名稱,以包含特定資料表的所有觸發程序。

HeatWave Service 和 Oracle Cloud Infrastructure 的選項

osBucketName: "字串"

要將傾印寫入的 Oracle Cloud Infrastructure Object Storage 儲存貯體名稱。依預設,位於 ~/.oci/config 的 Oracle Cloud Infrastructure CLI 組態檔中的 [DEFAULT] 設定檔會用於建立與儲存貯體的連線。您可以使用 ociConfigFileociProfile 選項來取代要用於連線的替代設定檔。如需設定 CLI 組態檔的指示,請參閱 SDK 和 CLI 組態檔

osNamespace: "字串"

Object Storage 儲存貯體 (由 osBucketName 指定名稱) 所在的 Oracle Cloud Infrastructure 命名空間。Object Storage 儲存貯體的命名空間會顯示在 Oracle Cloud Infrastructure 主控台中儲存貯體詳細資料頁面的「儲存貯體資訊」索引標籤中,或者可以使用 Oracle Cloud Infrastructure 命令列介面取得。

ociConfigFile: "字串"

包含要用於連線之設定檔的 Oracle Cloud Infrastructure CLI 組態檔,而不是預設位置 ~/.oci/config 中的組態檔。

ociProfile: "字串"

要用於連線的 Oracle Cloud Infrastructure 設定檔的設定檔名稱,而不是用於連線的 Oracle Cloud Infrastructure CLI 組態檔中的 [DEFAULT] 設定檔。

ociAuth: "字串"

連線至 Oracle Cloud Infrastructure 時要使用的驗證方法。此選項需要 osBucketName 設定有效的值。

可用的選項如下

ocimds: [ true | false ]

將此選項設定為 true 可啟用檢查和修改,以確保與 HeatWave Service 相容。預設值為 false

重要事項

移轉至 HeatWave Service 時,建議一律使用最新可用的 MySQL Shell 版本。

當此選項設定為 true 時,CREATE TABLE 陳述式中的 DATA DIRECTORYINDEX DIRECTORYENCRYPTION 選項會在 DDL 檔案中被註解掉,以確保所有資料表都位於 MySQL 資料目錄中,並使用預設的結構描述加密。系統會檢查 CREATE TABLE 陳述式中是否有 InnoDB 以外的任何儲存引擎、授予使用者或角色的不適合權限,以及其他相容性問題。如果找到任何不符合規範的 SQL 陳述式,則會引發例外狀況並停止傾印。使用 dryRun 選項可在開始傾印程序之前列出傾印中項目的所有問題。使用 compatibility 選項可自動修正傾印輸出中的問題。

此選項預設設定為 false,只有在明確設定為 true 時才會啟用。

注意

如果針對 MySQL 5.7 執行任何傾印公用程式,並將 "ocimds": true 設定為 true,則會自動執行 util.checkForServerUpgrade。預先升級檢查會根據傾印中包含的物件類型執行。

targetVersionn.n.n

定義目標 MySQL 執行個體的版本,格式為 n.n.n。例如,8.1.0。如果未設定此值,則會使用 MySQL Shell 版本。

相容性檢查會根據 targetVersion 的值進行調整。

compatibility:字串陣列

將指定的要求套用至傾印輸出中所有資料表與 HeatWave Service 的相容性,並在必要時變更傾印檔案。

可以將下列修改指定為字串陣列

force_innodb

變更 CREATE TABLE 陳述式,對任何尚未使用 InnoDB 儲存引擎的資料表使用該引擎。

skip_invalid_accounts

移除使用 HeatWave Service 不支援的外部驗證外掛程式建立的使用者帳戶。此選項也會移除未設定密碼的使用者帳戶,除非未設定密碼的帳戶識別為角色,在這種情況下,會使用 CREATE ROLE 陳述式傾印該帳戶。

strip_definers
注意

如果目的地 HeatWave Service 執行個體為 8.2.0 或更高版本,則不需要此選項。

從 MySQL Server 8.2.0 開始,SET_USER_ID 已被取代,並將在未來版本中移除。SET_USER_IDSET_ANY_DEFINERALLOW_NONEXISTENT_DEFINER 取代。此變更會影響 MySQL Shell 處理 HeatWave Service (ocimds: true) 用途傾印的方式,因為管理員使用者具有 SET_ANY_DEFINER 權限,並且能夠執行帶有 DEFINER 子句的陳述式。這在先前版本中是不可能的。

從檢視、常式、事件和觸發程式中移除 DEFINER 子句,以便使用預設的定義者 (叫用結構描述的使用者) 建立這些物件,並將檢視和常式的 SQL SECURITY 子句變更為指定 INVOKER 而不是 DEFINER。HeatWave Service 需要特殊權限才能建立具有非載入結構描述使用者以外定義者的這些物件。如果您的安全性模型要求檢視和常式具有比查詢或呼叫它們的帳戶更多的權限,您必須在載入結構描述之前手動修改該結構描述。

strip_restricted_grants

GRANT 陳述式中移除 HeatWave Service 限制的特定權限,因此無法將這些權限授予使用者及其角色 (這會導致使用者建立失敗)。如果 Oracle Cloud Infrastructure Compute 執行個體上的管理使用者帳戶本身不具有相關權限,則此選項也會移除系統結構描述 (mysqlsys) 的 REVOKE 陳述式,因此無法移除它們。

strip_tablespaces

CREATE TABLE 陳述式中移除 TABLESPACE 子句,以便在預設表空間中建立所有資料表。HeatWave Service 對表空間有一些限制。

ignore_missing_pks

讓執行個體、結構描述或資料表傾印公用程式在執行傾印時忽略任何遺失的主索引鍵,以便仍可在不因這項檢查而停止傾印的情況下使用 ocimds 選項。使用此修改建立的傾印無法載入至 HeatWave Service 高可用性執行個體,因為 HeatWave Service 高可用性需要主索引鍵,而後者使用群組複寫。若要改為新增遺失的主索引鍵,請使用 create_invisible_pks 修改,或考慮在來源伺服器上的資料表中建立主索引鍵。

ignore_wildcard_grants

如果啟用,則會忽略具有萬用字元的結構描述授與中的錯誤,這些錯誤在啟用 partial_revokes 系統變數的系統中會有不同的解讀。

strip_invalid_grants

如果啟用,則會去除在載入使用者時會失敗的授與陳述式。例如,參照不存在之特定常式的授與。

create_invisible_pks

在傾印中繼資料中新增一個旗標,以通知 MySQL Shell 的傾印載入公用程式,為每個不包含主索引鍵的資料表新增隱形資料行中的主索引鍵。此修改可讓在某些資料表缺少主索引鍵的情況下,將傾印載入至 HeatWave Service 高可用性執行個體。HeatWave Service 高可用性需要主索引鍵,而後者使用群組複寫。

此修改不會變更傾印資料,因為資料表在由傾印載入公用程式處理之前不會包含隱形資料行。隱形資料行 (命名為「my_row_id」) 對於使用上傳資料表的應用程式沒有影響。

以這種方式新增主索引鍵,尚未啟用將修改後的資料表向高可用性執行個體進行輸入複寫,因為該功能目前需要來源伺服器和複本伺服器都存在主索引鍵。如果可能,請考慮在來源伺服器上的資料表中建立主索引鍵,然後再次傾印它們,而不是使用此修改。您可以使用隱形資料行來保存主索引鍵,而不會對應用程式產生任何影響。這是效能和可用性的最佳做法,並可協助傾印的資料庫與 HeatWave Service 無縫運作。

注意

由於 MySQL 8.0.23 中隱藏資料行的限制,MySQL Shell 的傾印載入公用程式只能用於在目標 MySQL 執行個體版本 8.0.24 或更高版本上載入使用 create_invisible_pks 選項建立的傾印。

force_non_standard_fks

在 MySQL 8.4.0 中,新增了 restrict_fk_on_non_standard_key,在啟用時禁止建立非標準外來索引鍵。也就是說,參照非唯一索引鍵或複合索引鍵之部分欄位的索引鍵。HeatWave Service DB 系統預設啟用此變數,這會導致具有此類資料表的傾印無法載入。此選項會停用非標準外來索引鍵的檢查,並將傾印載入程式設定為將 restrict_fk_on_non_standard_key 變數的工作階段值設定為 OFF。建立具有非標準索引鍵的外來索引鍵可能會導致複寫失敗。

適用於 S3 相容服務的選項

MySQL Shell 支援將 MySQL 資料傾印到與 S3 相容的儲存貯體,例如 Amazon Web Services (AWS) S3。

注意

MySQL Shell 支援在命令列選項、環境變數和設定檔中進行 AWS S3 設定。命令列選項會覆寫環境變數、設定檔和預設選項。

如需組態需求的相關資訊,請參閱第 4.7 節「雲端服務設定」

s3BucketName: "字串"

要將傾印寫入的 S3 儲存貯體名稱。預設情況下,會使用位於 ~/.aws/configcredentials 檔案的 default 設定檔來建立與 S3 儲存貯體的連線。您可以使用 s3ConfigFiles3CredentialsFile 選項來取代連線的替代設定和認證。如需安裝和設定 AWS CLI 的說明,請參閱AWS CLI 入門

s3CredentialsFile: "字串"

包含使用者認證的認證檔案,用於連線,而不是預設位置 ~/.aws/credentials 中的檔案。一般而言,認證檔案包含用於連線的 aws_access_key_idaws_secret_access_key

s3ConfigFile: "字串"

包含用於連線設定檔的設定檔,而不是預設位置 (例如 ~/.aws/config) 中的檔案。一般而言,設定檔包含用於連線的區域和輸出類型。

s3Profile: "字串"

用於連線的 s3 CLI 設定檔的設定檔名稱,而不是 default 設定檔。

s3Region: "字串"

用於連線的區域名稱。

s3EndpointOverride: "字串"

要使用的端點 URL,而不是預設 URL。

當連線至 Oracle Cloud Infrastructure S3 相容性 API 時,端點採用下列格式:https://命名空間.compat.objectstorage.區域.oraclecloud.com。將 命名空間 取代為 Object Storage 命名空間,並將 區域 取代為您的區域識別碼。例如,美國東部 (阿什本) 區域的區域識別碼為 us-ashburn-1

對於美國東部 (阿什本) 區域中名為 axaxnpcrorw5 的命名空間

https://axaxnpcrorw5.compat.objectstorage.us-ashburn-1.oraclecloud.com.

以下範例顯示將 MySQL 執行個體傾印到 S3 儲存貯體 Bucket001 中名為 test 的資料夾,其中包含一些相容性選項

        util.dumpInstance("test",{s3bucketName: "Bucket001", threads: 4, 
        compatibility: ["strip_restricted_grants", "strip_definers", "ignore_missing_pks"]})

以下範例顯示使用設定檔 oci,將 MySQL 執行個體傾印到物件儲存儲存貯體 Bucket001 中名為 test 的前置詞,並使用 s3EndpointOverride 將連線導向至所需租用戶和區域的 OCI 端點,以及一些相容性選項

        util.dumpInstance("test",{s3BucketName: "Bucket001", 
        s3EndpointOverride: "https://axaxnpcrorw5.compat.objectstorage.us-ashburn-1.oraclecloud.com", 
        s3Profile: "oci", threads: 4, 
        compatibility: ["strip_restricted_grants", "strip_definers", "ignore_missing_pks"]})

適用於 Microsoft Azure Blob Storage 的選項

MySQL Shell 支援傾印至 Microsoft Azure Blob 儲存空間。

注意

MySQL Shell 支援在命令列選項、環境變數和組態檔中設定 Microsoft Azure Blob 儲存空間。命令列選項會覆寫環境變數和組態檔。

如需組態需求以及組態類型優先順序的相關資訊,請參閱第 4.7 節,「雲端服務組態」

azureContainerName: "字串"

必要。要將傾印寫入的 Azure 容器名稱。容器必須存在。

azureConfigFile: "字串"

選用。包含儲存空間連線參數的組態檔,而不是預設位置(例如 ~/.azure/config)中的組態檔。如果未定義此項,則會使用預設組態檔。

azureContainerName 必須定義,且不得為空。

azureStorageAccount: "字串"

選用。用於操作的 Azure 儲存帳戶名稱。

azureStorageSasToken: "字串"

選用。用於操作驗證的 Azure 共用存取簽章 (SAS) 權杖,而非金鑰。

在以下範例中,組態使用連線參數的組態字串,這表示傾印命令僅需要 azureContainerName

範例 config 檔案

        [cloud]
         name = AzureCloud

        [storage]
         connection_string=alphanumericConnectionString

範例 dumpInstance 命令,會將執行個體的內容匯出至名為 prefix1 的資料夾,位於名為 mysqlshellazure 的容器中

        util.dumpInstance("prefix1", {azureContainerName: "mysqlshellazure", threads: 4})

使用 PAR 傾印至物件儲存空間儲存桶

outputURL 也可以是儲存桶或前置詞預先驗證請求 (PAR)。這可讓您將資料直接傾印至 OCI 物件儲存空間儲存桶。

PAR 必須定義為啟用下列權限

  • 允許物件讀取和寫入

  • 啟用物件清單

如果 PAR 定義為 outputURL,則不支援下列選項,如果使用這些選項將會導致錯誤

  • osBucketName

  • s3BucketName

  • azureContainerName

注意

僅支援儲存桶和前置詞 PAR 作為 outputURL。無法使用物件 PAR。

如果 PAR 不受支援,或未定義正確的權限,則會傳回 OCI 錯誤。

如果目標儲存桶不是空的,則操作會失敗並傳回錯誤。如果具有定義前置詞的物件存在,則操作會失敗並傳回錯誤。

注意

當您定義前置詞 par 時,產生的 PAR URL 不包含定義的前置詞。您必須手動將其新增至 URL。

儲存桶 PAR 範例

以下範例將執行個體傾印至定義的儲存桶 PAR

      util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/")

以下範例將結構描述 sakila 傾印至定義的儲存桶 PAR

      util.dumpSchemas(["sakila"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/")

以下範例將資料表 sakila.actor 傾印至定義的儲存桶 PAR

      util.dumpTables("sakila", ["actor"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/")

前置詞 PAR 範例

當您定義前置詞 par 時,產生的 PAR URL 不包含定義的前置詞。您必須手動將其新增至 URL。

以下範例將執行個體傾印至定義的儲存桶 PAR 中,前置詞為 MyPrefix

      util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/")

以下範例將結構描述 sakila 傾印至定義的儲存桶 PAR 中,前置詞為 MyPrefix

      util.dumpSchemas(["sakila"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/")

以下範例將資料表 sakila.actor 傾印至定義的儲存桶 PAR 中,前置詞為 MyPrefix

      util.dumpTables("sakila", ["actor"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/")

公用程式錯誤訊息

範圍 52000-52999 中的錯誤編號是 MySQL Shell 的執行個體傾印公用程式 util.dumpInstance()、結構描述傾印公用程式 util.dumpSchemas() 和資料表傾印公用程式 util.dumpTables() 特有的。可能會傳回下列錯誤

  • 錯誤編號:52000;符號:SHERR_DUMP_LOCK_TABLES_MISSING_PRIVILEGES

    訊息:使用者 %s 缺少 %s 的下列權限:%s。

  • 錯誤編號:52001;符號:SHERR_DUMP_GLOBAL_READ_LOCK_FAILED

    訊息:無法取得全域讀取鎖定

  • 錯誤編號:52002;符號:SHERR_DUMP_LOCK_TABLES_FAILED

    訊息:無法鎖定資料表:%s。

  • 錯誤編號:52003;符號:SHERR_DUMP_CONSISTENCY_CHECK_FAILED

    訊息:一致性檢查失敗。

  • 錯誤編號:52004;符號:SHERR_DUMP_COMPATIBILITY_ISSUES_FOUND

    訊息:發現相容性問題

  • 錯誤編號:52005;符號:SHERR_DUMP_COMPATIBILITY_OPTIONS_FAILED

    訊息:無法套用部分相容性選項

  • 錯誤編號:52006;符號:SHERR_DUMP_WORKER_THREAD_FATAL_ERROR

    訊息:傾印期間發生嚴重錯誤

  • 錯誤編號:52007;符號:SHERR_DUMP_MISSING_GLOBAL_PRIVILEGES

    訊息:使用者 %s 缺少下列全域權限:%s。

  • 錯誤編號:52008;符號:SHERR_DUMP_MISSING_SCHEMA_PRIVILEGES

    訊息:使用者 %s 缺少結構描述 %s 的下列權限:%s。

  • 錯誤編號:52009;符號:SHERR_DUMP_MISSING_TABLE_PRIVILEGES

    訊息:使用者 %s 缺少資料表 %s 的下列權限:%s。

  • 錯誤編號:52010;符號:SHERR_DUMP_NO_SCHEMAS_SELECTED

    訊息:結構描述的篩選器會產生空的集合。

  • 錯誤編號:52011;符號:SHERR_DUMP_MANIFEST_PAR_CREATION_FAILED

    訊息:無法為物件 '%s' 建立 PAR:%s

  • 錯誤編號:52012;符號:SHERR_DUMP_DW_WRITE_FAILED

    訊息:無法將 %s 寫入檔案 %s

  • 錯誤編號:52013;符號:SHERR_DUMP_IC_FAILED_TO_FETCH_VERSION

    訊息:無法擷取伺服器版本。

  • 錯誤編號:52014;符號:SHERR_DUMP_SD_CHARSET_NOT_FOUND

    訊息:無法找到字元集:%s

  • 錯誤編號:52015;符號:SHERR_DUMP_SD_WRITE_FAILED

    訊息:寫入時發生 errno %d

  • 錯誤編號:52016;符號:SHERR_DUMP_SD_QUERY_FAILED

    訊息:無法執行 '%s':%s

  • 錯誤編號:52017;符號:SHERR_DUMP_SD_COLLATION_DATABASE_ERROR

    訊息:處理 select @@collation_database 時發生錯誤;結果

  • 錯誤編號:52018;符號:SHERR_DUMP_SD_CHARACTER_SET_RESULTS_ERROR

    訊息:無法將 character_set_results 設定為:%s

  • 錯誤編號:52019;符號:SHERR_DUMP_SD_CANNOT_CREATE_DELIMITER

    訊息:無法為事件建立分隔符號:%s

  • 錯誤編號:52020;符號:SHERR_DUMP_SD_INSUFFICIENT_PRIVILEGE

    訊息:%s 沒有足夠的權限來 %s!

  • 錯誤編號:52021;符號:SHERR_DUMP_SD_MISSING_TABLE

    訊息:information_schema 中不存在 %s

  • 錯誤編號:52022;符號:SHERR_DUMP_SD_SHOW_CREATE_TABLE_FAILED

    訊息:執行失敗:show create table %s,錯誤為:%s

  • 錯誤編號:52023;符號:SHERR_DUMP_SD_SHOW_CREATE_TABLE_EMPTY

    訊息:資料表: %s 的建立資料表為空

  • 錯誤編號:52024;符號:SHERR_DUMP_SD_SHOW_FIELDS_FAILED

    訊息:檢視表: %s 上 SHOW FIELDS FROM 失敗

  • 錯誤編號:52025;符號:SHERR_DUMP_SD_SHOW_KEYS_FAILED

    訊息:無法取得資料表 %s 的索引鍵:%s

  • 錯誤編號:52026;符號:SHERR_DUMP_SD_SHOW_CREATE_VIEW_FAILED

    訊息:失敗:SHOW CREATE TABLE %s

  • 錯誤編號:52027;符號:SHERR_DUMP_SD_SHOW_CREATE_VIEW_EMPTY

    訊息:沒有關於檢視表: %s 的資訊

  • 錯誤編號:52028;符號:SHERR_DUMP_SD_SCHEMA_DDL_ERROR

    訊息:傾印結構描述 '%s' 的 DDL 時發生錯誤:%s

  • 錯誤編號:52029;符號:SHERR_DUMP_SD_TABLE_DDL_ERROR

    訊息:傾印資料表 '%s'.'s' 的 DDL 時發生錯誤:%s

  • 錯誤編號:52030;符號:SHERR_DUMP_SD_VIEW_TEMPORARY_DDL_ERROR

    訊息:傾印檢視表 '%s'.'s' 的暫時性 DDL 時發生錯誤:%s

  • 錯誤編號:52031;符號:SHERR_DUMP_SD_VIEW_DDL_ERROR

    訊息:傾印檢視表 '%s'.'s' 的 DDL 時發生錯誤:%s

  • 錯誤編號:52032;符號:SHERR_DUMP_SD_TRIGGER_COUNT_ERROR

    訊息:無法檢查資料表的觸發程序計數:'%s'.'s'

  • 錯誤編號:52033;符號:SHERR_DUMP_SD_TRIGGER_DDL_ERROR

    訊息:傾印資料表 '%s'.'s' 的觸發程序時發生錯誤:%s

  • 錯誤編號:52034;符號:SHERR_DUMP_SD_EVENT_DDL_ERROR

    訊息:傾印結構描述 '%s' 的事件時發生錯誤:%s

  • 錯誤編號:52035;符號:SHERR_DUMP_SD_ROUTINE_DDL_ERROR

    訊息:傾印結構描述 '%s' 的常式時發生錯誤:%s

  • 錯誤編號:52036;符號:SHERR_DUMP_ACCOUNT_WITH_APOSTROPHE

    訊息:帳戶 %s 包含 ' 字元,這是不支援的

範圍 54000-54999 中的錯誤編號是 MySQL Shell 的傾印載入公用程式 util.loadDump(),或 MySQL Shell 的執行個體傾印公用程式 util.dumpInstance()、結構描述傾印公用程式 util.dumpSchemas() 和資料表傾印公用程式 util.dumpTables() 所遇到的連線和網路錯誤。在大多數情況下,錯誤碼與涉及的 HTTP 錯誤相符 – 例如,當找不到 URL 的目標時,會發生錯誤 54404 (HTTP 404 Not Found)。可能會傳回下列錯誤

  • 錯誤編號:54000;符號:SHERR_DL_COMMON_CONNECTION_ERROR

    訊息:%s連線錯誤:%s。

  • 錯誤編號:5410054511;符號:SHERR_NETWORK_[HTTP 錯誤名稱]

    訊息:與內容相關的訊息