Anwendungen

Reset der Synology Photo Station

23. Juni 2016 · Anwendungen · andreas · 8 Kommentare

Nachdem die Datenbank der Photo Station leider beschädigt war, musste sie zurückgesetzt werden.

Symptome waren u.a. Meldungen in der Form

Jun 14 21:11:06 mynas synoindexplugind: Failed to run PQexec: ERROR: duplicate key value violates unique constraint "image_label_ukey" Jun 14 21:11:06 mynas synoindexplugind: photo_database.cpp:3708 Failed to exec [INSERT INTO photo_image_label (image_id, label_id, info_new, status) VALUES(61877, 29, '', 't')] (ERROR: duplicate key value violates unique constraint "image_label_ukey" Jun 14 21:11:06 mynas synoindexplugind: photo_database.cpp:1434 PhotoInfoDBImageLabelDataAdd failed for /volume1/photo/Dateiname, iPhotoId: 61877, iLabelId: 29

in der Datei “/var/log/messages”. Eine Neuinstallation der Photo Station brachte nicht die erhoffte Besserung, beim erneuten Indizieren trat der Fehler wieder auf, denn die Datenbank bleibt bei der Deinstallation des Paketes erhalten.

Also musste die Kommandozeile mit psql ran.

Die Anmeldung gelingt unter DSM 5.2 mit dem Benutzer “postgres” problemlos:

mynas> psql -U postgres psql (9.3.6) Type "help" for help.

Anschließend kann über “\list” eine Liste der installierten Datenbanken aufgerufen werden:

postgres=# \list List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+------------+-----------+---------+-------+----------------------- ........... | .......... | SQL_ASCII | C | C | photo | postgres | SQL_ASCII | C | C | ........... | .......... | SQL_ASCII | C | C |

in der auch die zur Photo Station gehörende Datenbank aufgelistet wird.

Diese kann dann mittels

postgres=# drop database photo; DROP DATABASE

gelöscht und der Kommandozeilen-Client mit

postgres=# \quit mynas>

verlassen werden. Bei der anschließenden Neuinstallation legt die Photo Station die Datenbank wieder an und fängt an, diese (hoffentlich fehlerfrei) zu befüllen.


MODIFY FILE failed. Size is greater than MAXSIZE. (Microsoft SQL Server, Error: 5040)

06. Juni 2016 · Anwendungen · andreas · Kein Kommentar

Sofern versucht wird, in den Datenbank-Eigenschaften die maximale Dateigröße des Transaktionslogs auf einen Wert kleiner als die tatsächliche Dateigröße zu setzen wird dies vom SQL-Server mit einem

MODIFY FILE failed. Size is greater than MAXSIZE.
(Microsoft SQL Server, Error: 5040)

quittiert. Erste Suchergebnisse führen in der Regel zu Lösungsvorschlägen unter Verwendung des Befehls “backup log [DATENBANKNAME] with truncate_only”, welche von neueren Versionen des Microsoft SQL-Servers (2008 und später) mit der Fehlermeldung “’truncate_only’ is not a recognized BACKUP option.” quittiert werden.

Stattdessen muss zur Anpassung der Dateigröße das Recovery-Modell geändert werden. Hierzu wird zuerst das aktuell verwendete Modell ermittelt

SELECT name, recovery_model_desc FROM sys.databases GO

dann wird im nächsten Schritt das Modell auf “Simple” geändert:

ALTER DATABASE [DATENBANKNAME] SET RECOVERY SIMPLE; GO

Nach Ermittlung der anzupassenden Datei

SELECT name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB FROM sys.database_files;

kann dann mittels

DBCC SHRINKFILE ('LOGDATEINAME', GROESSEINMB); GO

die Datei auf den gewünschten Wert verkleinert werden.

Als letzter Schritt sollte dann das Recovery-Modell wieder auf den Ausgangswert (i.d.R ‘FULL’) zurückgesetzt werden :

ALTER DATABASE [DATENBANKNAME] SET RECOVERY FULL; GO

ownCloud manuell aktualisieren

17. September 2015 · Anwendungen · andreas · 1 Kommentar

owncloud_aktualisierungEiner ownCloud-Installation auf einem Webspace-Account stehen in der Regel die komfortablen Wege einer Aktualisierung über SSH oder den eingebauten Updater nicht zur Verfügung, so daß die Aktualisierung manuell vorgenommen werden muss.

Datensicherung

Da bei Aktualisierungen ab und an etwas schiefgehen kann bzw. erfahrungsgemäß nicht jedes ownCloud-Update problemlos durchläuft, sollte vor einem Aktualisierungsversuch auf jeden Fall eine Sicherung der kompletten Installation, d.h. von Dateisystem und Datenbank, vorgenommen werden.

Cron

Ein eventuell vorhandener Cron-Job sollte für die Dauer der Aktualisierung ausgeplant werden. Dieser wird zwar in der Regel die Aktualisierung nicht verhindern, aber während der Aktualisierung auf einen Fehler laufen.

Löschen der alten Installation

Als nächster Schritt gilt es, die Dateien der alten Installation zu löschen, wobei die Verzeichnisse “config” und “data” NICHT gelöscht werden dürfen. Auch die Datei “.htaccess” im Hauptverzeichnis sollte, sofern manuelle Anpassungen vorgenommen wurden, nicht gelöscht werden.

Kopieren der neuen Dateien

Nach erfolgter Löschung kann nun die neue Version lokal entpackt und anschließend hochgeladen werden. Eventuelle Rückfragen zu Überschreibvorgängen (z.B. die Beispielkonfiguration “config.sample.php”) können mit “Ja” beantwortet werden.

Aktualisierung durchführen

Nachdem alle Dateien hochgeladen wurden, erscheint beim nächsten Aufruf der ownCloud-Startseite der Hinweis, daß die Installation aktualisiert werden muß, anschließend meldet sich ownCloud wieder anmeldebereit.


Android Lollipop App-Update

19. August 2015 · Anwendungen · andreas · Kein Kommentar

Ein Update des Betriebssystems ist immer ein willkommener Anlass, die Installation des von Google bereitgestellten Factory-Images auszuprobieren und bei der Neuinstallation auch bei den Apps aufzuräumen. Aktuell installiert sind:

  • Amazon Mobil für Android
    Die App von Amazon für den schnellen Preisvergleich (oder die Einkaufsberatung) zwischendurch. Vor Ort ein paar Kundenmeinungen überfliegen zu können hat schon vor mancher Fehlinvestition bewahrt.

  • CalDAV-Sync beta und CardDAV-Sync beta
    Leider bietet auch Android Lollipop von Haus aus keine Support für das CalDAV bzw. CardDAV-Protokoll. Die beiden hier genannten Apps rüsten die fehlende Unterstützung nach und synchronisieren trotz Beta-Status sauber und zuverlässig Kalender und Kontakte.

  • ConnectBot
    Zuverlässiger und schlanker SSH-Cilent für den Server-Besuch zwischendurch.

  • DB Navigator
    Der ideale Reisebegleiter für Reisen mit der deutschen Bahn, der auch Verspätungen pünktlich anzeigt.

  • DS File und DS Audio
    Zum Zugriff auf das Dateisystem und die Musikbibliothek eines Synology NAS empfehlen sich die vom Hersteller angebotenen Apps, die zwar nicht unbedingt schön (DS Audio) sind, aber klaglos funktionieren.

  • eBay
    Die offizielle eBay-App zum beobachten, ersteigern und verkaufen. Nicht unbedingt schlank und schön, aber trotzdem ein wichtiges Helferlein.

  • Google Notizen
    Praktischer Notizzettel, damit auch Google und die NSA wissen, was ich mir merken will.

  • IMDb Filme & TV
    Als Filmfan fast unverzichtbar ist die IMDB bzw. deren App, die schnell Informationen zu Filmen, Schauspielern, Regisseuren u.v.m. bietet und deren Bewertungssystem auch als Gedächtnisstütze dienen kann. Schön wäre eine Bezahlversion ohne Werbung.

  • K-9 Mail
    Flexibler, wenn auch etwas umständlich zu konfigurierender E-Mail-Client.

  • Kalender Widget
    Ein Vorteil von Android gegenüber iOS sind die Widgets. Mit dem Kalender Widget hat man jederzeit auch vom Startschirm aus die Termine seines Kalenders im Blick. Wer mehrere Kalender einbinden möchte, benötigt den Kalender Widget KEY

  • KeePassDroid
    Das Pendant zu KeePass auf dem PC. Ein Passwort-Manager um Passwörter sicher auf dem Mobiltelefon zu verwahren und auch ohne sie anzeigen zu müssen zu benutzen.

  • Lightflow
    Sofern eine Notification-LED verbaut ist, kann diese mit Lightflow für alle nur denkbaren Benachrichtigungen konfiguriert werden.

  • Nova Launcher
    Die Aufgabe eines Launchers ist im Wesentlichen, die Apps zu starten, die man eigentlich verwenden will. Somit spielt er eine zentrale Rolle im System und sollte möglichst umfassend anpassbar sein. Nova Launcher Prime bietet zusammen mit Tesla Unread for Nova Launcher genau diese Flexibilität.

  • ownCloud
    Manchmal etwas hakeliger offizieller Client für den Datenaustausch mit ownCloud.

  • ownCloud News Reader
    Die News Reader App für ownCloud.

  • QuickPic
    Was XNView auf dem PC, ist QuickPic auf dem Telefon. Deutlich flotter und intuitiver als die original Gallery.

  • Tasker
    Nachdem Llama unter Lollipop leider in den Streik getreten ist, hat Tasker die Aufgaben übernommen. Mächtiges Automatisierungswerkzeug um Dinge zu steuern, die man nicht manuell steuern möchte.

  • WordPress
    Offizielle App, um auf das Backend eines WordPress-Blogs zuzugreifen. Artikel einstellen, Kommentare freigeben und weitere Standardaufgaben lassen sich damit auch von unterwegs erledigen.

Nicht mehr mit dabei sind:

  • Apex Launcher
    Plötzlich auftauchende Werbung hinterlässt in einer (bezahlten) App immer ein ungutes Gefühl, vor allem dann, wenn diese so weitreichende Berechtigungen benötigt wie ein Launcher.

  • Business Calendar
    Die Version 1 sieht unter Lollipop hoffnungslos antiquiert aus und Version 2 benötigt zwangsweise vollen Netzwerkzugriff. Dann doch lieber den integrierten Kalender, der inzwischen halbwegs benutzbar ist.

  • Jota Text Editor
    Ein schlanker aber trotzdem mächtiger Text-Editor, der aber eigentlich nie verwendet wurde.

  • Llama - Location Profiles
    Eine tolle App, die leider für Android Lollipop nicht mehr aktualisiert wurde.

  • Nexus Flashlight
    Google hat die Taschenlampe in die Schnelleinstellungen integriert, somit entfällt die Notwendigkeit einer zusätzlichen App.

  • OI File Manager
    Schlanker und flinker Dateimanager für nicht ge-root-ete Mobiltelefone, dessen Aufgaben aber von DS File übernommen wurden.


WordPress-Kommentare zu einem anderen Beitrag verschieben

14. Juli 2015 · Anwendungen · andreas · 2 Kommentare

WordPress bietet standardmäßig keine Möglichkeit, Kommentare zwischen verschiedenenen Beiträgen (und / oder Seiten) zu verschieben. Gerade für einmalig durchzuführende Aufräum- oder Umbauarbeiten macht es allerdings auch wenig Sinn, sich auf die Suche nach einem zuverlässigen und vertrauenswürdigem Plugin zu begeben, da die Aufgabe auch mit einigen wenigen SQL-Statements zu erledigen ist.

Zunächt müssen die IDs der beiden Beiträge ermittelt werden, zwischen denen verschoben werden soll. Wer das nicht direkt in der Datenbank erledigen will, kann auch die WordPress-Oberfläche zu Rate ziehen: einfach beim jeweiligen Artikel auf “Bearbeiten” klicken und die ID aus der URL entnehmen, z.B. “/wp-admin/post.php?post=3527&action=edit”.

Dann können die Kommentare verschoben werden:

UPDATE wp_comments SET comment_post_id = <neue_ID> WHERE comment_post_id = <alte_ID>;

Anschließend muß noch die Anzahl der zu einem Beitrag vorhandenen Kommentare korrigiert werden, was nach zwei weiteren SQL-Befehlen erledig ist:

UPDATE wp_posts SET comment_count = 0 WHERE ID = <alte_ID>; UPDATE wp_posts SET comment_count = (SELECT COUNT(*) FROM wp_comments WHERE comment_post_ID = <neue_ID> AND comment_approved = 1) WHERE ID = <neue_ID>;

Nach der Verschiebung sind mit dem alten Beitrag keinerlei Kommentare mehr verknüpft, weshalb hier die Anzahl direkt auf “0” gesetzt werden kann. Für den neuen Beitrag ist die Anzahl der Kommentare zu ermitteln, wobei für die Spate “comment_count” nur die tatsächlich genehmigten Kommentare gezählt werden dürfen.