{"id":642,"date":"2016-06-04T12:08:31","date_gmt":"2016-06-04T12:08:31","guid":{"rendered":"http:\/\/192.168.2.32:8082\/?p=642"},"modified":"2017-11-14T10:34:09","modified_gmt":"2017-11-14T10:34:09","slug":"alfresco-upgrade-prozedur-von-version-5-0-c-auf-version-5-1","status":"publish","type":"post","link":"https:\/\/www.dev-metal.ch\/?p=642","title":{"rendered":"Alfresco Upgrade Prozedur von Version 5.1 auf Version 5.2 (Alfresco Community Edition 201612 GA)"},"content":{"rendered":"<p>Dieses Howto beschreibt meine Schritte um eine Alfresco 5.1 Installation nach Alfresco 5.2 (Alfresco Community Edition 201612 GA) zu erh\u00f6hen.<\/p>\n<h2>Aktuelle Alfresco Installation<\/h2>\n<p>Mein Alfresco-System wird nicht im produktiven Umfeld sondern lediglich privat genutzt. Die Anforderungen an das System sind entsprechend niedgrig (keine Skalierung, geringe Performance).<\/p>\n<table class=\"wiki-table\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<th>Alfresco<\/th>\n<th><\/th>\n<\/tr>\n<tr class=\"table-odd\">\n<td style=\"text-align: left;\">2 Server<\/td>\n<td style=\"text-align: left;\">1 VM-Server f\u00fcr die Alfresco Installation, DB und Index (45 GB Festplatte)<br \/>\n1 VM-Server f\u00fcr Daten (350 GB Festplatte)<\/td>\n<\/tr>\n<tr class=\"table-odd\">\n<td style=\"text-align: left;\">Alfresco Home<\/td>\n<td style=\"text-align: left;\">\/opt\/alfresco-community<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td style=\"text-align: left;\">Installation<\/td>\n<td style=\"text-align: left;\">Default installations-Routine<\/td>\n<\/tr>\n<tr class=\"table-odd\">\n<td style=\"text-align: left;\">Postgres-SQL<\/td>\n<td style=\"text-align: left;\">Ja, Installiert \u00fcber die normale Installations-Routine von Alfresco<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td style=\"text-align: left;\">Index<\/td>\n<td style=\"text-align: left;\">SOLR4<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td style=\"text-align: left;\">Alfresco Service<\/td>\n<td style=\"text-align: left;\">Ja. Servicename &#8222;alfresco&#8220;, Installiert \u00fcber die normale Installations-Routiene von Alfresco<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td style=\"text-align: left;\">alf_data<\/td>\n<td style=\"text-align: left;\">Das alf_data Verzeichnis befindet sich ausgelagert auf einem NFS-Server (VM f\u00fcr Daten und Index). Das alf_data Verzeichnis wird dann auf dem Alfresco-Server nach \/opt\/alfresco\/alf_data gemounted.<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td style=\"text-align: left;\">Ugrade Prozedur<\/td>\n<td style=\"text-align: left;\">Die Upgrade Prozedur richtet sich grunds\u00e4tzlich nach der Alfresco-Doku: <a href=\"http:\/\/docs.alfresco.com\/community\/concepts\/master-ch-install.html\" target=\"_blank\" rel=\"noopener\">Link<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Neue VM erstellen<\/h2>\n<p>Bei einem Alfresco-Update (welches ja nicht so h\u00e4ufig vorkommt) erstelle ich meist eine neue VM mit aktuellstem Ubuntu-Betriebssystem (LTS):<\/p>\n<ol>\n<li>\u00a0Neue VM erstellen (ESXi 5.5, VM mit Ubuntu-Linux, 4 CPUs, 8GB RAM)<\/li>\n<li>Alfresco ben\u00f6tigt einige Libs als Voraussetzung. Die Installationsroutine meckert, wenn diese nicht vorhanden sind (siehe <a href=\"http:\/\/docs.alfresco.com\/community\/concepts\/install-lolibfiles.html\">hier<\/a>).<br \/>\nAuf Ubuntu folgendes ausf\u00fchren:<\/p>\n<pre class=\"lang:sh decode:true \">sudo apt-get install libice6 libsm6 libxt6 libxrender1 libxext6 libfontconfig1 libcups2 libglu1-mesa libcairo2 libegl1-mesa libxinerama1<\/pre>\n<p>Achtung: Die Installationsroutine zeigt nach der Installation aller notwendigen Libs immer noch an, dass diese Fehlen (Stand 3.1.2017, Ubuntu 16.04). Das scheint aber ein Bug der Installationsroutine von Alfresco zu sein.<\/li>\n<li>Alfresco auf der neuen VM installieren.\n<ol>\n<li>F\u00fcr die Installation verwende ich die default Installations-Routine von Alfresco.<\/li>\n<li>Die Ports \u00c4ndere ich auf 80 bzw. 443.<\/li>\n<li>Den Service installiere ich auch mit der Alfresco Installations-Routine.<\/li>\n<\/ol>\n<\/li>\n<li>Memory anpassen: <a href=\"http:\/\/192.168.2.32:8082\/?p=113\">Link<\/a><\/li>\n<li>Max Open Files anpassen: <a href=\"http:\/\/192.168.2.32:8082\/?p=70\">Link<\/a><\/li>\n<li>Anschlissend \u00fcberpr\u00fcfen ob die neue Installation sauber funktioniert (z.B. <a href=\"http:\/\/192.168.2.32:8082\/?p=524\" target=\"_blank\" rel=\"noopener\">LibreOffice<\/a>).<\/li>\n<\/ol>\n<h2>Konfigurationen\/Customizing der neuen Installation anwenden<\/h2>\n<p>Ich habe auf meinem Alfresco einige &#8222;customs&#8220; eingebaut:<\/p>\n<h3>Custom Datalists<\/h3>\n<ul>\n<li><a href=\"http:\/\/192.168.2.32:8082\/wp-content\/uploads\/2016\/06\/bibliothekDatalistModel.xml_.txt\">bibliothekDatalistModel.xml<\/a><\/li>\n<li><a href=\"http:\/\/192.168.2.32:8082\/wp-content\/uploads\/2016\/06\/inventarDatalistModel.xml_.txt\">inventarDatalistModel.xml<\/a><\/li>\n<li><a href=\"http:\/\/192.168.2.32:8082\/wp-content\/uploads\/2016\/06\/customDatalist-model-context.xml_.txt\">customDatalist-model-context.xml<\/a><\/li>\n<\/ul>\n<h3>Custom Share Header<\/h3>\n<ul>\n<li><a href=\"http:\/\/192.168.2.32:8082\/wp-content\/uploads\/2016\/06\/share-header.lib_.js\">share-header.lib<\/a>.js<\/li>\n<li><a href=\"http:\/\/192.168.2.32:8082\/wp-content\/uploads\/2016\/06\/share-header.lib_.properties.txt\">share-header.lib.properties<\/a><\/li>\n<\/ul>\n<h3>Custom Web-Extensions<\/h3>\n<ul>\n<li><a href=\"http:\/\/192.168.2.32:8082\/wp-content\/uploads\/2016\/06\/share-config-custom.xml_.txt\">share-config-custom.xml<\/a><\/li>\n<\/ul>\n<ol>\n<li>Zwei eigene Listen (Inventar und Bibliothek). Hier zeige ich nur die Bibliotheksliste. Das selbe auch f\u00fcr Inventar machen.<\/li>\n<li>Die neuen Datalists registrieren\n<pre class=\"lang:sh decode:true\">cp \/opt\/alfresco-alt\/\/tomcat\/shared\/classes\/alfresco\/extension\/customDatalist-model-context.xml \/opt\/alfresco-neu\/\/tomcat\/shared\/classes\/alfresco\/extension\/customDatalist-model-context.xml<\/pre>\n<p>Datalist-Model erstellen\/kopieren<\/p>\n<pre class=\"lang:sh decode:true\">cp \/opt\/alfresco-alt\/tomcat\/shared\/classes\/alfresco\/extension\/bibliothekDatalistModel.xml \/opt\/alfresco-neu\/tomcat\/shared\/classes\/alfresco\/extension\/bibliothekDatalistModel.xml<\/pre>\n<p>Das web-extensions File erweitern mit den Erweiterungen aus der alten Instanz<\/p>\n<pre class=\"lang:sh decode:true \">\/opt\/alfresco-community\/tomcat\/shared\/classes\/alfresco\/web-extension\/share-config-custom.xml<\/pre>\n<\/li>\n<li>Download Buttons entfernen: <a href=\"http:\/\/192.168.2.32:8082\/?p=534\">Link<\/a><\/li>\n<li>Header-Icons ausblenden, welche nicht gebraucht werden: <a href=\"http:\/\/192.168.2.32:8082\/?p=195\">Link<\/a><\/li>\n<li>Download-Button nur wenn Schreibrecht vorhanden: <a href=\"http:\/\/192.168.2.32:8082\/?p=124\">Link<\/a><\/li>\n<\/ol>\n<h2>Alte Alfresco-Instanz backupen<\/h2>\n<ol>\n<li>Alte Alfresco-Instanz stoppen<\/li>\n<li>Ganze DB backupen\n<ol>\n<li>Postgres starten\n<pre class=\"lang:default decode:true\">sudo \/opt\/alfresco-community\/alfresco.sh start postgresql<\/pre>\n<\/li>\n<li>Die gesamte Alfresco-Datenbank dumpen\n<pre class=\"lang:default decode:true\">cd \/opt\/alfresco-community\/postgresql\/bin\/<\/pre>\n<pre class=\"lang:default decode:true\">.\/pg_dump -h localhost -U alfresco alfresco &gt; \/tmp\/alfrescodbdump<\/pre>\n<\/li>\n<li>Postgres stoppen\n<pre class=\"lang:default decode:true \">sudo \/opt\/alfresco-4.2.d\/alfresco.sh stop postgresql<\/pre>\n<\/li>\n<\/ol>\n<\/li>\n<li>alf_data Verzeichnis der alten Alfresco-Instanz backupen. =&gt; Darauf achten, dass der Alfresco-Service nicht l\u00e4uft!<br \/>\nIch kopiere dazu einfach das gesamte alte alf_data Verzeichnis nach alf_data_alt.<\/li>\n<\/ol>\n<h2>Daten auf neuer Alfresco-DB Instanz restoren<\/h2>\n<ol>\n<li>Die neue Alfresco-Instanz stoppen.<\/li>\n<li>Nun die Postgresql-Datenbank der <strong>NEUEN<\/strong> Installation starten:\n<pre class=\"lang:default decode:true\">sudo \/opt\/alfresco-community\/alfresco.sh start postgresql<\/pre>\n<\/li>\n<li>Die Datenbank &#8222;alfresco&#8220; der neuen Installation l\u00f6schen:\n<pre class=\"lang:default decode:true\">cd \/opt\/alfresco-community\/postgresql\/bin\/<\/pre>\n<pre class=\"lang:default decode:true\">.\/dropdb -U alfresco alfresco -h localhost -i\r\nDatabase \"alfresco\" will be permanently removed.\r\nAre you sure? (y\/n) y\r\nPassword:\r\n<\/pre>\n<\/li>\n<li>Die gel\u00f6schte Datenbank wieder erstellen\n<pre class=\"lang:default decode:true\">$ sudo .\/createdb -U postgres -T template0 alfresco -h localhost\r\nPassword:\r\n<\/pre>\n<\/li>\n<li>Nun den Alfresco-Dump der alten Instanz auf der neuen einspielen:\n<pre class=\"lang:default decode:true\">$ sudo .\/psql -U alfresco alfresco -h localhost &lt; \/tmp\/alfrescodbdump\r\nPassword:\r\n(...)\r\nALTER TABLE\r\nALTER TABLE\r\nREVOKE\r\nREVOKE\r\nGRANT\r\nGRANT\r\n$ exit<\/pre>\n<\/li>\n<li>Die Postgres-DB der neuen Installation wieder stoppen.\n<pre class=\"lang:default decode:true \">sudo \/opt\/alfresco-community\/alfresco.sh stop postgresql<\/pre>\n<\/li>\n<\/ol>\n<h2>Content-Store und Idexe restoren<\/h2>\n<p>Content-Store und Index habe ich auf einem NFS-Server.<\/p>\n<ol>\n<li>Wichtig, nicht das postgres-Datenverzeichnis der neuen Installation l\u00f6schen!!!!!! Das ganze alf_data Verzeichnis der neuen Alfresco-Instanz nach ~\/alf_data_backup verschieben. Dies, weil sich auch das postgres-Datenverzeichnis hier befindet. Die DB mit den Daten wird wegkopiert.\n<pre class=\"lang:sh decode:true\">sudo mv \/opt\/alfresco\/alf_data ~\/alf_data<\/pre>\n<\/li>\n<li>Jetzt den mount-Punkt &#8222;alf_data&#8220; des NFS-Servers auf die neue Alfresco-Instanz mounten.<\/li>\n<li>Nun die postgres Daten wieder zur\u00fcck kopieren\n<pre class=\"lang:sh decode:true\">sudo rm -r\r\nsudo cp ~\/alf_data\/postgresql\/* \/opt\/alfresco\/alf_data\/postgresql\/<\/pre>\n<\/li>\n<li>Reindexierung von SOLR4:<br \/>\nIch initialisiere Solr4 nach jeder Installation neu gem. Alfresco-Dokumentation: <a href=\"http:\/\/docs.alfresco.com\/5.0\/tasks\/solr-reindex.html\">Link<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Dieses Howto beschreibt meine Schritte um eine Alfresco 5.1 Installation nach Alfresco 5.2 (Alfresco Community Edition 201612 GA) zu erh\u00f6hen. Aktuelle Alfresco Installation Mein Alfresco-System wird nicht im produktiven Umfeld sondern lediglich privat genutzt. Die Anforderungen an das System sind entsprechend niedgrig (keine Skalierung, geringe Performance). Alfresco 2 Server 1 VM-Server f\u00fcr die Alfresco Installation, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[4],"tags":[],"class_list":["post-642","post","type-post","status-publish","format-standard","hentry","category-alfresco"],"modified_by":"ralph","_links":{"self":[{"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/posts\/642","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=642"}],"version-history":[{"count":49,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/posts\/642\/revisions"}],"predecessor-version":[{"id":896,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/posts\/642\/revisions\/896"}],"wp:attachment":[{"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=642"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=642"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}