5.7 mysql的可傳輸表空間

哎呀我的天吶發表於2016-03-14
要匯入的庫中,丟棄表空間

alter table test discard tablespace;


源庫上備份,這個操作加了個讀鎖。


cfg記錄原表的資訊,我們將cfg和ibd檔案拷貝到之前做discard的庫裡。然後釋放源庫的表,unlock tables;

然後在要匯入的庫中將cp過來的表空間匯入。(當然了,我的這兩個表不是同一個,這也是腦殘的行為,哇哈哈)

當然匯入的時候error.log裡面有有資訊記錄。


還有5.7可以匯出分割槽表中的某個分割槽
mysql> show create table employees1;
---------------------------------------------------------------------------
CREATE TABLE `employees1` (
  `emp_no` int(11) NOT NULL,
  `birth_date` date NOT NULL,
  `first_name` varchar(14) NOT NULL,
  `last_name` varchar(16) NOT NULL,
  PRIMARY KEY (`emp_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
/*!50100 PARTITION BY HASH (emp_no)
PARTITIONS 4 */ |
---------------------------------------------------------------------------


同樣,flush table employees1 for export;產生cfg檔案

同樣拷貝過去分割槽。

在匯入的庫執行
alter table employees discard partition p0 tablespace;
... ...

alter table employees import partition p0 tablespace;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2056945/,如需轉載,請註明出處,否則將追究法律責任。

相關文章