MySQL innodb表使用表空間物理檔案複製表
阿新 • • 發佈:2018-11-09
MySQL innodb表使用表空間物理檔案複製表
1.在目標庫建立相同的表名
建立相同結構的同名表。
2. 查詢MySQL資料檔案存放地
ps -ef|grep mysqld
輸出結果:
mysql 21508 6679 0 Sep21 ? 02:03:51 ./bin/mysqld --basedir=/opt/software/mysql --datadir=/opt/data/mysql --plugin-dir=/opt/software/mysql/lib/plugin --user=mysql --log-error=/opt/data/mysql/mysqld.log --pid-file=/opt/data/mysql/mysqld.pid --port=3306
可以看到資料檔案儲存在datadir
代表的地址。
cd /opt/data/mysql
進入對應目標資料庫
示例資料庫為:mydb
➜ mydb ll total 1.9M -rw-rw---- 1 mysql mysql 67 Jun 25 13:57 db.opt -rw-rw---- 1 mysql mysql 9.1K Oct 15 16:17 snc_user.frm -rw-rw---- 1 mysql mysql 12K Oct 15 16:20 snc_user.ibd
3. 刪除目標表的表空間
alter table snc_user discard tablespace;
可以檢視到目標資料庫下檔案沒有了.ibd
檔案.
➜ mydb ll total 1.9M -rw-rw---- 1 mysql mysql 67 Jun 25 13:57 db.opt -rw-rw---- 1 mysql mysql 9.1K Oct 15 16:17 snc_user.frm
4. 拷貝源庫的idb檔案
拷貝資料檔案到目標資料庫下
➜ mydb ll
total 1.9M
-rw-rw---- 1 mysql mysql 67 Jun 25 13:57 db.opt
-rw-rw---- 1 mysql mysql 9.1K Oct 15 16:17 snc_user.frm
-rw-rw---- 1 root root 512K Oct 15 16:20 snc_user.ibd
5. 修改表空間檔案許可權
修改拷貝過來的資料檔案的許可權:
chown -R mysql:mysql
6. 目標表匯入表空間資料
執行匯入命令:
alter table snc_user import tablespace;