OpManager ナレッジベース

DB移行時にmysqlのデータをPostgreSQLにリストアできない


【現象/要望】
下記ナレッジを実施しても、DB移行時にmysqlのデータをPostgreSQLにリストアできない。
http://www.manageengine.jp/support/kb/OpManager/?p=3227

【原因】
過去にSyslogのイベントを格納するテーブルのtextカラムサイズが小さいために
正常にバックアップを取得することができず(バックアップの処理結果はokと表示されるが)、リストアに失敗する事例があります。
ターミナル上のエラー)

error

error2

jdbc.RestoreException: データのリストアでエラーが発生しました。
at jdbc.RestoreDB.readFileAndRestoreData(RestoreDB.java:151)
at jdbc.AbstractRestoreDB.restoreDB(AbstractRestoreDB.java:99)
at jdbc.AbstractRestoreDB.doRestore(AbstractRestoreDB.java:479)
at jdbc.RestoreBackup.restoreDB(RestoreBackup.java:81)
at jdbc.RestoreBackup.main(RestoreBackup.java:203)
Caused by: java.util.concurrent.ExecutionException: java.lang.Exception: テーブ
ル 'SystemLog_2017_06_08_11' についてリストアに失敗しました:
ERROR: value too long for type character varying(4000)
場所: COPY systemlog_2017_02_27_15, line 6918, column logmessage: "ID=1530 Sou
rce=Microsoft-Windows-User Profiles Service Type=2 Message=レジストリ ファイル..
."
at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at jdbc.RestoreDB.readFileAndRestoreData(RestoreDB.java:142)
... 4 more
Caused by: java.lang.Exception: テーブル 'SystemLog_2017_02_27_15' についてリス
トアに失敗しました:
ERROR: value too long for type character varying(4000)
場所: COPY SystemLog_2017_06_08_11, line 6918, column logmessage: "ID=1530 Sou
rce=Microsoft-Windows-User Profiles Service Type=2 Message=レジストリ ファイル..
."
at jdbc.RestoreDB$RestoreData.restoreUsingPgSqlCopyCommand(RestoreDB.jav
a:274)
at jdbc.RestoreDB$RestoreDataThread.call(RestoreDB.java:201)
at jdbc.RestoreDB$RestoreDataThread.call(RestoreDB.java:161)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

続行するには何かキーを押してください . . .

リストアログ)

797130 ID=1325 Source=ASP.NET 4.0.30319.0 Type=1 Message=ハンドルされていない例外が発生し、処理が中止されました。Application ID: /LM/W3SVC/3/ROOT/docotora/v4.4.6Process ID: 26968Exception: System.TypeInitializationExceptionMessage: 'ExtentPlaceholderCreator' のタイプ初期化子が例外をスローしました。StackTrace:    場所 System.Data.Mapping.Update.Internal.Propagator.ExtentPlaceholderCreator.GetPropagatorResultForPrimitiveType(PrimitiveType primitiveType, PropagatorResult& result)   場所 System.Data.Mapping.Update.Internal.Propagator.ExtentPlaceholderCreator.Visit(EdmMember node)   場所 System.Data.Mapping.Update.Internal.Propagator.ExtentPlaceholderCreator.CreateEntitySetPlaceholder(EntitySet entitySet)   場所 System.Data.Mapping.Update.Internal.Propagator.Visit(DbScanExpression node)   場所

【解決方法】
以下の手順を実施します。
手順)
1. MySQLをバンドルしたOpManagerについて
OpManager\conf\data-dictionary.xmlをコピーし別ディレクトリに配置。

2. 添付のフォルダをダウンロード解凍し得られたdata-dictionary.xmlを
OpManager\confディレクトリ直下に配置。

3. 添付のフォルダに含まれていたjdbcフォルダを
OpManager\classesディレクトリ直下に配置(上書き)。

4. 以下のナレッジの通りバックアップおよびリストアを実施。
MySQLからPostgreSQLにDBを変更する方法を教えて欲しい
https://www.manageengine.jp/support/kb/OpManager/?p=3227

注意事項)
手順4のナレッジ内のjdbcフォルダのパッチは使用せず、本ナレッジに添付の以下のパッチをご使用ください。

7238_パッチ.zip

【対応リリース】 11.6
★-----------------------------------------------------------------------------★
OpManager 製品紹介ページはこちら ↓
https://www.manageengine.jp/products/OpManager/
★-----------------------------------------------------------------------------★