Jalankan mysqldump untuk mencadangkan database Anda secara berkala menggunakan pengelola tugas cron di wadah. Cadangan Anda disimpan di Show
Penggunaandocker container run -d \ --env MYSQL_USER=root \ --env MYSQL_PASS=my_password \ --link mysql --volume /path/to/my/backup/folder:/backup fradelg/mysql-cron-backup Cek kesehatanHealthcheck disediakan sebagai kontrol init dasar. Kontainer Sehat setelah fase init basis data, yaitu setelah version: "2" services: mariadb: image: mariadb container_name: my_mariadb expose: - 3306 volumes: - data:/var/lib/mysql # If there is not scheme, restore the last created backup (if exists) - ${VOLUME_PATH}/backup/latest.${DATABASE_NAME}.sql.gz:/docker-entrypoint-initdb.d/database.sql.gz environment: - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} - MYSQL_DATABASE=${DATABASE_NAME} restart: unless-stopped mysql-cron-backup: image: fradelg/mysql-cron-backup depends_on: - mariadb volumes: - ${VOLUME_PATH}/backup:/backup environment: - MYSQL_HOST=my_mariadb - MYSQL_USER=root - MYSQL_PASS=${MARIADB_ROOT_PASSWORD} - MAX_BACKUPS=15 - INIT_BACKUP=0 # Every day at 03:00 - CRON_TIME=0 3 * * * # Make it small - GZIP_LEVEL=9 restart: unless-stopped volumes: data:0 atau version: "2" services: mariadb: image: mariadb container_name: my_mariadb expose: - 3306 volumes: - data:/var/lib/mysql # If there is not scheme, restore the last created backup (if exists) - ${VOLUME_PATH}/backup/latest.${DATABASE_NAME}.sql.gz:/docker-entrypoint-initdb.d/database.sql.gz environment: - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} - MYSQL_DATABASE=${DATABASE_NAME} restart: unless-stopped mysql-cron-backup: image: fradelg/mysql-cron-backup depends_on: - mariadb volumes: - ${VOLUME_PATH}/backup:/backup environment: - MYSQL_HOST=my_mariadb - MYSQL_USER=root - MYSQL_PASS=${MARIADB_ROOT_PASSWORD} - MAX_BACKUPS=15 - INIT_BACKUP=0 # Every day at 03:00 - CRON_TIME=0 3 * * * # Make it small - GZIP_LEVEL=9 restart: unless-stopped volumes: data:1 terjadi tanpa pemeriksaan jika ada kesalahan, Mulai sebaliknya. Tidak ada pemeriksaan lain yang sebenarnya disediakan Variabel
Jika Anda ingin menjadikan gambar ini pendamping yang sempurna untuk wadah MySQL Anda, gunakan docker-compose. Anda dapat menambahkan lebih banyak layanan yang dapat terhubung ke gambar MySQL menggunakan nama docker container exec <your_mysql_backup_container_name> ls /backup5, perhatikan bahwa Anda hanya mengekspos port docker container exec <your_mysql_backup_container_name> ls /backup6 secara internal ke server dan bukan ke host Docker-compose dengan MYSQL_PASS env varversion: "2" services: mariadb: image: mariadb container_name: my_mariadb expose: - 3306 volumes: - data:/var/lib/mysql # If there is not scheme, restore the last created backup (if exists) - ${VOLUME_PATH}/backup/latest.${DATABASE_NAME}.sql.gz:/docker-entrypoint-initdb.d/database.sql.gz environment: - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} - MYSQL_DATABASE=${DATABASE_NAME} restart: unless-stopped mysql-cron-backup: image: fradelg/mysql-cron-backup depends_on: - mariadb volumes: - ${VOLUME_PATH}/backup:/backup environment: - MYSQL_HOST=my_mariadb - MYSQL_USER=root - MYSQL_PASS=${MARIADB_ROOT_PASSWORD} - MAX_BACKUPS=15 - INIT_BACKUP=0 # Every day at 03:00 - CRON_TIME=0 3 * * * # Make it small - GZIP_LEVEL=9 restart: unless-stopped volumes: data:_ Docker-compose menggunakan rahasia buruh pelabuhanKata sandi root basis data diteruskan ke wadah buruh pelabuhan dengan menggunakan rahasia buruh pelabuhan Pada contoh di bawah, buruh pelabuhan dalam 'mode mesin buruh pelabuhan' klasik (iow. bukan mode segerombolan) dan sumber rahasia adalah file lokal di sistem file host Alternatifnya, rahasia dapat disimpan di mesin rahasia buruh pelabuhan (iow. tidak dalam sistem file host) version: "3.7" secrets: # Place your secret file somewhere on your host filesystem, with your password inside mysql_root_password: file: ./secrets/mysql_root_password mysql_user: file: ./secrets/mysql_user mysql_password: file: ./secrets/mysql_password mysql_database: file: ./secrets/mysql_database services: mariadb: image: mariadb:10 container_name: my_mariadb expose: - 3306 volumes: - data:/var/lib/mysql - ${VOLUME_PATH}/backup:/backup environment: - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password - MYSQL_USER_FILE=/run/secrets/mysql_user - MYSQL_PASSWORD_FILE=/run/secrets/mysql_password - MYSQL_DATABASE_FILE=/run/secrets/mysql_database secrets: - mysql_root_password - mysql_user - mysql_password - mysql_database restart: unless-stopped backup: build: . image: fradelg/mysql-cron-backup depends_on: - mariadb volumes: - ${VOLUME_PATH}/backup:/backup environment: - MYSQL_HOST=my_mariadb # Alternatively to MYSQL_USER_FILE, we can use MYSQL_USER=root to use root user instead - MYSQL_USER_FILE=/run/secrets/mysql_user # Alternatively, we can use /run/secrets/mysql_root_password when using root user - MYSQL_PASS_FILE=/run/secrets/mysql_password - MYSQL_DATABASE_FILE=/run/secrets/mysql_database - MAX_BACKUPS=10 - INIT_BACKUP=1 - CRON_TIME=0 0 * * * secrets: - mysql_user - mysql_password - mysql_database restart: unless-stopped volumes: data: Pulihkan dari cadanganBuat daftar semua cadangan yang tersediaLihat daftar cadangan di wadah buruh pelabuhan Anda yang sedang berjalan, tulis saja di terminal favorit Anda docker container exec <your_mysql_backup_container_name> ls /backup Pulihkan menggunakan file penulisanUntuk memulihkan database dari cadangan tertentu, Anda mungkin harus menentukan nama database dalam variabel MYSQL_DATABASE mysql-cron-backup: image: fradelg/mysql-cron-backup command: "/restore.sh /backup/201708060500.${DATABASE_NAME}.sql.gz" depends_on: - mariadb volumes: - ${VOLUME_PATH}/backup:/backup environment: - MYSQL_HOST=my_mariadb - MYSQL_USER=root - MYSQL_PASS=${MARIADB_ROOT_PASSWORD} - MYSQL_DATABASE=${DATABASE_NAME} Pulihkan menggunakan perintah buruh pelabuhandocker container exec <your_mysql_backup_container_name> /restore.sh /backup/<your_sql_backup_gz_file> jika tidak ada nama basis data yang ditentukan, docker container exec <your_mysql_backup_container_name> ls /backup7 akan mencoba mencari nama basis data dari file cadangan Pencadangan dan pemulihan otomatis pada wadah dimulai dan berhentiSetel version: "2" services: mariadb: image: mariadb container_name: my_mariadb expose: - 3306 volumes: - data:/var/lib/mysql # If there is not scheme, restore the last created backup (if exists) - ${VOLUME_PATH}/backup/latest.${DATABASE_NAME}.sql.gz:/docker-entrypoint-initdb.d/database.sql.gz environment: - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} - MYSQL_DATABASE=${DATABASE_NAME} restart: unless-stopped mysql-cron-backup: image: fradelg/mysql-cron-backup depends_on: - mariadb volumes: - ${VOLUME_PATH}/backup:/backup environment: - MYSQL_HOST=my_mariadb - MYSQL_USER=root - MYSQL_PASS=${MARIADB_ROOT_PASSWORD} - MAX_BACKUPS=15 - INIT_BACKUP=0 # Every day at 03:00 - CRON_TIME=0 3 * * * # Make it small - GZIP_LEVEL=9 restart: unless-stopped volumes: data:_1 untuk otomatis memulihkan cadangan terakhir saat startup. Setel version: "3.7" secrets: # Place your secret file somewhere on your host filesystem, with your password inside mysql_root_password: file: ./secrets/mysql_root_password mysql_user: file: ./secrets/mysql_user mysql_password: file: ./secrets/mysql_password mysql_database: file: ./secrets/mysql_database services: mariadb: image: mariadb:10 container_name: my_mariadb expose: - 3306 volumes: - data:/var/lib/mysql - ${VOLUME_PATH}/backup:/backup environment: - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password - MYSQL_USER_FILE=/run/secrets/mysql_user - MYSQL_PASSWORD_FILE=/run/secrets/mysql_password - MYSQL_DATABASE_FILE=/run/secrets/mysql_database secrets: - mysql_root_password - mysql_user - mysql_password - mysql_database restart: unless-stopped backup: build: . image: fradelg/mysql-cron-backup depends_on: - mariadb volumes: - ${VOLUME_PATH}/backup:/backup environment: - MYSQL_HOST=my_mariadb # Alternatively to MYSQL_USER_FILE, we can use MYSQL_USER=root to use root user instead - MYSQL_USER_FILE=/run/secrets/mysql_user # Alternatively, we can use /run/secrets/mysql_root_password when using root user - MYSQL_PASS_FILE=/run/secrets/mysql_password - MYSQL_DATABASE_FILE=/run/secrets/mysql_database - MAX_BACKUPS=10 - INIT_BACKUP=1 - CRON_TIME=0 0 * * * secrets: - mysql_user - mysql_password - mysql_database restart: unless-stopped volumes: data:_9 untuk otomatis membuat cadangan terakhir saat dimatikan Bagaimana cara menjadwalkan cadangan MySQL di Ubuntu?Cara menjadwalkan backup database MySQL di Ubuntu . Gunakan mysqldump Otomatiskan mysqldump melalui crontab Gunakan automysqlbackup Menyesuaikan automysqlbackup Bagaimana cara mem-backup database MySQL menggunakan cron job?Metode #1. Masukkan informasi login MySQL di perintah cron job . Ganti dbusername dengan pengguna basis data, dbpassword dengan kata sandi pengguna basis data, dbname dengan basis data yang akan dicadangkan, dan jalur dengan jalur tempat Anda ingin menyimpan file cadangan. Contoh ini menggunakan cadangan.
Bagaimana cara menjadwalkan backup database MySQL di Linux?Cara menjadwalkan pencadangan Database MySQL di Linux . Pilih atau buat direktori tempat file DB Anda akan disimpan. . Buat file shell dbdump. sh dan tambahkan skrip mysqldump di file itu. . Setelah file ini dibuat, kita perlu membuat file ini dapat dieksekusi Bagaimana cara menjadwalkan backup database di MySQL?Menggunakan Solusi GUI . Buat pekerjaan cadangan dengan mengklik Pekerjaan > Tambahkan Pekerjaan Cadangan Buat koneksi dengan Server MySQL Anda Pilih database yang ingin Anda cadangkan Tentukan lokasi di mana cadangan akan disimpan. . Buat jadwal pencadangan Masukkan email Anda untuk menerima notifikasi gagal/berhasil |