BBASIC Help-Funktionen
Datensicherung

Das Datensicherheitskonzept in BBasic:

Gundsätzliches:

BBasic gibt es im Grundsatz seit 1987. Auch wenn das Programm seit dem mehrfach fast komplett neu aufgebaut wurde, sind noch immer die Daten der Programmversion von 1987 "kompatibel".
BBasic hat in dieser Zeit stets enormen Wert auf Datensicherheit gelegt - und mir ist seit 1987 nur 1 Fall Ende der 90er bekannt, indem eine Firma wirklich ernsthaft nacherfassen mußte - was am Ausfall des RAID-Systems UND Ausfall der täglichen Sicherung lag. Profitieren auch Sie aus den Erfahrungen von über 30 Jahren - nutzen Sie die teils einzigartigen Mechanismen um einfach aber effektiv ihre Daten abzusichern. 

Denn: Um Datenverlust verzubeugen sieht BBasic einige teils einzigartige Absicherungen vor.

Absicherung 1 (Standard, automatisch): 

Wir nutzen die ACID-Technik von MySQL oder MariaDB (InnoDB) um sicherzustellen, daß ein Programmabsturz oder zB ein Stromausfall des Arbeitsplatzes keine "halben Sachen macht" und die Daten insofern stets in sich konsisten sind.
Dies indem wir jede Verarbeitung in Transaktionen kapseln.

"Bei der Ausführung von Transaktionen muss das Transaktionssystem die ACID-Eigenschaften garantieren:

Ausserdem werden alle SQL Befehle in einer Datei pro Tag im Datenverzeichnis abgelegt.
Eine (relativ aufwendige) Wiederherstellung der Daten ist insofern sogar möglich, wenn eine alte SQL-Sicherung und das Datenverzeichnis vorhanden ist.

Absicherung 2 (Standard, automatisch):

Alle SQL-Geschäftsvorfälle (also die Lieferschein, Adressänderungen, Lagerbewegungen etc.) die in BBASIC erledigt werden werden in einer zusätzlichen Tabelle in der SQL-Datenbank abgelegt. Und zwar absichtlich in einem einfacheren und eigentlich schlechteren Tabellenformat (nicht InnoDB sondern MyISAM-Format). Mit dem Inhalt dieser Tabelle und einer alten Datensicherung können alle SQL-Daten (alles ausser EMails, Briefe, Gescannte Dokumente) wieder hergestellt werden. Eine besondere Absicherung können Sie erhalten, wenn Sie die Transakt-Datei auf einen anderen SQL-Server ablegen lassen.

Absicherung 3 (Standard, automatisch):

Die o.g. Transakt Datei wird zusätzlich im DATENVERZEICHNIS der Firma (Datenbank) als ASC-Datei abgelegt. Wenn also der SQL Server und der File-Server auf 2 verschiedenen Rechnern oder mindestens auf 2 verschiedenen Festplatten-Speichern sind ist eine weitere Absicherung gegeben.
Nach einer gewissen Zeit sollte Sie in ZIP-Dateien ausgelagert werden um die Sicherung nicht zu langsam werden zu lassen.

 

Um die Dateien nicht ins Bodenlose wachsen zu lassen sollten Sie ab und an Mal Optimieren mit:

BBasicStarter.exe /OPTIMIZE=Datenbank (Siehe Commandozeile)
siehe auch Transakt-Datei

Mögliche und vorbereitete Absicherung durch den Anwender

Absicherung 4 (sollten Sie UNBEDINGT machen, ggf. automatsieren): 

Sichern Sie regelmässig das Verzeichnis BBasic\Daten.
Das können Sie einfach mit dem Explorer auf einen USB-Stick sichern, oder mit einem Script automatisieren.

Denn: Das DATEN Verzeichnis ändert sich ständig, weil jeden Tag EMails, Gesannte Dokumente und Briefe dazukommen.
Und: Im Datenverzeichnis befindet sich eine Kopie aller schreibenden SQL-Befehle. Sie sind also relativ sicher.
Deshalb sichern wir zB jede Nacht die geänderten Dateien im BBasic/Daten Verzeichnis.

Wir haben unsere Daten auf einem QNAP-Raid und sichern automatisch auf ein externes QNAP in einem angeren Gebäude

Unsere Scripte um das zu automatisieren finden Sie weiter unten.

Absicherung 5 (sollten Sie UNBEDINGT machen, ggf. automatsieren):

Weil die o.g. Kopie der SQL-Befehle NICHT Transaktions-orientiert ist können sich Fehler einschleichen. Die Wahrscheinlichkeit steigt mit dem Alter der letzten Sicherung. Als Profi bekommt man zwar meist trotzdem mit einigem Aufwand die Daten aus den teilweise "falschen" Daten. Aber tun Sie sich einen Gefallen und sichern Sie  den SQL-Datenbestand regelmässig. Je nach Firmengrösse ist "regelmässig" irgendetwas zwischen täglich und monatlich.

Besonders einfach geht das mit HeidiSQL, daß bei MariaDB automatisch mit installiert wurde. Datenbank anklicken und Export - Fertig.

 

 

 

Professioneller geht es mit einem Skript auf dem SQL-Server das das automatisch erledigt. Bespiele finden Sie hinten.
Testen Sie das Programm, denn die Versionsnummern ändern sich und ich habe schon oft gesehen, daß ein tolles Datensicherungskonzept nicht funktioniert seit ein UPDATE oder ähnliches Änderungen gemacht hat!

Absicherung 6 (optional):

Optional können die SQL-Daten zB sogar beim kostenlosen MariaDB auch REPLIZIERT werden, also online und Zeitgleich auf mehrere Server übertragen werden.
Das ist hoch professionell und sorgt auch im Fehlerfalle ohne jede Mehr-Arbeit für NULL Datenverlust. 
Aber Achtung: Unsere Erfahrung ist, daß dies zwar recht gut funktioniert und es eine super Ergänzung ist - aber es funktioniert nicht in allen Situationen 100% .
Es ist deshalb wichtig den Status regelmässig zu überprüfen.

Die Sicherung des SQL-Servers sollte regelmässig stattfinden - dort sind die wichtigsten Daten

MariaDB kann mit MASTER->SLAVE Replikation gesichert werden. Unsere Erfahrung ist, daß dies NICHT IMMER fehlerfrei funktioniert und die Replikation deshalb immer Mal überwacht werden soll. Grundsätzlich ist die Replikation ein tolles Instrument welches preiswert genutzt werden kann um die Daten Sekundenaktuell zu sichern

Siehe Anleitung Spiegelung SQL

 Absicherung 7 (optional):

Die Transakt-Tabelle kann nicht nur auf einen anderen (evtl. langsamen) SQL-Server ausser Haus gelegt werden, sie kann auch aus Geschwindigkeitsgründen dynamisch auf einen SQL-Server ausser Haus KOPIERT werden.

Das passiert mit
f:\BBasic\ProgrammNET\BBasicStarter.exe /AUTOSIK=datenbankname (Siehe Commando-Zeile) zB automatisiert zB jede Stunde. Das geht über Systemsteuerung/Verwaltung/Aufgabenplanung von jedem Windows PC

Um es zu aktivieren muß in der Config der Server mit samt den Zugangsdaten eingetragen sein. Achtung die TRANSAKT-Tabelle und die Datenbank (mit gleichen Namen wie die Hauptdatenbank) müssen Sie selbst anlegen. Am einfachsten indem Sie die Transakt-Tabelle kopieren.

Absicherung 8 (optional):

Dokumente (EMails...) können automatisch bei Veränderung per SFTP an den LOGINSERVER übertragen werden, so daß diese ZEITGLEICH zusätzlich auf einem für VIREN etc. nicht erkennbaren Server GESICHERT werden. Vorteil ist, daß die Daten nur übertragen werden, wenn BBASIC auf die Dateien zugreift, eine durch Viren verursachte Zerstörung der Dateien kann dadurch NICHT erfolgen.

Einrichtung von SFTP im Loginserver und der CONFIG-Tabelle im SQL

Dazu muß der Loginserver über ausreichend Festplattenkapazität verfügen und der Port TCP 7010 am Loginserver freigegeben sein (Firewall). Siehe Loginserver Installation

Oder man sichert auf einen Standard FTP-Server zB im Internet. Dies kann sofort geschehen - ist aber für den Anwender merklich langsamer - oder mit
f:\BBasic\ProgrammNET\BBasicStarter.exe /AUTOSIK=datenbankname (Siehe Commando-Zeile) automatisiert zB jede Stunde. Das geht über Systemsteuerung/Verwaltung/Aufgabenplanung von jedem Windows PC

 

Absicherung 9 (optional):

BBasic bietet die Möglichkeit EMails und Dokumente (Briefe und Gescanntes) nach einer gewissen Zeit in ZIP-Dateien nach Erstellungsdatum zu sichern und die Orginaldatei zu löschen.

Die Datei ABCDEFG2222.MSG wird so nach 2 Wochen in die verschlüsselte Datei EMAILS201912.ZIP gesichert und gelöscht. Bei Bedarf (wenn ein Anwender eine alte Datei öffnen will) erkennt BBasic daß die Datei nur im ZIP-Archiv ist und extrahiert diese aus dem ZIP-Archiv vor Benutzung. Der Anwender merkt ausser einer etwas langsameren Zugriffszeit nichts.

Wenn Sie täglich das Datenverzeichnis auf eine andere Festplatte sichern bietet der Mechanismus von BBasic aus 2 Gründen massive Vorteile:

1) Solange die Datei noch nicht gelöscht ist wird die Orginal-Datei auf die Sicherungsfestplatte übertragen und ist das erste Mal gesichert.
2) Sobald die Dateien ín einer ZIP-Datei gesichert ist sinkt die Anzahl der zu sichernden Dateien und die Datensicherung geht wesentlich schneller.
Zusätzlich wird die Datei in der ZIP-Datei ein zweites Mal unabhängig nochmals gesichert.

Sollte ein Virus alle Dateien auf der Festplatte verschlüsseln wird zwar die ZIP-Datei unwiderruflich zerstört - nicht jedoch die auf der Arbeitsfestplatte nicht mehr vorhandene Orginal-Datei. Damit kann durch Einspielen der noch unbeschädigten Orginal-Dateien von der Sicherungsfestplatte der Schaden behoben werden. VORTEIL: Schnelle Sicherung UND Schutz vor verschlüsselnden Viren

KLICK here: Wie funktioniert das ZIP-Archiv 

Absicherung 10: Snapshots (optional)

Gegen unbeabsichtigte Veränderung können Sie sich (z.B. bei den QNAP Netzwerkspeichern) durch sogenannte SNAPSHOTS absichern. Damit können automatisch alte Stände gesichert werden.
Ein Löschen durch einen Virus oder durch menschliches Versagen ist damit wirkungsvoll Entgegengetreten.

 

Absicherung 11: Windows Server Sicherung

Die relativ neue Windows Server Sicherung kann auf einer eigenen Festplatte speziell für die Sicherung - auch auf einem externen Gerät (zB auf iSCSI QNAP) Server wie MariaDB und Daten automatisch sichern.

Absicherung 12: Technische Absicherung (Spiegelung oder RAID)

Technisch kann der Ausfall einer oder mehrer Festplatten abgesichert werden. Es gibt die Spiegelung. Die Informationen werden auf 2 Festplatten exakt identisch geschrieben. Das ist unkompliziert. Der Vorteil ist insbesondere, daß bei Ausfall man die Festplatten mit bestimmten Programmen auch dann noch retten kann, wenn Windows keine Chance mehr hat. Das ist aber "teuer" und hat auch einige andere Nachteile - ist aber unkompliziert, wenn Sie kein EDV-Profi sind.

Der File-Server sollte unbedingt gespiegelte Festplatten haben - und regelmässig gesichert werden.

Alternativ gibt es (zB von Firma QNAP) bestimmte spezialisierte Speichersysteme. Diese können verschiedene RAID-Level (RAID5 und RAID6...)
Wir zB haben ein relativ preiswertes QNAP mit 9 Festplatten. 5 Platten als RAID6 der den Ausfall von maximal 2 Festplatten kompensieren kann und dabei die Kapazität von 3 Festplatten zur Verfügung stellt. Zusätzlich haben wir SSD Platten als Cache damit der Zugriff schneller geht.

 

Datensicherung - wie sichert man BBasic Daten

Hinweis:

Auf die Schnelle:
Alles was mit BBASIC zu tun hat ist im Festplatten-Verzeichnis BBASIC und auf dem SQL-Server (MariaDB oder MySQL).
Wer also sein SETUP-Programm gesichert hat und den SQL-Server (zB HeidiSQL) und das Verzeichnis BBASIC (zB Explorer) sichert hat ALLES was er braucht um den Betrieb wieder herzustellen.
Die sich verändernden DATEN die regelmässig gesichert werden sollten sind:
SQL -> alle laufenden Geschäftsvorfälle (Adressen, Rechnungen, Finanzbuchhaltung...).
Verzeichnis BBasic\DATEN -> alle externen Dokumente, konkret EMAILs und BRIEFE (Textverarbeitung) und Gescannte DOKUMENTE sowie Formulare (für Rechnungen ...) und einige Einstellungen.

Hier ein Auszug aus unseren Datensicherungs-"Porgrammen". Erstellt mit einem Editor wie Notepad

Erstellen Sie eine Sicherungsdatei mit: notepad sicherung.cmd

Dann gehen Sie in die Systemsteuerung unter Aufgabenplanung und

 

SERVER Tägliche Sicherung

Datensicherung Täglich einfache Version
Copy Code
"c:\Program Files\MariaDB 10.3\bin\mysqldump" -u sicherung -pPASSWORT --single-transaction=TRUE DATENBANK > o:\sicherungmysql\SicherungTaeglich.sql

"c:\Program Files\MariaDB 10.3\bin\mysqldump" -u sicherung -pPASSWORT --single-transaction=TRUE ofendt > o:\sicherungmysql\SicherungTaeglich.sql
net use p: \\192.168.1.102\orginal /user:sicherung PASSWORT
robocopy  o:\sicherungmysql p:\sicherungmysql /E /R:2 /W:3
robocopy  F:\BBASIC\daten p:\sicherungbbasic\daten /E /R:2 /W:3

 

SERVER Wöchentliche Sicherung

Datensicherung einfache Version wöchentlich
Copy Code
xcopy o:\sicherungmysql\ofendt.sql f:\bbasic\daten\ofendt  /y
"c:\Program Files\MariaDB 10.3\bin\mysqldump" -u sicherung -pPASSWORT --single-transaction=TRUE --all-databases > o:\sicherungmysql\Woche.sql
robocopy f:\bbasic o:\sicherungbbasic /E /R:2 /W:3

 

SERVER 2 wöchentliche Sicherung

Datensicherung einfache Version 2wöchentlich
Copy Code
"c:\Program Files\MariaDB 10.3\bin\mysqldump" -u sicherung -pPASSWORT --single-transaction=TRUE --all-databases > o:\sicherungmysql\Woche2.sql
net use y: /DEL
net use y: \\192.168.1.41\sicherung /user:localhost\olia PASSWORT
robocopy o:\sicherungmysql y:\SicherungMySQLOF /E /R:2 /W:3
net use y: /DEL

 

SERVER monatliche Sicherung

Datensicherung einfache Version monatlich
Copy Code
"c:\Program Files\MariaDB 10.3\bin\mysqldump" -u sicherung -pPASSWORT --single-transaction=TRUE --all-databases > o:\sicherungmysql\Monat.sql

 

EINE Arbeitsstation als SicherungsPC

Datensicherung einfache Version monatlich
Copy Code
                
REM *** Verbinden mit dem Server
net use f: \\192.168.1.102\daten /USER:Administrator PASSWORT
net use o: \\192.168.1.102\orginal /USER:Administrator PASSWORT
REM *** Verbinden mit einem billigen QNAP in einem anderen Gebäude (Zuhause)
net use W: /DEL
net use W: \\192.168.4.21\SicherungBBasic /USER:sicherung PASSWORT
robocopy D:\SicherungMySQLOF W:\Mysql /E /R:2 /W:3
robocopy f:\bbasic W:\bbasic /E /R:2 /W:3
robocopy o:\orginal W:\orginal /E /R:2 /W:3              

 

Optimierung der Datensicherung

Um die Datensicherung zu optimieren und DEUTLICH zu beschleunigen sollten Sie Dateien optimieren. Dies geschieht indem Einträge die älter als 360 Tage alt sind aus der sehr schnell wachsenden Transakt Tabelle ausgelagert werden.
Die Transakt-Tabelle ist ohnehin nur als weitere Datenabsicherung nötig. Ein löschen insofern unkritisch. Sie werden trotzdem in verschlüsselte und komprimierte ZIP-Dateien im Firmenverzeichnis ausgelagert.
Damit werden alte Teile nicht täglich neu kopiert. Das führt zu immenser Zeitersparnis beim Sichern.

Ausserdem werden die Dokumente (EMails, Briefe, Gescannte Dokumente) in verschlüsselte und komprimierte ZIP-Dateien ausgelagert.
Dadurch müssen nich tausende von Dateien überprüft werden. Dies ist insbesondere dann eine enorme Geschwindigkeitssteigerung, wenn Daten in die Cloud gesichert werden.
Die Daten bleiben aber von BBasic voll im Zugriff. Denn wenn eine Datei nicht mehr im Datenverzeichnis ist versucht BBasic sie im ZIP Archiv zu finden und entpackt die Datei einfach wieder.
Ausser einer etwas langsameren Zugriffszeit merkt der Anwender nichts davon.
Ein weiterer Vorteil ist, daß Erpresser-Software die Dateien die täglich auf ein Sicherungs-Gerät wie ein QNAP oder zu OneDrive gesichert werden im Orginal irgend wann gelöscht werden.
Selbst wenn die Erpresser-Software alle Dateien verschlüsselt - sind die älteren Dateien noch als Orginal (zB PDF) auf dem Sicherungsgerät.

 

Man kann dies in eine BBASIC.APP automatisieren - siehe Makro. Die nötigen Befehle sind:

bbsys.SQL_Transakt_Sichern

bbsys.ZipDatensicherung

zwischenzeitlich geht das auch als Task in Windows mit dem Befehl f:\BBasic\ProgrammNET\BBasicStarter.exe /AUTOSIK=datenbankname

Weitere Beispiele guter Sicherungskonzepte

Hier unsere Beispiel-Config auf einem QNAP bei der wir alle 40 Minuten! in nur ca. 20 Sekunden die Daten zu einem kleinen weiteren QNAP kopieren. Das gesamte BBasic-Verzeichnis sichern wir zusätzlich Täglich Nachts.

 

 Sicherung über 2 verschiedenen QNAP-NAS (z.B. in 2 verschiedenen Gebäuden)

Ein Erpressungstrojaner hat meist das Lokale Netzwerk "im Auge" und kann dort ggf. einiges Zerstören. Deshalb gibt es die Möglichkeit ein zweites NAS (zB QNAP) zu verstecken. Sei es extrem schnell angebunden im eigenen Sub-Netz (fragen Sie Ihren EDV-Profi). Das Thema Firewall ist auf dem Versteckten QNAP über nur 2 offene Ports zu realisieren (SFTP standard Port 22 aber besser auf einem anderen Port) und RSync-Server Standard-Port 873

Wir zB sichern über Scripte erst auf den lokalen QNAP und später von dort auf versteckte Server.

"c:\Program Files\MariaDB 10.3\bin\mysqldump" -u sicherung -pPASSWORT DATENBANK > o:\sicherungmysql\ofendt.sql
net use p: \\192.168.1.102\orginal /user:sicherung PASSWORT
robocopy  o:\sicherungmysql p:\sicherungmysql /E /R:2 /W:3

Achten Sie auch auf die Absicherung Ihres Netzes durch eine Firewall.
Gut und Preiswert (aber kompliziert) sind Mikrotik-Router

Es bietet sich an, den 2. (oder ggf. mehrere - je nachdem wie wichtig und wie gefärdet die Daten sind)  QNAP in ein anderes Gebäude zu tun. Wenn Sie unsere Mechanismen ausnutzen geht die Sicherung trotz langsamer Internet-Verbindung extrem flott. So bietet es sich an ein QNAP in der Firma, ein weiteres im Privat-Haus zu installieren - in das über QNAP HBS (ein Programm von QNAP) automatisch gesichert wird.

Zusammenfassung:

BBasic bietet eine extrem ausgeklügelte Sicherungs-Strategie.
Mit seinen Transakt-Dateien sind die neueren SQL Daten abgesichert.
(Achtung! Trotzdem täglich mindestens wöchentlich die SQL-Datenbak sichern).
Die Dokumente (Scans, Briefe, EMails)  können durch regelmässiges Kopieren des Datenverzeichnisses schnell gesichert werden.
Da hier sehr schnell grosse Mengen an Dateien entstehen können diese für den Anwender transparent in verschlüsselten ZIP-Dateien zusammengefaßt werden.
Dadurch müssen diese in der Sicherung nicht mehr berücksichtigt werden.

Sicherung der Programmdateien

Oben gezeigte Sicherungen sichern die DATEN - die nutzen aber ohne Programm nichts.
Deshalb achten Sie folgende Dinge gesichert haben:

 

See Also

Loginserver

Config