暫く放っておいた Alfresco Community Edition 201605 を 201707 へアップグレードしようと思い実施してみました
結構、面倒だったので手順を忘れない様に書いておこう!
普段から、余りメンテナンスしていなかった Alfresco に新しい版がでたようですので更新作業の手順などを忘れない様に書いていこう!
他に書いてある、クラウド化したプラットフォームで動かしたい機能の一つで、実施してみた感じでは、移設でも同様の手順でいてると思います
バックアップ
バックアップは、データベースのバックアップとデータディレクトリーのバックアップを行う必要があるそうです
Alfresco 自体の動作を停止してバックアップを行う方法を「コールドバックアップ」、生きたままバックアップを取る事を「ホットバックアップ」と言うそうです
ホットバックアップは整合性に問題が出たりする事があるらしいですが、サービスを停止できない場合はこちらを選択するそうです
でも、ウチの環境では、Alfresco を停止しても問題ありませんのでサービスを停止する「コールドバックアップ」を実行します
http://docs.alfresco.com/community/tasks/backup-cold.html
最初に、Alfresco を停止してからデータベースのバックアップとデータディレクトリのバックアップを行います!
データーベースのバックアップを取るには、使用しているデータベースのバックアップコマンドを利用するそうです
前の記事にある様に、Ubuntu 16.0.XXX で Alfresco を動かしていました
サービスを停止しますので、カーネルとかの更新もいっしょにしてしまうと良いと思う…
それと、実行前にハードディスクの空き容量を確認した方が良いと思います
普段から確認すれば良いと思いますが、tomcat のログディレクトリーに膨大なログファイルが保存されています
この前、油断していたらディスクの空き領域をすべて利用されてしまいました
ログローテートする方法などを説明しているサイトなどもありますので、ウチでも導入しないとイケないなぁ….
Alfresco の停止とデータベースのバックアップ
作業手順は、サービスを止めて、データディレクトリとデータベースのバックアップを実施します
user@ubuntuAlfresco:~$ sudo /opt/alfresco/alfresco.sh status
tomcat already running
user@ubuntuAlfresco:~$ sudo /opt/alfresco/alfresco.sh stop
Using CATALINA_BASE: /opt/alfresco/tomcat
Using CATALINA_HOME: /opt/alfresco/tomcat
Using CATALINA_TMPDIR: /opt/alfresco/tomcat/temp
Using JRE_HOME: /opt/alfresco/java
Using CLASSPATH: /opt/alfresco/tomcat/bin/bootstrap.jar:/opt/alfresco/tomcat/bin/tomcat-juli.jar
Using CATALINA_PID: /opt/alfresco/tomcat/temp/catalina.pid
Killing Tomcat with the PID: 14376
The Tomcat process has been killed.
/opt/alfresco/tomcat/scripts/ctl.sh : tomcat stopped
user@ubuntuAlfresco:~$
で、余計な事を書いたけど、この停止処理に五分程度掛かりますので、短気を起こさない様にしないとね!
MySQL を使っている場合は mysqldump で –all-databases を使えば良いと思いますが、環境によると思います
user@ubuntuAlfresco:~$ mysqldump --all-databases -u root -p >mysql.dump.20170822
この環境では Alfresco しか動いていないのでこんな感じで良いかな?
他のデータも引き受けている場合には個別のデータベースをバックアップしてあげると思います
データベースの利用状況は、こんな感じで確認出来ると思います
※ この MySQL を使う Alfresco は Ubuntu のインストール時に LAMP を指定したので MySQL も動いています
※ 別記してある Alfresco の記事の Ubuntu では MySQL を使わずに Alfresco の PostgreSQL を使っています
user@ubuntuAlfresco:~$ sudo cat /opt/alfresco/tomcat/shared/classes/alfresco-global.properties
###############################
## Common Alfresco Properties #
###############################
dir.root=/opt/alfresco/alf_data
alfresco.context=alfresco
alfresco.host=127.0.0.1
alfresco.port=8080
alfresco.protocol=http
share.context=share
share.host=127.0.0.1
share.port=8080
share.protocol=http
### database connection properties ###
db.driver=org.gjt.mm.mysql.Driver
db.username=alfresco
db.password=XXXXXXXX
db.name=alfresco
db.url=jdbc:mysql://localhost:3306/alfresco?useUnicode=yes&characterEncoding=UTF-8
…
データベースとユーザー名とパスワードが書いてある..
このサーバーとは別に PostgreSQL で動いているサーバーもあるので、そっちのバックアップ方法は pg_dumpall かな?と思ったのですが、Alfresco を止めると PostgreSQL も一緒に止まります
この作戦は無理ですので、素直にデータディレクトリをコピーして再利用する方が良いのかな?
PostreSQL なら、それでも動くと思います(検証継続中)
データのバックアップ
上の alfresco-global.properties に dir.root の設定が記載されていて、そこがデーターの格納場所の様です
そのディレクトリーの中にある contentstore と contentstore.deleted だけをバックアップします(そんなニュアンスで書いてある?)
それと、Solr4 のインデックスというのもバックアップするそうです
同じ dir.root に solr4/index がありますので、そのディレクトリーもあわせて控えておけば良いと思います
データーベースの中身と contentstore の中身が情報の時期が合っていないとイケないそうです
新しい版のインストール
古い環境を消す前に、新しい環境をディレクトリーを変えてインストールするそうです
このリストは、MySQL で動作していた環境用での例です
インストーラの起動オプションを少し指定して、工数を少し端折っています
ライブラリーの不足分は調べ切れていません
途中に指定している JDBC の URL と JDBC ドライバー の指定方法は、旧版の alfresco-global.properties.sample に
#
# MySQL connection
#
#db.driver=org.gjt.mm.mysql.Driver
#db.url=jdbc:mysql://localhost/alfresco?useUnicode=yes&characterEncoding=UTF-8
このようにサンプルがありますので参考にしますが、ポート番号の指定が無いですので、下記では実際に 3306 を指定しています
後で書きますが、このようなエラーが表示されたり、ログインページで「認証情報が認識されていないか、現在 Alfresco Content Services が使用できない可能性があります。」のような表示がされた場合はデータベースの接続を確認してみてください
Cannot find Alfresco Repository on this server.
インストール後に、こんな表示がされたらデータベース周りを確認してみてください
インストール先ですが、旧版は /opt/alfresco へインストールされています
下の手順では /opt/alfresco-communty と言うデフォルトのディレクトリへインストールしています
インストール作業
user@ubuntuAlfresco:/opt$ sudo ./alfresco-community-installer-201707-linux-x64.bin --installer-language ja --mode text
Some or all of the libraries needed to support LibreOffice were not found on your system: fontconfig libSM libICE libXrender libXext libcups libGLU libcairo2 libgl1-mesa-glx
You are strongly advised to stop this installation and install the libraries.
For more information, see the LibreOffice documentation at http://docs.alfresco.com/search/site/all?keys=libfontconfig
Do you want to continue with the installation? [y/N]: Y
----------------------------------------------------------------------------
ようこそ Alfresco Community セットアップウィザードへ。
----------------------------------------------------------------------------
インストールの種類
[1] 簡易 - デフォルトの設定を使ってインストールします。
[2] 詳細設定 - サーバーのポートとサービスのプロパティを設定できます。: 追加でインストールするコンポーネントを選択してください。
オプションを選択してください [1] : 2
----------------------------------------------------------------------------
インストールするコンポーネントを選択してください。準備ができたら“次へ“をクリックしてください。
Java [Y/n] :
PostgreSQL [Y/n] :N
LibreOffice [Y/n] :
Alfresco Community : Y (Cannot be edited)
Solr1 [y/N] :
Solr4 [Y/n] :
Alfresco Office Services [Y/n] :
Web Quick Start [y/N] :
Google ドキュメントの統合 [Y/n] :
上記選択部分が正しいことを確認してください。 [Y/n]: Y
----------------------------------------------------------------------------
インストール先フォルダ
Alfresco Community をインストールするフォルダを選択してください。
インストール先フォルダ: [/opt/alfresco-community]:
----------------------------------------------------------------------------
データベースの設定
JDBC の URL: [jdbc:postgresql://localhost/alfresco]: jdbc:mysql://localhost:3306/alfresco?useUnicode=yes&characterEncoding=UTF-8
JDBC ドライバー: [org.postgresql.Driver]: org.gjt.mm.mysql.Driver
Database name: [alfresco]: alfresco
ユーザー名: []: alfresco
パスワード: :
確認: :
----------------------------------------------------------------------------
Tomcat のポート設定
Tomcat の設定パラメータを入力してください。
Web サーバードメイン: [127.0.0.1]:
パスワード: :
確認: :
----------------------------------------------------------------------------
Tomcat のポート設定
Tomcat の設定パラメータを入力してください。
Web サーバードメイン: [127.0.0.1]:
Tomcat サーバー用ポート: [8080]:
Tomcat のシャットダウン用ポート: [8005]:
Tomcat の SSL ポート: [8443]:
Tomcat の AJP ポート: [8009]:
----------------------------------------------------------------------------
LibreOffice サーバーのポート
LibreOffice サーバーがリッスンするポート番号を入力してください。
LibreOffice サーバーのポート: [8100]:
----------------------------------------------------------------------------
FTP ポート
統合された FTP サーバーに使用するポート番号を選択してください。
ポート: [21]:
----------------------------------------------------------------------------
管理者のパスワード
Alfresco Content Services 管理者アカウントのパスワードを指定してください。
管理者のパスワード: :
パスワードの再入力: :
----------------------------------------------------------------------------
サービスとしてインストールする
Alfresco Community をサービスとして登録すると、マシンの起動時に自動的に Alfresco Community が開始されます。
Alfresco Community をサービスとしてインストールしますか? [Y/n]:
サービスのスクリプト名
----------------------------------------------------------------------------
alfresco という名前のサービススクリプトファイルはすでに存在します。別の名前を指定してください。
サービスのスクリプト名 [alfresco]: alfresco201707
----------------------------------------------------------------------------
警告
この環境は Alfresco Content Services
を適切に実行するのに十分な構成ではありません。インストールする前に、以下の問題をチェックしてください。
これらの問題があっても Alfresco Content Services
は機能しますが、一部の製品機能が使用できないか、システムが適切に動作しない場合があります。
Not enough system RAM available
(4.0GB+): 2.91GB
続けるには [Enter] キーを押してください :
----------------------------------------------------------------------------
お使いのコンピュータに Alfresco Community をインストールする準備が整いました。
続けますか? [Y/n]: Y
----------------------------------------------------------------------------
しばらくお待ちください。 Alfresco Community をお使いのコンピュータにインストール中です。
インストール中
0% ______________ 50% ______________ 100%
#########################################
----------------------------------------------------------------------------
セットアップウィザードによる Alfresco Community のインストールが完了しました。
Readme ファイルを表示 [Y/n]:
Alfresco Community を起動する [Y/n]: n
Readme
Alfresco Community (Build: 201707)
===============================
Contains:
- Alfresco Platform: 5.2.g
- Alfresco Share: 5.2.f
For users of Alfresco Community Edition, more information on this release is
available at https://community.alfresco.com/community/ecm
続けるには [Enter] キーを押してください :
user@ubuntuAlfresco:/opt$
ここで、一旦作業を止めて再起動しました
前に、少し書きましたが、MySQL が上手く動かず、何度かやり直してみたりしました
で、結局、MySQL の JDBC ドライバー ? が新しい方にインストールされていないと言う事に気がつき、旧版の tomcat/lib から、mysql-connector-java-5.1.34-bin.jar をコピーしててきました
これでなんとか動いています
最新版は、ここで入手可能なようです
https://dev.mysql.com/downloads/connector/j/
最新版は mysql-connector-java-5.1.43 です
拾ってきて、解凍したファイルの中にある mysql-connector-java-5.1.43-bin.jar を tomcat/lib へコピーすれば、あららしいコネクターで接続します
新しい方が、読み書きの速度が速い気がしますが、計測はしていませんので悪しからず
また、特にテーブルなどは更新しなくても MySQL 関連は旧版のまま流用できています(リストアしなくても使える様子です)
それと、新版の方の設定で dir.root を旧版のデータディレクトリを指定してしまえば、そのまま読めるようですので、簡易テストが出来ます
カスタマイズ
リストア
上で動作確認したときの dir.root を書き換えたままにしてしまうと、旧版を削除出来ません
配布元の手順によると、新しい版をインストールして、カスタマイズして、新しい版に満足したら、古い版を消す事とあります
ですので、一応、手順に従いリストアーしてみました
user@ubuntuAlfresco:/opt/alfresco-community/alf_data$ ll
total 44
drwxr-xr-x 11 root root 4096 Aug 22 14:43 ./
drwxr-xr-x 15 root root 4096 Aug 22 14:09 ../
drwxr-xr-x 3 root root 4096 Aug 13 2016 contentstore/
drwxr-xr-x 2 root root 4096 Aug 13 2016 contentstore.deleted/
drwxr-xr-x 2 root root 4096 Aug 22 14:07 contentstore.deleted.org/
drwxr-xr-x 3 root root 4096 Aug 22 14:07 contentstore.org/
drwxr-xr-x 2 root root 4096 Aug 22 14:01 keystore/
drwx------ 4 root root 4096 Aug 22 14:08 oouser/
drwxr-xr-x 5 root root 4096 Aug 13 2016 solr4/
drwxr-xr-x 5 root root 4096 Aug 22 14:09 solr4.org/
データーベースのリストア
今回はデーターベースのリカバリーはしませんでしたが、するならこんな感じ
上手く行かない理由がわからないとき何度か行ったけど、結局、データーベース消して書き直してるだけなので、必要無いと思います
user@ubuntuAlfresco:~$ less mysql.dump.20170822
user@ubuntuAlfresco:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 36
Server version: 5.7.19-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| alfresco |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.06 sec)
mysql> drop database alfresco;
Query OK, 99 rows affected (3.25 sec)
mysql> \q
Bye
user@ubuntuAlfresco:~$ mysql -u root -p <mysql.dump.20170822
Enter password:
user@ubuntuAlfresco:~$
uninstall
user@ubuntuAlfresco:/opt$ sudo /opt/alfresco/uninstall
Alfresco Community およびすべての関連するモジュールをアンインストールしますか? [Y/n]: Y
----------------------------------------------------------------------------
アンインストールの状況
アンインストール中 Alfresco Community
0% ______________ 50% ______________ 100%
#########################################
情報: アンインストールが完了しました
続けるには [Enter] キーを押してください :
user@ubuntuAlfresco:/opt$
その2へ続く…