Neu FILESTREAM aktivieren, konfigurieren und einrichten in JTL-WAWI, aber wo und wie (Anleitung)?

YTSVXKNMURZEHFW

Sehr aktives Mitglied
26. Juli 2017
229
40
Hallo @mvh

so langsam bekommen wir mit Ihrer Hilfe Licht ins Dunkel ;) ;) ;)

1)
Bedeutet dies, wenn wir nur das erste Kontrollkästchen "FILESTREAM für Transact-SQL-Zugriff aktivieren" anhaken, dann müssen wir nur den SQL-Befehl mit "filestream_access_level 1" ausführen, ist dies korrekt?

2) Muss überhaupt dieser SQL-Befehl ausgeführt werden oder reicht es einfach, wenn der SQL-Server neu gestartet wird?

3) Über das SQL Server Management Studio (nicht "SQL Server Konfiguration Manager 14") könnte auch die Funktion "FILESTREAM" aktiviert werden. Haben wir dies richtig verstanden, dass wir hier an dieser Stelle nicht manuell Einstellungen vornehmen müssen, da diese ggf. über die Datenbankverwaltung/Optimierung automatsich gemacht werden?

4) Wenn wir dann die Datenbankverwaltung ausführen, legt dann die JTL-WAWI automatisch auf der Partition, wo JTL-WAWI installiert ist, ein sog. "unsichtbares Verzeichnis" für die Daten an, einmal lapidar formuliert?

5) Wenn die Aktivierung in der Datenbankverwaltung/Optimierung erfolgreich durchgelaufen ist, wäre dann FILESTREAM für den Produktiveinsatz bereit und könnte man dann über die JTL-Ameise Produktbilder importieren und diese werden dann automatisch separat gespeichert?

6) Frage zum Backup: Berücksichtigt das Backup diese Daten oder müssen diese gesondert gesichert werden, wenn ja wie da es sich ja um einen sog. "unsichbaren Odner" handelt?

Bitte enschuldigen Sie unsere Fragen, aber es gibt leider keine offizielle Anleitung im JTL-Guide ;-(

Freundliche Grüße
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
637
208
Hallo @mvh

so langsam bekommen wir mit Ihrer Hilfe Licht ins Dunkel ;) ;) ;)

1)
Bedeutet dies, wenn wir nur das erste Kontrollkästchen "FILESTREAM für Transact-SQL-Zugriff aktivieren" anhaken, dann müssen wir nur den SQL-Befehl mit "filestream_access_level 1" ausführen, ist dies korrekt?

2) Muss überhaupt dieser SQL-Befehl ausgeführt werden oder reicht es einfach, wenn der SQL-Server neu gestartet wird?

3) Über das SQL Server Management Studio (nicht "SQL Server Konfiguration Manager 14") könnte auch die Funktion "FILESTREAM" aktiviert werden. Haben wir dies richtig verstanden, dass wir hier an dieser Stelle nicht manuell Einstellungen vornehmen müssen, da diese ggf. über die Datenbankverwaltung/Optimierung automatsich gemacht werden?

4) Wenn wir dann die Datenbankverwaltung ausführen, legt dann die JTL-WAWI automatisch auf der Partition, wo JTL-WAWI installiert ist, ein sog. "unsichtbares Verzeichnis" für die Daten an, einmal lapidar formuliert?

5) Wenn die Aktivierung in der Datenbankverwaltung/Optimierung erfolgreich durchgelaufen ist, wäre dann FILESTREAM für den Produktiveinsatz bereit und könnte man dann über die JTL-Ameise Produktbilder importieren und diese werden dann automatisch separat gespeichert?

6) Frage zum Backup: Berücksichtigt das Backup diese Daten oder müssen diese gesondert gesichert werden, wenn ja wie da es sich ja um einen sog. "unsichbaren Odner" handelt?

Bitte enschuldigen Sie unsere Fragen, aber es gibt leider keine offizielle Anleitung im JTL-Guide ;-(

Freundliche Grüße

1) Ja, kannst Du machen.
2) Nein, muss man nicht, weil es "doppelt" ist, ABER nur in diesem Fall lieber zu viel als zu wenig.
3) Lieber nachkontrollieren, es sollte so aussehen:
1575989614292.png
4) Nein, das macht SQL Server für die Instanz JTLWAWI selbst. Die JTL WaWi fühlt es mit Daten, indem eine "neue" Tabellen-Struktur erstellt wird.
5) Ja, so sollte es sein.
6) Ja.
Zu 6) für alle anderen Leser/Forum-Nutzer: sollte doch der "Vollzugriff" gewählt werden, also die Dateien in Windows über E/A-Zugriff sichtbar sein, und sollte dann nur eine Bild-Datei in irgendeinem Rechner geöffnet sein, während das Backup läuft, dann kommt es zu einem Fehler und evtl. wird das Backup nicht erstellt.

Wir sind in Forum dazu, um die Fragen zu stellen und ggf. die gestellten Fragen zu beantworten. Du musst Dich GAR NICHT entschuldigen.
JTL kann nicht ALLE Fragen beantworten, ALLE Anleitungen schreiben und an ALLES denken. Obwohl manche diesen Anspruch erheben.

Mit freundlichen Grüßen, Ihr mvh-Team
 
  • Gefällt mir
Reaktionen: YTSVXKNMURZEHFW

mvh

Sehr aktives Mitglied
26. Oktober 2011
637
208
Hallo,

noch eine Kleinigkeit.
Eventuell "fehlt" der SQL Konfigurations-Manager bei euch.
Dann startet über Ausführen (Windows-Taste + R) "mmc.exe" oder über die Suche "mmc" die Microsoft Management Console
und öffnet über Datei->Öffnen aus dem Verzeichnis C:\Windows\SysWOW64
eine der vorhandenen Datei (je nach SQL-Server Version):

SQL Server 2017C:\Windows\SysWOW64\SQLServerManager14.msc
SQL Server 2016C:\Windows\SysWOW64\SQLServerManager13.msc
SQL Server 2014 (12.x)C:\Windows\SysWOW64\SQLServerManager12.msc
SQL Server 2012 (11.x)C:\Windows\SysWOW64\SQLServerManager11.msc

s. a. https://docs.microsoft.com/de-de/sq...r-configuration-manager?view=sql-server-ver15

Viele Grüße, Ihr mvh-Team
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
637
208
Hallo,
es gab noch die Frage, wie unterscheidet sich die tBild-Tabelle nach der Umstellung und warum wird die Datenbank nicht kleiner.

Die Tabelle vor der Umstellung:
SQL:
CREATE TABLE [dbo].[tBild](
    [kBild] [int] IDENTITY(1,1) NOT NULL,
    [cQuelle] [varchar](2000) NOT NULL,
    [bBild] [image] NOT NULL,
    [nDateigroesse] [int] NOT NULL,
    [nBreite] [int] NOT NULL,
    [nHoehe] [int] NOT NULL,
    [cHash] [varchar](255) NOT NULL,
    [cChecksum] [varchar](255) NOT NULL,
    [bVorschauBild] [image] NOT NULL,
    [nVorschauDateigroesse] [int] NOT NULL,
    [nVorschauBreite] [int] NOT NULL,
    [nVorschauHoehe] [int] NOT NULL,
    [dErstellt] [datetime] NOT NULL,
    [dAenderung] [datetime] NOT NULL,
    [bRowversion] [timestamp] NOT NULL,
 CONSTRAINT [PK_tBild] PRIMARY KEY CLUSTERED
(
    [kBild] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

Die Tabelle nach der Umstellung:
SQL:
CREATE TABLE [dbo].[tBild](
[kBild] [int] IDENTITY(1,1) NOT NULL,
[cQuelle] [varchar](500) NOT NULL,
[bBild] [varbinary](max) FILESTREAM NOT NULL,
[nDateigroesse] [int] NOT NULL,
[nBreite] [int] NOT NULL,
[nHoehe] [int] NOT NULL,
[cHash] [varchar](255) NOT NULL,
[cChecksum] [varchar](255) NOT NULL,
[bVorschauBild] [varbinary](max) FILESTREAM NOT NULL,
[nVorschauDateigroesse] [int] NOT NULL,
[nVorschauBreite] [int] NOT NULL,
[nVorschauHoehe] [int] NOT NULL,
[dErstellt] [datetime] NOT NULL,
[dAenderung] [datetime] NOT NULL,
[idBild] [uniqueidentifier] ROWGUIDCOL NOT NULL,
[bRowversion] [timestamp] NOT NULL,
CONSTRAINT [PK_tBild] PRIMARY KEY CLUSTERED
(
[kBild] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] FILESTREAM_ON [fsgroup],
UNIQUE NONCLUSTERED
(
[idBild] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] FILESTREAM_ON [fsgroup]
GO
ALTER TABLE [dbo].[tBild] ADD  DEFAULT (newid()) FOR [idBild]
GO

Die Veränderungen sind: Spalten bBild und bVorschauBild bekommen die Option FILESTREAM, neue Spalte idBild vom Typ ROWGUIDCOL (Indexiert)

Die zweite Frage - die Datenbank eazybusiness muss über SSMS verkleinert werden! und es könnte auch ZIEMLICH lange dauern.
s. Bild:
1575998200209.png
 
  • Gefällt mir
Reaktionen: YTSVXKNMURZEHFW

YTSVXKNMURZEHFW

Sehr aktives Mitglied
26. Juli 2017
229
40
Hallo @mvh

vielen Dank noch für die vielen Zusatzinfos. ;) ;)

Das mit dem SQL Konfigurations-Manager wollte ich auch noch reinschreiben, da dieser wirklich nur über den Direktaufruf zu finden und eine Verknüpfung unter Programme nicht vorhanden war.

Noch folgende Fragen:

1)
Ist es korrekt, wenn man mehrere Mandanten hat, dass man das obige Procedere für jeden Mandanten/Datenbank separat ausführen muss/soll?

2) Wo genau wird denn dieser Code ausgeführt, da habe ich leider nichts gefunden? Im SSMS oder SQL Konfigurations-Manager und wo findet man den Menüpunkt, wo man den Code einfügen und ausführen lassen kann für den jeweiligen Mandanten/Datenbank?

Code:
SQL:

EXEC sp_configure filestream_access_level, 1
RECONFIGURE
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
637
208
Hallo
1) Ja, jeder Mandant bei JTL ist eine andere Datenbank.
2) SSMS starten, Neue Abfrage, Code einfügen, Ausführen
1576061184720.png
1576061252303.png
Aber wie gesagt, das ist eigentlich wieder doppelt.
 
  • Gefällt mir
Reaktionen: YTSVXKNMURZEHFW

mvh

Sehr aktives Mitglied
26. Oktober 2011
637
208
In obigem Screenshot steht als Datenbank master ... sollte das nicht für den entsprechenden Mandanten ausgeführt werden?
Hallo,
SP_CONFIGURE ist datenbankunabhängig und dient dem Konfigurieren von globalen Parametern in SQL Server.
s. https://docs.microsoft.com/de-de/sq...-configure-transact-sql?view=sql-server-ver15
Wichtig wäre nur der richtige Server bzw. die Instanz, in unserem Beispiel: (local)\JTLWAWI
… und noch eine Kleinigkeit, geänderte Werte werden (sehr oft) erst nach Neustart des SQL Servers bzw. (bei bestimmten Werten) nach Neustart der Rechner/Server.
 
  • Gefällt mir
Reaktionen: YTSVXKNMURZEHFW

YTSVXKNMURZEHFW

Sehr aktives Mitglied
26. Juli 2017
229
40
Hallo @mvh und @Shopworker.de

vielen vielen Dank für die sehr schnelle Beantwortung der Fragen. ;)

Wir haben noch zwei grundlegende Fragen zum SQL-Server:

1)
Unterstützt die aktuelle Version von JTL-WAWI v1.5.12.2 auch den MS SQL Server 2019 Express (v15.x)?

2) Hat jemand schon Erfahrungen beim Upgrade von MS SQL Server 2017 Express (v14.0.3257.3) auf MS SQL Server 2019 Express muss da was beachtet werden?

Danke im Voraus und freundliche Grüße
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
637
208
Hallo @mvh und @Shopworker.de

vielen vielen Dank für die sehr schnelle Beantwortung der Fragen. ;)

Wir haben noch zwei grundlegende Fragen zum SQL-Server:

1)
Unterstützt die aktuelle Version von JTL-WAWI v1.5.12.2 auch den MS SQL Server 2019 Express (v15.x)?

2) Hat jemand schon Erfahrungen beim Upgrade von MS SQL Server 2017 Express (v14.0.3257.3) auf MS SQL Server 2019 Express muss da was beachtet werden?

Danke im Voraus und freundliche Grüße
Hallo,
1) Ja, s. https://guide.jtl-software.de/jtl-wawi/installation/systemvoraussetzungen-aller-jtl-produkte/
2) Wir haben keine Express-Version und haben keine Erfahrung mit diesem Upgrade. Aber grundsätzlich bei ausreichendem Platz gibt es keinerlei Probleme.
 
  • Gefällt mir
Reaktionen: YTSVXKNMURZEHFW

YTSVXKNMURZEHFW

Sehr aktives Mitglied
26. Juli 2017
229
40
Hallo @mvh

Wenn man über die Standard-Installationsroutine den SQL-Server Express von 2017 auf 2019 upgradet, werden dann auch automatisch die Datenbanken auf das neue Datenbank-Schema der Version 2019 upgegradet oder muss man diese manuell aktualisieren?

Danke im Voraus und freundliche Grüße
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
637
208
Hallo @mvh

Wenn man über die Standard-Installationsroutine den SQL-Server Express von 2017 auf 2019 upgradet, werden dann auch automatisch die Datenbanken auf das neue Datenbank-Schema der Version 2019 upgegradet oder muss man diese manuell aktualisieren?

Danke im Voraus und freundliche Grüße
Laut dem Upgrade-Path: Ja.
https://docs.microsoft.com/de-de/sq...ion-upgrades-version-15?view=sql-server-ver15
 
  • Gefällt mir
Reaktionen: YTSVXKNMURZEHFW

YTSVXKNMURZEHFW

Sehr aktives Mitglied
26. Juli 2017
229
40
hallo @mvh

danke für die Antwort.

Wir haben auch gesehen, dass der SQL Server 2019 erst am 04.11.2019 offiziell released wurde. Somit warten wir mit dem Upgrade für den Produktiveinsatz noch ein paar Wochen ab, bis die ersten groben Kinderkrankheiten behoben worden sind. ;)

Freundliche Grüße
 

YTSVXKNMURZEHFW

Sehr aktives Mitglied
26. Juli 2017
229
40
hallo @mvh

also wir haben es nun probiert und haben folgendes Ergebnis und folgende Fragen:

1)
SQL Konfigurations-Manager 14 (ist auch über die Computerverwaltung erreichbar!) mit Adminrechten gestartet, dann den Haken bei "FILESTREAM für Transact-SQL-Zugriff aktivieren" gesetzt, dann auf "Übernehmen" und auf "OK" geklickt.
2) Dann den SQL Server neugestartet und zur Sicherheit danach den PC nochmals neu gestartet.
3) Dann das Ereignisprotokoll auf Fehler geprüft und das Starten der Dienste kontrolliert. Alles bisher ok.
4) Die JTL-Datenbankverwaltung mit Adminrechten gestartet.
5) Dann zuerst ein Backup erstellt, dann Datenbank bereinigen, Datenbank reparieren und dann die Performanceoptimierung gestartet. Bei den drei Optimierungen hatten wir alle Haken aktiviert, da es sich bei uns noch um relativ neue Datenbanken/Mandanten handelt. Bei richtigen Produktivdatenbanken/Mandanten ggf. nur den Haken bei "Filestream aktivieren" setzen.
6) Alle Optimierungen inkl. "Filestream aktivieren" wurden erfolgreich beendet.
7) Dann haben wir den SSMS mit Adminrechten gestartet, um jede Datenbank zu überprüfen, ob Filestream korrekt aktiviert wurde. Hier haben wir aber andere Einträge bei dem Menüpunkt Filestream als @mvh in seinem Screenshot gezeigt hatte (siehe Bild). Vielleicht liegt dies an der installierten Version (2016 oder 2017) oder an der Express zur Standard-Edition?

003.PNG

8) Den SQL-Befehl, wo auch mehrmals von @mvh angesprochen wurde, dass dies Doppelt wäre, haben wir nicht nochmals manuell ausgeführt.
9) Uns ist zudem im SSMS aufgefallen, dass nun weitere Einträge pro Datenbank/Mandant in den Datenbankeigenschaften bezüglich Filestream hinzugefügt wurden (siehe Bilder).

001.PNG

002.PNG

Unsere Fragen:

10)
Müssen wir nun in der JTL-Datenbankverwaltung bei zukünftigen Performanceoptimierungen den Haken bei "Filestream aktivieren" entfernen?

11) Was würde denn passieren, wenn der Haken aktiv bleiben würde?

12) Oder muss in regelmässigen Abständen die Performanceoptimierung mit dem Haken bei "Filestream aktivieren" durchgeführt werden, da erst dann die neu hinzugefügten Bilder/Dokumente in den Filestream-Ordner verschoben werden?

13) Sind die Einträge im SSMS bei Filestream so korrekt?

14) Off-Topic: Kann man den Titel des Posts im nachhinein noch ändern/korrigieren?

Wir hoffen es war halbwegs verständlich was wir gemacht haben und was wir noch fragen wollen ;)

Vielen Dank schon mal im Voraus und freundliche Grüße
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
637
208
Hallo,
sehr gut gemacht und gut dokumentiert, so weit alles richtig.
10) Nein. Und falls es doch jemand ausprobieren möchte, dann vorerst ein Backup erstellen.
11) Nichts. Es wird nur geprüft, ob die tBild-Struktur immer noch stimmt.
12) FILESTREAM-Zugriff ist direkt in der Datenbank, in der tBild-Tabelle als Verweis. Man muss nichts mehr tun. Und auf keinen Fall spaßeshalber den Hacken einfach so entfernen.
Zum Verständnis: FILESTREAM ist eine interne Struktur und wird von dem SQL Server gesteuert, die WaWi arbeitet wie gewohnt nur mit der tBild-Tabelle, der Rest wird vom SQL Server erledigt.
Würde jemand theoretisch die WaWi-Datenbank sichern, danach die tBild-Tabelle auf FILESTREAM umstellen, neue Bilder reinfahren und danach die alte Sicherung wiederherstellen,
wären die Daten weg, obwohl die Bilder immer noch als "Dateien" vorhanden sind, nur die Verweise zu diesen Dateien in der tBild-Tabelle sind nicht mehr vorhanden.
13) Ja.
14) Wende dich an einen der Moderatoren in Forum.
Für Andere, die jetzt schon an die 10GB-Grenze kommen würden: Nach allen diesen Schritten, sollte die Datenbank VERKLEINERT werden.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: YTSVXKNMURZEHFW

YTSVXKNMURZEHFW

Sehr aktives Mitglied
26. Juli 2017
229
40
Hallo @mvh

1) wird die Filestream-Option auch bei den Swatches-Bildern angewandt?
2) Gibt es eine Übersicht, für welche Dokumente in der JTl-Wawi auch noch die FILESTREAM-Option genutzt wird?
3) Kann man dies über den SSMS nachschauen, wenn man die Tabellenstruktur einsehen würde, natürlich nichts verändern?

Danke im Voraus und freundliche Grüße
 

YTSVXKNMURZEHFW

Sehr aktives Mitglied
26. Juli 2017
229
40
NACH DER UMSTELLUNG
SQL:
CREATE TABLE [dbo].[tBild](
[kBild] [int] IDENTITY(1,1) NOT NULL,
[cQuelle] [varchar](500) NOT NULL,
[bBild] [varbinary](max) FILESTREAM NOT NULL,
[nDateigroesse] [int] NOT NULL,
[nBreite] [int] NOT NULL,
[nHoehe] [int] NOT NULL,
[cHash] [varchar](255) NOT NULL,
[cChecksum] [varchar](255) NOT NULL,
[bVorschauBild] [varbinary](max) FILESTREAM NOT NULL,
[nVorschauDateigroesse] [int] NOT NULL,
[nVorschauBreite] [int] NOT NULL,
[nVorschauHoehe] [int] NOT NULL,
[dErstellt] [datetime] NOT NULL,
[dAenderung] [datetime] NOT NULL,
[idBild] [uniqueidentifier] ROWGUIDCOL NOT NULL,
[bRowversion] [timestamp] NOT NULL,
CONSTRAINT [PK_tBild] PRIMARY KEY CLUSTERED

Hallo @mvh

Wir haben über den SSMS mal die Tabelle dbo.tBild komplett aufgeklappt und festgestellt, dass bei den Spalten bBild und bVorschauBild aber nicht FILESTREAM und bei idBild nicht ROWGUIDCOL eingetragen wurde, habt Ihr ggf. einen Rat was wir noch machen müssen?

001.JPG

Vielen Dank im Voraus und freundliche Grüße
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
637
208
Hallo @mvh

1) wird die Filestream-Option auch bei den Swatches-Bildern angewandt?
2) Gibt es eine Übersicht, für welche Dokumente in der JTl-Wawi auch noch die FILESTREAM-Option genutzt wird?
3) Kann man dies über den SSMS nachschauen, wenn man die Tabellenstruktur einsehen würde, natürlich nichts verändern?

Danke im Voraus und freundliche Grüße
1) Ich weiß nicht, was das ist. Bei ALLEN Bildern, die in der Datenbank gespeichert werden, wird FILESTREAM-Option benutzt.
2) Nein, gibt es nicht. Und außer bei Bildern habe ich keine andere Tabelle gefunden.
3) Ja, aber bei zig-Tabellen, ohne Erfahrung, würde es dir abraten. Wie gesagt, ich kenne keine andere Tabelle außer tBild
 
  • Gefällt mir
Reaktionen: YTSVXKNMURZEHFW

YTSVXKNMURZEHFW

Sehr aktives Mitglied
26. Juli 2017
229
40
Hallo @mvh

konntet Ihr mal in Eurer Datenbank nachschauen, ob die dbo.tBild-Tabelle bei euch genauso aussieht (ohne Filestream) wie bei uns (siehe Post #37) ? Und wenn nicht, was müßten wir ggf. noch machen?

Danke im Voraus und freundliche Grüße
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
637
208

Anhänge

  • 1576397430779.png
    1576397430779.png
    34,1 KB · Aufrufe: 15