MongoDB Veritabanı Nasıl Yedeklenir ve Geri Yüklenir?
Authoradmin
04 Ekim 20225 dakika
Share
MongoDB, NoSQL sistemlerinin klasik örneklerinden biri olarak kabul edilir. Belgeleri, MongoDB’deki temel veri birimi olan anahtar/değer çiftlerinden oluşur. Koleksiyonları, ilişkisel veritabanlarındaki tablolara eşdeğer belge grupları ve işlevler içerir. MongoDB, 2000’li yılların ortalarında ortaya çıkan bir veritabanıdır. Bu yazıda, verileri nasıl yedekleyeceğinizi ve ardından geri yüklemeyi öğreneceğiz. Kılavuz, Ubuntu 20.04.2 LTS işletim sistemine sahip bir bilgisayarda geliştirilmiştir.
MongoDB veri formatı
Veri alışverişi ve depolama için popüler standartlardan biri JSON’dur (JavaScript Object Notation). JSON, karmaşık yapılara sahip verileri etkili bir şekilde tanımlayabilir. Bu bakımdan MongoDB’de veri saklama şekli, teknik olarak JSON kullanılmasa da JSON’a benzer. JSON yerine MongoDB, verileri MongoDB’de depolamak için BSON(ikili JSON) kullanır. BSON, verilerle çalışmayı daha hızlı hale getirir. Daha hızlı arama ve işleme sağlar. Bununla birlikte, JSON’un aksine BSON’un küçük bir dezavantajı olduğu belirtilmelidir. Genel olarak, JSON verileri BSON’dakinden daha az yer kaplar; öte yandan, yüksek hız bu dezavantajı tamamen telafi edecektir.
Öyleyse MongoDB’mize bağlanalım ve yedeklemeler için üç veritabanı oluşturalım. Bunlar DB1, DB2 ve DB3 olacaktır. Bu veritabanlarını doldurmak için bazı koleksiyonlar ekleyelim.
Bu örnekte, daha sonra arşivlenen bir yedek kopya oluşturmak için yalnızca bir komut kullanıyoruz. Yedek kopyanın nasıl oluşturulacağına ilişkin birkaç seçenek vardır. Bu yazıda bunları tek tek ele alacağız.
Veri sıkıştırması olmadan tüm veritabanlarını yedekleyin.
Yedeklemeyi depolamak için bir dizin oluşturalım:
$ mkdir /tmp/backup_v2
Yedeklemek için aşağıdaki komutu kullanın:
$ mongodump --out /tmp/backup_v2
Başarılı bir yedeklemeden sonra veritabanı dizinine geçelim ve nelere sahip olduğunu görelim. Sıkıştırma olmadan BSON ve JSON koleksiyonlarına sahiptir.
$ ls -la /tmp/backup_v2/db1
Şimdi aşağıdaki komutu kullanarak verileri bu yedekten geri yükleyin:
$ mongorestore --drop --dir /tmp/backup_v2
Burada, yinelenen anahtar hatalarını önlemek için içe aktarmadan önce (varsa) bir koleksiyonu bırakmak için –drop parametresi kullanılır. Bu –drop parametresi dikkatli kullanılmalıdır.
Şimdi tüm veritabanlarının bir yedeğinden belirli bir koleksiyonu (örneğin, DB1’den gönderiler1) geri yükleyin:
$ mongorestore --drop --dir /tmp/backup_v2 --ns'DB1.posts1'i dahil et
Belirli bir koleksiyon (örneğin, DB1’den gönderiler1) dışındaki tüm veritabanlarını ve tüm koleksiyonları geri yükleyin:
$ mongorestore --drop --dir /tmp/backup_v2 --ns'DB1.posts1'i hariç tut
Tüm veritabanlarını sıkıştırma ile yedekleyin
Şimdi bir yedek oluşturun ve yedekleme dosyasını sıkıştırın:
MongoDB Veritabanı Nasıl Yedeklenir ve Geri Yüklenir?
MongoDB, NoSQL sistemlerinin klasik örneklerinden biri olarak kabul edilir. Belgeleri, MongoDB’deki temel veri birimi olan anahtar/değer çiftlerinden oluşur. Koleksiyonları, ilişkisel veritabanlarındaki tablolara eşdeğer belge grupları ve işlevler içerir. MongoDB, 2000’li yılların ortalarında ortaya çıkan bir veritabanıdır. Bu yazıda, verileri nasıl yedekleyeceğinizi ve ardından geri yüklemeyi öğreneceğiz. Kılavuz, Ubuntu 20.04.2 LTS işletim sistemine sahip bir bilgisayarda geliştirilmiştir.
MongoDB veri formatı
Veri alışverişi ve depolama için popüler standartlardan biri JSON’dur (JavaScript Object Notation). JSON, karmaşık yapılara sahip verileri etkili bir şekilde tanımlayabilir. Bu bakımdan MongoDB’de veri saklama şekli, teknik olarak JSON kullanılmasa da JSON’a benzer. JSON yerine MongoDB, verileri MongoDB’de depolamak için BSON(ikili JSON) kullanır. BSON, verilerle çalışmayı daha hızlı hale getirir. Daha hızlı arama ve işleme sağlar. Bununla birlikte, JSON’un aksine BSON’un küçük bir dezavantajı olduğu belirtilmelidir. Genel olarak, JSON verileri BSON’dakinden daha az yer kaplar; öte yandan, yüksek hız bu dezavantajı tamamen telafi edecektir.
Öyleyse MongoDB’mize bağlanalım ve yedeklemeler için üç veritabanı oluşturalım. Bunlar DB1, DB2 ve DB3 olacaktır. Bu veritabanlarını doldurmak için bazı koleksiyonlar ekleyelim.
DB1’i kullan
db.createCollection(“posts1”)
db.createCollection(“adres1”)
db.createCollection(“telefon1”)
DB2 kullan
db.createCollection(“posts2”)
db.createCollection(“adres2”)
db.createCollection(“telefon2”)
DB3 kullan
db.createCollection(“posts3”)
db.createCollection(“adres3”)
db.createCollection(“telefon3”)
Veritabanlarımızı oluşturduk. Şimdi her şeyin yolunda olup olmadığını kontrol edelim:
Gördüğünüz gibi, veritabanlarımız tamam. Şimdi daha önce oluşturduğumuz koleksiyonlara sahip olup olmadıklarını kontrol edelim.
Bütün koleksiyonlar orada. Şimdi ilk yedekleme seçeneğine geçebiliriz.
Yedek kopya oluşturmak için root olarak oturum açın. Şimdi yedeklemeyi depolamak için bir dizin oluşturun:
Şimdi bir yedekleme oluşturmak için aşağıdaki komutu kullanın:
Şimdi bir yedek oluşturduktan sonra veritabanı dizinine geçelim ve aşağıdaki komutu kullanarak neler olduğunu görelim:
Gördüğünüz gibi, Yedek Kopyamız yeni oluşturuldu.
Şimdi, bu tür bir yedeklemeden verileri geri yükleyin, aşağıdaki komutu kullanıyoruz:
Bu örnekte, daha sonra arşivlenen bir yedek kopya oluşturmak için yalnızca bir komut kullanıyoruz. Yedek kopyanın nasıl oluşturulacağına ilişkin birkaç seçenek vardır. Bu yazıda bunları tek tek ele alacağız.
Makale İçeriği
Veri sıkıştırması olmadan tüm veritabanlarını yedekleyin.
Yedeklemeyi depolamak için bir dizin oluşturalım:
Yedeklemek için aşağıdaki komutu kullanın:
Başarılı bir yedeklemeden sonra veritabanı dizinine geçelim ve nelere sahip olduğunu görelim. Sıkıştırma olmadan BSON ve JSON koleksiyonlarına sahiptir.
Şimdi aşağıdaki komutu kullanarak verileri bu yedekten geri yükleyin:
Burada, yinelenen anahtar hatalarını önlemek için içe aktarmadan önce (varsa) bir koleksiyonu bırakmak için –drop parametresi kullanılır. Bu –drop parametresi dikkatli kullanılmalıdır.
Şimdi tüm veritabanlarının bir yedeğinden belirli bir koleksiyonu (örneğin, DB1’den gönderiler1) geri yükleyin:
Belirli bir koleksiyon (örneğin, DB1’den gönderiler1) dışındaki tüm veritabanlarını ve tüm koleksiyonları geri yükleyin:
Tüm veritabanlarını sıkıştırma ile yedekleyin
Şimdi bir yedek oluşturun ve yedekleme dosyasını sıkıştırın:
Şimdi yedekleme dosyasını görüntüleyin:
Burada yedekleme dosyası sıkıştırılmış dosyalar içerir.
Şimdi bu tür bir yedeklemeden verileri geri yükleyin:
Tüm veritabanlarını sıkıştırma ile tek bir arşive (.gz) yedekleyin
Tek bir arşivde (.gz) sıkıştırılmış tüm veritabanlarının bir yedeğini oluşturun:
Şimdi aşağıdaki komutu kullanarak verileri yedekten geri yükleyin:
Belirli bir veritabanını yedekleyin
Belirli bir veritabanının yedeğini oluşturun
Bu yedeklemeden verileri geri yükleyin:
DB2’den tek bir address2 koleksiyonunu yedekleyin
DB2’den tek bir adres2 koleksiyonunun yedeği oluşturun
Tek bir gönderi2 koleksiyonu dışında tüm DB2’yi yedekleyin
Tek bir gönderi2 koleksiyonu dışında tüm DB2’nin yedeğini oluşturun
Veya daha önce paylaşmış oldugumuz 8 Adımda Mongodump ile Mongodb Yedeklemek makalesine göz atabilirsiniz.
Yada MongoDB – Veritabanı, Koleksiyon ve Belge adlı makalemize göz atabilirsiniz.