16.01.2019, 12:04
(Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2019, 12:36 von bimbam2103.
Bearbeitungsgrund: Wegstabenverbuchsler
)
Hallo zusammen.
Ich denke hier ist der richtige Platz um ein Script anzukündigen, welches die OpenSim-Datenbank bereinigt und wie es / wann es genutzt werden kann.
Zur technischen Seite. Das Script basiert auf folgender Annahme:
WARNUNG DIREKT VORWEG: Das Script MUSS im gestoppten Zustand des Grids ausgeführt werden, da Änderungen während des Vorgangs nicht berücksichtigt werden. Ebenso muss ein Backup der Datenbank VOR der Aktion erstellt werden. Ich übernehme KEINERLEI Haftung bei Schäden, die durch das Script entstehen.
Nun zur Arbeit des Scripts. Was macht das Script / wann sollte ich es einsetzen / was genau ist ein Asset !?:
Also erstens was ein Asset ist sollte den meisten bekannt sein. Für die, die es nicht wissen:
Ein Asset ist ein Eintrag in der Datenbank was in OpenSim (oder auch Second Life) als Textur, Script, Notecard, Hose, Schuhe oder was auch immer, angezeigt wird. Wenn ihr zum Beispiel eine Textur hochladet seht ihr ein Bild und habt den Namen der Textur. In der Datenbank wird ein Asset angelegt. Wenn Ihr ein Würfelprim auf dem Boden einer Region erstellt ist das in der Datenbank ein Asset. ALLES sichtbare inklusive der Kleidung, die ihr tragt ist in der Datenbank ein Asset.
Warum brauche ich so ein Bereinigungsscript ?
Ganz einfach. Jedes Asset, welches erstellt wurde, bleibt in der Datenbank auch wenn ihr hingeht und z.B. die Textur in den Papierkorb legt und den Papierkorb leert. Das Asset bleibt in der Datenbank auch wenn theoretisch niemand mehr drauf Zugriff hat. Wenn eine Region gelöscht wird bleiben alle Assets in der Datenbank enthalten auch wenn die Prims z.B. schon gar nicht mehr verwendet werden (weil die Region nicht mehr existiert).
Das heißt wenn Ihr 50 Regionen habt mit einer täglichen Besucherzahl von rund 40 Avataren, die regelmäßig etwas neues bauen oder ein Objekt mehrmals rezzn und es danach wieder löschen bleibt das Asset trotzdem in der Datenbank. Ihr könnt euch also vorstellen, dass eine Datenbank ganz schnell mal auf mehrere 100 GB anwachsen kann.
DESHALB BRAUCHT MAN EIN BEREINIGUNGSSCRIPT.
Ich gebe zu ein solches Script ist immer eine heikle Sache aber mit gesundem Menschenverstand und entsprechender Erfahrung kann man ein solches Script erstellen. Genau das habe ich vor / bin ich aktuell dran.
Wie geht das Script vor?
Das ist im Prinzip sehr einfach erklärt.
Das Script scannt die gesamte asset-Datenbank (Tabelle assets) und prüft ob das angegebene Asset IRGENDWO enthalten ist. Das schließt folgendes mit ein:
Ich denke, dass ich eine detailierte Liste erstellen kann, sobald das Script weiter fortgeschritten ist. Im Moment teste ich das Script noch an meinem Testgrid. Wenn das abgeschlossen ist und absolut keine Fehler mehr existieren wird das Script an VirtuLife getestet (mit vorherigem Backup natürlich)
Viele Grüße
Christian Nill
Ich denke hier ist der richtige Platz um ein Script anzukündigen, welches die OpenSim-Datenbank bereinigt und wie es / wann es genutzt werden kann.
Zur technischen Seite. Das Script basiert auf folgender Annahme:
- OpenSim (official) 0.9.x
- MySQL 5.7
- Datenbank auf utf8_general_ci
- Alle Daten werden in einer Datenbank abgelegt (außer z.B: Suchdatenbank)
- Linux System
- PHP 7.3
WARNUNG DIREKT VORWEG: Das Script MUSS im gestoppten Zustand des Grids ausgeführt werden, da Änderungen während des Vorgangs nicht berücksichtigt werden. Ebenso muss ein Backup der Datenbank VOR der Aktion erstellt werden. Ich übernehme KEINERLEI Haftung bei Schäden, die durch das Script entstehen.
Nun zur Arbeit des Scripts. Was macht das Script / wann sollte ich es einsetzen / was genau ist ein Asset !?:
Also erstens was ein Asset ist sollte den meisten bekannt sein. Für die, die es nicht wissen:
Ein Asset ist ein Eintrag in der Datenbank was in OpenSim (oder auch Second Life) als Textur, Script, Notecard, Hose, Schuhe oder was auch immer, angezeigt wird. Wenn ihr zum Beispiel eine Textur hochladet seht ihr ein Bild und habt den Namen der Textur. In der Datenbank wird ein Asset angelegt. Wenn Ihr ein Würfelprim auf dem Boden einer Region erstellt ist das in der Datenbank ein Asset. ALLES sichtbare inklusive der Kleidung, die ihr tragt ist in der Datenbank ein Asset.
Warum brauche ich so ein Bereinigungsscript ?
Ganz einfach. Jedes Asset, welches erstellt wurde, bleibt in der Datenbank auch wenn ihr hingeht und z.B. die Textur in den Papierkorb legt und den Papierkorb leert. Das Asset bleibt in der Datenbank auch wenn theoretisch niemand mehr drauf Zugriff hat. Wenn eine Region gelöscht wird bleiben alle Assets in der Datenbank enthalten auch wenn die Prims z.B. schon gar nicht mehr verwendet werden (weil die Region nicht mehr existiert).
Das heißt wenn Ihr 50 Regionen habt mit einer täglichen Besucherzahl von rund 40 Avataren, die regelmäßig etwas neues bauen oder ein Objekt mehrmals rezzn und es danach wieder löschen bleibt das Asset trotzdem in der Datenbank. Ihr könnt euch also vorstellen, dass eine Datenbank ganz schnell mal auf mehrere 100 GB anwachsen kann.
DESHALB BRAUCHT MAN EIN BEREINIGUNGSSCRIPT.
Ich gebe zu ein solches Script ist immer eine heikle Sache aber mit gesundem Menschenverstand und entsprechender Erfahrung kann man ein solches Script erstellen. Genau das habe ich vor / bin ich aktuell dran.
Wie geht das Script vor?
Das ist im Prinzip sehr einfach erklärt.
Das Script scannt die gesamte asset-Datenbank (Tabelle assets) und prüft ob das angegebene Asset IRGENDWO enthalten ist. Das schließt folgendes mit ein:
- Inventare
- Regionen
- Scripts
- Prims
- uvm.
Ich denke, dass ich eine detailierte Liste erstellen kann, sobald das Script weiter fortgeschritten ist. Im Moment teste ich das Script noch an meinem Testgrid. Wenn das abgeschlossen ist und absolut keine Fehler mehr existieren wird das Script an VirtuLife getestet (mit vorherigem Backup natürlich)
Viele Grüße
Christian Nill