Jak zainstalować i skonfigurować OrientDB Community Edition na CentOS 7
OrientDB to wielomodowy model open source NoSQL DBMS nowej generacji. Dzięki obsłudze wielu modeli danych, OrientDB może zapewnić większą funkcjonalność i elastyczność
Od momentu powstania w 2009 roku MongoDB jest liderem branży NoSQL. Jedną z podstawowych koncepcji MongoDB jest zestaw replik, więc zanim zaczniesz z nim pracować, najpierw przejrzyj tę koncepcję.
Najprostszym modelem komunikacji stosowanym w replikacji baz danych jest architektura Master-Slave. Jak sama nazwa wskazuje, ten model ma 2 role, które są rozproszone w unikatowym urządzeniu nadrzędnym i wielu urządzeniach podrzędnych, rolą urządzenia nadrzędnego jest przetwarzanie operacji odczytu i zapisu wykonywanych przez klientów, a urządzenia podrzędne są traktowane jako replika urządzenia nadrzędnego.
Najważniejszą zaletą tego modelu jest to, że operacje tworzenia kopii zapasowej nie wpływają na wydajność elementu głównego, operacje tworzenia kopii zapasowej są wykonywane w sposób asynchroniczny, co może stać się poważnym problemem w przypadku awarii węzła głównego. Węzły podrzędne są tylko do odczytu i muszą zostać ręcznie awansowane do węzła głównego, więc w tym czasie istnieje możliwość utraty danych.
Jedną z opcji rozwiązania problemu dostępności jest posiadanie więcej niż jednego wzorca w architekturze, ale może to prowadzić do innego problemu w spójności danych między tymi instancjami i dodatkowej złożoności konfiguracji.
Biorąc pod uwagę kontekst, możemy przedstawić technologię zestawu replik MongoDB. Zestaw replik to nazwa architektury Master-Slave, która ma automatyczne przełączanie awaryjne, więc w momencie, gdy primary
węzeł master (który teraz nazywa się ) nie działa poprawnie election
, uruchomi się i zostanie wybrany nowy węzeł podstawowy z pozostałych urządzeń slave ( określany teraz jako secondaries
).
Węzeł podstawowy jest jedynym, który wykonuje operacje zapisu, domyślnie operacje odczytu są obsługiwane również przez podstawowy, ale zachowanie to można zmienić później.
Operacje są rejestrowane w oplog
(dzienniku operacji), a następnie węzły pomocnicze aktualizują swoją zawartość asynchronicznie na podstawie zawartości plikuoplog
Uwaga: oplog
jest to kolekcja ograniczona, co oznacza, że kolekcja ma limit, dzięki local.oplog.rs
czemu możesz sprawdzić zawartość tej kolekcji w skorupie mangowej w dowolnym zestawie.
Oprócz tego, że wykonują odpowiednią kopię zapasową bazy danych, węzeł dodatkowy pełni następujące role:
Dzięki tym cechom możemy mieć różne typy węzłów dodatkowych:
primary
i nie mogą wywoływać wyborów, nadal mogą głosować w wyborach, mieć pełną replikę i przyjmować operacje odczytu. Mogą być one pomocne przy wdrażaniu wielu centrów danych.Priority 0
członkowie, ale ponadto nie mogą przetwarzać operacji odczytu. W razie potrzeby mogą głosować. Preferowane zadania dla tych członków to raportowanie i tworzenie kopii zapasowych.priority 0
węzłem i zaleca się, aby był on hidden
również członkiem.Przed wdrożeniem infrastruktury ważne jest zaprojektowanie jej, a przy projektowaniu należy wziąć pod uwagę pewne kwestie.
Należy pamiętać, że minimalna liczba elementów do zbudowania zestawu repliki wynosi 3. Można mieszać trzy typy węzłów z co najmniej jednym węzłem głównym i jednym węzłem dodatkowym.
W tym przewodniku wdrażamy 3 członków, jeden podstawowy i dwa standardowe pomocnicze.
Uwaga: Zaleca się, aby maksymalnie 7 członków głosowało w składzie arbitrów i członków drugorzędnych.
Nazwa jest tylko w celach informacyjnych, ale używasz jej w konfiguracji zestawu. Pamiętaj, że w środowisku produkcyjnym możesz mieć więcej niż jeden zestaw repliki, więc nie zaniedbuj nazwy swojego zestawu.
Ten samouczek zachęca użytkownika do wybrania nazwy zestawu.
Ten samouczek sugeruje wdrożenie w tym samym centrum danych, aby uniknąć problemów z komunikacją.
Uwaga: W przypadku wdrażania w różnych centrach danych zaleca się otoczyć węzły siecią VPN
Uruchom 3 węzły Ubuntu 16.04 x64; w tym samym regionie z portalu klienta, jeśli to możliwe. Nie zapomnij nazwać ich odpowiednio do rodzaju projektu, z którym masz do czynienia i upewnij się, że serwer ma taki sam rozmiar we wszystkich tych węzłach.
Po wdrożeniu 3 węzłów będziesz musiał upewnić się, że każdy węzeł może rozmawiać z resztą. Musisz ssh na dwa węzły i dotrzeć do pozostałych za pomocą ping -c 4 EXAMPLE_IP
. Zmień EXAMPLE_IP
na rzeczywiste adresy IP swoich węzłów.
Tutaj możesz zobaczyć przykład udanej komunikacji między dwoma węzłami.
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
Zasadniczo możesz korzystać z pakietu Ubuntu MongoDB, ale lepiej jest skorzystać z oficjalnego repozytorium społeczności, ponieważ jest ono zawsze aktualne. To repozytorium zawiera następujące pakiety:
mongod
demon (podstawowy proces, który obsługuje żądania danych).mongos
demon (usługa routingu dla wspólnych wdrożeń).mongo shell
interfejs JavaScript.Przejdź do instalacji pakietów.
Zaimportuj klucz publiczny do systemu zarządzania pakietami.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Utwórz plik listy dla 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
Zaktualizuj bazę danych pakietów.
sudo apt-get update
Zainstaluj metapakiet MongoDB.
sudo apt-get install -y mongodb-org
Uruchom usługę MongoDB.
sudo service mongod start
Teraz możesz otworzyć mongo shell
w dowolnej sesji bash. Aby to zrobić, musisz użyć mongo
polecenia. Zostaniesz przywitany przez coś podobnego do tego.
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*
>
Nie zapomnij wyłączyć usługi za pomocą sudo service mongod stop
, ponieważ później zaczniemy mongod
ponownie z pewnymi parametrami. Powtórz ten proces we wszystkich 3 węzłach zestawu.
Użycie pliku klucza wymusza dwie koncepcje w administracji zestawu replik. Pierwszy to Internal Authentication
. Domyślnie możesz rozpocząć mongo shell
sesję bez użycia użytkownika, a ta sesja będzie miała pełną kontrolę nad bazą danych, ale gdy użyjesz pliku klucza do uwierzytelnienia, mongo shell
sesja osiągnie stan o nazwie localhost exception
. Ten stan pozwala tylko utworzyć administratora i zestaw repliki. Drugim pojęciem jest Role-Based Access Control
, inaczej mówiąc, autoryzacja. Jest to wymuszane w celu zarządzania poziomami administracyjnymi zestawu repliki.
Plik klucza to hasło używane w zestawie, hasło to musi być takie samo we wszystkich elementach zestawu. Aby zwiększyć bezpieczeństwo, należy użyć losowego klucza z wybranym narzędziem.
Treść musi mieć od 6 do 1064 znaków. Musisz także ustawić read only
uprawnienia do pliku kluczy.
chmod 400 PATH_OF_YOUR_KEYFILE
Teraz skopiuj plik klucza do każdego zestawu członków, użyj spójnego folderu do wykorzystania w przyszłości i nie przechowuj go na nośniku wymiennym.
Użyj również folderu dla pliku, do którego mongod
można uzyskać dostęp.
W tym kroku musimy rozpocząć mongod daemon
w każdym zestawie elementów . Istnieją dwa sposoby rozpoczęcia mongod
procesu: użycie pliku konfiguracyjnego lub użycie wiersza poleceń. Obie są dość łatwymi metodami, ale dla uproszczenia w tym samouczku używana jest wersja wiersza polecenia.
Użyj nazwy wybranej wcześniej w tym poleceniu.
mongod --keyFile PATH_OF_YOUR_KEYFILE --replSet "YOUR_SET_NAME"
Domyślnie mongod
nie działa jako demon. Musisz użyć --fork
parametru lub użyć, upstart
aby w pełni uruchomić go jako demona. W tym samouczku nie zachęcamy do działania mongod
jako demon, dzięki czemu możesz zobaczyć dzienniki bezpośrednio na terminalu.
Uwaga: Ostrożnie wpisz nazwę zestawu repliki, ponieważ po utworzeniu nie można go zmienić.
Uwaga: Jeśli działasz mongod
jako proces niebędący demonem, będziesz musiał otworzyć kolejne połączenie ssh, aby kontynuować pracę.
Musisz użyć mongo
polecenia, aby otworzyć mongo shell
. Można to zrobić w dowolnym elemencie zestawu.
W tej chwili jesteśmy w stanie zwanym localhost exception
. Gdy plik klucza jest używany do konfiguracji mongod
procesu, musisz utworzyć administratora bazy danych, zanim będziesz mógł zastosować operacje odczytu i zapisu, ale przejdziemy do tego później.
Jest to delikatna część, używamy polecenia rs.initiate()
wewnątrz mongo shell
od kroku 4. Przed użyciem Oceń to ta komenda LET'S.
rs.initiate(
{
_id : <replicaSetName>,
members: [
{ _id : 0, host : "example1.net:27017" },
{ _id : 1, host : "example2.net:27017" },
{ _id : 2, host : "example3.net:27017" }
]
}
)
Pierwsze _id
pole jest łańcuchem i musi być zgodne z tym, --replSet
który został przekazany wcześniej mongod
. Ponadto każda wartość host
musi być ip lub nazwą domeny każdego członka zestawu repliki. Nie zapomnij dołączyć portu, z którego korzysta instancja mongo w każdym elemencie członkowskim.
Teraz nadszedł czas, aby wykonać polecenie z danymi na nim uruchomionymi election
, a następnie automatycznie zostanie wybrany element podstawowy.
Należy tutaj zauważyć, że kursor powłoki zmienił się na YOUR_SET_NAME:PRIMARY>
lub YOUR_SET_NAME:SECONDARY
. Oznacza to, że stworzenie zestawu było sukcesem.
Aby kontynuować pracę, musisz znaleźć primary
, jeśli oczywiście Cię nie ma. Użyj rs.status()
polecenia, aby wyświetlić informacje o zestawie repliki i zlokalizuj primary
. Szukasz nieruchomości "stateStr" : "PRIMARY"
.
Po zlokalizowaniu primary
wprowadź mongo shell
i uruchom następną komendę, używając danych.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOU_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Ta admin = db.getSiblingDB("admin")
część pozwala nam pisać admin
z innej bazy danych. Tworzy to alias o nazwie admin
, dzięki czemu możemy zamiast niego wykonywać polecenia.
Jeśli operacja zakończy się powodzeniem, otrzymasz powiadomienie, że użytkownik został dodany.
Successfully added user: {
"user" : "YOUR_USER",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
W tym momencie mamy tylko administratora dla wszystkich serwerów, ale posiadanie zestawu repliki zmusza nas do posiadania użytkownika z tą clusterAdmin
rolą. Stworzymy kolejnego użytkownika z tylko tą rolą do oddzielenia problemów.
Osiągnęliśmy limit tego localhost exception
, dlatego musimy zmienić uwierzytelnienie na użytkownika utworzonego jeden krok wcześniej.
Możesz zmienić użytkowników w mongo shell
następujący sposób.
db.getSiblingDB("admin").auth("YOUR_ADMIN", "YOUR_PASSWORD" )
Jeśli nie masz jeszcze połączenia z tym mongo shell
użyciem, użyj tego polecenia.
mongo -u "YOUR_ADMIN" -p "YOUR_PASSWORD" --authenticationDatabase "admin"
Zostaniesz powiadomiony o zmianie użytkownika i możesz przejść do następnego kroku.
clusterAdmin
Rola daje użytkownikowi pełną kontrolę zestawu replik. Utworzenie go jest tak proste, jak utworzenie użytkownika administratora.
db.getSiblingDB("admin").createUser(
{
"user" : "YOUR_USER",
"pwd" : "YOUR_PASSWORD",
roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
}
)
Pamiętaj, że tym razem rola zostanie zmieniona naclusterAdmin
.
W tej chwili mamy 2 użytkowników administracyjnych: jeden ma całkowitą kontrolę nad serwerem, a drugi ma dostęp do zadań administracyjnych na poziomie zestawu repliki. Brakuje nam jednak użytkownika, który ma dostęp do „korzystania” z bazy danych, więc teraz go utworzymy.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOUR_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "cars" } ]
}
)
Zauważ, że tym razem zmieniamy db
część, tam udostępniamy bazę danych użytkownikowi, w tym przypadku korzystamy z bazy danych o nazwie cars
.
Baza danych nie została jeszcze utworzona. Aby to zrobić, będziesz musiał wpisać niektóre polecenia, aby je domyślnie utworzyć. Przejdź do cars
bazy danych.
use cars
Dostaniesz powiadomienie: switched to db cars
.
Baza danych wciąż nie została utworzona, aby to zrobić, musisz coś do niej napisać. Korzystamy z następującego przykładu.
db.models.insert({ make: "Dodge", model: "Viper", year: 2010 })
Tym razem zostaniesz o tym powiadomiony WriteResult({ "nInserted" : 1 })
.
Jeśli chcesz, możesz odzyskać wszystkie obiekty w bazie danych za pomocą find()
metody:
db.models.find()
{ "_id" : ObjectId("59acd8b55334882863541ff4"), "make" : "Dodge", "model" : "Viper", "year" : 2010 }
Zauważ, że _id
będą różne w twoich wynikach, ale inne dane powinny być takie same. Po upływie wystarczającego czasu dane te zostaną zreplikowane na innych członków.
Utworzenie zestawu repliki może być początkowo trudne, ponieważ jest wiele informacji do zrozumienia, ale gdy już wpadniesz na pomysł, możesz wdrożyć go w mgnieniu oka, więc nie poddawaj się, jeśli nie możesz go po raz pierwszy zrozumieć. Należy pamiętać, że zestaw repliki jest ważny w administracji MongoDB, ponieważ otwiera możliwość dodania zaawansowanych funkcji, takich jak równoważenie obciążenia.
OrientDB to wielomodowy model open source NoSQL DBMS nowej generacji. Dzięki obsłudze wielu modeli danych, OrientDB może zapewnić większą funkcjonalność i elastyczność
Wprowadzenie PostgreSQL to darmowy i otwarty system zarządzania bazą danych, który może być wykorzystywany do przechowywania informacji związanych ze stronami internetowymi. Jest również znany jako
MongoDB nie jest domyślnie bezpieczny. Jeśli instalujesz MongoDB i uruchamiasz go bez konfigurowania go do uwierzytelniania, będziesz miał zły czas
W tym artykule pokażę, jak zainstalować MariaDB na OpenBSD 6 i skonfigurować, aby był dostępny dla chrootowanego serwera WWW (Apache lub Nginx). Będziesz także
MySQL to najpopularniejsze na świecie oprogramowanie do baz danych. Bardzo ważne jest upewnienie się, że masz kopie zapasowe bazy danych. Ta praktyka pozwala
Laravel GitScrum lub GitScrum to narzędzie produkcyjne o otwartym kodzie źródłowym zaprojektowane, aby pomóc zespołom programistycznym w implementacji metodologii Scrum w podobny sposób
Używasz innego systemu? Apache Cassandra to darmowy i otwarty system zarządzania bazą danych NoSQL, który został zaprojektowany w celu zapewnienia skalowalności
Wymagania wstępne Serwer Vultr działający na bieżąco Arch Linux (zobacz ten artykuł). Dostęp Sudo. Polecenia wymagane do uruchomienia jako root są poprzedzone znakiem # i jednym
Używasz innego systemu? Wprowadzenie ArangoDB to otwarta baza danych NoSQL z elastycznym modelem danych dla dokumentów, wykresów i kluczowych wartości. To jest
MongoDB to szybka i wydajna baza danych NoSQL. Jednak repozytoria Debiana aktualizują się powoli i często zawierają bardzo stare wersje pakietów. To tutoria
Używasz innego systemu? Apache Cassandra to darmowy i otwarty system zarządzania bazą danych NoSQL, który został zaprojektowany w celu zapewnienia skalowalności
Wprowadzenie InfluxDB to baza danych oparta na szeregach czasowych napisana w Go. InfluxDB ma wiele praktycznych zastosowań, z których jednym jest przechowywanie danych monitorowania na serwerach. ja
MariaDB to darmowa baza danych typu open source i jest najczęściej używanym zamiennikiem MySQL. Jest tworzony przez twórców MySQL i przeznaczony do naprawy
Wymagania wstępne Serwer Vultr działający na bieżąco Arch Linux (zobacz ten artykuł) Dostęp Sudo: Polecenia wymagane do uruchomienia jako root są poprzedzone znakiem #, a jeden
phpRedisAdmin to aplikacja internetowa zarządzająca bazami danych Redis z intuicyjnym graficznym interfejsem użytkownika. W tym samouczku wyjaśnimy, jak zainstalować
Wymagania wstępne Serwer Vultr działający na bieżąco Arch Linux (zobacz ten artykuł). Dostęp Sudo: Polecenia wymagane do uruchomienia jako root są poprzedzone znakiem #, a jeden
Używasz innego systemu? Apache Cassandra to darmowy i otwarty system zarządzania bazą danych NoSQL, który został zaprojektowany w celu zapewnienia skalowalności
Redis to rozwiązanie do przechowywania danych o kluczowej wartości, często nazywane bazą danych NoSQL. Może osiągnąć bardzo duże prędkości odczytu / zapisu, ponieważ jest to pamięć wbudowana w pamięć
Wprowadzenie MyCLI to klient wiersza poleceń dla MySQL i MariaDB, który umożliwia automatyczne uzupełnianie i pomaga w składni poleceń SQL. MyCL
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.