#1 2022-04-16 09:34:32

cochems
Member
Registered: 2021-08-15

Nach Installation: missing table [RS_ACE]

Hallo zusammen,

wir betreiben ReportServer Entreprise Edition seit letztem Jahr bisher auf einem bitnami-Image.
Ich wollte den Server jetzt auf eine andere Maschine umziehen und scheitere an der Datenbankstruktur.

Fehlerbeschreibung:
Nach Start des Tomcat (Tomcat 9) bricht der Start der ReportServer-Webapp mit folgender Meldung ab (aus Log catalina.out):

[2022-04-16 10:29:54] [info] Deploying web application directory [/var/lib/tomcat9/webapps/reportserver]
[2022-04-16 10:30:04] [info] At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
[2022-04-16 10:30:05] [info] 10:30:05.148 INFO  n.datenwerke.rs.EnvironmentValidator -
[2022-04-16 10:30:05] [info] #015
[2022-04-16 10:30:05] [info] #015
[2022-04-16 10:30:05] [info] #015
[2022-04-16 10:30:05] [info] #015
[2022-04-16 10:30:05] [info]   _____                       _    _____                            ______       _                       _
[2022-04-16 10:30:05] [info]  |  __ \                     | |  / ____|                          |  ____|     | |                     (_)
[2022-04-16 10:30:05] [info]  | |__) |___ _ __   ___  _ __| |_| (___   ___ _ ____   _____ _ __  | |__   _ __ | |_ ___ _ __ _ __  _ __ _ ___  ___
[2022-04-16 10:30:05] [info]  |  _  // _ \ '_ \ / _ \| '__| __|\___ \ / _ \ '__\ \ / / _ \ '__| |  __| | '_ \| __/ _ \ '__| '_ \| '__| / __|/ _ \
[2022-04-16 10:30:05] [info]  | | \ \  __/ |_) | (_) | |  | |_ ____) |  __/ |   \ V /  __/ |    | |____| | | | ||  __/ |  | |_) | |  | \__ \  __/
[2022-04-16 10:30:05] [info]  |_|  \_\___| .__/ \___/|_|   \__|_____/ \___|_|    \_/ \___|_|    |______|_| |_|\__\___|_|  | .__/|_|  |_|___/\___|
[2022-04-16 10:30:05] [info]             | |                                                                              | |
[2022-04-16 10:30:05] [info]             |_|                                                                              |_|
[2022-04-16 10:30:05] [info] #015
[2022-04-16 10:30:05] [info] Version: RS4.1.0-6059 2022-04-08-13-30-34
[2022-04-16 10:30:05] [info] Code Version: 2022-04-01-13-05-34
[2022-04-16 10:30:05] [info] Java Version: Debian OpenJDK 64-Bit Server VM 11.0.14+9-post-Debian-1deb10u1 (11)
[2022-04-16 10:30:05] [info] VM Args: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Drs.configdir=/opt/reportserver/ -Dfile.encoding=UTF8 --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED -Djavax.net.ssl.trustStoreType=JKS -Xms512M -Xmx2048M -Dignore.endorsed.dirs= -Dcatalina.base=/var/lib/tomcat9 -Dcatalina.home=/usr/share/tomcat9 -Djava.io.tmpdir=/tmp
[2022-04-16 10:30:05] [info] rs.configdir: /opt/reportserver (OK)
[2022-04-16 10:30:05] [info] #015
[2022-04-16 10:30:05] [info] ### DB Config ###
[2022-04-16 10:30:05] [info] hibernate.dialect: net.datenwerke.rs.utils.hibernate.MariaDbDialect (OK)
[2022-04-16 10:30:05] [info] hibernate.connection.driver_class: org.mariadb.jdbc.Driver (OK)
[2022-04-16 10:30:05] [info] hibernate.connection.url: jdbc:mariadb://localhost:3306/bitnami_reportserver (OK)
[2022-04-16 10:30:05] [info] hibernate.connection.username: bn_reportserver
[2022-04-16 10:30:05] [info] hibernate.connection.password: **********
[2022-04-16 10:30:05] [info] hibernate.default_schema:
[2022-04-16 10:30:05] [info] #015
[2022-04-16 10:30:05] [info] Connection Test: OK
[2022-04-16 10:30:05] [info] Schema Version: RS3.0-22
[2022-04-16 10:30:05] [info] #015
[2022-04-16 10:30:05] [info] ### Internal datasource metadata ###
[2022-04-16 10:30:05] [info] Database name: MariaDB
[2022-04-16 10:30:05] [info] Database version: 10.3.34-MariaDB-0+deb10u1
[2022-04-16 10:30:05] [info] Driver name: MariaDB Connector/J
[2022-04-16 10:30:05] [info] Driver version: 2.7.4
[2022-04-16 10:30:05] [info] JDBC major version: 4
[2022-04-16 10:30:05] [info] JDBC minor version: 2
[2022-04-16 10:30:05] [info] JDBC URL: jdbc:mariadb://localhost:3306/bitnami_reportserver
[2022-04-16 10:30:05] [info] JDBC username: bn_reportserver
[2022-04-16 10:30:05] [info] #015
[2022-04-16 10:30:05] [info] 10:30:05.153 INFO  n.datenwerke.rs.EnvironmentValidator - Validating database schema...
[2022-04-16 10:30:07] [info] 10:30:07.987 ERROR n.datenwerke.rs.EnvironmentValidator - Schema-validation: missing table [RS_ACE]
[2022-04-16 10:30:07] [info] 10:30:07.989 ERROR n.d.rs.ReportServerServiceConfig - ReportServer encountered an error while validating its environment. Startup interrupted.
[2022-04-16 10:30:08] [info] Deployment of web application directory [/var/lib/tomcat9/webapps/reportserver] has finished in [14,256] ms

Dies ist die Meldung nach einer frischen Installation von Version 4.1.0 und nach Ausführung des Scripts reportserver-RS4.1.0-6059-schema-MySQL5_CREATE.sql aus dem Verzeichnis ddl.

Betriebssystem ist Debian 10, Datenbank ist MariaDB 10.4.

Ziel ist die Migration des Servers auf dem Bitnami-Abbild. Dieser lief noch in Version 3.7; ich hatte zuerst alle Dateien aus dem Webapp-Verzeichnis gepackt und auf den Zielserver gelegt und die Datenbank (dort ist es MariaDB 10.3) hinübergespielt. Dies lief auch nicht; hier kam zunächst der Fehler, dass die Tabelle RS_SCHEMAINFO nicht gefunden wird. Mir war aufgefallen, dass im Dump von dem Bitnami-Abbild alle Tabellennamen kleingeschrieben sind; nach Umbenennen der Tabelle rs_schemainfo in RS_SCHEMAINFO kam dieser Fehler nicht mehr, dafür der oben gezeigte. Interessanterweise schafft aber ein Umbenennen der rs_ace in RS_ACE keine Abhilfe.

Aufgrund dieses Beitrags habe ich in der my.cnf diese Variable gesetzt:

lower_case_table_names = 1

Dies ist auch im Bitnami-Abbild so eingestellt. Dann funktioniert der ReportServer mit der Datenbank-Sicherung, aber alle anderen Datenbanken, die auf dem Zielserver laufen (hier laufen auch andere Applikationen) arbeiten dann natürlich nicht mehr richtig; tatsächlich greift der ReportServer auch auf diese Datenbanken zu, was dann auch fehlschlägt, da natürlich alles unter Beachtung von Groß- und Kleinschreibung definiert ist.

Ich habe verschiedene Varianten versucht, etwa:

  • Version 3.7 gesichert und auf den Zielserver gespielt

  • Update des Quellservers auf ReportServer 4.1.0, Neuinstallation von 4.1.0 auf dem Zielserver, dann erst Import der gesicherten Datenbank/

  • Alle Tabellen in der Sicherung der Quelldatenbank in Großbuchstaben umbenannt

  • nach Import der Quelldatenbank reportserver-RS4.1.0-6059-schema-MySQL5_DROP.sql ausgeführt und anschliessend reportserver-RS4.1.0-6059-schema-MySQL5_CREATE.sql

Meine Einstellungen zur Datenbank in der persistence.properties (Credentials sind natürlich auch hinterlegt, Connect klappt ja auch):

# MariaDb 
hibernate.dialect=net.datenwerke.rs.utils.hibernate.MariaDbDialect
hibernate.connection.driver_class=org.mariadb.jdbc.Driver
hibernate.connection.url=jdbc:mariadb://localhost:3306/bitnami_reportserver

Ich weiß nicht, was ich noch tun könnte und bitte um Hilfe. Falls noch Informationen oder Log-Einträge benötigt werden, lasst es mich wissen.

Vielen Dank im voraus!

Schöne Ostertage,
Nicole Cochems

Offline

#2 2022-04-19 09:30:05

eduardo
Administrator
Registered: 2016-11-01
Website

Re: Nach Installation: missing table [RS_ACE]

Hallo Nicole,

"Dies ist auch im Bitnami-Abbild so eingestellt. " -> Meinst Du in der Standard Bitnami Installation? Wo genau ist das so eingestellt?

"Dann funktioniert der ReportServer mit der Datenbank-Sicherung, aber alle anderen Datenbanken, die auf dem Zielserver laufen (hier laufen auch andere Applikationen) arbeiten dann natürlich nicht mehr richtig; tatsächlich greift der ReportServer auch auf diese Datenbanken zu, was dann auch fehlschlägt, da natürlich alles unter Beachtung von Groß- und Kleinschreibung definiert ist." -> was genau funktioniert nicht bei diesen Datenbanken? Diese müssten andere JDBC Urls geben, was haben diese mit der RS DB zu tun ? Kannst Du hier bitte ein paar Screenshots posten (http://imgbb.com)

Viele Grüße
Eduardo

Offline

#3 2022-04-19 17:11:13

cochems
Member
Registered: 2021-08-15

Re: Nach Installation: missing table [RS_ACE]

Hallo Eduardo,

vielen Dank für Deine Antwort.

In der Standard-Bitnami-Installation, die wir letztes Jahr installiert haben, ist das tatsächlich so eingestellt im MariaDB-Start-Script:

bitnami mariadb start-script

Bzgl. der anderen Datenbanken meine ich den Zugriff auf meine definierten Datenquellen. ZB. habe ich diese hier definiert:
example datasource

Nach dem Einstellen von

lower_case_table_names = 1

in der /etc/mysql/my.cnf startet der ReportServer fehlerfrei und ich kann mich anmelden. Ich könnte wahrscheinlich jetzt auch neue Datenquellen definieren.

Bei den vorhandenen (mit Groß-/Kleinschreibung angelegten) schlägt bereits ein Verbindungstest fehl:

no connection
unknown database

Durch die Einstellung findet er offenbar die Datenbanken (und Tabellen), die nicht in kleingeschriebenen Buchstaben gespeichert sind, nicht mehr.
Auch die anderen Applikationen, die auf unsere Datenbanken zugreifen, arbeiten dann nicht mehr richtig. Deshalb ist das leider keine Option.

Es lässt mich aber vermuten, dass das Startproblem mit der Groß-/Kleinschreibung zusammenhängt.

Schönen Abend,
Nicole

Offline

#4 2022-04-20 09:11:35

eduardo
Administrator
Registered: 2016-11-01
Website

Re: Nach Installation: missing table [RS_ACE]

Hallo Nicole,

die RS Metadaten sollten nicht in der gleichen DB enthalten sein, als die fachliche DB (in diesem Fall die CRM DB). Wenn diese getrennt sind, gibt es nicht solche Querabhängigkeiten, wie diese, die Du gerade beobachtest, dass die CRM plötzlich nicht mehr funktioniert wenn Du die Einstellung änderst.
Außerdem, sehe ich, dass Du die Bitnami Linux Installation verwendest. Bitnami bietet seit Juni 2021 keine Linux Installer Pakete mehr: https://blog.bitnami.com/2021/04/amplif … ative.html

Stattdessen werden Docker Installationen empfohlen oder manuelle Installationen. Mit manuellen Installationen hast Du die Kontrolle, was genau wie installiert ist, hier findest Du die Installation Best Practices: https://reportserver.net/en/tutorials/i … -practice/

Ich würde Dir empfehlen, zuerst eine manuelle Installation auf die gleiche RS-Version vorzunehmen, die Du hattest. Dann die DB-Daten migrieren, und erst danach ein Upgrade durchführen. Hier der Upgrade Guide: https://reportserver.net/en/tutorials/upgrade-30/

Viele Grüße
Eduardo

Offline

#5 2022-04-20 21:51:02

cochems
Member
Registered: 2021-08-15

Re: Nach Installation: missing table [RS_ACE]

Guten Abend,

danke für Deine Antwort.

Genau das ist meine Intention; ich will den ReportServer von dem Bitnami-Abbild auf einen unserer Linux Server migrieren. Da wir unsere Reports inzwischen schon fast alle auf unser sog. "Warehouse" (ein Datenbankserver, wo Kopien verschiedener Datenquellen vorgehalten werden aus Performance-Gründen) umgestellt haben, möchte ich den ReportServer auf eben diesem Warehouse laufen lassen. Deshalb hatte ich zuerst (vor dem Update) die Datenbank und die Webapp-Dateien dorthin portiert. Das läuft eben auch mit der DB-Einstellung "lower_case_table_names = 1", aber die anderen Datenbanken sind natürlich alle case-sensitive erzeugt und funktionieren mit dieser Einstellung eben nicht.

Die manuelle Installation mit 3.7 hatte ich zwar nicht durchgeführt, aber nach dem Update auf 4.1.0 in dem Bitnami-Abbild hatte ich manuell 4.1.0 auf dem Warehouse installiert mit der Absicht, dann die DB-Daten zu migrieren, wie Du es vorschlägst (nur eben alles mit 4.1.0 - also die gleichen Versionen auf beiden Servern). Aber das schlägt mit dem beschriebenen Fehler fehl, und auch die nackte Neuinstallation funktioniert ohne das "lower_case_table_names = 1" vor Ausführen von reportserver-RS4.1.0-6059-schema-MySQL5_CREATE.sql eben leider nicht (siehe Fehlerbeschreibung im Eingangspost: das kommt bereits nach der frischen Installation).

die RS Metadaten sollten nicht in der gleichen DB enthalten sein, als die fachliche DB (in diesem Fall die CRM DB). Wenn diese getrennt sind, gibt es nicht solche Querabhängigkeiten, wie diese, die Du gerade beobachtest, dass die CRM plötzlich nicht mehr funktioniert wenn Du die Einstellung änderst.

Das habe ich leider nicht verstanden. Die Datenbanken sind natürlich getrennt. Sie laufen allerdings auf dem gleichen MariaDB-Server.

Ich habe den Verdacht, dass ich einen exklusiven Server für den ReportServer benutzen muss, wo ich dann eben "lower_case_table_names = 1" setze. hmm

Offline

Board footer

Powered by FluxBB