Säkerhetskopiera databasen

Du kan skapa en kopia av databasen med kommandot ece-tools db-dump utan att hämta alla miljödata från tjänster och berg. Som standard skapar det här kommandot säkerhetskopior i katalogen /app/var/dump-main för alla databasanslutningar som anges i miljökonfigurationen. Databasdumpåtgärden växlar programmet till underhållsläge, stoppar konsumentköprocesser och inaktiverar cron-jobb innan dumpningen börjar.

Titta på följande riktlinjer för DB-dump:

  • För produktionsmiljöer rekommenderar Adobe att du slutför databasdumpoperationer under tider med låg belastning för att minimera driftstörningar som inträffar när platsen är i underhållsläge.
  • Om ett fel inträffar under dumpåtgärden tar kommandot bort dumpfilen för att spara diskutrymme. Granska loggarna för mer information (var/log/cloud.log).
  • I Pro Production-miljöer dumpas det här kommandot endast från en av de tre noderna med hög tillgänglighet, vilket innebär att produktionsdata som skrivs till en annan nod under dumpningen kanske inte kopieras. Kommandot genererar en var/dbdump.lock-fil för att förhindra att kommandot körs på mer än en nod.
  • Adobe rekommenderar att du skapar en säkerhetskopia om du vill säkerhetskopiera alla miljötjänster.

Du kan välja att säkerhetskopiera flera databaser genom att lägga till databasnamnen till kommandot. I följande exempel säkerhetskopieras två databaser: main och sales:

php vendor/bin/ece-tools db-dump main sales

Använd kommandot php vendor/bin/ece-tools db-dump --help om du vill ha fler alternativ:

  • --dump-directory=<dir> - Välj en målkatalog för databasdumpen
  • --remove-definers - Ta bort DEFINER-satser från databasdumpen

Så här skapar du en databasdump i förproduktionsmiljön eller produktionsmiljön:

  1. Använd SSH för att logga in eller skapa en tunnel för att ansluta till fjärrmiljön som innehåller den databas som ska kopieras.

  2. Visa en lista över miljörelationerna och notera databasinloggningsinformationen.

    code language-bash
    echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
    

    eller

    code language-bash
    php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"]))->database);'
    
  3. Skapa en säkerhetskopia av databasen. Om du vill välja en målkatalog för DB-dumpen använder du alternativet --dump-directory.

    code language-bash
    php vendor/bin/ece-tools db-dump -- main
    

    Exempelsvar:

    code language-none
    The db-dump operation switches the site to maintenance mode, stops all active cron jobs and consumer queue processes, and disables cron jobs before starting the dump process.
    Your site will not receive any traffic until the operation completes.
    Do you wish to proceed with this process? (y/N)? y
    2020-01-28 16:38:08] INFO: Starting backup.
    [2020-01-28 16:38:08] NOTICE: Enabling Maintenance mode
    [2020-01-28 16:38:10] INFO: Trying to kill running cron jobs and consumers processes
    [2020-01-28 16:38:10] INFO: Running Magento cron and consumers processes were not found.
    [2020-01-28 16:38:10] INFO: Waiting for lock on db dump.
    [2020-01-28 16:38:10] INFO: Start creation DB dump for main database...
    [2020-01-28 16:38:10] INFO: Finished DB dump for main database, it can be found here: /tmp/qxmtlseakof6y/dump-main-1580229490.sql.gz
    [2020-01-28 16:38:10] INFO: Backup completed.
    [2020-01-28 16:38:11] NOTICE: Maintenance mode is disabled.
    
  4. Kommandot db-dump skapar en dump-<timestamp>.sql.gz-arkivfil i fjärrprojektkatalogen.

TIP
Om du vill överföra dessa data till en viss miljö läser du Migrera data och statiska filer.
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26