czwartek, 12 lipca 2012

Backup MongoDB

Sporo czasu używałem backup.rb, który był wypadkową potrzeb z czasów jak pracowałem w G-Forces. Tyle ile było trzeba ten skrypt robił i przez sporo czasu nie potrzebowałem nic więcej. Dzisiaj trafił mi się backup MongoDB, z taką małą różnicą, że pliki mają po 50-60GB, więc grzecznie odbiłem się od ściany w postaci limitu na wielkość pliku w Amazon S3 - 5GB (bez multipart). Pisanie własnego multiparta z użyciem splita lub innego mechanizmu, może i fajne, ale trochę nie mam na to czasu. Znalazłem ot taki wynalazek backup 3 i jak na razie jest mega. Jak prosto zrobić backup MongoDB na Amazon S3:
Generujemy template:
backup generate:model --trigger mongo --databases='mongodb' --storages='s3'
I uzupełniamy stosowne dane:
  database MongoDB do |db|
    db.name               = [ "database" ]
    db.username           = "username"
    db.password           = "password"
    db.host               = "localhost"
    db.port               = 27017
    db.ipv6               = false
    db.only_collections   = ["only", "these" "collections"]
    db.additional_options = []
    db.lock               = false
    # Optional: Use to set the location of these utilities
    #   if they cannot be found by their name in your $PATH
    # db.mongodump_utility = "/opt/local/bin/mongodump"
    # db.mongo_utility     = "/opt/local/bin/mongo"
  end
  store_with S3 do |s3|
    s3.access_key_id     = "access_key"
    s3.secret_access_key = "secret_access_key"
    s3.region            = "eu-west-1"
    s3.bucket            = "bucket_name"
    s3.path              = ""
    s3.keep              = 5
  end
Uruchomienie:
backup perform --trigger mongo -r /d0/mongo-backup/
I tyle.

Brak komentarzy: