Umstieg von Kodi Nexus auf Omega mit zentraler MariaDB

  • Ich habe einen PC mit Linux Mint 21, Dual Sat TV Karte, TVHeadend und Kodi Nexus am laufen. Dareauf liegen meine Filme, Musik, Bilder und Live TV Aufnahmen. Der PC dient nur als "Server". Als Kodi Clients habe ich 2 TV Boxen und einen Sony TV mit Android und darauf Kodi. Der "Server" hat eine MariaDB und macht bei jedem Start eine Aktualiserung der Kodi Datenbank. Die Kodi Clients greifen auf diese MariaDB nur lesend zu.

    Nun möchte ich den "Server" und die Cleints auf Kodi Omega umstellen. Bei den Clients sehe ich da kein Problem. Aber wie mache ich gebau das Update der MariaDB von Nexus auf Omega (sinnvollerweise mit vorherigem Backup)? Möchte nichts an diesem seit Jahren stabil laufenden System zerschiessen.

  • Naja entweder machst du nen DB Dump aus der laufenden DB heraus, oder die fährst die DB runter und sicherst die Dateien in denen deine Datenbanken liegen.

    Weg Nr.2 bedeutet zwar eine Downtime ist beim recovern aber wesentlich schneller (man sollte nur nicht die DB Software aktualisieren zwischendurch).

    Wo diese Daten liegen hängt davon ab ob MariaDB bare metal installiert ist oder ggf. in einem Container läuft. Normalerweise legt Kodi bei einem Upgrade neue DB's an und lässt die alten bestehen so das nix passieren sollte, aber ein Backup kann nicht schaden.

  • Bei mir klappt das immer so:
    Datenbank sichern und Backup der Kodiinstallationen.
    Ein Kodi updaten auf Omega, dabei werden die Daten der alten Datenbaken in die neue migriert.
    Alte Datenbanken (MyVideos121 und MyMusic82) umbenennen und die anderen Kodis updaten.
    Solltest du die alten nicht umbenenne gibts Fehler. Siehe Link oben von ratman.
    Sollte alles klappen kannst du dann die alten Datenbanken löschen.
    Bei meinen 3 Kodis ging das perfekt.

  • Ich benutze ebenfalls MariaDB für unterschiedliche Systeme (Linux, Core- und LibreElec) in unterschiedlichen Versionen. Bei einem Upgrade von Nexus nach Omega werden die Datenbanken auf eine höhere Version migriert (bspw. die VideoDB von 121 auf 131). Dabei wird die "alte" DB nur lesend angefasst und später - entgegen anderen Aussagen - auch nach dem Migrieren nicht gelöscht. Unter gewissen Umständen kann jedoch das Migrieren fehlschlagen und Omega startet mit einer leeren 131er. In dem Fall kann man die neue 131 (MyVideos131.db) einfach löschen und Omega nochmal neu starten. Schlägt die Migration erneut fehl, muss man den Fehler in der 121 suchen. In der Regel handelt es sich dabei um Datensätze mit doppelter/mehrfacher ID.

    Dazu gibt es Tipps im Kodi.tv Forum. Siehe auch Links oben.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Alte Datenbanken (MyVideos121 und MyMusic82) umbenennen und die anderen Kodis updaten.
    Solltest du die alten nicht umbenenne gibts Fehler. Siehe Link oben von ratman.

    Wenn ich das machen würde, würden meine Kodis unter Nexus und Matrix schlichtweg nicht mehr laufen - wie auch, wenn die DBs nicht mehr existent sind. Wenn eine MyVideos131.db (Omega) bereits existiert (vom ersten geupdateten Gerät), nutzen später aktualisierte Geräte diese DB - es erfolgt also keine erneute Migration!

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Wenn ich das machen würde, würden meine Kodis unter Nexus und Matrix schlichtweg nicht mehr laufen - wie auch

    Das stimmt! Er will ja alle auf Omega updaten und da braucht er die 121 ja nicht mehr.
    Nutzt man Omega und Nexus wäre das natürlich falsch und man muss mit dem umbenennen warten bis man die nächste Kodiinstallation updatet.
    Man kann es auch ganz lassen und hoffen das beim nächsten update nix schief geh.

  • Wenn man von Omega wieder zurück auf Nexus muss (weil z.B. auf dem Raspberry der Audio-Hat nicht mehr unterstützt wird), zieht man sich durch das löschen/umbenennen den Boden unter den eigenen Füßen weg...

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • ich hätte auch noch 'ne frage ... was passiert in folgendem szenario?

    ich hab ja 2 kodis über db verbunden, weil das die geräte sind, die ich hauptsächlich nutze.
    meine holde hat 'nen kodi ohne mysql, weil sie bisher nur auf einem gerät schaut.

    jetzt will sie aber eventuell auch 'nen kodi am tablet haben, der sich dann idealerweise auch mit ihrem "tv-kodi" abgleicht.
    --> wie kriegt mans eigentlich hin, dass auch die holde am selben mysql eine EIGENE db fahren kann?
    reichts da, dass die user verschieden sind, die auf mysql zugreifen, oder wie wäre das zu lösen? und wenn ja: wie krieg’ ich ihren user auf eine noch nicht vorhandene db fixiert? oder regelt das dann kodi?

  • Wenn man fertig ist mit Updaten und hat doch noch eine Nexus oder Matrix Verison oder als Backup behalten möchte einfach wieder zurückbenennen?

    Wozu? [ag] Im Anhang mal ein Screenshot meiner DBs auf dem zentralen Server. Da ich seit Nexus z.B. schon bei den Omega Alphas/Betas/RC dabei bin, gibt es zwischen 121 und 131 durchaus etwas mehr:

  • ich hätte auch noch 'ne frage ... was passiert in folgendem szenario?

    ich hab ja 2 kodis über db verbunden, weil das die geräte sind, die ich hauptsächlich nutze.
    meine holde hat 'nen kodi ohne mysql, weil sie bisher nur auf einem gerät schaut.

    jetzt will sie aber eventuell auch 'nen kodi am tablet haben, der sich dann idealerweise auch mit ihrem "tv-kodi" abgleicht.
    --> wie kriegt mans eigentlich hin, dass auch die holde am selben mysql eine EIGENE db fahren kann?
    reichts da, dass die user verschieden sind, die auf mysql zugreifen, oder wie wäre das zu lösen? und wenn ja: wie krieg’ ich ihren user auf eine noch nicht vorhandene db fixiert? oder regelt das dann kodi?

    Naja du erstellst auf deinem MySQL Server halt für Sie eine extra Datenbank und trägst diese dann in die Advanced Settings bei Ihr ein.

    Ein MySQL Server kann ja durchaus mehrere Datenbanken verwalten ;)

  • Ich darf sicherlich Kodi Nexus auf dem "Server" PC nicht löschen. Denn dann wären die Daten von Kodi Nexus in der MariaDB ja auch weg. Also muß ich das Kodi auf dem "Server" PC updaten von Nexus auf Omega? So wie ich das nun verstehe, "weiß" Kodi nach dem Update, daß es "alte" Nexus DBs gibt und daß nun die Nexus DBs in neue Omega DBs migriert werden müssen?

    Die einzelnen Kodi Clients greifen ja nur LESEND auf die zentrale MariaDB auf dem Linux Mint PC zu. Die einzelnen Clients stossen KEINE Aktualisierung der MariaDB an. Nur das Kodi auf dem Linux Mint PC aktualisiert die zentrale MariaDB einmalig beim Starten von Kodi.

    Mal sehen ob ich da mal ran wage die nächsten Tage. Never change a running system

  • Naja so ganz richtig ist das was du sagst nicht.

    Wenn du Kodi auf dem "Server" löscht dann ist die Datenbank noch da. MariaDB/MySQL ist ja ein seperates Programm.

    Wenn du Kodi nun Upgradest oder neu installierst und die dementsprechenden Änderungen in der as.xml machst dann merkt die neue Kodi installation: Ui da ist ja schon eine DB, aber das ist ne alte. Gut ich lege also eine neue mit der aktuellen Struktur an und kopiere meine Daten da rein. Gelöscht wird da nix, ist auch vollkommen unnötig und würde ich auch nicht tun.

    Die Annahme das deine "Clients" nur lesend zugreifen ist jedoch falsch, sonst könnten die ja auch keinen Watched State schreiben etc. In Wirklichkeit gibt es unter deinen Kodi Installationen keine Unterscheidung zwischen Server und Client. Wenn du jetzt einen deiner "Clients" zuerst Updatest dann wird dieser nämlich die Migration der DB anstoßen.

    Deshalb ist es auch wichtig das du alle deine Clients möglichst gleichzeitig auf die neue Kodi Version updatest damit Sie nicht auf verschiedenen Datenbankständen arbeiten.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!