25.7 組み込みSybase SQL Anywhereから外部Oracleデータベースへのデータのマイグレート

ZENworks 10 Configuration Managementでは、ZENworksプライマリサーバ上で実行されている内部組み込みSybase SQL Anywhereデータベースまたは外部Sybase SQL Anywhereデータベースから、ZENworks 10 Configuration Managementがインストールされていないデバイス上にインストールされているOracleデータベースにデータをマイグレートできます。

重要:ZENworksレポーティングサーバがデバイスにインストールされている場合は、データベースのマイグレート後、レポーティングサーバは動作しません。レポーティングサーバが動作するには、データベースマイグレート後にOracleクライアントをインストールしたプライマリサーバに、ZENworksレポーティングサーバを再度インストールする必要があります。詳細については、セクション 25.7.3, マイグレーション後のタスクを参照してください。

データベースをマイグレートするには、次を参照してください。

25.7.1 データの移動の準備

SybaseデータベースからOracleデータベースへデータをマイグレートする前に、次を実行してください。

  • ZENworks 10 Configuration Managementのライセンス状態がアクティブであることを確認します。この製品は、ライセンスバージョンか評価バージョンのいずれかでインストールおよび実行される必要があります。

  • report-save (rpsv) (宛先フォルダ)コマンドを使用して、すべてのレポート、rights.xml、およびownership.xmlを保存します。XMLファイルには、すべてのレポートの権限と所有権の詳細が含まれています。

  • Sybaseデータベースが設定されているプライマリサーバが、ZENworks 10 Configuration Managementにアップグレードされていることを確認します。

  • ZENworksプライマリサーバに、内部または外部のSybaseデータベースがインストールされていることを確認します。

  • ZENworks 10 Configuration Managementがインストールされていないデバイスに、Oracleデータベースがインストールされていることを確認してください。

  • USERS表領域にZENworksデータベーススキーマを作成して保存するのに十分な領域があることを確認します。表領域には、データの入っていないZENworksデータベーススキーマを作成するのに最低100 MBと、マイグレートされるデータベースのサイズに応じて適切な追加の領域が必要です。データベースのマイグレーションユーティリティは、デフォルトでUSERS表領域のみを使用します。マイグレーション時にその他の表領域を手動で指定することはできません。

  • データベースプロンプトで、次のクエリを実行することにより、NLS_CHARACTERSETパラメータがAL32UTF8に設定され、NLS_NCHAR_CHARACTERSETパラメータがAL16UTF16に設定されていることを確認します。

    select parameter, value from nls_database_parameters where parameter like '%CHARACTERSET%';
    
  • (条件付き)新しいユーザスキーマを作成してデータベースをマイグレートする場合は、次の要件を満たしていることを確認してください。

    • データベース管理者の資格情報を知っている必要があります。

    • Oracleのアクセスユーザに関連付けるための表領域がすでに存在している必要があります。

  • ネットワーク内のサーバ上にある既存のユーザスキーマを使用して、次のシナリオでデータベースのマイグレートを選択できます。

    • データベース管理者が必要な権限を持つユーザスキーマを作成し、ZENworks管理者は、そのユーザスキーマ用の資格情報をデータベース管理者から受け取ります。この場合、データベースをマイグレートするのにデータベース管理者の資格情報は必要ありません。

    • Oracleデータベース内でユーザスキーマを作成し、データベースのマイグレーション時にそれを使用します。

    既存のユーザスキーマを使用してデータベースをマイグレートする場合は、次の追加の要件を満たしているか確認します。

    • ユーザスキーマにデータベースを作成する次の権限があることを確認します。

      • CREATE SESSION
      • CREATE_TABLE
      • CREATE_VIEW
      • CREATE_PROCEDURE
      • CREATE_SEQUENCE
      • CREATE_TRIGGER
    • USERS表領域上で、ユーザスキーマのクォータが無制限に設定されていることを確認します。

  • 管理ゾーン内のすべてのサーバで実行されているZENworksサービスを、手動で中止します。

    サービスを中止するには、

    • Windowsの場合 次を実行します。

      1. Windowsデスクトップの[スタート]メニューで、[設定]>[コントロールパネル]の順にクリックします。

      2. 管理ツール]>[サービス]の順にダブルクリックします。

      3. Novell ZENworksサーバ]、[Novell ZENworks Services Monitor]、および[Novell ZENworksエージェントサービス]のサービスを中止します。

    • Linuxの場合: コンソールのプロンプトで、次のコマンドを入力します。

      • /etc/init.d/./novell-zenmntr stop

      • /etc/init.d/./novell-zenserver stop

      • /etc/init.d/./novell-zenloader stop

  • プライマリサーバ上のNovell ZENworks組み込みデータストアサービスが実行されていることを確認してください。

    • Windowsの場合: 次を実行します。

      1. Windowsデスクトップの[スタート]メニューで、[設定]>[コントロールパネル]の順にクリックします。

      2. 管理ツール]>[サービス]の順にダブルクリックします。

      3. Novell ZENworks組み込みデータストア]サービスのステータスは、[開始済み]である必要があります。

    • Linuxの場合: コンソールのプロンプトで、「/etc/init.d/./sybase-asa status」と入力します。

  • (オプション)データベースマイグレーションの状態は、novell-zenworks-configure.logファイルにログされます。デフォルトでは、Info (情報)およびSevere (重度)のタイプのメッセージのみログされます。他のメッセージタイプ(たとえば、Finer (より良い)、Finest (最高)、およびWarning (警告)など)もファイルにログしたい場合は、novell-zenworks-configure.propertiesファイルで次のことを行います。

    1. Logger.logLevelの値を適切なメッセージタイプに設定します。

      たとえば、Finest (最高)のタイプをログする場合には、次のように設定します。

       #Logger.logLevel   = FINEST
      
    2. 次のように「#」を外して、非コメント化します。

      Logger.logLevel   = FINEST
      

    novell-zenworks-configure.propertiesファイルは、Windowsの場合は %ZENWORKS_HOME%\conf\、Linuxの場合は、/etc/opt/novell/zenworks/にあります。

25.7.2 Sybase SQL AnywhereデータベースからOracleデータベースへのデータのマイグレート

Sybase SQL AnywhereデータベースからOracleデータベースへのデータのマイグレート

  1. セクション 25.7.1, データの移動の準備に一覧表示されているすべてのタスクが完了していることを確認してください。

  2. データベースのマイグレーションユーティリティを実行します。

    • Windowsの場合: コマンドプロンプトでZENworks_installation_path\bin\novell-zenworks-configure.batファイルに移動し、次のコマンドを入力します。

      novell-zenworks-configure.bat -c DBMigrateConfigureAction

    • Linuxの場合: コンソールのプロンプトで、/opt/novell/zenworks/binに移動し、次のコマンドを入力します。

      novell-zenworks-configure -c DBMigrateConfigureAction

  3. ターゲットデータベースのタイプとして、Oracleを入力します。

  4. OracleデータベースサーバのIPアドレスまたはホスト名を入力します。

  5. Oracleデータベースサーバによって使用されるポートを入力します。

  6. Oracleデータベースの完全修飾ネットサービス名を入力します。

  7. 新しいユーザスキーマを作成するか、既存のユーザスキーマを使用するか選択できます。

    新しいユーザスキーマを作成する場合は、ステップ 8を続行します。

    既存のユーザスキーマを使用する場合は、ステップ 9へスキップします。

  8. データベースサーバの管理者のユーザ名およびパスワードを入力します。

  9. データベースのユーザ名の入力が求められたら、スキーマ名を入力します。

  10. データベースユーザのパスワードの入力が求められたら、データベーススキーマのパスワードを入力します。

    データベースのマイグレーションを開始します。

  11. データベースのマイグレーションが終了したら、novell-zenworks-configure.logファイルをチェックして、マイグレーションが正常に行われたかを確認できます。ログファイルは、Windowsの場合は、%ZENWORKS_HOME%\log\、Linuxの場合は、/var/opt/novell/log/zenworks/にあります。

  12. データベースが正常にマイグレートされた後に、セクション 25.7.3, マイグレーション後のタスクに進みます。

データベースのマイグレーションの再開

何らかの理由でデータベースのマイグレーションが停止した場合、dbmigration.xmlファイルが作成されていれば、ZENworksマイグレーションユーティリティを使用してマイグレーションを再開できます。ファイルは、Windowsの場合はZENworks_installtion_path\binディレクトリ、Linuxの場合は/opt/novell/zenworks/binディレクトリにあります。

  1. データベースのマイグレーションユーティリティを実行します。

    • Windowsの場合: コマンドプロンプトでZENworks_installation_path\bin\novell-zenworks-configure.batファイルに移動し、次のコマンドを入力します。

      novell-zenworks-configure.bat -c DBMigrateConfigureAction

    • Linuxの場合: コンソールのプロンプトで、/opt/novell/zenworks/binに移動し、次のコマンドを入力します。

      novell-zenworks-configure -c DBMigrateConfigureAction

  2. ターゲットデータベースのタイプとして、Oracleを入力します。

  3. OracleデータベースサーバのIPアドレスまたはホスト名を入力します。

    データベースをマイグレートする際には、使用するOracleデータベースサーバのIPアドレスまたはホスト名を指定する必要があります。たとえば、データベースをマイグレートする際にデータベースサーバのIPアドレスを指定した場合は、データベースのマイグレーションを再開する場合にそれと同じIPアドレスを指定する必要があります。データベースサーバのホスト名は指定できません。

  4. Oracleデータベースサーバによって使用されるポートを入力します。

  5. Oracleデータベースの完全修飾ネットサービス名を入力します。

  6. 既存のスキーマの使用を選択します。

  7. データベースのマイグレーションを停止する前に指定したデータベースのユーザ名の入力が求められたら、スキーマ名を入力します。

  8. データベースのマイグレーションを停止する前に指定したデータベースユーザのパスワードの入力が求められたら、データベーススキーマのパスワードを入力します。

  9. データベースのマイグレーションの再開を選択します。

    データベースのマイグレーションを開始します。

  10. データベースが正常にマイグレートされた後に、セクション 25.7.3, マイグレーション後のタスクに進みます。

25.7.3 マイグレーション後のタスク

管理ゾーンに1つのサーバしかない場合、Oracleデータベースにデータが正常にマイグレートされた後に、すべてのZENworksサービスが自動的に開始されます。

管理ゾーンに複数のサーバがある場合は、次の操作を行います。

  1. マイグレーションユーティリティを実行するデバイスで、すべてのサーバの適切なディレクトリに次のファイルをコピーします。

    • zdm.xml
    • dmaccounts.properties
    • dmmappings.properties

    ファイルは、Windowsの場合は、ZENworks_installation_path\conf\datamodelディレクトリ、Linuxの場合は/etc/opt/novell/zenworks/datamodelディレクトリにあります。

  2. ZENworksサービスを再起動します。

    • Windowsの場合: 次を実行します。

      1. Windowsデスクトップの[スタート]メニューで、[設定]>[コントロールパネル]の順にクリックします。

      2. 管理ツール]>[サービス]の順にダブルクリックします。

      3. Novell ZENworksサーバ]、[Novell ZENworks Services Monitor]、および[Novell ZENworksエージェントサービス]のサービスを開始します。

    • Linuxの場合: コンソールのプロンプトで、次のコマンドを入力します。

      • /etc/init.d/./novell-zenmntr restart

      • /etc/init.d/./novell-zenserver restart

      • /etc/init.d/./novell-zenloader restart

  3. Sybase SQL AnywhereデータベースからOracleデータベースへのZENworksレポートのマイグレート:

    1. ZENworksレポーティングサーバのインスタンスを持たないプライマリサーバに、Oracleクライアントをインストールします。

    2. ZENworksレポーティングサーバの新しいインスタンスを、Oracleクライアントがインストールしてあるデバイスにインストールします。

    3. レポーティングサーバの新しいインスタンスが実行されているデバイスに、レポートをコピーします。これらは、マイグレートする前に保存したZENworksレポートです。詳細については、セクション 25.7.1, データの移動の準備を参照してください。

    4. 次のコマンドを使用して、レポートを発行し、レポーティング権限およびレポートの所有権の詳細を復元します。

      zman rpld path_of_directory_containing_rights.xml_and_ownership.xml

    5. データベースのマイグレート前にインストールされていたZENworksレポーティングサーバのインスタンスをアンインストールします。

ZENworksサーバは、新しいデータベースを指しています。

Oracle 10gデータベースの場合、ユーザソースのログイン名も含め、管理者名の大文字と小文字が区別されます。インストール中に自動作成されたデフォルトのZENworks管理者アカウントでは最初の文字に大文字を使用しているため、ZENworksコントロールセンターにログインするときにはAdministratorと入力する必要があります。

25.7.4 データベースのマイグレーションのトラブルシューティング

Javaヒープ領域例外のトラブルシューティング

メモリ不足により、データベースマイグレーション時にJavaヒープ領域の例外が発生した場合は、次の操作を行います。

  1. Windowsの場合はZENworks_installation_path\bin\novell-zenworks-configure.batファイル、Linuxの場合は/opt/novell/zenworks/bin/novell-zenworks-configureを編集し、マイグレーションユーティリティが実行されているデバイスのRAMに応じて、次の行のヒープ領域の値を変更します。

    "%JAVA_HOME%\bin\java" -Djava.library.path=%ZENLIB% -cp "%MYCP%" %DEBUG_OPTS% %JAVA_OPTS% -Xmx128m com.novell.zenworks.configure.ConfigureLoader %CONFIG_OPTS%
    

    ヒープ領域の値は、-Xmx128m以内のメガバイト(MB)で表されます。デフォルトでは、128です。

    たとえば、デバイスのRAMが 512 MBである場合、novell-zenworks-configure.batファイルの行を次のように更新できます。

    "%JAVA_HOME%\bin\java" -Djava.library.path=%ZENLIB% -cp "%MYCP%" %DEBUG_OPTS% %JAVA_OPTS% -Xmx512m com.novell.zenworks.configure.ConfigureLoader %CONFIG_OPTS%
    

    重要:ヒープ領域の値は、デバイスのRAM以下である必要があります。

  2. コンソールのプロンプトで、Windowsの場合はZENworks_installation_path\bin\novell-zenworks-configure.batファイル、Linuxの場合は/opt/novell/zenworks/bin/novell-zenworks-configureを実行します。

  3. 表示される指示に従います。

    マイグレーションの再開に必要なファイルの場所の入力を求められたら、DBMigration.xmlの完全パスを入力します。ファイルは、Windowsの場合はZENworks_installtion_path\binディレクトリ、Linuxの場合は/opt/novell/zenworks/binディレクトリにあります。

    XMLファイルには、テーブルが正常にマイグレートされたかどうかを示すテーブルおよびフラグのリストが含まれています。データベースマイグレーションの再開時に、フラグの値がFalseに設定されているテーブルのみがマイグレートされます。

Oracleデータベースのクラッシュのトラブルシューティング

データベースのマイグレーション中にOracleデータベースがクラッシュした場合:

  1. コンソールのプロンプトで、Windowsの場合はZENworks_installation_path\bin\novell-zenworks-configure.batファイル、Linuxの場合は/opt/novell/zenworks/bin/novell-zenworks-configureを実行します。

  2. 表示される指示に従います。

    マイグレーションの再開に必要なファイルの場所の入力を求められたら、DBMigration.xmlの完全パスを入力します。ファイルは、Windowsの場合はZENworks_installtion_path\binディレクトリ、Linuxの場合は/opt/novell/zenworks/binディレクトリにあります。

    XMLファイルには、テーブルが正常にマイグレートされたかどうかを示すテーブルおよびフラグのリストが含まれています。データベースマイグレーションの再開時に、フラグの値がFalseに設定されているテーブルのみがマイグレートされます。

    重要:DBMigration.xmlのコンテンツは編集しないでください。

Oracleテーブルスペース問題のトラブルシューティング

OracleのUSERS表領域にZENworksデータベーススキーマを作成し保存するのに十分な領域がない場合は、表を作成しようとすると、次のメッセージが表示されてデータベースのマイグレーションが失敗します。

SEVERE: Terminating the database migration...
SEVERE: An error has occurred while migrating the database.

この問題を解決するには、Oracleデータベースの管理者がUSERS表領域のサイズを増やす必要があります。データの入っていないZENworksデータベーススキーマを作成するのに最低 100 MBと、マイグレートされるデータベースのサイズに応じて適切な追加の領域が表領域に存在することを確認してください。

データベースマイグレーション失敗問題のトラブルシューティング

NLS_CHARACTERSETパラメータがAL32UTF8に設定されておらず、NLS_NCHAR_CHARACTERSETパラメータがAL16UTF16に設定されていない場合、データベースのマイグレーションが失敗し、次のエラーメッセージが表示されます。

Failed to run the sql script: localization-updater.sql,
message:Failed to execute the SQL command: insert into
zLocalizedMessage(messageid,lang,messagestr)
values('POLICYHANDLERS.EPE.INVALID_VALUE_FORMAT','fr','La stratégie {0} n''a
pas pu être appliquée du fait que la valeur de la variable "{1}" n''est pas
dans un format valide.'),
message:ORA-00600: internal error code, arguments: [ktfbbsearch-7], [8], [],
[], [], [], [], []

この問題を解決するには、NLS_CHARACTERSETパラメータをAL32UTF8に設定し、NLS_NCHAR_CHARACTERSETパラメータをAL16UTF16に設定します。文字セットパラメータが推奨値で設定されたことを確認するには、データベースプロンプトで、次のクエリを実行します。

select parameter, value from nls_database_parameters where parameter like '%CHARACTERSET%';

既存のユーザスキーマの使用によるデータベースマイグレーションのトラブルシューティング

既存のユーザスキーマを使用してデータベースをマイグレートする場合、データベースマイグレーションユーティリティは、ZENworksデータベースを作成しますが、データのマイグレートに失敗する可能性があります。

この問題を解決するには、次の操作を行います。

  1. 新しく作成されたZENworksデータベースから、データベース管理者がZENworksのテーブル、ビュー、およびユーザシーケンスを削除するようにしてください。その後、user_recyclebinデータベーステーブルをクリアします。

  2. 同じユーザスキーマを使用して、データベースのマイグレーションを再度開始します。詳細については、Sybase SQL AnywhereデータベースからOracleデータベースへのデータのマイグレートを参照してください。

25.7.5 Sybaseデータベースへ戻す

Sybaseデータベースの使用に戻す場合は、次の手順に従います。

  1. マイグレーションユーティリティを実行するデバイスで、次のファイルの名前を変更します。

    • zdm.xml.bak to zdm.xml
    • dmaccounts.properties.bak to dmaccounts.properties
    • dmmappings.properties.bak to dmmappings.properties

    ファイルは、Windowsの場合は、ZENworks_installation_path\conf\datamodelディレクトリ、Linuxの場合は/etc/opt/novell/zenworks/datamodelディレクトリにあります。

  2. すべてのZENworksサービスを再起動します。

    • Windowsの場合: 次を実行します。

      1. Windowsデスクトップの[スタート]メニューで、[設定]>[コントロールパネル]の順にクリックします。

      2. 管理ツール]>[サービス]の順にダブルクリックします。

      3. Novell ZENworksサーバ]、[Novell ZENworks Services Monitor]、および[Novell ZENworksエージェントサービス]のサービスを開始します。

    • Linuxの場合: コンソールのプロンプトで、次のコマンドを入力します。

      • /etc/init.d/./novell-zenmntr restart

      • /etc/init.d/./novell-zenserver restart

      • /etc/init.d/./novell-zenloader restart