Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
wer hat denn schon mal mit einem SQL-Befehl aus LabVIEW raus ein Backup (BACKUP, MYSQLHOTCOPY etc. etc.) einer MySQL Tabelle erledigt. Ich habe Tabellen, die schon mal ca. 1GB gross sind (Daten von 8 Stunden) und meine aktuelle Version ist viel zu langsam BACKUP und RESTORE betreffend.
Die Tabelle ist zur Zeit noch INNODB, kann aber umstellen auf MYISAM.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Backup einer MySQL-Datenbank
Wieso machst Du das in LabVIEW und nicht auf Datenbankebene?
Bei PostgreSQL gibt's Funktionen, die es, soweit ich weiß, bei mySQL jetzt auch gibt (da heißen sie glaub' "Stored Procedures").
Dann hast Du das ganze DB-Zeug auf Datenbankebene und schickst nur noch Funktionsaufrufe mit evtl. zu übergebenden Parametern oder Abfragen.
In so einer Funktion könnte dann neben anderen Befehlen z.B. auch der Backup-Befehl stehen.
Oder habe ich da was misverstanden?
Gruß Markus
' schrieb:Hi an Alle,
wer hat denn schon mal mit einem SQL-Befehl aus LabVIEW raus ein Backup (BACKUP, MYSQLHOTCOPY etc. etc.) einer MySQL Tabelle erledigt. Ich habe Tabellen, die schon mal ca. 1GB gross sind (Daten von 8 Stunden) und meine aktuelle Version ist viel zu langsam BACKUP und RESTORE betreffend.
Die Tabelle ist zur Zeit noch INNODB, kann aber umstellen auf MYISAM.
Danke für Tipps
Marco
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Schon richtig,
auf Datenbankebene wäre es besser, ich muss aber sicherstellen, das zu diesem Zeitpunkt keine Messwertaufnahme stattfindet, deshalb ist das mit z.B. festgelegten Uhrzeiten aus MySQL nicht so einfach.
Deshalb wollte ich das Ganze aus LabVIEW machen, um bestimmte Randbedingungen einhalten zu können.
Bei meiner jetzigen Lösung benötigt das Programm zum Zurückspielen einer Tabelle (1GB) ca. 20 Minuten. Das kann (denke ich) nicht so ganz OK sein...
Deshalb suche ich andere Backupbefehle oder Tools, die ich aus LabVIEW ansteuern kann.
Wenn ich dich recht verstehe:
- arbeitest du mit einer LV-Anwendung als DB-Client
- einer MYSQL Datenbank
- und willst von LV aus die DB so steuern, dass sie ein Backup anlegt?
Mein Lösungsweg wäre:
- entweder ein entsprechendes SQL Commando vom Client auf die DB abfeuern - den Rest macht die DB
- oder so wie Y-P es vorschlägt in der DB eine StoredProcedure (oder Function) anlegen und diese vom Client mit einem SQL-Commando aufrufen - den Rest macht die DB.
Dein Problem ist nicht LV, von dort aus sollte wirklich nur den Befehl "Datenbank erstelle Backup" abgefeuert werden. Wie lange die Datenbank dann dazu braucht, darauf hat LV keinen Einfluss. Daten erst aus der DB zu ziehen um dann mit LV ein Backup zu erstellen ist nicht im Sinne des Erfinders, weil viel zu Kostenintensiv sprich ineffizient.
MySQL kommt wahrscheinlich auch mit einem Commandline tool (Unix roots lassen grüssen) mit dem Du das von LabVIEW aus auch über SystemExec machen können solltest.
' schrieb:MySQL kommt wahrscheinlich auch mit einem Commandline tool (Unix roots lassen grüssen) mit dem Du das von LabVIEW aus auch über SystemExec machen können solltest.
Rolf Kalbermatter
stimmt !!! mySQL bringt dafür ein eigenes kleines Tool mit. >>> mysqldump<<<< hier wird genau darauf geachtet, das eventuelle Zugriffe nicht zum crash führen. Der Befehl sollte ungefähr so aussehen: mysqldump --user=[username] --password=[passwort] [Datenbankname] > c:...
Vielleicht einfach mal die Eingabeaufforderung öffnen und die Befehlsfolge so eingeben. Achtung vorher in den Ordner ...mysqlbin wechseln. Probleme könnte es auch geben, wenn kein Password vergeben wurde.
zurückgespielt wird das ganze dann in 2 Schritten. Erstmal wird die Verbindung zur Datenbank aufgebaut. Das geschieht mit folgender Eingabe : mysql --user=[username] --password=[passwort] [Datenbankname] Jetzt müßte anfang der Zeile in der Eingabeaufforderung "mysql>" stehen.
Mit source [sicherungsdateiname] sollte der Dump zurückgeschrieben werden.
Wie gesagt erstmal in der Eingabeauffordereung testen und anschließend in LV realisieren.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Backup einer MySQL-Datenbank
Der Vollständigkeit halber......
Sowas gibt es auch bei PostgreSQL und da heißt es "pg_dump".
Gruß Markus
' schrieb:stimmt !!! mySQL bringt dafür ein eigenes kleines Tool mit. >>> mysqldump<<<< hier wird genau darauf geachtet, das eventuelle Zugriffe nicht zum crash führen. Der Befehl sollte ungefähr so aussehen: mysqldump --user=[username] --password=[passwort] [Datenbankname] > c:...
Vielleicht einfach mal die Eingabeaufforderung öffnen und die Befehlsfolge so eingeben. Achtung vorher in den Ordner ...mysqlbin wechseln. Probleme könnte es auch geben, wenn kein Password vergeben wurde.
zurückgespielt wird das ganze dann in 2 Schritten. Erstmal wird die Verbindung zur Datenbank aufgebaut. Das geschieht mit folgender Eingabe : mysql --user=[username] --password=[passwort] [Datenbankname] Jetzt müßte anfang der Zeile in der Eingabeaufforderung "mysql>" stehen.
Mit source [sicherungsdateiname] sollte der Dump zurückgeschrieben werden.
Wie gesagt erstmal in der Eingabeauffordereung testen und anschließend in LV realisieren.
Viel Erfolg
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------