Der Datenbank-Backup ist gemacht - was nun ?

Embed Size (px)

Citation preview

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    1/52

    www.fromdual.com

    1 / 52

    Der Datenbank-Backup ist gemacht -was nun ?

    DO!-"onferen# 2$15% &'rnberg

    ()rg Br'he*enior *upport +ngineer% ,romDual !mb

    oerg.bruehefromdual.com

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    2/52

    www.fromdual.com

    2 / 52

    ,romDual !mb

    *upport

    remote-DB

    *chulung

    Beratung

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    3/52

    www.fromdual.com

    0 / 52

    ur erson

    +ntwicklung 3erteiltes *4-DB6*78ni9-ortierung%nschluss rchi3ierungs-:ools ;D*6% &et*4 Build :eam7elease-Builds inkl. :ests% aketierung% *kripte% ... DB7

    6>*4 f'r eine

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    4/52

    www.fromdual.com

    C / 52

    @nhalt

    Datenbank-Backup welcher Zweck?

    Tauglichkeit des Backup, Verifikation

    Echtdaten vollstndig nut!enDe" Datenschut! gen#gen

    $aterial f#r die Entwicklung

    %uto"atisierung

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    5/52

    www.fromdual.com

    5 / 52

    Datenbank-Backup welcher weck?

    Tauglichkeit des Backup, Verifikation

    Echtdaten vollstndig nut!en

    De" Datenschut! gen#gen

    $aterial f#r die Entwicklung

    %uto"atisierung

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    6/52

    www.fromdual.com

    E / 52

    weck des DB-Backup

    !ilt f'r beliebige Datenbanks>steme7

    ,irma / 6ensch ist auf Daten angewiesen

    ;finan#iell% uristisch oder emotional=

    Daten3erlust kann Betrieb 3erhindern

    F

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    7/52

    www.fromdual.com

    H / 52

    *chadensursachen #.B. ...

    ardware-Defekteaufwerk% ontroller% &et#teil% ...

    *oftware-DefekteDB6*% Betriebss>stem% nwendung% ...

    ,ehlbedienung / *abotage

    delete from T; commit; / rm -fr /

    "atastropheBrand% ochwasser% 8nfall% ...

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    8/52

    www.fromdual.com

    I / 52

    isiko-nnahmen

    Ber'cksichtigte +reignisse

    @ndi3iduelle +ntscheidung

    bhJngig 3om !eschJfts#weck bhJngig 3on :echnik und age

    *et#en nforderungen an Backup#.B. Offsite-*peicherung n)tig a/nein?

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    9/52

    www.fromdual.com

    K / 52

    Datenbank-Backup welcher Zweck?

    :auglichkeit des Backup% Lerifikation

    Echtdaten vollstndig nut!en

    De" Datenschut! gen#gen

    $aterial f#r die Entwicklung

    %uto"atisierung

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    10/52

    www.fromdual.com

    1$ / 52

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    11/52

    www.fromdual.com

    11 / 52

    Backup-*trategie

    +rgibt sich aus technischen 6)glichkeiten%isiko-nnahmen% anderen +influss-,aktorenund "osten7

    rt% 8mfang% Jufigkeit;ph>sisch 3s logischN mit/ohne ogN ...=

    Benut#tes :ool

    blage / *peicherung

    ufbewahrungs-Dauer

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    12/52

    www.fromdual.com

    12 / 52

    weck des DB-Backup

    Daten3erlust 3erhindern ... durch estore ;eco3er>=

    ... gemJ nforderungen

    ... bei allen ;betrachteten= isiken

    Backup hat nur dann seinen weck erf'llt%

    wenn estore ;eco3er>= erfolgreich istPQ r'fkriterium des Backup

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    13/52

    www.fromdual.com

    10 / 52

    *chr)dingers Backup

    FDer ustand edes Backup

    ist solange unbestimmt%bis er bei einem estore

    eingeset#t wird.G;u.a. "arol> &ag>% Lortrag auf Fercona i3e +urope 2$15G=

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    14/52

    www.fromdual.com

    1C / 52

    isiken f'r eco3er> #.B. ...

    Backup nicht f'r eco3er> tauglich Defekter Backup er#eugt

    ; scheitert an *>stem-ustand;

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    15/52

    www.fromdual.com

    15 / 52

    Lerifikation wie?

    &ur erfolgreiche eco3er> beweistgrundsJt#liche :auglichkeit der :echniken3on Backup und eco3er>

    "ontrolle muss outine-ktion sein

    "ein imit nach oben7r'fung 3on *chema% *at#-ahlen% @nhalten%Benut#er% ri3ilegien% ... ist m)glich

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    16/52

    www.fromdual.com

    1E / 52

    Lerifikation wo?

    rodukti3-Backup enthJlt sensible Daten

    rodukti3e DB darf nicht betroffen sein

    &)tig7

    +igenes eco3er>-*>stem in roduktion%das f'r ede rodukti3-DB hinreichend gro ist

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    17/52

    www.fromdual.com

    1H / 52

    *eparate eco3er>-@nstan#

    Backup

    eco3er>-@nstan#

    roduktions-@nstan#

    estore

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    18/52

    www.fromdual.com

    1I / 52

    Datenbank-Backup welcher Zweck?

    Tauglichkeit des Backup, Verifikation

    +chtdaten 3ollstJndig nut#enDe" Datenschut! gen#gen

    $aterial f#r die Entwicklung

    %uto"atisierung

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    19/52

    www.fromdual.com

    1K / 52

    ustand nach eco3er>-:est

    rodukti3-DB mit +cht-Daten ;aktuell= im laufenden Betrieb ;ugriffe% ast% laufende

    Mnderungen=

    eco3er>-DB mit +cht-Daten ;3om Backup-eitpunkt= auf separatem *>stem ;eerlauf% stabil=

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    20/52

    www.fromdual.com

    2$ / 52

    "opie der +cht-Daten

    ... unterliegt dem Datenschut#

    ... taugt f'r *tatistik% brechnung% ...

    ... erlaubt #u3erlJssige 6essung 3on #.B.*chema-Mnderungen ;Fcreate inde9G% ...=;ggfs.

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    21/52

    www.fromdual.com

    21 / 52

    &ut#ungs-Beispiele ;1=

    brechnung der let#ten eriode;

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    22/52

    www.fromdual.com

    22 / 52

    &ut#ungs-Beispiele ;2=

    +9port in anderem ,ormat% #.B. *L f'r *preadsheet 6>sRldump ;"larte9t= f'r :ransfer

    ...

    (ede nur-lesende nicht-sofortige&ut#ung der +chtdatenkann auf den eco3er>-*er3er

    3erlagert werden.

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    23/52

    www.fromdual.com

    20 / 52

    Datenbank-Backup welcher Zweck?

    Tauglichkeit des Backup, Verifikation

    Echtdaten vollstndig nut!en

    Dem Datenschut# gen'gen

    $aterial f#r die Entwicklung

    %uto"atisierung

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    24/52

    www.fromdual.com

    2C / 52

    *tichworte #um Datenschut#

    ersonenbe#ogene Daten#.B. &ame% dresse% :elefon% +-6ail% "onto

    weckbindung der Daten

    Datensparsamkeit ,risten f'r ufbewahrung / )schung

    bstimmung mit Datenschut#-Beauftragtem @m weifel7 uristischen at holen

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    25/52

    www.fromdual.com

    25 / 52

    non>misieren

    estore-@nstan# hat *4 3erf'gbar7

    UPDATE kunde

    SET name = 'Mustermann', vorname = 'Max'WHERE anrede = 'Herr';

    UPDATE kontakteSET mail = concat( md5(mail),

    '@provider.tld');

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    26/52

    www.fromdual.com

    2E / 52

    +igeninitiati3e

    essimistische nnahme7Die anderen 3ergessen den Dat#enschut#S

    uslJndische "ollegen ...

    ls DB selbst das *chema pr'fen%bei weifeln nachfragen

    Datenschut#-Belehrung beachten

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    27/52

    www.fromdual.com

    2H / 52

    offentlich 'berfl'ssig

    angfristiges ;,irmen-= @nteresse

    3gl. aktuelle *kandale und Bugelder

    i3ilcourage S

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    28/52

    www.fromdual.com

    2I / 52

    Datenbank-Backup welcher Zweck?

    Tauglichkeit des Backup, Verifikation

    Echtdaten vollstndig nut!en

    De" Datenschut! gen#gen

    6aterial f'r die +ntwicklung

    %uto"atisierung

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    29/52

    www.fromdual.com

    2K / 52

    +ntwickler-

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    30/52

    www.fromdual.com

    0$ / 52

    robleme / "onflikte

    Datenschut#-echt7 !eset#liche Lerpflichtung weckbindung

    )schung

    Datenschut#-+rklJrung7 +igene usagen an &ut#er

    Datenschut#-Belehrung7 Lertraulichkeit% ...

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    31/52

    www.fromdual.com

    01 / 52

    usweg / )sung

    @n eco3er>-@nstan# l)schen anon>misieren

    nur selekti3 e9portieren

    +9port ablehnen

    +ntwickler-*kript annehmenund als DB kontrolliert auf eco3er>-@nstan#ausf'hren

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    32/52

    www.fromdual.com

    02 / 52

    +9port #ur +ntwicklung

    Backup

    roduktions-@nstan#

    estore

    +ntwicklungs-@nstan#

    updateNdeleteN anon>mcommitN

    +9port @mport

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    33/52

    www.fromdual.com

    00 / 52

    Datenbank-Backup welcher Zweck?

    Tauglichkeit des Backup, Verifikation

    Echtdaten vollstndig nut!en

    De" Datenschut! gen#gen

    $aterial f#r die Entwicklung

    utomatisierung

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    34/52

    www.fromdual.com

    0C / 52

    Lorbemerkung

    Beispiele / ode f'r 6>*4%bitte selbst an ,irmen-egeln anpassenund f'r anderes DB6* 'bertragen

    TO&&+: P Lerbindungs-@nformation-u 8*+ -p**

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    35/52

    www.fromdual.com

    05 / 52

    utomatisierung7 rin#ipien

    "eine manuelle usf'hrung 3on outine-ufgaben

    +rfolgs-"ontrolle im *kript enthalten%

    manuell nur *tichproben 6ail-larm bei ,ehler

    "eine manuelle "onfiguration / npassung%*kript erstellt isten selbst

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    36/52

    www.fromdual.com

    0E / 52

    utomatisierung7 :eile

    Backup ;lokale 6>*4-@nstan#= urge og

    estore ;*icherung 3orgegeben=

    estore-

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    37/52

    www.fromdual.com

    0H / 52

    *kript7 Backup ;1=

    *ichert DB-@nstan# gemJ Backup-*trategie !eneriert &amen mit Datum/8hr#eit

    )scht 'berfl'ssige alte Backups

    ufruf durch cron

    *eparat7 6onitoring f'r *peicherplat#

    *k i B k ;2=

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    38/52

    www.fromdual.com

    0I / 52

    *kript7 Backup ;2=

    ilfreich7 :abelle FbackupUhistor>Gmit :imestamp und +9it-ode F6>*4 +nterprise BackupG f'hrt sie

    uf *la3e repli#iert?6+B 0.K a% 0.1$ neinOracle * 0-KCKH15I2H1

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    39/52

    www.fromdual.com

    0K / 52

    *kript7 urge og ;1=

    Bis #um 3orlet#ten erfolgreichen Backup l)schen7TIMESTAMP=`echo "select start_time from mysql.backup_history

    where exit_state = 'SUCCESS' order by start_time desc limit 1, 1 ;"| mysql $CONNECT | tail -n1`

    echo"PURGE MASTER LOGS BEFORE '$TIMESTAMP';"

    | mysql $CONNECT

    *k i t ;2=

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    40/52

    www.fromdual.com

    C$ / 52

    *kript7 urge og ;2=

    Ohne :abelle fest 2E *tunden #ur'ck7

    TIMESTAMP=`echo "select subtime( now(), '26:00:00')"

    | mysql $CONNECT | tail -n1`

    *k i t t

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    41/52

    www.fromdual.com

    C1 / 52

    *kript7 estore

    &ame der *icherung wird als arameter'bergeben

    'ckfrage% falls nicht auf estore-6aschine

    )scht alle 3orhandenen DB-@nhalte Jdt *icherung

    *tartet DB-*er3er

    *kript st r

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    42/52

    www.fromdual.com

    C2 / 52

    *kript7 estore-

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    43/52

    www.fromdual.com

    C0 / 52

    *kript7 estore-

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    44/52

    www.fromdual.com

    CC / 52

    ode7

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    45/52

    www.fromdual.com

    C5 / 52

    ode7 8ser/asswort #u DB

    nnahme7 Benut#er e9istiert schon in der DB und hatdie n)tigen ri3ilegien f'r non>misierung

    *onst7 &ach estore er#eugen

    DB_S=`echo $DB | tr '[:upper:]' '[:lower:]'` # 9 Zeichen von DB fr User(16)

    DB_9=`echo ${DB_S} | sed 's/\(.........\).*/\1/'`DB_USR="${DB_9}_anonym"DB_PWD="${DB_S}#geheim#"

    ode7 DB behandeln?

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    46/52

    www.fromdual.com

    CE / 52

    ode7 DB behandeln?

    DB ohne non>misierungs-&ut#er wird nicht behandelt

    mysql -u $DB_USR -p$DB_PWD -e 'show grants;'RC=$?

    if [ $RC -ne 0 ]then echo "'mysql -u $DB_USR -p$DB_PWD' scheitert mit Code $RC"

    echo "Kein Check / Export fr diese DB." continuefi

    ode7 *kript suchen

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    47/52

    www.fromdual.com

    CH / 52

    ode7 *kript suchen

    for ACTION in pruef anonym export ; do BASE=/pfad/zu/script-${ACTION}-${DB_S} SCRIPT=${BASE}.sh if [ -x $SCRIPT ] ; then bash $SCRIPT -U $DB_USR -P $DB_PWD -N $DB_S

    RC=$? echo "$SCRIPT terminated with exit code $RC" fi SCRIPT=${BASE}.sql if [ -r $SCRIPT ] ; then

    mysql -u $DB_USR -p$DB_PWD $DB_S < $SCRIPT RC=$? echo "$SCRIPT terminated with exit code $RC" fidone

    *kript7 non>misieren ;1=

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    48/52

    www.fromdual.com

    CI / 52

    *kript7 non>misieren ;1=

    Vberfl'ssige :abellen leeren7echo "use information_schema ; select TABLE_NAME from TABLES where TABLE_SCHEMA = '$DB' and

    TABLE_TYPE = 'BASE TABLE' and TABLE_NAME not in ('t1', 't2', 't3') ;" | \mysql $CONNECT --skip-column-names | \while read TAB

    do echo "truncate table $TAB ;"done | mysql $CONNECT $DB

    *kript7 non>misieren ;2=

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    49/52

    www.fromdual.com

    CK / 52

    *kript7 non>misieren ;2=

    ersonenbe#ogene Daten7mysql $CONNECT $DB

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    50/52

    www.fromdual.com

    5$ / 52

    ode7 Fselect count; =

    # Get a list of all tables, feed it into a loop# that generates "select count(*)" statements,# pipe these to another client call for execution

    mysql $CONNECT --silent --skip-column-names

    -e "select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA = '$DB' and TABLE_TYPE = 'BASE TABLE' order by 1" | \while read TN

    do echo "select count(*) as '$TN' from $DB.$TN ;"done | mysql $CONNECT --table $DB

    ode7 show create tableG

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    51/52

    www.fromdual.com

    51 / 52

    ode7 Fshow create table

    # Get a list of all tables, feed it into a loop# that generates "show create table" statements,# pipe these to another client call for execution

    echo 'show tables ;' | \

    mysql $CONNECT $DB | tail -n +2 | sort | \while read TAB

    do

    echo "show create table $TAB \G"done | mysql $CONNECT $DB

    4 X

  • 7/24/2019 Der Datenbank-Backup ist gemacht - was nun ?

    52/52

    www.fromdual.com

    52 / 52

    4 X

    ,ragen ?

    Diskussion?

    *4% !alera% ercona *er3er und 6ariaDB

    *chulung

    www.fromdual.com/presentations