Confluence 5.7 のサポートは終了しています。
ドキュメントの最新バージョンを確認してください。
XML サイト バックアップは、新しいデータベースに移行する場合にのみ必要です。テスト サーバーの設定または信頼性の高いバックアップ戦略の確立については、SQL ダンプで行うほうが適切です。
バックアップの作成またはインポート時にエラーが発生する
問題 | ソリューション |
|---|---|
バックアップ作成時の例外 | 以下の手順に従います。 |
バックアップ インポート時の例外 | 代わりに「復元に失敗した XML バックアップのトラブルシューティング」に従います。 |
The information on this page does not apply to Confluence Cloud.
データベースのわずかな破損によってエラーが発生する場合があります。ログ内に「データベースのデータがバックアップできません」などのエラーが出力されている場合は、このガイドがエラーの修正に役立ちます。必要に応じてバックアップからサイトを復元できるように、事前にデータベースと Confluence ホーム ディレクトリをバックアップすることを強くお勧めします。SQL に詳しくない場合、データベース管理者に支援してもらえるよう連絡することをお勧めします。
バックアップ生成戦略は非常に信頼性が高く、より効率的なバックアップの方法です。メモリ関連またはここに記載しているような問題が原因の XML バックアップの問題が発生している場合、代わりのソリューションとしてネイティブ バックアップ ツールを使用します。
データの破損した場所や問題のある箇所を解決するには、バックアップ中に報告されるステータス情報を増やし、有効ではないデータベース エントリを編集します。
my_confluence_install/confluence/WEB-INF/classes/log4j.properties を開き、一番下に以下を追加して保存します。
log4j.logger.com.atlassian.confluence.importexport.impl.XMLDatabinder=DEBUG, confluencelog log4j.additivity.com.atlassian.confluence.importexport.impl.XMLDatabinder=false
confluence-home/logs/atlassian-confluence.log を開きます。ファイルの一番下までスクロールします。「ObjectNotFoundException」を検索します。エラーは以下のように表示されるはずです。
01 2005-08-24 00:00:33,743 DEBUG [DOCPRIV2:confluence.importexport.impl.XMLDatabinder] Writing object: com.atlassian.confluence.core.ContentPermission with ID: 5 to XML. 02 2005-08-24 00:00:33,743 DEBUG [DOCPRIV2:confluence.importexport.impl.XMLDatabinder] Writing property: type 03 2005-08-24 00:00:33,743 DEBUG [DOCPRIV2:confluence.importexport.impl.XMLDatabinder] Writing property: group 04 2005-08-24 00:00:33,743 DEBUG [DOCPRIV2:confluence.importexport.impl.XMLDatabinder] Writing property: expiry 05 2005-08-24 00:00:33,743 DEBUG [DOCPRIV2:confluence.importexport.impl.XMLDatabinder] Writing property: content 06 [DOCPRIV2:ERROR] LazyInitializer - Exception initializing proxy <net.sf.hibernate.ObjectNotFoundException: No row with the given identifier exists: 2535, 07 of class: com.atlassian.confluence.core.ContentEntityObject>net.sf.hibernate.ObjectNotFoundException: 08 No row with the given identifier exists: 2535, of class: com.atlassian.confluence.core.ContentEntityObject 09 at net.sf.hibernate.ObjectNotFoundException.throwIfNull(ObjectNotFoundException.java:24) 10 at net.sf.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:1946) 11 at net.sf.hibernate.proxy.LazyInitializer.initialize(LazyInitializer.java:53) 12 at net.sf.hibernate.proxy.LazyInitializer.initializeWrapExceptions(LazyInitializer.java:60) 13 at net.sf.hibernate.proxy.LazyInitializer.getImplementation(LazyInitializer.java:164) 14 at net.sf.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:108) 15 at com.atlassian.confluence.core.ContentEntityObject$$EnhancerByCGLIB$$cc2f5557.hashCode(<generated>) 16 at java.util.HashMap.hash(HashMap.java:261) 17 at java.util.HashMap.containsKey(HashMap.java:339) 18 at com.atlassian.confluence.importexport.impl.XMLDatabinder.toGenericXML(XMLDatabinder.java:155)
catalina.out を開き、例外の最初の行を確認します。これは、XML に id 5 の ContentPermission オブジェクトを書き込む際にエラーが発生したことを示しています。これは CONTENTLOCK テーブルの主キー 5 の行を修正する必要があることを意味しています。以下は、データベースでのオブジェクトとテーブル間のマッピングを確認するための概要です。CONTENT (5 行目) で、値は 2535 (6 行目) です。これで列と値を確認できました。この値 2535 は、存在しないエントリの id です。以下のようなエラーメッセージが発生した場合
could not insert: [bucket.user.propertyset.BucketPropertySetItem#bucket.user.propertyset.BucketPropertySetItem@a70067d3]; SQL []; Violation of PRIMARY KEY constraint 'PK_OS_PROPERTYENTRY314D4EA8'. Cannot insert duplicate key in object 'OS_PROPERTYENTRY'.; nested exception is java.sql.SQLException: Violation of PRIMARY KEY constraint 'PKOS_PROPERTYENTRY_314D4EA8'. Cannot insert duplicate key in object 'OS_PROPERTYENTRY'.
これは、主キー制約「PK_OS_PROPERTYENTRY_314D4EA8」がテーブル「OS_PROPERTYENTRY」内で重複するエントリーを持つことを示しています。
テーブル「OS_PROPERTYENTRY」内の「PK_OS_PROPERTYENTRY_314D4EA8」を参照する制約キーを見つけ、重複している値を探し、削除することで、「主キー」を一意にします。「OS_PROPERTYENTRY」テーブル内の重複エントリーを一覧表示するクエリの例は以下のとおりです。
SELECT ENTITY_NAME,ENTITY_ID,ENTITY_KEY,COUNT(*) FROM OS_PROPERTYENTRY GROUP BY ENTITY_NAME,ENTITY_ID,ENTITY_KEY HAVING COUNT(*)>1