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
- MySQL傳輸表空間的簡單使用方法MySql
- 【XTTS】Oracle傳輸表空間xtts增量方式TTSOracle
- 用傳輸表空間跨平臺遷移資料
- MySQL InnoDB表空間加密MySql加密
- mysql收縮共享表空間MySql
- MySQL InnoDB Undo表空間配置MySql
- 【資料遷移】XTTS跨平臺傳輸表空間(1.傳統方式)TTS
- MySQL 中的共享表空間與獨立表空間如何選擇MySql
- 【資料遷移】XTTS跨平臺傳輸表空間v4TTS
- MySQL InnoDB臨時表空間配置MySql
- MySQL 遷移表空間,備份單表MySql
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- 16、表空間 建立表空間
- mysql關於表空間的總結MySql
- MySQL 增加InnoDB系統表空間大小MySql
- MySQL InnoDB File-Per-Table表空間MySql
- MySQL 系統表空間檔案解析MySql
- MySQL innodb表使用表空間物理檔案複製表MySql
- MySQL 5.7新支援--通用表空間實戰MySql
- MySQL UNDO表空間獨立和截斷MySql
- 談談什麼是MySQL的表空間?MySql
- MySQL使用小技巧(information_schema表空間)MySqlORM
- MySQL空間最佳化(空間清理)MySql
- 【資料遷移】XTTS跨平臺傳輸表空間v3(3.DFT方式)TTS
- 【資料遷移】XTTS跨平臺傳輸表空間v3(2.RMAN增量)TTS
- 【XTTS】使用XTTS傳輸表空間將Oracle11.2.0.4資料遷移至Oracle19CTTSOracle
- MySQL 8.0表空間新特性簡單實驗MySql
- MYSQL造資料佔用臨時表空間MySql
- mysql共享表空間擴容,收縮,遷移MySql
- MySQL 減少InnoDB系統表空間的大小MySql
- Oracle表空間Oracle
- oracle 表空間Oracle
- PostgreSQL 表空間SQL
- PostgreSQL:表空間SQL
- MySQL共享表空間各個版本之間的演變圖MySql
- 當使用者無限制使用表空間配額且表空間有足夠空間時出現超出表空間的空間限額
- 表空間利用率及表空間的補充