Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » Mobile Link クイックスタート » Mobile Link チュートリアル » チュートリアル:リモートデータベースの集中管理の使用

 

レッスン 16:リモートスキーマの変更

このチュートリアルでは、リモートデータベースに新しいテーブルを追加することによって、リモートスキーマを変更します。

このレッスンでは、リモートデータベースのスキーマを変更します。このチュートリアルでは、データベースのリモートスキーマ名を変更するたびに、スキーマの変更が発生します。リモートスキーマ名の変更は、強制的に実行されるものではなく、常にユーザが任意で行います。

前提条件

このレッスンは、受講者がこれまでのすべてのレッスンを終了していることを前提としています。 レッスン 1:統合データベースの作成を参照してください。

このレッスンでは、このチュートリアルの冒頭の「権限」セクションに一覧になっているロールおよび権限を持っていることを前提としています。 チュートリアル:リモートデータベースの集中管理の使用

内容と備考

1 つのリモートデータベースに対して実行できるすべてのリモートタスクは、同じリモートスキーマ名を持つ他のリモートデータベースに対しても実行できるようにしてください。タスクが失敗するか成功するかに影響を及ぼす変更をデータベースに加えた場合は、必ずデータベースのリモートスキーマ名を変更してください。リモートデータベースの状態が影響するタスク内のコマンドは、「[同期]」 コマンドと 「[SQL を実行]」 コマンドのみです。

「[同期]」 コマンドは、リモートデータベースに同期プロファイルが存在するかどうかが影響するため、同期プロファイルを追加または削除するたびにリモートスキーマ名を変更する必要があります。

「[SQL を実行]」 コマンドは、スキーマの一部として通常処理する多くのデータベースオブジェクトの状態が影響します。たとえば、データベースへのテーブルの追加やデータベースからのテーブルの削除、データベース内のテーブルの定義の変更、ストアドプロシージャの追加や削除を実行すると、「[SQL を実行]」 コマンドへの影響が発生し、これにより、リモートスキーマ名を変更することが必要になります。

 ♦ タスク
  1. Sybase Central の [フォルダ] ビューに戻ります。[Mobile Link 16] で、Central Admin Tutorial を展開し、[リモートスキーマ名] を右クリックし、[新規] » [リモートスキーマ名] をクリックします。

    リモートスキーマ名作成ウィザードが表示されます。

  2. スキーマ名に Tutorial Application v2.0 と入力し、[完了] をクリックします。

  3. 新しいリモートタスクを作成します。Sybase Central の [フォルダ] ビューの Central Admin Tutorial で、[リモートタスク] を右クリックし、[新規]  » [リモートタスク] をクリックします。リモートタスク作成ウィザードが表示されます。

  4. [ようこそ] ページで、[名前] フィールドに Schema Upgrade と入力します。

  5. [タスクにリモートデータベースが必要、またはリモートデータベースを作成] をオンにし、[リモートスキーマ名][Tutorial Application v1.0] に設定します。

  6. [このタスクは、管理対象リモートデータベースのスキーマを更新] をオンにし、[新しいリモートスキーマ名][Tutorial Application v2.0] に設定します。[完了] をクリックします。

  7. [コマンド] タブで、[コマンドタイプ] ドロップダウンリストから [SQL を実行] を選択します。[SQL] フィールドに次のように入力します。

    CREATE TABLE  product (
        prod_id            integer primary key,
        name               varchar( 100 )
    );

    これで、スキーマの変更タスクが完了しました。

    新しいスキーマ変更タスクを展開する前に、リモートデバイスにすでに割り当てられているすべてのタスクを考慮する必要があります。Schema Upgrade タスクが完了すると、データベースのリモートタスク名は Tutorial Application v2.0 になります。古いリモートスキーマ名 Tutorial Application v1.0 に関連付けられているリモートデバイス上のタスクは、実行しなくなり、エージェントによって破棄されます。これらのタスクに備えられている機能を保持するため、新しいバージョンのタスクを作成し、それを新しいリモートスキーマ名に関連付けてください。

  8. [フォルダ] ビューの Central Admin Tutorial  » [統合データベース]  » [Tutorial]  » [エージェント] で、AID_JOHN をクリックします。右ウィンドウ枠で、[タスク] タブを選択します。アクティブタスクのみがエージェントで実行されています。これらのタスクに対してのみ、新しいバージョンを作成する必要があります。この場合、アクティブタスクは Sync every hour タスクのみです。

    [タスク] タブの [リモートスキーマ名] カラムをチェックすることで、このタスクが古いリモートスキーマ名に関連付けられているかどうかを判断できます。このタスクは、Sync every hour タスクの [リモートスキーマ名]Tutorial Application v1.0 であるため、古いリモートスキーマ名に関連付けられていることを示しています。スキーマの変更後に引き続き同期を行うには、このタスクの新しいバージョンを作成してエージェントに割り当てる必要があります。

  9. Sync every hour タスクを右クリックし、[タスクに移動] を選択します。

  10. 展開済みタスク Sync every hour を右クリックし、[コピー] を選択します。

  11. [リモートタスク] を右クリックし、[貼り付け] をクリックします。コピーしたタスクの名前を尋ねられたら Sync every hour v2 と入力し、[OK] をクリックします。

  12. 新しいスキーマに対する作業を続行するために、タスク内のコマンドを変更することが必要かどうかを検討します。この場合、答えはいいえです。これは、コマンドは 1 つのみであり、このコマンドはこのスキーマ変更で修正を加えていない tutorial1_JOHN 同期プロファイルのみに依存するためです。

  13. 新しいリモートスキーマ名に関連付けられたタスクであるとマーク付けします。Sync every hour v2 タスクを右クリックし、[プロパティ] を選択します。プロパティウィンドウの [一般] ページで、[リモートスキーマ名]Tutorial Application v2.0 を選択し、[OK] をクリックします。

  14. 新しいタスクを展開するには、Sync every hour v2 タスクを右クリックし、[展開] をクリックします。[次へ] をクリックします。

  15. [受信者][特定のエージェント] をクリックしてから、エージェント AID_JOHN を選択します。[次へ] をクリックしてから、[完了] をクリックします。

  16. Schema Upgrade タスクを右クリックし、[展開] をクリックします。[次へ] をクリックします。

  17. [受信者] ドロップダウンリストから [特定のエージェント] をクリックし、タスクをエージェント AID_JOHN に割り当てます。[次へ] をクリックしてから、[完了] をクリックします。

結果

Schema Upgrade タスクが正常に実行されたことを確認してください。その後は、Sync every hour v2 タスクが 1 時間ごとに実行し、Sync every hour タスクは実行を停止します。