mysql備份的兩種方法(傳輸方式:單表傳輸),在數據量小的情況下一般採用insert的方法向備份表中插入數據。當源表的數據量過大時使用表空間的方式進行數據的遷移。
第一種方法:(針對表中數據量小的情況)
(1)使用源表的表結構建新的備份表;(源表爲t1,備份表爲t1_copy)
create table t1_copy like t1;
(2)插入數據到備份表中。
insert into t1_copy (select * from t1);
第二種方法:(通過表空間傳輸的方式對錶進行備份,針對表數據量大的情況)
(1)創建備份(目標)表(方法如第一種方法(1))
(2)目標數據表,丟棄表空間;
ALTER TABLE t1 DISCARD TABLESPACE;
(3)源數據錶停頓鎖表;
FLUSH TABLES t1 FOR EXPORT ;
(4)複製.cfg和.ibd文件到目標數據庫
show global variables like '%datadir%';
找到mysql庫數據的存放位置
在linux服務器中輸入命令
cp t1.cfg t1_copy(備份表名).cfg
cp t1.ibd t1_copy(備份表名).ibd
(5)源數據表解鎖
unlock tables;
(6)給文件權限linux
chown mysql:mysql t1*.ibd
(7)同步數據到目標表
alter table t1 import tablespace;