MYSQL表空间迁移_MySQL
bitsCN.com
MYSQL表空间迁移
有如下原因你可能需要将InnoDB表复制到不同的数据库服务器上。
不增加生产负载的情况下生成 一个报表
在一个新的服务器上建立一个和生产上数据相同的表
做一个备份在发生问题或错误操作时用于恢复
快速将数据从一个服务器迁移到另一个服务器
命令FLUSH TABLES ... FOREXPORT 使.ibd文件保持一致的状态。只有文件处于一致的状态我们才可以复制它。这个文件也会同时创建一个扩展名.cfg的二进制的文件。命令ALTER TABLE ...IMPORT TABLESPACE 会使用这个二进制文件对导入过程进行校验。
对于 MySQL 5.6.8版本, ALTER TABLE ...IMPORT TABLESPACE 命令不再一定需要一个扩展名为.cfg二进制文件了。但如果真的没有这个文件我们会收到下面这样一个警告。
Message:InnoDB: IO Read error: (2, No such file or directory) Error opening './
test/t.cfg',will attempt to import without schema verification
1row in set (0.00 sec)
这个特性有时候还是很有用的。比如,在模式不匹配的导入过程中,或者在一些需要恢复的情景下,元数据又不能从.ibd文件获得,则这个命令不需要一个扩展名为.cfg的二进制文件就可以导入的特性就很有用。
可迁移表空间的限制:
innodb_file_per_table 一定要打开成 ON. 在共享表空间上的表不能使用这个特性。
当表处理静默状态时,只有只读语句可以使用这张表。
当导入表空间时,目的库的页尺寸要和源库的页尺寸相匹配。
DISCARD TABLESPACE 不支持分区表。如果你在分区表上使用命令 ALTER TABLE ... DISCARD TABLESPACE 你会看到如下错误: ERROR 1031 (HY000): 表引擎没有这个选项。
DISCARD TABLESPACE 命令不支持有父子关系的表。如果 foreign_key_checks 被设置成1. 在使用命令之前我们可以将这一参数设置为0. foreign_key_checks=0.
ALTER TABLE ... IMPORT TABLESPACE 命令在导入表时不会检查主外键关系。
如果是实时复制的时候, innodb_file_per_table 必需在主服务和从服务上设置为ON。
下面来看一个实例:
在源服务器上我们来对city表进行迁移:
1. mysql> use test;C:/C:/ProgramData/MySQL/MySQLServer 5.6/data/world2. C:/ProgramData/MySQL/MySQLServer 5.6/data/world>dir3. Volume in drive C has no label.4. Volume Serial Number is D0FA-F7A05. Directory of C:/ProgramData/MySQL/MySQL Server5.6/data/world6. 10/08/2013 03:15 PM <DIR> .7. 10/08/2013 03:15 PM <DIR> ..8. 10/08/2013 03:15 PM 8,710 city.frm9. 10/08/2013 03:15 PM 273,293 city.MYD10.10/08/2013 03:15 PM 43,008 city.MYI11.10/08/2013 03:15 PM 9,172 country.frm12.10/08/2013 03:15 PM 0 country.MYD13.10/08/2013 03:15 PM 5,120 country.MYI14.10/08/2013 03:15 PM 8,702 countrylanguage.frm15.10/08/2013 03:15 PM 38,376 countrylanguage.MYD16.10/08/2013 03:15 PM 18,432 countrylanguage.MYI17.10/08/2013 03:15 PM 61 db.opt18. 10File(s) 404,874 bytes19. 2 Dir(s) 224,709,537,792 bytes free20.mysql> use world21.Database changed22.mysql> show tables;23.+-----------------+24.| Tables_in_world |25.+-----------------+26.| city |27.| country |28.| countrylanguage |29.+-----------------+30.3 rows in set (0.00 sec)31.mysql> flush table cityfor export;32.ERROR 1031 (HY000): Table storage engine for 'city' doesn't havethis option33.mysql> alter table cityengine=innodb;34.mysql> flush table cityfor export; --对表加锁。35.Query OK, 0 rows affected (0.18 sec)36.
复制表文件到目标位置
C:/ProgramData/MySQL/MySQL Server 5.6/data/world>mkdir city
C:/ProgramData/MySQL/MySQL Server 5.6/data/world>copy city.* city
city.cfg
city.frm
city.ibd
3 file(s) copied.
C:/ProgramData/MySQL/MySQL Server 5.6/data/world>cd city
C:/ProgramData/MySQL/MySQL Server 5.6/data/world/city>dir
Volume in drive C has no label.
Volume Serial Number is D0FA-F7A0
Directory of C:/ProgramData/MySQL/MySQL Server 5.6/data/world/city
10/10/2013 10:58 AM
10/10/2013 10:58 AM
10/10/2013 10:53 AM 582 city.cfg
10/10/2013 10:53 AM 8,710 city.frm
10/10/2013 10:53 AM 475,136 city.ibd
3 File(s) 484,428 bytes
2 Dir(s) 224,676,024,320 bytes free
在目标库上删除可能存在的同名表空间。
mysql> unlock tables;--释放锁。2. Query OK, 0 rowsaffected (0.07 sec)3. mysql> alter table city discard tablespace;删除可能存在的同名表空间4. Query OK, 0 rowsaffected (0.23 sec)5. mysql> selectcount(*) from city;6. ERROR 1814 (HY000):Tablespace has been discarded for table 'city'7. mysql> alter tablecity import tablespace;8. ERROR 1146 (42S02):Table 'world.city' doesn't exist9. C:/ProgramData/MySQL/MySQLServer 5.6/data/world/city>copy city.* ..10.city.cfg11.city.frm12.Overwrite ../city.frm? (Yes/No/All): yes13.Access is denied.14.city.ibd15. 2 file(s) copied.16.C:/ProgramData/MySQL/MySQL Server 5.6/data/world/city>17.mysql> alter table city import tablespace;18.Query OK, 0 rows affected (0.94 sec)19.mysql> select count(*) from city;20.+----------+21.| count(*) |22.+----------+23.| 4079 |24.+----------+25.1 row in set (0.08 sec)
表空间被成功。
bitsCN.com
熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

Hibernate多態映射可映射繼承類別到資料庫,提供以下映射類型:joined-subclass:為子類別建立單獨表,包含父類別所有欄位。 table-per-class:為子類別建立單獨資料表,僅包含子類別特有列。 union-subclass:類似joined-subclass,但父類別表聯合所有子類別列。

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

如何在伺服器上安裝PHPFFmpeg擴充功能?在伺服器上安裝PHPFFmpeg擴充功能可以幫助我們在PHP專案中處理音視訊文件,實現音視訊文件的編解碼、剪輯、處理等功能。本文將介紹如何在伺服器上安裝PHPFFmpeg擴展,以及具體的程式碼範例。首先,我們需要確保伺服器上已經安裝了PHP以及FFmpeg。如果沒有安裝FFmpeg,可以依照下列步驟安裝FFmpe

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

HTML無法直接讀取資料庫,但可以透過JavaScript和AJAX實作。其步驟包括建立資料庫連線、發送查詢、處理回應和更新頁面。本文提供了利用JavaScript、AJAX和PHP來從MySQL資料庫讀取資料的實戰範例,展示如何在HTML頁面中動態顯示查詢結果。此範例使用XMLHttpRequest建立資料庫連接,發送查詢並處理回應,從而將資料填入頁面元素中,實現了HTML讀取資料庫的功能。

本站7月23日消息,華碩推出多款由AMDEPYC霄龍4004系列處理器驅動的伺服器與工作站級產品。本站註:AMD於5月推出AM5平台、Zen4架構的EPYC霄龍4004系列處理器,最高提供16核心3DV-Cache規格。 ASUSProER100AB6伺服器ASUSProER100AB6是一款搭載EPYC霄龍4004系列處理器的1U機架式伺服器產品,適用於IDC及中小型企業需求。 ASUSExpertCenterProET500AB6工作站ASUSExpertCenterProET500AB6是一款A

透過Go標準庫database/sql包,可以連接到MySQL、PostgreSQL或SQLite等遠端資料庫:建立包含資料庫連接資訊的連接字串。使用sql.Open()函數開啟資料庫連線。執行SQL查詢和插入操作等資料庫操作。使用defer關閉資料庫連線以釋放資源。
