alfrescoのバックアップとレストア

29
Alfresco 勉勉勉 #13 @mryoshio

Upload: ashitaba-yoshioka

Post on 31-May-2015

1.755 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Alfrescoのバックアップとレストア

Alfresco勉強会#13@mryoshio

Page 2: Alfrescoのバックアップとレストア

自己紹介Alfrescoバックアップとレストアデモ ( ホットバックアップ )まとめ

目次

2

Page 3: Alfrescoのバックアップとレストア

3

Page 4: Alfrescoのバックアップとレストア

某 A 社で Alfresco導入の手伝いやカスタマイズ,サポートを担当 → Alfrescoのコンサルティング

某 A 社で Liferay導入の (ry

普段の仕事

4

Page 5: Alfrescoのバックアップとレストア

基本的に毎回ネタを振り絞って機能等を紹介過去のスライドはこちら

http://www.slideshare.net/mryoshio

勉強会との関わり

5

Page 6: Alfrescoのバックアップとレストア

仕事でもっとコード書きたい ( 言語問わず )

最近の悩み

6

Page 7: Alfrescoのバックアップとレストア

7

Page 8: Alfrescoのバックアップとレストア

英 Alfresco社が開発している OSSの ECMhttp://svn.alfresco.com/repos/alfresco-open-mirr

or/ (ソースコード )

エンタープライズ・コンテンツ管理Documentum (*1) や SharePoint (*2) が競合

コストCommunity Edition → 無償Enterprise Edition → サブスクリプションを購入

簡単な説明

*2 http://www.emc.com/domains/documentum/*1 http://sharepoint.microsoft.com/ 8

Page 9: Alfrescoのバックアップとレストア

9

Page 10: Alfrescoのバックアップとレストア

今日の話の元ネタhttp://docs.alfresco.com/4.0/index.jsp?topic=

%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fch-backup-restore.html

http://wiki.alfresco.com/wiki/Backup_and_Restore

*↑を読んで理解できる人は聞かなくて良いです。

10

Page 11: Alfrescoのバックアップとレストア

リポジトリ ( コンテンツ実体 )dir.rootで設定されたディレクトリ ( 通常 alf_data) 。

メタデータ (DB)コンテンツの属性情報等。

検索インデクス ( 通常 dir.root/lucene-indexes)最悪無くても大丈夫 ( メタデータを元に再構築可能 ) 。

※今回は, Solrを使ってる場合は考えてない。

バックアップの対象

11

Page 12: Alfrescoのバックアップとレストア

必須dir.rootが指すディレクトリDBの内容

おまけLuceneインデクス

多くの場合 dir.root内にあるのでまとめて取るけど。設定ファイル

dir.root index.recovery.mode db.driver/db.url

要するに

12

Page 13: Alfrescoのバックアップとレストア

コールドバックアップAlfrescoを停止した状態で行うバックアップ

= リポジトリや DBへの書き込みが無い状態停止して対応できる余裕がある場合はこっち

( あまり無いと思うけど )

ホットバックアップAlfrescoが起動した状態で行うバックアップ

= リポジトリや DBへの書き込みがあり得る余裕が無い(普通そうでしょ)場合はこちら

バックアップの種類

13

Page 14: Alfrescoのバックアップとレストア

コールドバックアップalfrescoを停止

DBをバックアップ使ってる DBの流儀に従って下さい。

リポジトリをバックアップ厳密には lucene-indexesは不要だけど多分

dir.root内にあるのでついでに。

バックアップしたものをセットで保存14

Page 15: Alfrescoのバックアップとレストア

ホットバックアップ( 1/2)[ 重要 ] 手順の順番が大事。コールドと同じだけど。

DBをバックアップ

その後すぐに,リポジトリをバックアップ

バックアップしたものをセットで保存

15

Page 16: Alfrescoのバックアップとレストア

ホットバックアップ( 2/2)何で手順が大事なの?

壊れるから何が壊れるの?

DBとリポジトリの整合性バックアップ時に書き込みされていたコンテンツのメタデータが DBに存在する,かつ,リポジトリに実体が存在しない状態が発生したら困る。

復元できないの?頑張ればできるかもしれないけど無駄な労力そんなのしたくない

16

Page 17: Alfrescoのバックアップとレストア

整合性 : ◯

17

コンテンツに対し,実体とメタデータが存在

name: diargram.pdfmimetype: application/pdfcreator: Mike DaviscreationDate: 2013/1/23…

Page 18: Alfrescoのバックアップとレストア

整合性 : △

18

コンテンツに対し,実体のみが存在

?Alfrescoはコンテンツを存在しないと見なす

Page 19: Alfrescoのバックアップとレストア

コンテンツに対し,メタデータのみが存在

整合性 : ×

19

name: diargram.pdfmimetype: application/pdfcreator: Mike DaviscreationDate: 2013/1/23…

Alfrescoはコンテンツが壊れていると判断 = エラー発生

Page 20: Alfrescoのバックアップとレストア

20

Page 21: Alfrescoのバックアップとレストア

Apache Tomcat 6.0.35

Alfresco Community Edition v4.0.0 (4.0.e)

MySQL 5.x

環境

21

Page 22: Alfrescoのバックアップとレストア

負荷の生成Alfrescoに負荷がかかっている状況の用意Alfrescoにコンテンツを作り続ける

ホットバックアップ( DB,リポジトリ)Alfrescoのプロセスを殺す

バックアップセットを使いレストア

Alfresco再起動

デモの流れ

22

Page 23: Alfrescoのバックアップとレストア

今日使うサンプルプログラムの場所https://github.com/mryoshio/AlfrescoStudy.git/backup_res

tore/

test_webscript/リクエストを受ける度にランダム値の内容を持つランダム名ファイルを作成する。

test_python/上記 Web Scriptに対するリクエストを送信

負荷の生成( 1/2)

23

Page 24: Alfrescoのバックアップとレストア

コンテンツ作成Web Scriptの配置test_webscript/*をすべて /Company Home/Data

Dictionary/Web Scripts/org/alfresco/mryoshio/へアップロード

Pythonスクリプトの実行python main.py 5

=>5スレッドで次の手順を無限ループコンテンツ作成WebScript実行リクエストの送信ランダム値のスリープ

負荷の生成( 2/2)

24

Page 25: Alfrescoのバックアップとレストア

ホットバックアップDBをバックアップ

その後すぐに,リポジトリをバックアップ

バックアップしたものをセットで保存

25

Page 26: Alfrescoのバックアップとレストア

レストアDB再作成 & ダンプデータの流し込み

バックアップしたリポジトリの展開

alfrescoの起動

26

Page 27: Alfrescoのバックアップとレストア

27

Page 28: Alfrescoのバックアップとレストア

28

Alfresco?

バックアップの対象 ?

バックアップの種類 ?

Page 29: Alfrescoのバックアップとレストア