Rumah > Artikel > pangkalan data > Apakah pemulihan bencana pangkalan data dan teknik failover untuk mempelajari MySQL?
Apakah pangkalan data pemulihan bencana dan teknik failover untuk mempelajari MySQL?
1. Pengenalan latar belakang
Dalam era Internet hari ini, pangkalan data adalah teras aplikasi, dan ia menyimpan sejumlah besar data. Walau bagaimanapun, pelayan pangkalan data juga menghadapi pelbagai kegagalan, seperti kegagalan perkakasan, gangguan rangkaian, kegagalan kuasa, dll. Untuk memastikan ketersediaan tinggi yang berterusan dan keselamatan data, pemulihan bencana pangkalan data dan failover telah menjadi tugas penting dalam operasi dan penyelenggaraan pangkalan data. Sebagai salah satu pangkalan data hubungan yang paling popular, MySQL mempunyai pelbagai teknologi pemulihan bencana dan failover Berikut adalah beberapa teknik yang biasa digunakan.
2. Kemahiran pemulihan bencana MySQL
Langkah konfigurasi untuk replikasi tuan-hamba adalah seperti berikut:
1) Dayakan fungsi log binari (binlog) pada pangkalan data induk dan konfigurasi server_id yang unik.
2) Konfigurasikan parameter replikasi pada pangkalan data hamba, seperti menentukan tuan_hos, tuan_pengguna, induk_kata laluan, dsb.
3) Mulakan pangkalan data hamba, sambungkannya ke pangkalan data induk dan salin data.
Contoh kod:
On Master:
# 在配置文件中开启binlog [mysqld] server_id=1 log_bin=mysql-bin
On Slave:
# 在配置文件中配置复制参数 [mysqld] server_id=2 log_bin=mysql-bin [mysqldump] master_host=master_ip master_user=replication_user master_password=replication_password
Contoh kod:
On Master1:
[mysqld] server_id=1 log_bin=mysql-bin # 配置与下一个主库的连接 log_slave_updates=1 relay_log=mysql-relay-bin replicate_do_db=db1 replicate-ignore-db=mysql replicate-ignore-db=source_db replicate-ignore-db=destination_db replicate-ignore-db=performance_schema replicate-ignore-db=information_schema replicate-ignore-db=innodb replicate-ignore-db=slave_lab replicate-wild_ignore-table=server1_db1.binlogtest* replicate-wild_ignore-table=*.hg.*,*.git.* replicate-wild-ignore-table=db2_v2p2_gfhb.*.* replicate-wild=wild123.blog_table_name_to_replicate [mysqldump] master_host=master2_ip master_user=master2_user master_password=master2_password
On Master2:
[mysqld] server_id=2 log_bin=mysql-bin # 配置与下一个主库的连接 log_slave_updates=1 relay_log=mysql-relay-bin replicate_do_db=db2 replicate-ignore-db=mysql replicate-ignore-db=source_db replicate-ignore-db=destination_db replicate-ignore-db=performance_schema replicate-ignore-db=information_schema replicate-ignore-db=innodb replicate-ignore-db=slave_lab replicate-wild_ignore-table=server2_db1.binlogtest* replicate-wild_ignore-table=*.hg.*,*.git.* replicate-wild-ignore-table=db3_v2p2_gfhb.*.* replicate-wild=wild321.blog_table_name_to_replicate [mysqldump] master_host=master3_ip master_user=master3_user master_password=master3_password
Dua langkah pertama dikonfigurasikan pada perpustakaan induk pertama, dan konfigurasi pada perpustakaan induk kedua adalah serupa. Setiap pangkalan data berfungsi sebagai pangkalan data hamba pangkalan data induk seterusnya, dengan itu membentuk rantai replikasi.
3. Kemahiran failover MySQL
Pengesanan degupan jantung: Semak sama ada pangkalan data utama masih hidup dengan kerap menghantar paket degupan jantung ke pangkalan data utama.
Mekanisme Failover: Apabila pengesanan degupan jantung mendapati bahawa pangkalan data utama tidak tersedia, pangkalan data hamba secara automatik dinaikkan ke pangkalan data utama dan konfigurasi yang berkaitan dikemas kini.
Kod sampel:
#!/usr/bin/env python import os import time VIP = '192.168.1.100' Script = '/opt/mysql_failover.sh' def detect_db(): while True: ret = os.system('ping -c 1 '+VIP) if ret: print('MySQL is down') os.system(Script + ' down') else: print('MySQL is up') os.system(Script + ' up') time.sleep(5) detect_db()
Pacemaker ialah penyelesaian sumber terbuka matang yang mengurus sumber dan pengurusan dinamik dalam kelompok melalui pengurus sumber dan enjin keputusan.
Keepalived ialah penyelesaian ketersediaan tinggi ringan yang bergantung pada VRRP (Virtual Router Redundancy Protocol) dan LVS (Linux Virtual Server) untuk failover.
Kedua-dua penyelesaian di atas boleh menyediakan ketersediaan tinggi dan fungsi failover automatik Untuk butiran konfigurasi khusus, sila rujuk dokumentasi rasmi.
Ringkasnya, pelajari kemahiran pemulihan bencana pangkalan data MySQL dan kemahiran failover, anda boleh menggunakan replikasi tuan-hamba untuk mencapai sandaran dan failover data, rantaian replikasi untuk mencapai sandaran teragih, pengesanan kesalahan automatik dan penukaran untuk mencapai failover automatik, dan mengkonfigurasi tinggi- kluster ketersediaan Menyediakan ketersediaan yang tinggi. Aplikasi fleksibel teknik ini bukan sahaja dapat memastikan ketersediaan pangkalan data yang berterusan, tetapi juga meningkatkan kestabilan dan kebolehpercayaan sistem.
Atas ialah kandungan terperinci Apakah pemulihan bencana pangkalan data dan teknik failover untuk mempelajari MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!