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
Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Bahasa Go ialah bahasa pengaturcaraan yang cekap, ringkas dan mudah dipelajari Ia digemari oleh pembangun kerana kelebihannya dalam pengaturcaraan serentak dan pengaturcaraan rangkaian. Dalam pembangunan sebenar, operasi pangkalan data adalah bahagian yang sangat diperlukan Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk melaksanakan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan pangkalan data. Dalam bahasa Go, kami biasanya menggunakan perpustakaan pihak ketiga untuk mengendalikan pangkalan data, seperti pakej sql yang biasa digunakan, gorm, dsb. Di sini kami mengambil pakej sql sebagai contoh untuk memperkenalkan cara melaksanakan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan pangkalan data. Andaikan kami menggunakan pangkalan data MySQL.

Keluaran terbaharu Apple bagi sistem iOS18, iPadOS18 dan macOS Sequoia telah menambah ciri penting pada aplikasi Photos, yang direka untuk membantu pengguna memulihkan foto dan video yang hilang atau rosak dengan mudah disebabkan pelbagai sebab. Ciri baharu ini memperkenalkan album yang dipanggil "Dipulihkan" dalam bahagian Alat pada apl Foto yang akan muncul secara automatik apabila pengguna mempunyai gambar atau video pada peranti mereka yang bukan sebahagian daripada pustaka foto mereka. Kemunculan album "Dipulihkan" menyediakan penyelesaian untuk foto dan video yang hilang akibat kerosakan pangkalan data, aplikasi kamera tidak disimpan ke pustaka foto dengan betul, atau aplikasi pihak ketiga yang menguruskan pustaka foto. Pengguna hanya memerlukan beberapa langkah mudah

Pemetaan polimorfik hibernate boleh memetakan kelas yang diwarisi ke pangkalan data dan menyediakan jenis pemetaan berikut: subkelas bercantum: Cipta jadual berasingan untuk subkelas, termasuk semua lajur kelas induk. table-per-class: Cipta jadual berasingan untuk subkelas, yang mengandungi hanya lajur khusus subkelas. union-subclass: serupa dengan joined-subclass, tetapi jadual kelas induk menggabungkan semua lajur subclass.

Bagaimana untuk memasang sambungan PHPFFmpeg pada pelayan? Memasang sambungan PHPFFmpeg pada pelayan boleh membantu kami memproses fail audio dan video dalam projek PHP dan melaksanakan fungsi seperti pengekodan, penyahkodan, penyuntingan dan pemprosesan fail audio dan video. Artikel ini akan memperkenalkan cara memasang sambungan PHPFFmpeg pada pelayan, serta contoh kod tertentu. Pertama, kita perlu memastikan bahawa PHP dan FFmpeg dipasang pada pelayan. Jika FFmpeg tidak dipasang, anda boleh mengikuti langkah di bawah untuk memasang FFmpe

HTML tidak boleh membaca pangkalan data secara langsung, tetapi ia boleh dicapai melalui JavaScript dan AJAX. Langkah-langkah termasuk mewujudkan sambungan pangkalan data, menghantar pertanyaan, memproses respons dan mengemas kini halaman. Artikel ini menyediakan contoh praktikal menggunakan JavaScript, AJAX dan PHP untuk membaca data daripada pangkalan data MySQL, menunjukkan cara untuk memaparkan hasil pertanyaan secara dinamik dalam halaman HTML. Contoh ini menggunakan XMLHttpRequest untuk mewujudkan sambungan pangkalan data, menghantar pertanyaan dan memproses respons, dengan itu mengisi data ke dalam elemen halaman dan merealisasikan fungsi HTML membaca pangkalan data.

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

Untuk mengendalikan ralat sambungan pangkalan data dalam PHP, anda boleh menggunakan langkah berikut: Gunakan mysqli_connect_errno() untuk mendapatkan kod ralat. Gunakan mysqli_connect_error() untuk mendapatkan mesej ralat. Dengan menangkap dan mengelog mesej ralat ini, isu sambungan pangkalan data boleh dikenal pasti dan diselesaikan dengan mudah, memastikan kelancaran aplikasi anda.

PHP ialah bahasa pengaturcaraan bahagian belakang yang digunakan secara meluas dalam pembangunan laman web Ia mempunyai fungsi operasi pangkalan data yang kuat dan sering digunakan untuk berinteraksi dengan pangkalan data seperti MySQL. Walau bagaimanapun, disebabkan kerumitan pengekodan aksara Cina, masalah sering timbul apabila berurusan dengan aksara Cina bercelaru dalam pangkalan data. Artikel ini akan memperkenalkan kemahiran dan amalan PHP dalam mengendalikan aksara bercelaru bahasa Cina dalam pangkalan data, termasuk punca biasa aksara bercelaru, penyelesaian dan contoh kod khusus. Sebab biasa aksara bercelaru ialah tetapan set aksara pangkalan data yang salah: set aksara yang betul perlu dipilih semasa mencipta pangkalan data, seperti utf8 atau u
