Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
MySQL Datenbank splitten
#1
FSAssetService

Ich habe mal ein kleines Script gemacht welches die Assets vom Rest der Datenbank trennt.
Dies ändert nicht eure Datenbank, sondern erstellt 2 neue Datenbank Sicherungen.
Dies ist praktisch wenn man auf fsassets umstellen möchte.
Achtung! Dies kann lange dauern, bitte macht das in einem screen damit die Datenverbindung
auch mal verloren gehen kann, ohne direkt die Sicherung zu beenden.

Dies ist für alle Datenbanken geeignet, die wie die Datenbank von OpenSim 0.9.2, folgende Tabellen enthalten:

AgentPrefs auth Avatars classifieds Friends GridUser hg_traveling_data im_offline
inventoryfolders inventoryitems migrations MuteList os_groups_groups os_groups_invites
os_groups_membership os_groups_notices os_groups_principals os_groups_rolemembership
os_groups_roles Presence regions tokens UserAccounts userdata usernotes userpicks
userprofile usersettings assets

Ansonsten muss das Shell Skript geändert werden.

Neuer-Datenbankname und Neuer-Asset-Datenbankname sind stellvertretend für eure gewünschten Datenbank Namen.

Beispiel:
screen -S backupsitzung
./osmysqlsplitt.sh

Der screen beendet sich nach Abarbeitung des Skriptes automatisch.
Ihr braucht also nur schauen ob die Sitzung noch läuft und das geht mit "screen -ls",
wenn es nicht mehr läuft sind die Backups fertig.

Vor dem sichern der Datenbank muss geschaut werden ob die Datei
mysqldump.cnf
im Verzeichnis
/etc/mysql/mysql.conf.d/
auch die Zeile
max_allowed_packet=2147483648
enthält sonst könnten nicht alle Daten Ordnungsgemäß gesichert werden.


osmysqlsplitt.sh

Code:
#! /bin/bash

# Fuer Linux und OpenSim 0.9.2
# Datenbank aufteilen fuer eine Externe Asset Datenbank.
# Bitte im Verzeichnis /opt das Verzeichnis backup anlegen,
# oder den Pfad zu eurem gewuenschtem Verzeichnis aendern.

# Starten wuerde ich in einem screen empfehlen, da es sehr lange dauern kann.
# screen Sitzung mit dem Namen backupsitzung starten:
# screen -S backupsitzung

# Die naechsten 5 Konfiguratinszeilen muessen geaendern werden:
MYSQLUSERNAME=euerBenutzername
MYSQLPASSWORD=euerPasswort
GRIDATENBANKNAME=Alter-Datenbankname
NEUERGRIDATENBANKNAME=Neuer-Datenbankname
NEUERASSETDATENBANKNAME=Neuer-Asset-Datenbankname

cd /opt/backup


# Hier wird eure Datenbank gesichert ausser den Assets.
echo "$(tput setaf 4)OpenSim: $(tput setab 3)Jetzt wird eure Datenbank gesichert ausser den Assets.$(tput sgr 0)"
mysqldump -u$MYSQLUSERNAME -p$MYSQLPASSWORD $GRIDATENBANKNAME AgentPrefs auth Avatars classifieds Friends GridUser hg_traveling_data im_offline inventoryfolders inventoryitems migrations MuteList os_groups_groups os_groups_invites os_groups_membership os_groups_notices os_groups_principals os_groups_rolemembership os_groups_roles Presence regions tokens UserAccounts userdata usernotes userpicks userprofile usersettings > $NEUERGRIDATENBANKNAME.sql
# Hier werden eure Assets gesichert.
echo "$(tput setaf 4)OpenSim: $(tput setab 3)Jetzt werden eure Assets gesichert.$(tput sgr 0)"
mysqldump -u$MYSQLUSERNAME -p$MYSQLPASSWORD $GRIDATENBANKNAME assets > $NEUERASSETDATENBANKNAME.sql

AssetService Bereich meiner Robust.ini (Robust.HG.ini)

Code:
[AssetService]
   ;; Choose an asset service (Only one option should be enabled)
   ;LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
   LocalServiceModule = "OpenSim.Services.FSAssetService.dll:FSAssetConnector"

   ;; FSAsset Directories. Base directory, where final asset files are stored and Spool directory for temp files
   ;; These directories must be on the same physical filesystem
   BaseDirectory = "./fsassets/data"
   SpoolDirectory = "./fsassets/tmp"

   ;; Original service can be checked if FSAssets can not find an asset
   FallbackService = "OpenSim.Services.AssetService.dll:AssetService";

   ;; How many days since last updating the access time before its updated again by FSAssets when accessing an asset
   ;; Reduces DB calls if asset is requested often. Default value 0 will always update access time
   DaysBetweenAccessTimeUpdates = 0

   ;; Should FSAssets print read/write stats to the robust console, default is true
   ShowConsoleStats = true

   ;; FSAssets Custom Database Config (Leave blank to use grids default database configuration)
    StorageProvider = "OpenSim.Data.MySQL.dll"
    ConnectionString = "Data Source=localhost;Database=assetdatabase;User ID=user;Password=userpasswd;Old Guids=true;"
   Realm = "fsassets"

   ;; The following are common to both the default asset service and FSAsset service

   ;; Common asset service options
   DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
   AssetLoaderArgs = "./assets/AssetSets.xml"

   ; Allow maptile assets to remotely deleted by remote calls to the asset service.
   ; There is no harm in having this as false - it just means that historical maptile assets are not deleted.
   ; This only applies to maptiles served via the version 1 viewer mechanisms
   ; Default is false
   ;AllowRemoteDelete = false
    AllowRemoteDelete = true

   ; Allow all assets to be remotely deleted.
   ; Only set this to true if you are operating a grid where you control all calls to the asset service
   ; (where a necessary condition is that you control all simulators) and you need this for admin purposes.
   ; If set to true, AllowRemoteDelete = true is required as well.
   ; Default is false.
   AllowRemoteDeleteAllTypes = true

Jetzt noch 3 schritte:

1. Zwei neue Datenbanken anlegen (Neuer-Datenbankname und Neuer-Asset-Datenbankname).
mysql -uBenutzername -pPassword
CREATE DATABASE Neuer-Datenbankname;
CREATE DATABASE Neuer-Asset-Datenbankname;
Quit;

2. Die  Neuer-Datenbankname in die gleichnamige neue Datenbank zurück sichern.
mysql -uBenutzername -pPassword Neuer-Datenbankname < /opt/backup/Neuer-Datenbankname.sql

3. Neue Datenbanken in die Robust.ini eintragen und das Grid einmal Starten damit die Einträge der Neuer-Asset-Datenbankname angelegt werden.

3.Die Tabelle assets in der Neuer-Asset-Datenbankname löschen dann die gleichnamige neue Datenbank zurück sichern.
mysql -uBenutzername -pPassword Neuer-Asset-Datenbankname < /opt/backup/Neuer-Asset-Datenbankname.sql


Ich hoffe jetzt qualmt euch nicht der Kopf.
- Beipackzettel: Kann Spuren von persönlichen Meinungen, Sarkasmus und Ironie enthalten.
Ausdrücke sind nicht für den Verkehr geeignet. Gelesen mindestens haltbar, siehe oben. -
Antworten }
Thanks given by: Achim
#2
Überarbeitet am: 28.05.2020
- Beipackzettel: Kann Spuren von persönlichen Meinungen, Sarkasmus und Ironie enthalten.
Ausdrücke sind nicht für den Verkehr geeignet. Gelesen mindestens haltbar, siehe oben. -
Antworten }
Thanks given by: Achim


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste