このレッスンは、受講者がこれまでのすべてのレッスンを終了していることを前提としています。 レッスン 1:統合データベースの作成を参照してください。
このレッスンでは、リモートデータベースのスキーマを変更します。このチュートリアルでは、データベースのリモートスキーマ名を変更するたびに、スキーマの変更が発生します。リモートスキーマ名の変更は、強制的に実行されるものではなく、常にユーザーが任意で行います。
1 つのリモートデータベースに対して実行できるすべてのリモートタスクは、同じリモートスキーマ名を持つ他のリモートデータベースに対しても実行できるようにしてください。タスクが失敗するか成功するかに影響を及ぼす変更をデータベースに加えた場合は、必ずデータベースのリモートスキーマ名を変更してください。リモートデータベースの状態が影響するタスク内のコマンドは、「[同期]」 コマンドと 「[SQL を実行]」 コマンドのみです。
「[同期]」 コマンドは、リモートデータベースに同期プロファイルが存在するかどうかが影響するため、同期プロファイルを追加または削除するたびにリモートスキーマ名を変更する必要があります。
「[SQL を実行]」 コマンドは、スキーマの一部として通常処理する多くのデータベースオブジェクトの状態が影響します。たとえば、データベースへのテーブルの追加やデータベースからのテーブルの削除、データベース内のテーブルの定義の変更、ストアドプロシージャーの追加や削除を実行すると、「[SQL を実行]」 コマンドへの影響が発生し、これにより、リモートスキーマ名を変更することが必要になります。
このチュートリアルでは、リモートデータベースに新しいテーブルを追加することによって、リモートスキーマを変更します。
Sybase Central の [フォルダー] ビューに戻ります。[Mobile Link 12] で、Central Admin Tutorial を展開し、[リモートスキーマ名] を右クリックし、[新規] » [リモートスキーマ名] をクリックします。
リモートスキーマ名作成ウィザードが表示されます。
スキーマ名に Tutorial Application v2.0 と入力します。
データベースタイプに [SQL Anywhere] を選択し、[完了] をクリックします。
新しいリモートタスクを作成します。Sybase Central の [フォルダー] ビューの Central Admin Tutorial で、[リモートタスク] を右クリックし、[新規] » [リモートタスク] をクリックします。リモートタスク作成ウィザードが表示されます。
[ようこそ] ページで、[名前] フィールドに Schema Upgrade と入力します。
[タスクにリモートデータベースが必要、またはリモートデータベースを作成] をオンにし、[リモートスキーマ名] を [Tutorial Application v1.0] に設定します。
[このタスクは、管理対象リモートデータベースのスキーマを更新] をオンにし、[新しいリモートスキーマ名] を [Tutorial Application v2.0] に設定します。[完了] をクリックします。
[コマンド] タブで、[コマンドタイプ] ドロップダウンリストから [SQL を実行] を選択します。[SQL] フィールドに次のように入力します。
CREATE TABLE product ( prod_id integer primary key, name varchar( 100 ) ); |
これで、スキーマの変更タスクが完了しました。
新しいスキーマ変更タスクを展開する前に、リモートデバイスにすでに割り当てられているすべてのタスクを考慮する必要があります。Schema Upgrade タスクが完了すると、データベースのリモートタスク名は Tutorial Application v2.0 になります。古いリモートスキーマ名 Tutorial Application v1.0 に関連付けられているリモートデバイス上のタスクは、実行しなくなり、エージェントによって破棄されます。これらのタスクに備えられている機能を保持するため、新しいバージョンのタスクを作成し、それを新しいリモートスキーマ名に関連付けてください。
[フォルダー] ビューの Central Admin Tutorial » [統合データベース] » [Tutorial] » [エージェント] で、AID_JOHN をクリックします。右ウィンドウ枠で、[タスク] タブを選択します。アクティブタスクのみがエージェントで実行されています。これらのタスクに対してのみ、新しいバージョンを作成する必要があります。この場合、アクティブタスクは Sync every hour タスクのみです。
[タスク] タブの [リモートスキーマ名] カラムをチェックすることで、このタスクが古いリモートスキーマ名に関連付けられているかどうかを判断できます。このタスクは、Sync every hour タスクの [リモートスキーマ名] が Tutorial Application v1.0 であるため、古いリモートスキーマ名に関連付けられていることを示しています。スキーマの変更後に引き続き同期を行うには、このタスクの新しいバージョンを作成してエージェントに割り当てる必要があります。
Sync every hour タスクを右クリックし、[タスクに移動] を選択します。
展開済みタスク Sync every hour を右クリックし、[コピー] を選択します。
[リモートタスク] を右クリックし、[貼り付け] をクリックします。コピーしたタスクの名前を尋ねられたら Sync every hour v2 と入力し、[OK] をクリックします。
新しいスキーマに対する作業を続行するために、タスク内のコマンドを変更することが必要かどうかを検討します。この場合、答えはいいえです。これは、コマンドは 1 つのみであり、このコマンドはこのスキーマ変更で修正を加えていない tutorial1_JOHN 同期プロファイルのみに依存するためです。
新しいリモートスキーマ名に関連付けられたタスクであるとマーク付けします。Sync every hour v2 タスクを右クリックし、[プロパティ] を選択します。プロパティウィンドウの [一般] ページで、[リモートスキーマ名] に Tutorial Application v2.0 を選択し、[OK] をクリックします。
新しいタスクを展開するには、Sync every hour v2 タスクを右クリックし、[展開] をクリックします。[次へ] をクリックします。
[受信者] で [特定のエージェント] をクリックしてから、エージェント AID_JOHN を選択します。[次へ] をクリックしてから、[完了] をクリックします。
Schema Upgrade タスクを右クリックし、[展開] をクリックします。[次へ] をクリックします。
[受信者] ドロップダウンリストから [特定のエージェント] をクリックし、タスクをエージェント AID_JOHN に割り当てます。[次へ] をクリックしてから、[完了] をクリックします。
Schema Upgrade タスクが正常に実行されたことを確認してください。その後は、Sync every hour v2 タスクが 1 時間ごとに実行し、Sync every hour タスクは実行を停止します。
レッスン 18:リモートデータベースの問い合わせに進みます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |