Jadual Kandungan
准备,配置数据库主从
启动 MySQL的并配置 Slave 的同步
主从切换
Rumah pangkalan data tutorial mysql MySQL 不停服务来启用 innodb_file_per_table_MySQL

MySQL 不停服务来启用 innodb_file_per_table_MySQL

Jun 01, 2016 pm 01:12 PM
angkasa lepas laman web projek

InnoDB  是一个非常不错的 MySQL 的存储引擎,目前使用非常广泛基本所有的网站和项目,我想都会优先选择这个,这个也有很好的诊断和微调的工具.我发现其中一个缺点,就是磁盘空间管理时设计非常低效.这个设计成给所有数据都存到 ibdata1 文件,所以这个文件的存储空间会不断的扩展.InnoDB 并不会收缩这些空间,就算你删除表和数据库.

所以我们需要注意我们的配置.最好一开始就使用 innodb_file_per_table 的选项.这样可以使得更加灵活性的给数据存到每个单表的数据库. 我非常不幸地, 最开始我的数据并没有考虑这个所以没有打开这个参数.后来我测试过,在之后打开这个参数根本不能生效.所以只能 dump 整个数据库,然后在启动这个参数后重新恢复数据库才行.这时我们在想有没有法子,不用关掉数据库的服务时就能完成这个工作.

目前看来只能使用 mysqldump 输出,然后才能恢复.所以我们只能使用 MySQL 的主从模式来切换,才能最大限度地减少停机时间.

所以,我使用的基本步骤是:

  • 配置为当前的原始数据库为 Master 数据库.
  • 使用 Xtrabackup 来备份你的原始数据库.
  • 恢复你的备份和到第二个 MySQL 的实例上.
  • 恢复,但不同步,然后运行 mysqldump 在第二个做为 Slave 的数据库上然后导出.
  • 停止第二个数据库实例,并删除数据库.
  • 创建一个新的数据库,使用前面导出的数据来恢复 MySQL 的实例,记得先要打开 innodb_file_per_table 的选项恢复.
  • 配置这个数据库为 slave 然后运行复制.
  • 当复制完成时,给这个 slave 切换成主,然后重新配置你的客户端使用这个实例
  • 现在可以停止主数据库和删除它.

下面是详细的步骤

准备,配置数据库主从

这个看以前的 Blog 有讲怎么在线做 MySQL 的主从.接下来在 Slave 上做转换的操作

Dump 出 Slave 上的数据

假设你根据我以前的文章都做好了.现在配置好 slave 了.记得使用 innobackupex-1.5.1 -apply-log 恢复后,然后复制到数据库的目录.并修改权限.

这时记得先不要设置同步.直接启动数据后.直接使用 MySQL 的 mysqldump 来导出整个数据库.

123 service mysqld start

mysqldump-uroot-p--quick --default-character-set=utf8 bbsee >dump_data.sql

service mysqld stop

创建新的数据库

在新的机器上.安装新的数据库文件.只保留 dump_data.sql.然后使用 mysql_install_db 来建权限数据,MySQL 的数据库

1

mysql_install_db--user=mysql

创建新的配置文件

vim /etc/mysql/my.cnf
Salin selepas log masuk

添加以下行到新的文件:

innodb_file_per_table = 1server-id = 2bin-log = 1
Salin selepas log masuk

我在次声明,这是成功的关键,innodb_file_per_table 会让过一会导入的数据按表来存, binlog 是为了以后切主的时候使用.

启动 MySQL的并配置 Slave 的同步

先要启动数据库

1 server mysqld start

恢复导出的数据库

1

mysql-uroot-p --default-character-set=utf8

配置复制
因为刚导入数据库,所以要从现在开始复制,需要在主数据库上根据我以前的文章,给这个设置好权限,然后我们在 Slave 配置一下 slave 的设置

1234567

change mastertomaster_host='127.0.0.1',

master_user='repl',

master_password='passwd',

master_port=3306,

master_log_file='mysql-bin.000001',

master_log_pos=3874;start slave;

这个中的 master_log_file 和 master_log_pos 是根据我以前文章刚开始使用 innobackupex 做主数据备份时 xtrabackup_binlog_info 中的信息

1

mysql-uroot-p-e"show slave status/G"|grep Seconds

当MySQL显示 Seconds_Behind_Master: 0 时,这就 Slave 就同步的和主数据库一样了.

主从切换

现在备份完 Salve 也同步成和主一样,这时因为使用了  innodb_file_per_table 的参数,所以可以切成主了.直接在主数据库中锁一下数据库

1

SETglobalread_only=1;

然后查看主数据库的状态,写 binlog 到那个文件,什么位置了.

1 SHOW master STATUS;

接着到 Slavle 的数据库上看看是不同步到一样的状态了.

1 SHOW slave STATUS /G;

确保主从同步的一样后,先到 Slave 上停止 Slave 的复制变成新的 master,这时才方便切成主,所以要在新的 master上执行

1234 stop slave

change mastertomaster_host=”

reset slavereset maters

之所以要在新的master上执行change master to master_host=”及reset slave,主要是为了断开与老的master之间连接信息.

现在切完了,可以根据以前设置 msater 的经验来给原来的主数据库设置成这个的 slave .也可以给这个重新备份一个出来,在恢复了.

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Adakah terdapat laman web untuk mempelajari bahasa C? Adakah terdapat laman web untuk mempelajari bahasa C? Jan 30, 2024 pm 02:38 PM

Laman web untuk mempelajari bahasa C: 1. Laman Web Bahasa C; 3. Forum Bahasa C 6. Tianji.com; 51 Rangkaian belajar kendiri; 9. Likou; Pengenalan terperinci: 1. Laman web bahasa C bahasa Cina, yang merupakan laman web khusus untuk menyediakan bahan pembelajaran bahasa C untuk pemula Ia kaya dengan kandungan, termasuk tatabahasa asas, petunjuk, tatasusunan, fungsi, struktur dan modul lain; Ini adalah laman web pembelajaran pengaturcaraan yang komprehensif dan banyak lagi.

Kongsi cara mudah untuk membungkus projek PyCharm Kongsi cara mudah untuk membungkus projek PyCharm Dec 30, 2023 am 09:34 AM

Kongsi kaedah pembungkusan projek PyCharm yang mudah dan mudah difahami Dengan populariti Python, semakin ramai pembangun menggunakan PyCharm sebagai alat utama untuk pembangunan Python. PyCharm ialah persekitaran pembangunan bersepadu yang berkuasa yang menyediakan banyak fungsi mudah untuk membantu kami meningkatkan kecekapan pembangunan. Salah satu fungsi penting ialah pembungkusan projek. Artikel ini akan memperkenalkan cara untuk membungkus projek dalam PyCharm dengan cara yang mudah dan mudah difahami, dan memberikan contoh kod khusus. Mengapa projek pakej? Dibangunkan dalam Python

Bolehkah AI menakluki teorem terakhir Fermat? Ahli matematik melepaskan 5 tahun kerjayanya untuk mengubah 100 halaman bukti menjadi kod Bolehkah AI menakluki teorem terakhir Fermat? Ahli matematik melepaskan 5 tahun kerjayanya untuk mengubah 100 halaman bukti menjadi kod Apr 09, 2024 pm 03:20 PM

Teorem terakhir Fermat, akan ditakluki oleh AI? Dan bahagian yang paling bermakna dari keseluruhannya ialah Teorem Terakhir Fermat, yang akan diselesaikan oleh AI, dengan tepat untuk membuktikan bahawa AI tidak berguna. Suatu ketika dahulu, matematik tergolong dalam alam kecerdasan manusia yang tulen kini, wilayah ini dihuraikan dan diinjak oleh algoritma canggih. Imej Teorem Terakhir Fermat ialah teka-teki "terkenal" yang telah membingungkan ahli matematik selama berabad-abad. Ia telah terbukti pada tahun 1993, dan kini ahli matematik mempunyai rancangan besar: untuk mencipta semula bukti menggunakan komputer. Mereka berharap bahawa sebarang ralat logik dalam versi bukti ini boleh disemak oleh komputer. Alamat projek: https://github.com/riccardobrasca/flt

Melihat lebih dekat pada PyCharm: cara cepat untuk memadamkan projek Melihat lebih dekat pada PyCharm: cara cepat untuk memadamkan projek Feb 26, 2024 pm 04:21 PM

Tajuk: Ketahui lebih lanjut tentang PyCharm: Cara yang cekap untuk memadamkan projek Dalam beberapa tahun kebelakangan ini, Python, sebagai bahasa pengaturcaraan yang berkuasa dan fleksibel, telah digemari oleh semakin ramai pembangun. Dalam pembangunan projek Python, adalah penting untuk memilih persekitaran pembangunan bersepadu yang cekap. Sebagai persekitaran pembangunan bersepadu yang berkuasa, PyCharm menyediakan pembangun Python dengan banyak fungsi dan alatan yang mudah, termasuk memadamkan direktori projek dengan cepat dan cekap. Berikut akan memberi tumpuan kepada cara menggunakan padam dalam PyCharm

Petua Praktikal PyCharm: Tukar Projek kepada Fail EXE Boleh Laku Petua Praktikal PyCharm: Tukar Projek kepada Fail EXE Boleh Laku Feb 23, 2024 am 09:33 AM

PyCharm ialah persekitaran pembangunan bersepadu Python yang berkuasa yang menyediakan pelbagai alatan pembangunan dan konfigurasi persekitaran, membolehkan pembangun menulis dan menyahpepijat kod dengan lebih cekap. Dalam proses menggunakan PyCharm untuk pembangunan projek Python, kadangkala kita perlu membungkus projek ke dalam fail EXE boleh laku untuk dijalankan pada komputer yang tidak mempunyai persekitaran Python yang dipasang. Artikel ini akan memperkenalkan cara menggunakan PyCharm untuk menukar projek kepada fail EXE boleh laku dan memberikan contoh kod khusus. kepala

Bagaimana untuk menambah ruang swap pada Ubuntu 22.04 LTS Bagaimana untuk menambah ruang swap pada Ubuntu 22.04 LTS Feb 20, 2024 am 11:12 AM

Ruang swap memainkan peranan penting dalam sistem Linux, terutamanya apabila sistem kekurangan ingatan. Ia bertindak sebagai ruang storan memori sandaran yang membantu sistem berjalan dengan lancar dan mengekalkan kestabilan walaupun di bawah beban yang tinggi. Artikel ini memberi anda panduan terperinci untuk menambah ruang swap pada Ubuntu 22.04LTS untuk memastikan prestasi sistem anda dioptimumkan dan boleh mengendalikan pelbagai beban kerja. Memahami Ruang Swap Space Swap menyediakan memori maya yang digunakan untuk menambah RAM fizikal sistem. Apabila sistem kekurangan RAM, kernel menukar data ke cakera untuk mengelakkan kehabisan memori dan sistem ranap. Sistem Linux biasanya menggunakan ruang swap untuk mengendalikan situasi ini. Jalankan berbilang aplikasi intensif memori secara serentak untuk memproses fail atau data yang sangat besar

Pengenalan kepada ruang pemacu C yang diperlukan untuk menaik taraf win11 Pengenalan kepada ruang pemacu C yang diperlukan untuk menaik taraf win11 Dec 23, 2023 am 08:57 AM

Seperti yang kita sedia maklum, jika cakera sistem yang diduduki terlalu besar selepas pemasangan sistem selesai, ia boleh menyebabkan sistem ketinggalan, kelewatan dan juga kehilangan fail. Oleh itu, sebelum anda memasang sistem win11, anda perlu tahu berapa banyak ruang pemacu C yang diperlukan untuk menaik taraf win11 Mari kita lihat dengan editor. Berapa banyak ruang pemacu C diperlukan untuk menaik taraf win11: Jawapan: Menaik taraf win11 memerlukan 20-30GB ruang pemacu C. 1. Menurut keperluan konfigurasi win11 Microsoft, anda dapat melihat bahawa pemasangan win11 memerlukan ruang cakera keras 64GB. 2. Tetapi sebenarnya, secara umumnya, tidak memerlukan ruang yang begitu besar. 3. Mengikut maklum balas daripada pengguna yang telah memasang win11, peningkatan win11 memerlukan kira-kira 20-30GB ruang pemacu C. 4. Tetapi jika pintu kita hanya mempunyai

Tutorial PyCharm: Bagaimana untuk mengalih keluar item dalam PyCharm? Tutorial PyCharm: Bagaimana untuk mengalih keluar item dalam PyCharm? Feb 24, 2024 pm 05:54 PM

PyCharm ialah persekitaran pembangunan bersepadu (IDE) Python yang berkuasa yang menyediakan fungsi yang kaya untuk membantu pembangun menulis dan mengurus projek Python dengan lebih cekap. Dalam proses membangunkan projek menggunakan PyCharm, kadangkala kita perlu memadam beberapa projek yang tidak lagi diperlukan untuk mengosongkan ruang atau membersihkan senarai projek. Artikel ini akan memperincikan cara memadamkan projek dalam PyCharm dan memberikan contoh kod khusus. Cara memadam projek Buka PyCharm dan masukkan antara muka senarai projek. Dalam senarai projek,

See all articles