Mysql

mysql - 僅從完整轉儲中導入數據?

  • September 10, 2021

我有一個來自數據庫 A 的完整轉儲。我只想將此轉儲的數據導入數據庫 B。數據庫 B 的結構與數據庫 A 相同,只是它缺少一些表。我怎樣才能做到這一點?

我不導入完整轉儲並刪除額外表的原因是數據庫 B 在 RDS 上,當我將轉儲文件導入其中時,導入作業將在其中停止。我試了三遍,數據庫很大。每三次,它就停在同一個地方。RDS 日誌沒有顯示任何內容。所以我決定只從轉儲文件中導入數據。

sed您可以使用orperl或其他東西過濾掉轉儲文件中的 DDL 語句。但這需要一些時間來編寫程式碼並對其進行測試。

如果您可以準備另一個跳過 DDL 語句的轉儲文件會更容易。閱讀mysqldump 上的文件,有一個選項--no-create-info可以做到這一點。

但是,如果問題是無法完成大型轉儲文件的恢復,我不確定僅導入數據有什麼幫助。省略 DDL 語句不會大大減少轉儲文件的大小。

這是另一種選擇:根本不使用轉儲文件。最近 RDS 宣布支持導入使用 Percona XtraBackup 製作的物理備份:https ://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html

您將使用 Percona XtraBackup 創建原始數據庫的備份,然後將其上傳到 S3,然後呼叫將該備份導入到 RDS 實例。它更快、更可靠,但需要注意的是,它會覆蓋 RDS 實例上的所有表。

引用自:https://dba.stackexchange.com/questions/299388