MySQL表空間傳輸
MySQL(5.6.6及以上)也支援表空間傳輸了
當然,innodb_file_per_table是一定要開啟的
表空間傳輸可以很方便的將一個表或者多個表,從一個資料庫例項匯入到另一個資料庫例項.
在資料恢復和資料遷移的時候,非常有用,尤其是資料量很大的表.
相對於mysqldump,表空間傳輸的方式更快,更靈活.
使用表空間傳輸有兩種方式
1.MySQL原生命令
實驗將一個表從源例項遷移至目標例項
首先,在源例項執行
show create table sod_song_ksc\G
得到建立表的SQL語句,在目標例項執行該SQL建立一個同名的表.
並且在目標例項執行
alter table sod_song_ksc discard tablespace;(用於刪除ibd檔案)
然後在源例項執行
flush table 表名 for export;
可以看到,執行命令之後,innodb_buffer_pool中的髒頁重新整理到了磁碟。併產生了一個 cfg檔案.
在命令執行之後,該表只能只讀訪問.
開啟另外一個終端,將該表的ibd檔案,cfg檔案,TRG檔案(記錄觸發器資訊)複製到目標例項的資料庫中
然後源例項執行 unlock tables;
最後在目標例項執行
alter table sod_song_ksc import tablespace;
匯入表空間
2.使用innobackupex,協助表空間傳輸
原生的方式適合小範圍匯出,比如一兩個表.
如果匯出的表很多,可以用innobackupex進行輔助,並且innobackupex沒有鎖,不影響線上的業務.
首先,批次匯出表結構
http://blog.itpub.net/29254281/viewspace-1259796/
在目標例項建立表,然後執行
alter table 表名 discard tablespace;(用於刪除ibd檔案)
然後在源例項執行匯出
innobackupex --user=root --password=xxx --defaults-file=/home/mysql/mysql-5.6.14/my.cnf --socket=mysql.sock --include='songod.sod_song_log*' /tmp
或者使用 tables-file的方式
innobackupex --user=root --password=xxx --defaults-file=/home/mysql/mysql-5.6.14/my.cnf --socket=mysql.sock --tables-file=/tmp/tables.file /tmp
匯出完成之後,執行恢復
innobackupex --apply-log --export .
然後將ibd檔案,cfg檔案和exp檔案複製到目標例項資料庫
最後在目標例項執行
alter table 表名 import tablespace;
當然,innodb_file_per_table是一定要開啟的
表空間傳輸可以很方便的將一個表或者多個表,從一個資料庫例項匯入到另一個資料庫例項.
在資料恢復和資料遷移的時候,非常有用,尤其是資料量很大的表.
相對於mysqldump,表空間傳輸的方式更快,更靈活.
使用表空間傳輸有兩種方式
1.MySQL原生命令
實驗將一個表從源例項遷移至目標例項
首先,在源例項執行
show create table sod_song_ksc\G
得到建立表的SQL語句,在目標例項執行該SQL建立一個同名的表.
並且在目標例項執行
alter table sod_song_ksc discard tablespace;(用於刪除ibd檔案)
然後在源例項執行
flush table 表名 for export;
可以看到,執行命令之後,innodb_buffer_pool中的髒頁重新整理到了磁碟。併產生了一個 cfg檔案.
在命令執行之後,該表只能只讀訪問.
開啟另外一個終端,將該表的ibd檔案,cfg檔案,TRG檔案(記錄觸發器資訊)複製到目標例項的資料庫中
然後源例項執行 unlock tables;
最後在目標例項執行
alter table sod_song_ksc import tablespace;
匯入表空間
2.使用innobackupex,協助表空間傳輸
原生的方式適合小範圍匯出,比如一兩個表.
如果匯出的表很多,可以用innobackupex進行輔助,並且innobackupex沒有鎖,不影響線上的業務.
首先,批次匯出表結構
http://blog.itpub.net/29254281/viewspace-1259796/
在目標例項建立表,然後執行
alter table 表名 discard tablespace;(用於刪除ibd檔案)
然後在源例項執行匯出
innobackupex --user=root --password=xxx --defaults-file=/home/mysql/mysql-5.6.14/my.cnf --socket=mysql.sock --include='songod.sod_song_log*' /tmp
或者使用 tables-file的方式
innobackupex --user=root --password=xxx --defaults-file=/home/mysql/mysql-5.6.14/my.cnf --socket=mysql.sock --tables-file=/tmp/tables.file /tmp
匯出完成之後,執行恢復
innobackupex --apply-log --export .
最後在目標例項執行
alter table 表名 import tablespace;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1689997/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 傳輸表空間MySql
- mysql之 表空間傳輸MySql
- 5.7 mysql的可傳輸表空間MySql
- Oracle 表空間傳輸Oracle
- oracle表空間傳輸Oracle
- Oracle傳輸表空間Oracle
- MySQL Transportable Tablespace(傳輸表空間) 使用詳解MySql
- 傳輸表空間操作-OracleOracle
- Oracle傳輸表空間(TTS)OracleTTS
- Oracle 傳輸表空間-RmanOracle
- 總結-表空間傳輸
- 跨平臺表空間遷移(傳輸表空間)
- MySQL傳輸表空間的簡單使用方法MySql
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移
- 基於可傳輸表空間的表空間遷移
- Oracle傳輸表空間學習Oracle
- Oracle 傳輸表空間-EXPDP/IMPDPOracle
- Oracle 傳輸表空間-EXP/IMPOracle
- 傳輸表空間自包含理解
- Oracle表空間傳輸詳解Oracle
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移[轉]
- oracle 傳輸表空間一例Oracle
- Oracle可傳輸表空間測試Oracle
- 表空間傳輸讀書筆記筆記
- 【XTTS】Oracle傳輸表空間xtts增量方式TTSOracle
- 傳輸表空間(從Linux到Windows)LinuxWindows
- oracle可傳輸表空間TTS小結OracleTTS
- 傳輸表空間及問題處理
- oracle表空間傳輸的限制條件Oracle
- 實戰RMAN備份傳輸表空間
- 使用Oracle可傳輸表空間的特性複製資料(7)實戰RMAN備份傳輸表空間Oracle
- MySQL傳輸表空間小結(r12筆記第2天)MySql筆記
- 12c 資料泵傳輸表空間
- 資料泵 TTS(傳輸表空間技術)TTS
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(上)Oracle
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(中)Oracle
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(下)Oracle
- 12c跨平臺傳輸表空間