MySQL Innodb表空間解除安裝和遷移案例
需求:
兩臺伺服器A(192.168.1.1)和伺服器B(192.168.1.2)
資料目錄都為:/usr/local/mysql/data
現在想把A伺服器上/usr/local/mysql/data下的chenfeng資料庫遷移到B伺服器上,只遷移chenfeng庫,其他資料庫不動。
步驟如下:
在伺服器B上:
建庫:
mysql> create database chenfeng;
Query OK, 1 row affected (0.02 sec)
建立和伺服器A上一模一樣的表:
mysql>use chenfeng
mysql> CREATE TABLE `accident` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `accidentContent` varchar(4000) DEFAULT NULL COMMENT '事故全稱',
-> `accidentDate` datetime DEFAULT NULL COMMENT '事故發生時間',
-> `accidentType` int(2) DEFAULT NULL COMMENT '事故型別(1. 火災事故 2. 爆炸事故 3. 中毒和窒息事故 4. 灼傷事故 5. 洩漏事故 6. 其它危化品事故)',
-> `accidentLevel` int(11) DEFAULT NULL COMMENT '事故等級(1. 一般事故 2. 較大事故 3. 重大事故 4. 特別重大事故)',
-> `companyId` int(11) DEFAULT NULL COMMENT '涉事企業id',
-> `accidentLocation` varchar(255) DEFAULT NULL COMMENT '事故發生位置(省、市、縣)',
-> `accidentHarm` varchar(255) DEFAULT NULL COMMENT '事故傷亡(X人死亡,Y人受傷,Z人失蹤)',
-> `accidentCause` varchar(255) DEFAULT NULL COMMENT '事故原因',
-> `lng` double(22,7) DEFAULT NULL COMMENT '經度',
-> `lat` double(22,7) DEFAULT NULL COMMENT '緯度',
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8;
解除安裝chenfeng表空間檔案:
mysql> alter table accident discard tablespace;
Query OK, 0 rows affected (0.15 sec)
警告:這個語句刪除當前.ibd檔案。
在伺服器A上:
鎖表:
mysql(mdba@localhost:chenfeng 06:57:27)>flush tables accident for export;
Query OK, 0 rows affected (0.00 sec)
備註:此命令使.ibd檔案保持一致的狀態
複製資料檔案:
把A伺服器表的表空間(ibd)所有檔案複製到B伺服器的相應資料目錄,只有檔案處於一致的狀態我們才可以複製它:
[root@localhost data]# scp -r chenfeng root@192.168.1.2:/usr/local/mysql/data
accident.frm 100% 21KB 24.1MB/s 00:00
db.opt 100% 61 320.5KB/s 00:00
accident.ibd 100% 128KB 87.6MB/s 00:00
在伺服器B上:
修改複製過來的檔案許可權:
[root@nginx data]# cd /usr/local/mysql/data
[root@nginx data]# chown -R mysql:mysql chenfeng
登入資料庫並匯入表空間:
mysql> alter table accident import tablespace;
Query OK, 0 rows affected, 1 warning (0.47 sec)
備註:當匯入表空間時,目的庫的頁尺寸要和源庫的頁尺寸相匹配,另外需要注意兩邊的tablespace id得一致,否則會報錯。
驗證資料:
mysql> show tables;
+--------------------+
| Tables_in_chenfeng |
+--------------------+
| accident |
+--------------------+
1 row in set (0.00 sec)
mysql> select * from accident;
+----+------------------------------------------------------------------+---------------------+--------------+---------------+-----------+-----------------------------+--------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+------------+
| id | accidentContent | accidentDate | accidentType | accidentLevel | companyId | accidentLocation | accidentHarm | accidentCause | lng | lat |
+----+------------------------------------------------------------------+---------------------+--------------+---------------+-----------+-----------------------------+--------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+------------+
| 1 | 臨近年關都注意安全 嶧城棠陰東一轎車發生事故 | 2017-01-27 00:00:00 | 2 | 1 | 1 | 山東省棗莊市嶧城縣 | 0人死亡,0人受傷,0人失蹤 | 據市民潘先生反映,他在去臺兒莊路上路過嶧城區,棠陰東一輛車發生事故。所幸車上三名人員沒大礙,兩人被送醫院救治。發生事故的車輛為黑色轎車,據潘先生介紹,導致此次車禍的原因是該轎車超車 | 120.7725010 | 29.7305020 |
| 2 | 臨近年關都注意安全 嶧城棠陰東一轎車發生事故 | 2017-02-27 00:00:00 | 2 | 1 | 1 | 山東省棗莊市嶧城縣 | 0人死亡,0人受傷,0人失蹤 | 據市民潘先生反映,他在去臺兒莊路上路過嶧城區,棠陰東一輛車發生事故。所幸車上三名人員沒大礙,兩人被送醫院救治。發生事故的車輛為黑色轎車,據潘先生介紹,導致此次車禍的原因是該轎車超車
......................................................................................................................................................................................................................................................
......................................................................................................................................................................................................................................................
......................................................................................................................................................................................................................................................
至此,Innodb表空間遷移完畢。
兩臺伺服器A(192.168.1.1)和伺服器B(192.168.1.2)
資料目錄都為:/usr/local/mysql/data
現在想把A伺服器上/usr/local/mysql/data下的chenfeng資料庫遷移到B伺服器上,只遷移chenfeng庫,其他資料庫不動。
步驟如下:
在伺服器B上:
建庫:
mysql> create database chenfeng;
Query OK, 1 row affected (0.02 sec)
建立和伺服器A上一模一樣的表:
mysql>use chenfeng
mysql> CREATE TABLE `accident` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `accidentContent` varchar(4000) DEFAULT NULL COMMENT '事故全稱',
-> `accidentDate` datetime DEFAULT NULL COMMENT '事故發生時間',
-> `accidentType` int(2) DEFAULT NULL COMMENT '事故型別(1. 火災事故 2. 爆炸事故 3. 中毒和窒息事故 4. 灼傷事故 5. 洩漏事故 6. 其它危化品事故)',
-> `accidentLevel` int(11) DEFAULT NULL COMMENT '事故等級(1. 一般事故 2. 較大事故 3. 重大事故 4. 特別重大事故)',
-> `companyId` int(11) DEFAULT NULL COMMENT '涉事企業id',
-> `accidentLocation` varchar(255) DEFAULT NULL COMMENT '事故發生位置(省、市、縣)',
-> `accidentHarm` varchar(255) DEFAULT NULL COMMENT '事故傷亡(X人死亡,Y人受傷,Z人失蹤)',
-> `accidentCause` varchar(255) DEFAULT NULL COMMENT '事故原因',
-> `lng` double(22,7) DEFAULT NULL COMMENT '經度',
-> `lat` double(22,7) DEFAULT NULL COMMENT '緯度',
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8;
解除安裝chenfeng表空間檔案:
mysql> alter table accident discard tablespace;
Query OK, 0 rows affected (0.15 sec)
警告:這個語句刪除當前.ibd檔案。
在伺服器A上:
鎖表:
mysql(mdba@localhost:chenfeng 06:57:27)>flush tables accident for export;
Query OK, 0 rows affected (0.00 sec)
備註:此命令使.ibd檔案保持一致的狀態
複製資料檔案:
把A伺服器表的表空間(ibd)所有檔案複製到B伺服器的相應資料目錄,只有檔案處於一致的狀態我們才可以複製它:
[root@localhost data]# scp -r chenfeng root@192.168.1.2:/usr/local/mysql/data
accident.frm 100% 21KB 24.1MB/s 00:00
db.opt 100% 61 320.5KB/s 00:00
accident.ibd 100% 128KB 87.6MB/s 00:00
在伺服器B上:
修改複製過來的檔案許可權:
[root@nginx data]# cd /usr/local/mysql/data
[root@nginx data]# chown -R mysql:mysql chenfeng
登入資料庫並匯入表空間:
mysql> alter table accident import tablespace;
Query OK, 0 rows affected, 1 warning (0.47 sec)
備註:當匯入表空間時,目的庫的頁尺寸要和源庫的頁尺寸相匹配,另外需要注意兩邊的tablespace id得一致,否則會報錯。
驗證資料:
mysql> show tables;
+--------------------+
| Tables_in_chenfeng |
+--------------------+
| accident |
+--------------------+
1 row in set (0.00 sec)
mysql> select * from accident;
+----+------------------------------------------------------------------+---------------------+--------------+---------------+-----------+-----------------------------+--------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+------------+
| id | accidentContent | accidentDate | accidentType | accidentLevel | companyId | accidentLocation | accidentHarm | accidentCause | lng | lat |
+----+------------------------------------------------------------------+---------------------+--------------+---------------+-----------+-----------------------------+--------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+------------+
| 1 | 臨近年關都注意安全 嶧城棠陰東一轎車發生事故 | 2017-01-27 00:00:00 | 2 | 1 | 1 | 山東省棗莊市嶧城縣 | 0人死亡,0人受傷,0人失蹤 | 據市民潘先生反映,他在去臺兒莊路上路過嶧城區,棠陰東一輛車發生事故。所幸車上三名人員沒大礙,兩人被送醫院救治。發生事故的車輛為黑色轎車,據潘先生介紹,導致此次車禍的原因是該轎車超車 | 120.7725010 | 29.7305020 |
| 2 | 臨近年關都注意安全 嶧城棠陰東一轎車發生事故 | 2017-02-27 00:00:00 | 2 | 1 | 1 | 山東省棗莊市嶧城縣 | 0人死亡,0人受傷,0人失蹤 | 據市民潘先生反映,他在去臺兒莊路上路過嶧城區,棠陰東一輛車發生事故。所幸車上三名人員沒大礙,兩人被送醫院救治。發生事故的車輛為黑色轎車,據潘先生介紹,導致此次車禍的原因是該轎車超車
......................................................................................................................................................................................................................................................
......................................................................................................................................................................................................................................................
......................................................................................................................................................................................................................................................
至此,Innodb表空間遷移完畢。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2142615/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql Innodb表空間解除安裝、遷移、裝載的使用方法MySql
- MySQL InnoDB 共享表空間和獨立表空間MySql
- MySQL InnoDB 共享表空間和獨立表空間MySql
- InnoDB資料表空間檔案平滑遷移
- MySQL 遷移表空間,備份單表MySql
- 表空間遷移
- 遷移表空間
- 分割槽表對應的表空間遷移案例
- MySQL InnoDB表空間加密MySql加密
- 【遷移】表空間transport
- RMAN遷移表空間
- MySQL InnoDB Undo表空間配置MySql
- ORACLE表批量遷移表空間Oracle
- mysql共享表空間擴容,收縮,遷移MySql
- 遷移SYSTEM表空間為本地管理表空間
- expdp/impdp 遷移表空間
- MySQL InnoDB臨時表空間配置MySql
- 跨平臺表空間遷移(傳輸表空間)
- 遷移表到新的表空間
- MySQL innoDB獨立表空間和共享表空間的優點和缺點介紹MySql
- table/index/LOBINDEX遷移表空間Index
- lob欄位表空間遷移
- 基於可傳輸表空間的表空間遷移
- MySQL innodb共享表空間新增表空間資料檔案方法MySql
- MySQL 增加InnoDB系統表空間大小MySql
- MySQL InnoDB File-Per-Table表空間MySql
- Oracle 不同平臺間表空間遷移Oracle
- 表、索引遷移表空間alter table move索引
- 空間遷移
- Oracle中表空間、表、索引的遷移Oracle索引
- 表空間遷移辦法補充
- 使用RMAN簡單遷移表空間
- 資料庫物件遷移表空間資料庫物件
- 【資料遷移】使用傳輸表空間遷移資料
- MySQL innodb表使用表空間物理檔案複製表MySql
- 線上遷移表空間資料檔案
- 不同使用者,不同表空間遷移
- Oracle 表空間資料檔案遷移Oracle