cari
Rumahpangkalan datatutorial mysqlMongoDB 副本集搭建实现读写分享

副本集就是有自动故障恢复功能的主从集群。主从集群和副本集最为明显的区别就是副本集没有固定的主节点。可以把副本集当做一个集

副本集就是有自动故障恢复功能的主从集群。主从集群和副本集最为明显的区别就是副本集没有固定的主节点。

可以把副本集当做一个集群,整个集群会选出一个主节点,当其不能正常工作时则会激活其它节点。

系统:

CentOS 5.6 x86_64

mongo版本:mongodb-linux-x86_64-2.0.6.tgz

Server1 10.0.1.121:20001

server2 10.0.1.212:20001

Arbiter 10.0.1.212:20002

 


目录规划:

数据目录和日志单分出来

Server1:

/mongodb

/mlogs

应用程序日志统计放到/usr/local/mongo

Server2:

/mongodb

/mlogs

/arbiter

应用程序日志统计放到/usr/local/mongo

 


部署:

1.防火墙开启20001端口,关闭selinux

 


2.分别在两台机器上安装mongo服务

tar xf mongodb-linux-x86_64-2.0.6.tgz -C /usr/local/mongo

3.创建key文件

Server1:

mkdir /etc/keys

echo "test123456" > r0

Server2:

mkdir /etc/keys

echo "test123456" > r1

Arbiter:

echo "test123456" > r2

chmod 600 r0 r1 r2

4.分别启动Server1和Server2的mongo服务

Server1:

/usr/local/mongo/bin/mongod --replSet rs1 --keyFile /usr/local/mongo/key/r0 --port 20001 --fork --dbpath=/mongodb/ --logpath /mlogs/Server1.log

--fork为后台启动

netstat -tunlp | grep mongo  查看端口是否被开启

加入到开机启动脚本 /etc/rc.local

Server2:

/usr/local/mongo/bin/mongod --replSet rs1 --keyFile /usr/local/mongo/key/r1 --port 20001 --fork --dbpath=/mongodb/ --logpath /mlogs/Server2.log

netstat -tunlp | grep mongo  查看端口是否被开启

 


/usr/local/mongo/bin/mongod --replSet rs1 --keyFile /usr/local/mongo/key/r2 --port 20002 --fork --dbpath=/arbiter --logpath /mlogs/arbiter.log

 


加入到开机启动脚本 /etc/rc.local使机器重启后继续生效

 


选项:

--only

在从节点上指定复制某个数据库(默认复制所有数据库)

--slavedelay

用在从节点上,当应用主节点的操作时增加延时(秒)

--fastsync

以主节点的数据快照为基础启动从节点,如果数据目录一开始是主节点的数据快照,从节点用这个选项启动要比完整同步快多了

--autoresync

如果从节点与主节点不同步,则自动重新同步

--oplogSize

主节点oplog的大小(MB)

5.配置及初始化Replica Sets

 > config_pongo={

..._id:'pongo',members:[

...{_id:0,host:'10.0.1.121:20001',priority:1},    #如果有多个节点继续往下增加

...{_id:1,host:'10.0.1.212:20001',priority:2},

...{_id:2,host:"10.0.1.212:20002",arbiterOnly : true}]

...}

rs.initiate(config_rs1); 初始化Replica Sets

 


注:关于扩展节点和添加仲裁设备请看最下方、

副本集中节点的类型

standard:常规节点,它存储一份完整的数据副本,参与选举投票可以成为活跃节点。

passive:存储了完整的数据副本,参与投票,,不能成为活跃节点。

arbiter:仲裁者只参与投票,不能接受复制数据,也不能成为活跃节点。

每个参与节点(非仲裁者)都有个优先权,优先权为0是被动的,不能成为活跃节点,优先值不为0,则按照大小选出活跃节点。

如果2个值一样,则数据最新的为活跃节点。在节点配置中修改priority键,来配置成标准节点或被动节点。

 


注:如果配置成功master会变成PRIMARY  slave会变成SECONDARY

 


6.使用rs.status()查看副本集的状态信息

 


"health" : 1,                        --1表明正常; 0表明异常、

"state" : 1,                          -- 1表明是Primary; 2 表明是Secondary;

"stateStr" : "PRIMARY",      --表明此机器是主库

linux

Kenyataan
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
Apakah prosedur yang disimpan di MySQL?Apakah prosedur yang disimpan di MySQL?May 01, 2025 am 12:27 AM

Prosedur yang disimpan adalah penyataan SQL yang dipraktikkan dalam MySQL untuk meningkatkan prestasi dan memudahkan operasi kompleks. 1. Meningkatkan prestasi: Selepas penyusunan pertama, panggilan seterusnya tidak perlu dikompilasi. 2. Meningkatkan Keselamatan: Mengatasi akses jadual data melalui kawalan kebenaran. 3. Memudahkan operasi kompleks: Campurkan beberapa pernyataan SQL untuk memudahkan logik lapisan aplikasi.

Bagaimanakah pertanyaan caching berfungsi di mysql?Bagaimanakah pertanyaan caching berfungsi di mysql?May 01, 2025 am 12:26 AM

Prinsip kerja cache pertanyaan MySQL adalah untuk menyimpan hasil pertanyaan pilih, dan apabila pertanyaan yang sama dilaksanakan sekali lagi, hasil cache dikembalikan secara langsung. 1) Cache pertanyaan meningkatkan prestasi bacaan pangkalan data dan mendapati hasil cache melalui nilai hash. 2) Konfigurasi mudah, set query_cache_type dan query_cache_size dalam fail konfigurasi MySQL. 3) Gunakan kata kunci sql_no_cache untuk melumpuhkan cache pertanyaan khusus. 4) Dalam persekitaran kemas kini frekuensi tinggi, cache pertanyaan boleh menyebabkan kesesakan prestasi dan perlu dioptimumkan untuk digunakan melalui pemantauan dan pelarasan parameter.

Apakah kelebihan menggunakan MySQL ke atas pangkalan data hubungan lain?Apakah kelebihan menggunakan MySQL ke atas pangkalan data hubungan lain?May 01, 2025 am 12:18 AM

Sebab mengapa MySQL digunakan secara meluas dalam pelbagai projek termasuk: 1. Prestasi tinggi dan skalabilitas, menyokong pelbagai enjin penyimpanan; 2. Mudah untuk digunakan dan mengekalkan, konfigurasi mudah dan alat yang kaya; 3. Ekosistem yang kaya, menarik sejumlah besar sokongan alat komuniti dan pihak ketiga; 4. Sokongan silang platform, sesuai untuk pelbagai sistem operasi.

Bagaimana anda mengendalikan peningkatan pangkalan data di MySQL?Bagaimana anda mengendalikan peningkatan pangkalan data di MySQL?Apr 30, 2025 am 12:28 AM

Langkah -langkah untuk menaik taraf pangkalan data MySQL termasuk: 1. Sandarkan pangkalan data, 2. Hentikan perkhidmatan MySQL semasa, 3. Pasang versi baru MySQL, 4. Mulakan versi baru MySQL Service, 5 pulih pangkalan data. Isu keserasian diperlukan semasa proses peningkatan, dan alat lanjutan seperti Perconatoolkit boleh digunakan untuk ujian dan pengoptimuman.

Apakah strategi sandaran yang berbeza yang boleh anda gunakan untuk MySQL?Apakah strategi sandaran yang berbeza yang boleh anda gunakan untuk MySQL?Apr 30, 2025 am 12:28 AM

Dasar sandaran MySQL termasuk sandaran logik, sandaran fizikal, sandaran tambahan, sandaran berasaskan replikasi, dan sandaran awan. 1. Backup Logical menggunakan MySqldump untuk mengeksport struktur dan data pangkalan data, yang sesuai untuk pangkalan data kecil dan migrasi versi. 2. Sandaran fizikal adalah cepat dan komprehensif dengan menyalin fail data, tetapi memerlukan konsistensi pangkalan data. 3. Backup tambahan menggunakan pembalakan binari untuk merekodkan perubahan, yang sesuai untuk pangkalan data yang besar. 4. Sandaran berasaskan replikasi mengurangkan kesan ke atas sistem pengeluaran dengan menyokong dari pelayan. 5. Backup awan seperti Amazonrds menyediakan penyelesaian automasi, tetapi kos dan kawalan perlu dipertimbangkan. Apabila memilih dasar, saiz pangkalan data, toleransi downtime, masa pemulihan, dan matlamat titik pemulihan perlu dipertimbangkan.

Apakah clustering mysql?Apakah clustering mysql?Apr 30, 2025 am 12:28 AM

Mysqlclusteringenhancesdatabaserobustnessandsandscalabilitybydistributingdataacrossmultiplenodes.itusesthendbenginefordatareplicationandfaulttolerance, ugeinghighavailability.setupinvolvesconfiguringmanagement, Data, dansqlnodes

Bagaimana anda mengoptimumkan reka bentuk skema pangkalan data untuk prestasi di MySQL?Bagaimana anda mengoptimumkan reka bentuk skema pangkalan data untuk prestasi di MySQL?Apr 30, 2025 am 12:27 AM

Mengoptimumkan reka bentuk skema pangkalan data di MySQL dapat meningkatkan prestasi melalui langkah -langkah berikut: 1. Pengoptimuman indeks: Buat indeks pada lajur pertanyaan biasa, mengimbangi overhead pertanyaan dan memasukkan kemas kini. 2. Pengoptimuman Struktur Jadual: Mengurangkan kelebihan data melalui normalisasi atau anti-normalisasi dan meningkatkan kecekapan akses. 3. Pemilihan Jenis Data: Gunakan jenis data yang sesuai, seperti INT dan bukannya VARCHAR, untuk mengurangkan ruang penyimpanan. 4. Pembahagian dan Sub-meja: Untuk jumlah data yang besar, gunakan pembahagian dan sub-meja untuk menyebarkan data untuk meningkatkan kecekapan pertanyaan dan penyelenggaraan.

Bagaimana anda boleh mengoptimumkan prestasi MySQL?Bagaimana anda boleh mengoptimumkan prestasi MySQL?Apr 30, 2025 am 12:26 AM

TooptimizeMySQLperformance,followthesesteps:1)Implementproperindexingtospeedupqueries,2)UseEXPLAINtoanalyzeandoptimizequeryperformance,3)Adjustserverconfigurationsettingslikeinnodb_buffer_pool_sizeandmax_connections,4)Usepartitioningforlargetablestoi

See all articles

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 Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SecLists

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.

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual