Backup av databasen inklusive lagrade procedurer

  • Författare
  • Meddelande
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11198
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Backup av databasen inklusive lagrade procedurer

Inlägg25 feb 2019, 18:21

I guiden skolan visas hur man tar en backup av databasen.
https://dbwebb.se/guide/kom-igang-med-s ... -databasen

Vi tar en databasdump av databasen skolan så här.
Kod: Markera allt
mysqldump -uroot -p skolan > backup.sql


Eller så här.
Kod: Markera allt
mysqldump -uroot -p --result-file=backup.sql skolan


Men, när vi har lagrade procedurer, triggers och funktioner så behöver vi även dumpa deras DDL. Det gör vi på följande sätt, genom att lägga till --routines.
Kod: Markera allt
mysqldump -uroot -p --routines skolan > backup.sql
# alterativt
mysqldump -uroot -p --routines --result-file=backup.sql skolan
...
..:
.... /mos
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11198
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Backup av databasen inklusive lagrade procedurer

Inlägg11 mar 2019, 15:54

Om du vill att databasdumpen även skall innehålla konstruktionen för att DROP/CREATE DATABASE så kan du skriva så här:
Kod: Markera allt
mysqldump -uroot -p --routines --add-drop-database --databases eshop > backup.sql
# alterativt
mysqldump -uroot -p --routines --add-drop-database --result-file=backup.sql --databases eshop


(uppdaterad enligt nedanstående inlägg)
...
..:
.... /mos
Användarvisningsbild

Evil_Bengt

html-kodare

  • Inlägg: 19
  • Blev medlem: 03 sep 2018, 15:10
  • Ort: Adelöv, Tranås

Re: Backup av databasen inklusive lagrade procedurer

Inlägg11 mar 2019, 16:14

mos skrev:Om du vill att databasdumpen även skall innehålla konstruktionen för att DROP/CREATE DATABASE så kan du skriva så här:
Kod: Markera allt
mysqldump -uroot -p --routines --databases=eshop --add-drop-database > backup.sql
# alterativt
mysqldump -uroot -p --routines --databases=eshop --add-drop-database --result-file=backup.sql


Kod: Markera allt
--databases=eshop
verkar inte fungera för mig:

Kod: Markera allt
$ mysqldump -udbwebb -p --routines --databases=eshop --add-drop-database > backup.sql
Warning: mysqldump: ignoring option '--databases' due to invalid value 'eshop'
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help


Kod: Markera allt
mysqldump -udbwebb -p --routines --add-drop-database eshop > backup.sql
fungerar fint dock :D

(Kör på Cygwin i win10 om de påverkar)
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11198
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Backup av databasen inklusive lagrade procedurer

Inlägg11 mar 2019, 16:30

Då prövar jag igen...
Kod: Markera allt
mysqldump -uroot -p --routines --add-drop-database --databases eshop > backup.sql
# alterativt
mysqldump -uroot -p --routines --add-drop-database --result-file=backup.sql --databases eshop


Nu ser det bättre ut, nu finns en konstruktion likt följande med:
Kod: Markera allt
/*!40000 DROP DATABASE IF EXISTS `eshop`*/;

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `eshop` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8
mb4_0900_ai_ci */;

USE `eshop`;


Jag uppdaterar inlägget ovan så slipper folk laga felet om igen...
...
..:
.... /mos
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11198
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Backup av databasen inklusive lagrade procedurer

Inlägg04 mar 2020, 10:49

Förslagsvis så sparar du kommandot för databasbackupen i en backup.bash så blir det enkelt att köra den.

Personligen hade jag även, i samma skript, lagt till en testdatabas och laddad in backupen som jag sparat. Det hade gjort det enkelt för mig att alltid ha en extra databas där jag kunde testa backupfilen, vid behov.

Man vill ju inte leverera en inkorrekt backupfil till kunden.
...
..:
.... /mos

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 5 gäster