GridTalk.de

Normale Version: Import grosser Datenbanken oder Tabellen mit HeidiSQL
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Bei einer Installation von einem MySQL Server auf einem Windows System gibt es Probleme beim Import grosser Datenbanken.
So bei mir mit der Asset Tabelle die ca 5.7GB gross ist.

Mit HeidiSQL erscheint eine Fehlermeldung und die Daten können nicht importiert werden.

Im Windows Explorer müsst ihr unter den Ansichtsoptionen die versteckten Dateien anzeigen lassen.

Im Verzeichnis C:\ProgramData\MySQL\MySQL Server 5.7/ gibt es eine Datei my.ini, diese öffnet ihr im Notepad. (Das MySQL Server Verzeichnis kann je nach Version variieren).

Ihr findet da folgenden Eintrag:

max_allowed_packet=4M
den ändert ihr so
max_allowed_packet=64M (nicht grösser)

Nach dem Speichern der Datei am besten den ganzen Rechner neu starten.

Danach sollte eurem Import grosser Datenbanken oder einzelner Tabellen mit HeidiSQL nichts mehr im Wege stehen.

Dorena hatte dieses Problem ja auch schon mal und wird es wissen Smile
Und die php.ini auch noch etwas einstellen... ( geht auch über 64M )

Vorher die php.ini / my.ini / Sichern )
Und immer in Schritten Testen.

php.ini: max_execution_time - legt fest, wie lang eine Anfrage maximal bearbeitet werden darf (in Sekunden)
php.ini: memory_limit - legt fest, wie viel Speicher einem Skript zur Verfügung gestellt wird
php.ini: post_max_size - legt fest, bis zu welcher Größe HTTP POST Anfragen akzeptiert werden
php.ini: upload_max_filesize - gibt an, bis zu welcher Dateigröße Uploads akzeptiert werden
my.ini: max_allowed_packet - gibt an, bis zu welcher Größe MySQL Anfragen bearbeitet werden

Nach Anpassung der Werte und Neustart der entsprechenden Server, sollten große SQL-Imports sowohl via phpMyAdmin, als auch via Konsole möglich sein.
Danke für den Hinweis Wollex.

Wusste ich auch noch nicht
Ja gern doch , in der Mysql sind noch viele Sachen die man einstellen sollte um das Ding Beine zu machen für OpenSim...  Big Grin
Wir haben schon seit über 2 Jahren alles auf 128M umgestellt,ohne Probleme.
Aber jedes System ist glaub ich ein wenig anders... Speicher , CPU , usw.
Man sollte einfach MySQL mal zwei Tage laufen lassen, und dann:

wget mysqltuner.pl

Und das Skript ausführen. Das gibt einem guten Anhaltspunkte, wo man MySQL tunen könnte, um die Leistung deutlich zu verbessern. I.d.R. will man die Caches erhöhen, weil was ständig im Speicher ist, erzeugt keine langsamen Zugriffe auf die Festplatte.

Und ansonsten importiert man das Trumm eben einfach auf der Kommandozeile:

mysql -u benutzername -p datenbank < backup.sql

Dann hat man diese Probleme nicht.
Du kannst aber auch eines der vielen guten Backup Tools nutzen.
Auf der Seite von Ubuntuuser findest du eine menge Informationen sowie scripte
und ganz unten Links zu Tools wie phpMyBackupPro mit dem man das ganze automatisieren kann.

Siehe: https://wiki.ubuntuusers.de/MySQL/Backup/


MySQL Tuning

In MySQL 5.7+ gibt es nur vier wirklich wichtige Variablen,
die geändert werden müssen.

Fügen Sie die folgenden Einstellungen zu /etc/mysql/conf.d/my.cnf im Abschnitt [mysqld] hinzu.
Alle Einstellungen sind hier: /etc/mysql/mysql.conf.d/mysqld.cnf.

[mysqld]
# Meine Einstellungen
innodb_buffer_pool_size = 10G # (Hier sollte man etwa 50% des gesamten RAM nutzen)
innodb_log_file_size = 2G # (128M – 2G muss nicht größer als der Pufferpool sein)
innodb_flush_log_at_trx_commit = 1 # (0/2 mehr Leistung, weniger Zuverlässigkeit, 1 Standard)
innodb_flush_method = O_DIRECT # (Vermeidet doppelte Pufferung)

# Meine erweiterten Einstellungen
# Schreibvorgänge der Festplatte erhöhen.
innodb_io_capacity_max = 6000 # (50% des Maximums festlegen)
innodb_io_capacity = 3000 # (50% des Maximums festlegen)

Jetzt noch MySQL neu starten mit:
sudo /etc/init.d/mysql restart

Es gibt natürlich noch viele weitere möglichkeiten und Optimierungen aber das ist auch komplizierter.

Mit gesamten RAM ist der verfügbare RAM gemeint,  bitte den RAM der für OpenSim und Betriebssystem benötigt wird abziehen.