Pasang RockMongo di CentOS 7
RockMongo adalah alat Pengurusan MongoDB berasaskan web yang serupa dengan alat Pengurusan MySQL: phpMyAdmin. Tutorial ini akan merangkumi proses installin
Sejak dibentuk pada tahun 2009 MongoDB telah menerajui industri NoSQL. Salah satu konsep utama MongoDB adalah Replica Set, jadi sebelum bekerja dengannya mari kita mengulas konsepnya.
Model komunikasi termudah yang digunakan dalam replikasi pangkalan data adalah seni bina Master-Slave. Seperti namanya model ini mempunyai 2 peranan yang tersebar dalam master yang unik dan banyak hamba, peranan master adalah untuk memproses operasi membaca dan menulis yang dilakukan oleh klien dan hamba dianggap sebagai replika master.
Kelebihan yang paling penting dari model ini adalah bahawa prestasi master tidak terganggu oleh operasi sandaran, operasi sandaran dilakukan dengan cara yang tidak segerak dan ini boleh menjadi masalah serius apabila nod induk gagal. Node hamba hanya boleh dibaca dan mereka harus dipromosikan secara manual ke nod induk, jadi pada masa ini ada kemungkinan kehilangan data.
Salah satu pilihan untuk menyelesaikan masalah ketersediaan adalah mempunyai lebih daripada satu master dalam seni bina, tetapi ini boleh menyebabkan masalah lain dalam konsistensi data antara keadaan tersebut dan kerumitan konfigurasi yang ditambahkan.
Dengan konteks yang diberikan, kita dapat menyajikan teknologi Replica Set dari MongoDB. Replika Set adalah nama seni bina Master-Slave yang mempunyai failover automatik, jadi pada saat primary
simpul master (yang sekarang dinamakan ) gagal berfungsi dengan baik, election
akan menjadi pencetus dan simpul utama baru akan dipilih dari baki hamba ( disebut sekarang sebagai secondaries
).
Node utama adalah satu-satunya yang melakukan operasi tulis, secara operasi operasi baca secara lalai dikendalikan oleh primer juga tetapi tingkah laku ini dapat diubah kemudian.
Operasi direkodkan ke dalam oplog
(log operasi), kemudian nod sekunder mengemas kini kandungannya secara asinkron berdasarkan kandunganoplog
Catatan: oplog
adalah koleksi tertutup, ini bermaksud bahawa koleksi itu ada hadnya, dengan local.oplog.rs
anda dapat memeriksa isi koleksi ini di dalam cangkang mongo di mana-mana anggota set.
Selain menjadi orang yang membuat sandaran pangkalan data yang betul, simpul sekunder mempunyai peranan berikut:
Berkat ciri-ciri ini, kita boleh mempunyai pelbagai jenis nod sekunder:
primary
dan tidak dapat memicu pilihan raya, tetap saja mereka dapat memilih dalam pilihan raya, memiliki replika lengkap dan dapat menerima operasi baca. Ini dapat membantu dalam penyebaran pusat data.Priority 0
ahli, tetapi lebih-lebih lagi mereka tidak dapat memproses operasi membaca. Mereka boleh memilih jika perlu. Tugas yang disukai untuk anggota ini adalah pelaporan dan cadangan.priority 0
simpul, dan disarankan juga mereka menjadi hidden
ahli.Sebelum menggunakan infrastruktur, penting untuk merancangnya, dan ada perkara yang perlu dipertimbangkan dalam reka bentuk ini.
Perlu diingat bahawa bilangan elemen minimum untuk membina set Replika adalah 3. Anda boleh mencampurkan tiga jenis nod dengan minimum satu nod primer dan satu sekunder.
Dalam panduan ini kami menggunakan 3 anggota, satu sekolah menengah utama dan dua standard.
Catatan: Adalah disyorkan untuk mempunyai bilangan maksimum 7 anggota pengundi dengan gabungan penimbang tara dan anggota sekunder.
Nama itu hanya untuk rujukan tetapi anda menggunakannya dalam konfigurasi set. Perlu diingat bahawa anda boleh memiliki lebih dari satu set Replika di persekitaran pengeluaran anda, jadi jangan mengabaikan nama set anda.
Tutorial ini mendorong pengguna untuk memilih nama set.
Tutorial ini mencadangkan untuk menggunakan pusat data yang sama sehingga anda dapat mengelakkan masalah komunikasi.
Catatan: Sekiranya digunakan di pusat data yang berbeza, disarankan untuk menyelimuti nod anda dengan VPN
Lancarkan 3 nod Ubuntu 16.04 x64; di rantau yang sama dari portal pelanggan anda, jika boleh. Jangan lupa untuk menamakannya sesuai dengan jenis projek yang anda hadapi dan pastikan mempunyai saiz pelayan yang sama di semua nod ini.
Setelah menggunakan 3 nod anda, anda harus memastikan bahawa setiap nod boleh bercakap dengan yang lain. Anda perlu memasukkan dua nod dan menghubungi yang lain menggunakan ping -c 4 EXAMPLE_IP
. Tukar EXAMPLE_IP
ke IP sebenar nod anda.
Di sini anda dapat melihat contoh komunikasi yang berjaya antara dua nod.
root@foo_node:~# ping -c 4 EXAMPLE_IP
PING EXAMPLE_IP (EXAMPLE_IP) 56(84) bytes of data.
64 bytes from EXAMPLE_IP: icmp_seq=1 ttl=59 time=0.594 ms
64 bytes from EXAMPLE_IP: icmp_seq=2 ttl=59 time=0.640 ms
64 bytes from EXAMPLE_IP: icmp_seq=3 ttl=59 time=0.477 ms
64 bytes from EXAMPLE_IP: icmp_seq=4 ttl=59 time=0.551 ms
--- EXAMPLE_IP ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3021ms
rtt min/avg/max/mdev = 0.477/0.565/0.640/0.064 ms
Secara amnya anda boleh menggunakan pakej MongoDB Ubuntu, tetapi lebih baik menggunakan repo komuniti rasmi kerana selalu terkini. Repo ini mengandungi pakej-pakej ini:
mongod
daemon (proses utama yang menangani permintaan data).mongos
daemon (perkhidmatan penghalaan untuk penggunaan bersama).mongo shell
antara muka JavaScript.Teruskan memasang pakej.
Import kunci awam ke sistem pengurusan pakej.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Buat fail senarai untuk MongoDB '/etc/apt/sources.list.d/mongodb-org-3.4.list'.
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Kemas kini pangkalan data pakej.
sudo apt-get update
Pasang metapackage MongoDB.
sudo apt-get install -y mongodb-org
Mulakan perkhidmatan MongoDB.
sudo service mongod start
Sekarang anda boleh membuka mongo shell
sesi bash mana pun. Untuk melakukan ini, anda harus menggunakan mongo
arahan. Anda akan disambut oleh sesuatu yang serupa dengan ini.
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
*Some extra logs are cut by the way*
>
Jangan lupa untuk mematikan perkhidmatan dengan sudo service mongod stop
, kerana kemudian kita akan memulakan mongod
semula dengan beberapa parameter. Ulangi proses ini di semua 3 nod set.
Menggunakan keyfile memaksa dua konsep dalam pentadbiran Replika Set. Yang pertama adalah Internal Authentication
. Secara lalai, anda boleh memulakan mongo shell
sesi tanpa menggunakan pengguna dan sesi ini akan mempunyai kawalan penuh terhadap pangkalan data, tetapi apabila anda menggunakan keyfile untuk pengesahan, mongo shell
sesi anda akan mencapai keadaan yang disebut localhost exception
. Keadaan ini hanya membolehkan anda membuat pengguna pentadbir dan set Replika. Konsep kedua adalah Role-Based Access Control
, atau dengan kata lain kebenaran. Ini dikuatkuasakan untuk mengatur tahap pentadbiran ke set Replika.
File key adalah kata laluan untuk digunakan dalam set, kata laluan ini mesti sama pada semua anggota set. Untuk meningkatkan keselamatan, penting untuk menggunakan kunci rawak dengan alat pilihan anda.
Kandungan mestilah panjang antara 6 dan 1064 aksara. Anda juga mesti menetapkan read only
kebenaran untuk keyfile.
chmod 400 PATH_OF_YOUR_KEYFILE
Sekarang salin filefile anda ke setiap anggota set, sila gunakan folder yang konsisten untuk rujukan masa depan, dan jangan simpan di dalam media yang boleh ditanggalkan.
Gunakan juga folder untuk fail yang mongod
boleh diakses.
Dalam langkah ini, kita perlu memulakan mongod daemon
setiap anggota set . Terdapat dua cara untuk memulakan mongod
proses: menggunakan fail konfigurasi atau menggunakan baris perintah. Kedua-duanya adalah kaedah yang cukup mudah, tetapi hanya untuk kesederhanaan, tutorial ini menggunakan versi baris perintah.
Gunakan nama yang anda pilih sebelumnya dalam arahan ini.
mongod --keyFile PATH_OF_YOUR_KEYFILE --replSet "YOUR_SET_NAME"
Secara lalai mongod
tidak berjalan sebagai daemon. Anda perlu menggunakan --fork
parameter atau menggunakannya upstart
untuk menjalankannya sepenuhnya sebagai daemon. Dalam tutorial ini kami tidak menggalakkan menjalankan mongod
sebagai daemon sehingga anda dapat melihat log masuk ke terminal anda secara langsung.
Catatan: Ketik nama set Replika dengan berhati-hati kerana setelah dibuat anda tidak dapat mengubahnya.
Catatan: Sekiranya anda menjalankan mongod
proses bukan daemon, anda perlu membuka sambungan ssh yang lain untuk terus berfungsi.
Anda mesti menggunakan mongo
arahan untuk membuka mongo shell
. Ini boleh dilakukan di mana-mana anggota set.
Pada masa ini kita berada dalam keadaan yang disebut localhost exception
. Apabila file key digunakan untuk mengatur mongod
proses, anda wajib membuat pentadbir pangkalan data sebelum anda dapat menerapkan operasi baca-tulis, tetapi kami akan membahasnya nanti.
Ini adalah bahagian yang halus, kita menggunakan perintah rs.initiate()
di dalam mongo shell
Langkah 4. sebelum menggunakan perintah ini mari kita menyemaknya.
rs.initiate(
{
_id : <replicaSetName>,
members: [
{ _id : 0, host : "example1.net:27017" },
{ _id : 1, host : "example2.net:27017" },
{ _id : 2, host : "example3.net:27017" }
]
}
)
_id
Medan pertama adalah rentetan dan mesti sepadan dengan rentetan --replSet
yang dilewati sebelumnya mongod
. Juga, setiap nilai host
mesti berupa ip atau nama domain setiap anggota set Replika. Jangan lupa tambahkan port yang digunakan mongo pada setiap anggota.
Sekarang saatnya untuk melaksanakan perintah dengan data Anda di atasnya, ini akan memicu election
, kemudian yang utama akan dipilih secara automatik.
Di sini anda harus perhatikan bahawa kursor shell anda telah berubah menjadi YOUR_SET_NAME:PRIMARY>
atau YOUR_SET_NAME:SECONDARY
. Ini bererti bahawa membuat satu set berjaya.
Untuk terus bekerja, anda mesti mencari primary
, jika anda tidak melakukannya sudah tentu. Gunakan rs.status()
perintah untuk menunjukkan maklumat set Replika dan cari primary
. Anda mencari harta tanah "stateStr" : "PRIMARY"
.
Setelah anda mencari primary
, masukkan mongo shell
dan jalankan perintah seterusnya menggunakan data anda.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOU_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Yang admin = db.getSiblingDB("admin")
sebahagian membolehkan kita menulis ke dalam admin
dari pangkalan data yang berbeza. Ini membuat alias yang dipanggil admin
, jadi kita boleh melaksanakan perintah menggunakannya.
Sekiranya operasi berjaya, anda akan mendapat pemberitahuan bahawa pengguna telah ditambahkan.
Successfully added user: {
"user" : "YOUR_USER",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Pada ketika ini, kita hanya mempunyai pentadbir untuk semua pelayan, tetapi mempunyai set Replika memaksa kita untuk memiliki pengguna dengan clusterAdmin
peranan tersebut. Kami akan membuat pengguna lain dengan hanya peranan itu untuk memisahkan kebimbangan.
Kami telah mencapai had localhost exception
, itulah sebabnya kita harus menukar pengesahan kepada pengguna yang dibuat satu langkah sebelumnya.
Anda boleh menukar pengguna di dalam mongo shell
dengan yang berikut.
db.getSiblingDB("admin").auth("YOUR_ADMIN", "YOUR_PASSWORD" )
Sekiranya anda belum tersambung dengan mongo shell
penggunaan perintah ini.
mongo -u "YOUR_ADMIN" -p "YOUR_PASSWORD" --authenticationDatabase "admin"
Anda akan diberitahu tentang perubahan pengguna, dan anda boleh pergi ke langkah seterusnya.
The clusterAdmin
peranan memberi kawalan penuh pengguna bagi set replika itu. Membuatnya semudah membuat pengguna admin.
db.getSiblingDB("admin").createUser(
{
"user" : "YOUR_USER",
"pwd" : "YOUR_PASSWORD",
roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
}
)
Perhatikan bahawa kali ini peranan diubah menjadiclusterAdmin
.
Pada masa ini kami mempunyai 2 pengguna pentadbir: satu yang mempunyai kawalan penuh terhadap pelayan dan yang lain yang mempunyai akses ke tugas-tugas pentadbiran pada set Replika. Namun, kita kekurangan pengguna yang memiliki akses untuk "menggunakan" pangkalan data, Oleh itu, kita akan membuat pengguna itu sekarang.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOUR_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "cars" } ]
}
)
Perhatikan saat ini kita mengubah db
bagian, di sana kita meletakkan pangkalan data yang dapat diakses oleh pengguna, dalam hal ini kita menggunakan pangkalan data bernama cars
.
Pangkalan data belum dibuat. Untuk melakukannya, anda perlu menaip beberapa arahan untuk membuatnya secara tersirat. Tukar ke cars
pangkalan data.
use cars
Anda akan mendapat pemberitahuan: switched to db cars
.
Pangkalan data masih belum dibuat, untuk melakukannya anda perlu menulis sesuatu kepadanya. Kami menggunakan contoh berikut.
db.models.insert({ make: "Dodge", model: "Viper", year: 2010 })
Kali ini anda akan diberitahu dengan WriteResult({ "nInserted" : 1 })
.
Sekiranya anda mahu, anda boleh mengambil semua objek dalam pangkalan data, dengan find()
kaedah:
db.models.find()
{ "_id" : ObjectId("59acd8b55334882863541ff4"), "make" : "Dodge", "model" : "Viper", "year" : 2010 }
Perhatikan bahawa _id
akan berbeza dalam output anda, tetapi data lain harus sama. Dengan masa yang cukup, data ini akan ditiru kepada anggota yang lain.
Membuat Replika Set boleh menjadi sukar pada mulanya kerana terdapat banyak maklumat untuk difahami, tetapi setelah anda mendapat idea di belakangnya, Anda dapat menyebarkannya dengan mudah, jadi jangan menyerah jika anda tidak dapat menangkapnya pada kali pertama. Perlu diingat bahawa set Replika penting dalam pentadbiran MongoDB kerana membuka kemungkinan untuk menambahkan ciri-ciri canggih seperti Load Balancing.
RockMongo adalah alat Pengurusan MongoDB berasaskan web yang serupa dengan alat Pengurusan MySQL: phpMyAdmin. Tutorial ini akan merangkumi proses installin
MongoDB tidak selamat secara lalai. Sekiranya anda memasang MongoDB dan melancarkannya tanpa mengkonfigurasinya untuk pengesahan, anda akan mengalami masa yang buruk
Barnyard2 adalah cara untuk menyimpan dan memproses output binari dari Snort ke dalam pangkalan data MySQL. Sebelum kita mulakan Harap maklum bahawa jika anda tidak mempunyai dengkuran
Prasyarat Pelayan Vultr yang berjalan sehingga Arch Linux terkini (lihat artikel ini) Akses Sudo: Perintah yang diperlukan untuk dijalankan sebagai root diawali oleh #, dan satu
Dalam artikel ini, Saya akan menunjukkan kepada anda cara memasang MariaDB pada OpenBSD 6 dan mengkonfigurasinya agar dapat diakses oleh pelayan web chroot (Apache atau Nginx). Anda juga akan
MySQL adalah perisian yang paling popular di dunia yang digunakan untuk pangkalan data. Memastikan bahawa anda mempunyai sandaran pangkalan data anda sangat penting. Amalan ini membenarkan
OrientDB adalah sumber terbuka pelbagai model generasi berikutnya NoSQL DBMS. Dengan sokongan untuk pelbagai model data, OrientDB dapat memberikan lebih banyak fungsi dan fleksibiliti dalam
Menggunakan Sistem yang berbeza? Pengenalan ArangoDB adalah pangkalan data NoSQL sumber terbuka dengan model data yang fleksibel untuk dokumen, grafik, dan nilai kunci. Ia adalah
MongoDB adalah pangkalan data NoSQL yang pantas dan kuat. Walau bagaimanapun, repositori Debian dikemas kini dengan perlahan dan selalunya mengandungi pakej versi lama. Tutoria ini
Menggunakan Sistem Berbeza? Apache Cassandra adalah sistem pengurusan pangkalan data bebas dan terbuka NoSQL yang direka untuk menyediakan skalabilitas, hig
Pengenalan MyCLI adalah pelanggan baris perintah untuk MySQL dan MariaDB yang membolehkan anda melengkapkan secara automatik dan membantu dengan sintaks perintah SQL anda. MyCL
Pengenalan InfluxDB adalah pangkalan data berdasarkan siri masa yang ditulis dalam Go. InfluxDB mempunyai banyak kegunaan praktikal, salah satunya menyimpan data pemantauan pada pelayan. Saya
MariaDB adalah pangkalan data sumber terbuka percuma, dan merupakan pengganti drop-in yang paling banyak digunakan untuk MySQL. Ia dibuat oleh pembangun MySQL dan bertujuan untuk membuat remai
phpRedisAdmin adalah aplikasi web yang menguruskan pangkalan data Redis dengan antara muka pengguna grafik yang intuitif. Tutorial ini akan menerangkan cara memasang
Redis adalah penyelesaian penyimpanan data kunci-nilai, sering disebut sebagai pangkalan data NoSQL. Ia dapat mencapai kelajuan membaca / menulis yang sangat tinggi kerana ia adalah memori dalam memori
Prasyarat Pelayan Vultr berjalan dengan up to date Arch Linux (lihat artikel ini.) Akses Sudo: Perintah yang diperlukan untuk dijalankan sebagai root diawali oleh #, dan satu
Menggunakan Sistem Berbeza? Apache Cassandra adalah sistem pengurusan pangkalan data bebas dan terbuka NoSQL yang direka untuk menyediakan skalabilitas, hig
Membuat sandaran adalah bahagian penting dalam menangani pangkalan data. Tidak kira sama ada anda menjalankan laman web korporat, atau hanya menghoskan WordPress, penting untuk menyokong anda
Menggunakan Sistem Berbeza? Pengenalan ArangoDB adalah pangkalan data NoSQL sumber terbuka dengan model data fleksibel untuk dokumen, grafik, dan nilai kunci. Ia adalah
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.
Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.
CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?
Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.
Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!
Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.
Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut