der datenbank-backup ist gemacht - was nun ?
TRANSCRIPT
-
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