线上mysql数据库不停机的环境下如何添加新的从机
在工作中,主从环境搭的多了,但是,基本上都是在DB SERVER停机(游戏公司)的情况下搭建的,今天突然被一技术官问,如何在线添加主从,回答的大概思路,但是没有实践过,下面,我就测试一下。各位也可以先想想自己的思路:mysql 5.1版本,二进制日志文件(时间
在工作中,主从环境搭的多了,但是,基本上都是在DB SERVER停机(游戏公司)的情况下搭建的,今天突然被一技术官问,如何在线添加主从,回答的大概思路,但是没有实践过,下面,我就测试一下。各位也可以先想想自己的思路:mysql 5.1版本,二进制日志文件(时间长了,有些二进制日志定期清除了),pos号
注:在mysql 5.6版本中,已经有基于GTID的主从复制(即:不需要知道日志文件和position号),只需还原最新的备份就可实现,这里只讨论mysql 5.1
一.目前的基本环境:
主DB:192.168.1.101
从DB1:192.168.1.102
从DB2:192.168.1.103(准备在线添加做为从机的mysql数据库)
数据库版本:mysql 5.1.61(select version())
服务器版本:red hat linux 6
注:目前主从正常(show slave statusG),同步的数据库为 login
3台DB server的备份软件(xtrbackup)都已经安装完成
同步的表为innodb引擎的表,不然用xtrabackup还是会锁表
假设环境为:现在login库下的表a,备份的时候插入数据,最终行为5418272
注:思路是备份,可是用mysqldump备份会锁表,如果数据量很大的话,线上环境肯定不允许使用mysqldump备份
所以,我们采用的xtrabackup来进行在线热备,至于,它的原理,,请各位自行google
二.部署实例:
1.主DB,线上数据正常写入的同时我实施备份
1
2
3
4
mysql> insert into a select * from a;
[root@client101 backup]# innobackupex --user=root --password=kongzhong --defaults-file=/etc/my.cnf --port=3306 --database=login /tmp/backup/ >/tmp/backup/innoback.log 2>&1
# 备份完成后,可以查看备份文件目录下, xtrabackup_binlog_info 此文件会记录主上的日志和position号
[root@client101 2014-02-22_07-43-36]# cat xtrabackup_binlog_info
2.将备份文件压缩,并传送到从DB2(192.168.1.103)上,用于在上面进行还原
1
2
[root@client101 backup]# tar zcvf login.tar 2014-02-22_07-43-36
[root@client101 backup]# scp login.tar 192.168.1.103:/tmp/
3.从DB2上,解压刚才的备份,并用于恢复
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@client103 tmp]# tar -xf login.tar
# 应用日志,保证数据一致
[root@client103 tmp]# innobackupex --apply-log /tmp/2014-02-22_07-43-36/
# 停mysql
[root@client103 mysql]# /etc/init.d/mysqld stop
# mysql数据目录下的所有文件移到/tmp/mysqlbackup/下,不然,恢复有问题
# [这里建议只复制数据文件,不建议复制(日志,索引,innodb共享表空间,innodb日志文件,慢日志等)]
[root@client103 mysql]# mv /var/lib/mysql/* /tmp/mysqlback
# 恢复数据
[root@client103 mysql]# innobackupex --copy-back /tmp/2014-02-22_07-43-36/
# 将原数据库的内容复制mysql数据目录(这里就是我认为这个软件不好的地方,大家也可以给点建议)
[root@client103 mysqlback]# mv /tmp/mysqlbac k/* /var/lib/mysql/
# 将数据目录的权限修改为mysql权限
[root@client103 mysql]# chown mysql. /var/lib/mysql/
# 启动数据库
[root@client103 mysql]# /etc/init.d/mysqld start
# 验证数据的一致性:5418272(主上的行)
mysql> select count(*) from a;
+----------+
| count(*) |
+----------+
| 5418272 |
+----------+
4.将从DB2的主机指向主DB1
1
2
3
4
5
6
7
8
9
10
11
12
13
# 刚才回复后,会有个文件:xtrabackup_binlog_pos_innodb --> 此文件记录了备份时日志文件和pos号
[root@client103 mysql]# cat xtrabackup_binlog_pos_innodb
/var/lib/mysql/mysql-101-bin.000008 2423
# 建立主从关系
mysql> change master to master_host='192.168.1.101',
-> master_user='slave',
-> master_password='slave',
-> master_log_file='mysql-101-bin.000008',
-> master_log_pos=2423;
# 开启同步
mysql> start slave;
# 查看同步状态
mysql> show slave statusG;
5.此时如果都为yes,则主从则建立完毕!大家可自行测试
注:
还有一种方式在线添加主从,即原本的从机只做冗余,可以在从机暂时停止主从,
然后,在从机上执行备份,看当前从机上,日志执行到哪个文件,哪个位置(master的日志文件和pos号)

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

MySQL sesuai untuk perusahaan kecil dan besar. 1) Perniagaan kecil boleh menggunakan MySQL untuk pengurusan data asas, seperti menyimpan maklumat pelanggan. 2) Perusahaan besar boleh menggunakan MySQL untuk memproses data besar dan logik perniagaan yang kompleks untuk mengoptimumkan prestasi pertanyaan dan pemprosesan transaksi.

InnoDB secara berkesan menghalang pembacaan hantu melalui mekanisme utama. 1) Kekunci seterusnya menggabungkan kunci baris dan kunci jurang untuk mengunci rekod dan jurang mereka untuk mengelakkan rekod baru daripada dimasukkan. 2) Dalam aplikasi praktikal, dengan mengoptimumkan pertanyaan dan menyesuaikan tahap pengasingan, persaingan kunci dapat dikurangkan dan prestasi konkurensi dapat ditingkatkan.

MySQL bukan bahasa pengaturcaraan, tetapi bahasa pertanyaannya SQL mempunyai ciri -ciri bahasa pengaturcaraan: 1. SQL menyokong penghakiman bersyarat, gelung dan operasi berubah -ubah; 2. Melalui prosedur, pencetus dan fungsi yang disimpan, pengguna boleh melakukan operasi logik yang kompleks dalam pangkalan data.

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

MySQL adalah sistem pengurusan pangkalan data sumber terbuka yang sesuai untuk penyimpanan data, pengurusan, pertanyaan dan keselamatan. 1. Ia menyokong pelbagai sistem operasi dan digunakan secara meluas dalam aplikasi web dan bidang lain. 2. Melalui seni bina pelanggan-pelayan dan enjin penyimpanan yang berbeza, MySQL memproses data dengan cekap. 3. Penggunaan asas termasuk membuat pangkalan data dan jadual, memasukkan, menanyakan dan mengemas kini data. 4. Penggunaan lanjutan melibatkan pertanyaan kompleks dan prosedur yang disimpan. 5. Kesilapan umum boleh disahpepijat melalui pernyataan yang dijelaskan. 6. Pengoptimuman Prestasi termasuk penggunaan indeks rasional dan pernyataan pertanyaan yang dioptimumkan.

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Mekanisme kunci InnoDB termasuk kunci bersama, kunci eksklusif, kunci niat, kunci rekod, kunci jurang dan kunci utama seterusnya. 1. Kunci dikongsi membolehkan urus niaga membaca data tanpa menghalang urus niaga lain dari membaca. 2. Kunci eksklusif menghalang urus niaga lain daripada membaca dan mengubah suai data. 3. Niat Kunci mengoptimumkan kecekapan kunci. 4. Rekod Rekod Kunci Kunci Rekod. 5. Gap Lock Locks Index Rakaman Gap. 6. Kunci kunci seterusnya adalah gabungan kunci rekod dan kunci jurang untuk memastikan konsistensi data.


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

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Dreamweaver Mac版
Alat pembangunan web visual

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.