SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
第18回Alfresco勉強会
Alfrescoのバックアップとリストア
2013/09/25
@_tasky
自己紹介
 私は…
◦ @_tasky
 平日は…
◦ 株式会社イージフでAlfrescoやLiferayをいじってます
 休日は…
◦ 1児(2歳♀)の父親業やってます
Contents
 はじめに
 バックアップ/リストア対象データ
 バックアップの種類
 コールドバックアップ
◦ バックアップの方法
◦ リストアの方法
 ホットバックアップ
◦ ホットバックアップのポイント
◦ バックアップの方法
◦ リストアの方法
◦ デモ
 (おまけ)Alfrescoが吹っ飛んだ時のデータ救出
はじめに
 本資料の内容はAlfrescoCommunity 4.2.dに基づいています
◦ データベースはPostgreSQLを利用(インストーラ標準)
◦ 全文検索エンジンSolrを利用(インストーラ標準)
 具体的な手順(コマンドとか)は色々はしょってたりもっと気
の利いた方法があったりしますが、最低限これでできますよ、
ということで…
 インストール方法は以下の資料を参考にしてください
http://www.slideshare.net/TasukuOtani/alfresco15-alfresco-4
http://aegif-labo.blogspot.jp/2012/03/alfresco40.html
 ここらへんの記事を参考にしています
http://wiki.alfresco.com/wiki/Backup_and_Restore
http://docs.alfresco.com/4.2/index.jsp?topic=%2Fcom.alfresco.enterprise.do
c%2Fconcepts%2Fch-backup-restore.html
http://docs.alfresco.com/4.2/index.jsp?topic=%2Fcom.alfresco.enterprise.do
c%2Fconcepts%2Fch-backup-restore.html
バックアップ/リストア対象データ
 バックアップ/リストア対象データ=Alfrescoがバックエンドで
管理するデータ
◦ データベース
 MySQL, PostgreSQL, Oracle等が管理するデータ
◦ ファイルシステム
 コンテンツのファイル実体
 ファイルシステム上に元ファイルと同バイナリで保存される(名前は
変わる)
◦ 全文検索インデックス(オプション)
 全文検索用のインデックス
 ファイルシステム上にファイルとして保存される
 データベースとファイルシステムから再構成可能であるため、オプ
ション扱い(ゼロから再構成するには時間がかかるのでバックアップ
を取る)
バックアップの種類
 コールドバックアップ
◦ アプリケーションを停止してバックアップを取得する
◦ 整合性の取れたバックアップデータを安全に取得できる
◦ サービス提供時間等、サービス品質が落ちる(と判断される)可
能性がある
 ホットバックアップ
◦ アプリケーションが稼働したままバックアップを取得する
◦ バックアップデータ自体の整合性が保証されない
◦ システム停止に伴うサービス品質低下が起こらない
※ もちろん、リストア時に整合性をとるための処理を行えば問題ありません(自動実行さ
れるものと、手動で実行する必要のあるものがあります)
コールドバックアップ
バックアップの方法
1. Alfrescoを停止する
2. 以下の3つのバックアップを取得する
◦ データベース : PostgreSQLのデータディレクトリ
 <alf_dir>/alf_data/postgresql 以下全部
◦ ファイルシステム : contentstoreディレクトリ
 <alf_dir>/alf_data/contentstore 以下全部
◦ 全文検索インデックス : solr/workspace, solr/archiveディレクトリ
 <alf_dir>/alf_data/solr/workspace
 <alf_dir>/alf_data/solr/archive
以上!とても簡単!!
※ Luceneの場合は<alf_dir>/alf_data/lucene-indexesディレクトリをバックアップします
※ データバックアップの他に、システムバックアップ(導入直後のVMスナップショットや
ハードディスクイメージ等)を取っておくと復旧が早いです
コールドバックアップ
リストアの方法
1. (必要に応じて)Alfresco/PostgreSQLを再セットアップする
2. バックアップデータを以下のディレクトリにコピーする
◦ データベース : PostgreSQLバックアップデータ
 <alf_dir>/alf_data/postgresql
◦ ファイルシステム : contentstoreバックアップデータ
 <alf_dir>/alf_data/contentstore
◦ 全文検索インデックス : Solrインデックスバックアップデータ
 <alf_dir>/alf_data/solr/workspace
 <alf_dir>/alf_data/solr/archive
 PostgreSQL, Alfrescoを起動する
以上!とっても簡単!!
※ コピー先にファイルが存在する場合は、コピー前に削除もしくは移動しておきます
※ Luceneの場合はバックアップデータを<alf_dir>/alf_data/lucene-indexesに戻します
※ Alfresco起動ユーザとバックアップ実行ユーザが異なる場合はファイルのownerに注意!
ホットバックアップ
ホットバックアップのポイント
 3つのバックアップ対象のバックアップ順序がとても重要
1. 全文検索インデックス
2. データベース
3. ファイルシステム
 全文検索インデックスはAlfrescoが定期的に(日次で)生成
するバックアップを使う
◦ 全文検索インデックス(=ただのファイル)をAlfresco起動中にコ
ピーすると、壊れたバックアップデータとなる
◦ バックアップ生成時刻はsolr/workspaceが2AM、solr/archiveが4AM
※ Luceneの場合のバックアップは3AMに生成されます
※ 時刻の変更はsolr.backup.alfresco.cronExpression, solr.backup.archive.cronExpression (Solr)、
index.backup.cronExpression (Lucene)をalfresco-global.propertiesで設定します
ホットバックアップ
バックアップの方法
1. 全文検索インデックスのバックアップを取得する
◦ <alf_dir>/alf_data/solrBackup 以下全部をコピーする
2. データベースのホットバックアップを取得する
◦ [事前準備] バックアップ実行ユーザのホームディレクトリ
に.pgpassファイルを作成しておく(chmod 0600 .pgpass)
◦ 以下のコマンドを実行してPostgreSQLのホットバックアップを
取得する(.pgpassでパスワード入力を省略できる)
3. ファイルシステムのバックアップを取得する
◦ <alf_dir>/alf_data/contentstore 以下全部をコピーする
※ .pgpassの中身は<hostname>:<port>:<dbname>:<user>:<password>
※ RDBMSの種類や構成に合わせて適宜ホットバックアップを実施してください
※ Luceneの場合は<alf_dir>/alf_data/backup-lucene-indexesをバックアップします
# /opt/alfresco-4.2.d/postgresql/bin/pg_dump -U alfresco -w --format=plain alfresco > /backup/pgdump.sql
localhost:5432:alfresco:alfresco:admin
ホットバックアップ
リストアの方法(1)
1. (必要に応じて)Alfresco/PostgreSQLを再セットアップする
2. バックアップデータを以下のディレクトリにコピーする
◦ ファイルシステム : contentstoreバックアップデータ
 <alf_dir>/alf_data/contentstore
◦ 全文検索インデックス : Solrインデックスバックアップデータ
 solrBackup/alfresco/snapshot.* ->
<alf_dir>/alf_data/solr/workspace/SpaceStore/index
 solrBackup/archive/snapshot.* ->
<alf_dir>/alf_data/solr/archive/SpaceStore/index
ホットバックアップ
リストアの方法(2)
3. PostgreSQLを起動する
4. データベースを復元する
◦ 以下のコマンドを実行してテーブルを作成する

◦ バックアップスクリプトを流す
5. Alfrescoを起動する
※ RDBMSの種類や構成に合わせて適宜リストアを実施してください
※ Luceneの場合はバックアップデータを<alf_dir>/alf_data/lucene-indexesにコピーし、
alfresco-global.propertiesでindex.recovery.mode=AUTOと設定してAlfrescoを起動します。イ
ンデックスリカバリが走るので、無事に終わったら設定を元に戻しておきます
# /opt/alfresco-4.2.d/postgresql/bin/psql
postgres=#CREATE ROLE alfresco PASSWORD'admin' LOGIN NOSUPERUSERINHERIT NOCREATEDB
NOCREATEROLE;
postgres=#CREATE DATABASEalfrescoWITH OWNER = alfresco ENCODING = 'UTF8'TEMPLATE =
template0TABLESPACE= pg_default LC_COLLATE = 'ja_JP.UTF-8' LC_CTYPE = 'ja_JP.UTF-8'CONNECTION
LIMIT = -1;
postgres=# ¥c alfresco alfresco
postgres=# ¥i /backup/pgdump.sql
ホットバックアップ
デモ
1. ホットバックアップ
2. コンテンツの追加
3. リストア
(おまけ)
Alfrescoが吹っ飛んだ時のデータ救出
 データベースとファイルシステムのバックアップデータからAlfresco内に登録されてい
たファイルを救出する
◦ ファイル実体はバイナリとしてはそのままだがファイル名が変わっている(e.g. 0f6f21e8-937b-
40fc-9efd-832d835634fc.bin)
◦ データベースで管理されている情報と突合し、元ファイル名を知る必要がある
答え
1. 同バージョンのAlfrescoを別途インストールし、バックアップデータからリストアす
る(基本的にはこちらを推奨)
2. 以下のクエリを投げ、元ファイル名と現ファイルパスの一覧を出力する(もうちょっ
と賢いクエリあるかも…)
SELECT docid.string_value, url.content_urlFROM alf_node_propertiesnp
INNER JOIN alf_content_dataacd on np.long_value = acd.id
INNER JOIN alf_content_urlurl on acd.content_url_id= url.id
INNER JOIN alf_node_propertiesdocid on docid.node_id = np.node_id
INNER JOIN alf_qnameaqn on docid.qname_id= aqn.id
WHERE aqn.local_name= "name" and aqn.ns_id= 6
商品1.jpg store://2013/9/24/11/10/2d0bd698-2846-40d7-aa08-db4e62b09d66.bin
商品4.jpg store://2013/9/24/11/10/36fd9b2f-0744-4767-804b-83fd97716fde.bin
商品5.jpg store://2013/9/24/11/10/60f7fe0a-36a8-46e5-ba82-bdc112f94366.bin
商品2.jpg store://2013/9/24/11/10/685484d9-3dba-4178-aa08-1dc7e926c3c4.bin
まとめ
 バックアップ/リストア対象データ
◦ データベース
◦ ファイルシステム
◦ 全文検索インデックス
 コールドバックアップ
◦ データディレクトリをコピーするだけ
 ホットバックアップ
◦ 全文検索インデックス→データベース→ファイルシステム
◦ 全文検索インデックスは生成されたバックアップデータ

Más contenido relacionado

La actualidad más candente

Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみよう
Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみようAlfresco勉強会#26 Alfresco SDK + Eclipseで開発してみよう
Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみようJun Terashita
 
Alfresco勉強会#28 メタデータテンプレート
Alfresco勉強会#28 メタデータテンプレートAlfresco勉強会#28 メタデータテンプレート
Alfresco勉強会#28 メタデータテンプレートJun Terashita
 
Share UIカスタマイズ Widget編
Share UIカスタマイズ Widget編Share UIカスタマイズ Widget編
Share UIカスタマイズ Widget編MoritakaSoma
 
Alfresco勉強会#26 alfresco community 5.0でssoを設定する
Alfresco勉強会#26 alfresco community 5.0でssoを設定するAlfresco勉強会#26 alfresco community 5.0でssoを設定する
Alfresco勉強会#26 alfresco community 5.0でssoを設定するTasuku Otani
 
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なことAlfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なことJun Terashita
 
Alfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White PaperAlfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White PaperToni de la Fuente
 
全社情報共有サイトへの Alfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
全社情報共有サイトへの Alfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会Ryota Watabe
 
From zero to hero Backing up alfresco
From zero to hero Backing up alfrescoFrom zero to hero Backing up alfresco
From zero to hero Backing up alfrescoToni de la Fuente
 
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseAngel Borroy López
 
Scale your Alfresco Solutions
Scale your Alfresco Solutions Scale your Alfresco Solutions
Scale your Alfresco Solutions Alfresco Software
 
Alfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin IdeasAlfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin IdeasAlfrescoUE
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―shinjiigarashi
 
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用Lorex L. Yang
 
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Shinsuke Sugaya
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...J V
 
中正大學/FHIR 快速掃描 R4 版本
中正大學/FHIR 快速掃描 R4 版本中正大學/FHIR 快速掃描 R4 版本
中正大學/FHIR 快速掃描 R4 版本Lorex L. Yang
 
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...NTT DATA Technology & Innovation
 
Alfresco Security Best Practices Guide
Alfresco Security Best Practices GuideAlfresco Security Best Practices Guide
Alfresco Security Best Practices GuideToni de la Fuente
 

La actualidad más candente (20)

Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみよう
Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみようAlfresco勉強会#26 Alfresco SDK + Eclipseで開発してみよう
Alfresco勉強会#26 Alfresco SDK + Eclipseで開発してみよう
 
Alfresco勉強会#28 メタデータテンプレート
Alfresco勉強会#28 メタデータテンプレートAlfresco勉強会#28 メタデータテンプレート
Alfresco勉強会#28 メタデータテンプレート
 
Share UIカスタマイズ Widget編
Share UIカスタマイズ Widget編Share UIカスタマイズ Widget編
Share UIカスタマイズ Widget編
 
【第1.5回勉強会】後編 alfrescoの基本操作
【第1.5回勉強会】後編 alfrescoの基本操作【第1.5回勉強会】後編 alfrescoの基本操作
【第1.5回勉強会】後編 alfrescoの基本操作
 
Alfresco勉強会#26 alfresco community 5.0でssoを設定する
Alfresco勉強会#26 alfresco community 5.0でssoを設定するAlfresco勉強会#26 alfresco community 5.0でssoを設定する
Alfresco勉強会#26 alfresco community 5.0でssoを設定する
 
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なことAlfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
 
Alfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White PaperAlfresco Backup and Disaster Recovery White Paper
Alfresco Backup and Disaster Recovery White Paper
 
全社情報共有サイトへの Alfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
全社情報共有サイトへの Alfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
 
From zero to hero Backing up alfresco
From zero to hero Backing up alfrescoFrom zero to hero Backing up alfresco
From zero to hero Backing up alfresco
 
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
 
Scale your Alfresco Solutions
Scale your Alfresco Solutions Scale your Alfresco Solutions
Scale your Alfresco Solutions
 
Alfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin IdeasAlfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin Ideas
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用
 
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
 
Alfresco紹介
Alfresco紹介Alfresco紹介
Alfresco紹介
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
中正大學/FHIR 快速掃描 R4 版本
中正大學/FHIR 快速掃描 R4 版本中正大學/FHIR 快速掃描 R4 版本
中正大學/FHIR 快速掃描 R4 版本
 
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
 
Alfresco Security Best Practices Guide
Alfresco Security Best Practices GuideAlfresco Security Best Practices Guide
Alfresco Security Best Practices Guide
 

Alfresco勉強会#18 alfrescoのバックアップとリストア