GeoSync サブスクライバとしてのサテライト データベース
この手順では、大規模なマスター データベースから一部またはすべての構成をエクスポート (インポート/エクスポート機能を使用) して、個人設定サーバ データベースが作成され、少数のユーザによってリモートで使用されている状況について説明します。お客様は、GeoSync を使用して、マスターとサテライトをそれぞれ GeoSync パブリッシャとサブスクライバにすることで、自動的にマスターとサテライト間でユーザのサブセットを同期したいと考えています。既存のマージ レプリケーション スクリプトでは、すべてのデータベースが同期されるため、これは不可能です。
構成のインポート/エクスポートは、GeoSync 機能がパブリッシャとサブスクライバと一致するために依存しているデータベース ID (GUID) を変更します。この問題は、サブスクライバのすべての GUID をパブリッシャに合わせて修正することで解決されます。このためには、サブスクライバでダウンタイムが必要です。影響を受けるユーザはログオンできません。ユーザ コンピュータのオフライン キャッシュは、次回の接続時に修正されたデータベースに保存できないため、すべて無効になります。また、Windows 設定グループ「OriginalName」列がパブリッシャとサブスクライバで一致しない場合、同期を実行できません。
GUID マッピングは PowerShell スクリプト (PrepareGeoSubscriber.ps1) によって実行されます。これは、sqlcmd ユーティリティと2つの SQL スクリプト (CheckMapping.sql and MapUgs.sql) を使用します。これらは同じフォルダになければなりません。
スクリプトは次の場所にあります。:%systemdrive%\Program Files\AppSense\Environment Manager\Personalization Server\Support
制限
パブリッシャとサブスクライバ データベースが同じソフトウェア バージョンで作成されていない場合は、次の問題が生じる可能性があります。
- Window 10および Server 2016の導入により、一部の Windows 設定グループ (WSG) 名がデータベース バージョン間で変更されました。グループがサブスクライバにエクスポートおよびインポートされ、サブスクライバに古い名前と新しい名前の両方がある場合、DesktopSettings.[Group] 表の OriginalName 列が異なるため、WSG の同期はできません。元の名前は、ApplicationData および ApplicationDataArchives 表の両方をスキャンする必要があるため、簡単に変更できません。このトピックで説明するマッピング処理はこれをサポートしていません。
- 同期する同じユーザがパブリッシャおよびサブスクライバ データベースの両方に存在し、ユーザが最初に8.これは、8.4より前のバージョンでは、ユーザ ID (UserPK 列) が通常のアルゴリズムに従ってランダムに割り当てられていたためです。4より前では、ユーザ ID (UserPK 列) が、標準の GUID アルゴリズムに従って、ランダムに割り当てられていたためです。8.4以降では、GUID はユーザの SID から派生し、データベース間で一貫しています。この問題の解決策は、dbo.[User].table で SQL DELETE を使用して、データベースのいずれかから影響を受けるユーザを物理的に削除することです。
前提条件
- スクリプトを実行するユーザは、Windows 統合認証経由で、両方のデータベースへの sysadmin アクセス許可を有しています。
- スクリプトは、現在のパスに sqlcmd.exe ユーティリティがあるコンピュータで実行されます。関連するデータベース サーバの1つは最も便利なサーバにすることができますが、適切な MSI を Microsoft 社からダウンロードすると、sqlcmd.exe を別のコンピュータにインストールできます。
- パブリッシャおよびサブスクライバ データベースは、ネットワーク上で、相互とスクリプトにアクセスできる必要があります。sqlcmd と GeoSync ソフトウェアの両方で、標準の SQL Server 接続 (通常は1433番ポート) が使用されます。
初期設定
スクリプトは、1度に1つの個人設定グループに適用されます。個人設定グループ (名前で識別) は、開始する前に、パブリッシャとサブスクライバの両方に表示される必要があります。GeoSync はまだ設定されていないという想定です。「パブリッシャ」と「サブスクライバ」は意図された使用を指します。
通常、個人設定グループは、インポート/エクスポート機能を使用して、パブリッシャからエクスポートされ、サブスクライバにインポートされることが想定されています。ただし、パブリッシャからインポートされたアプリケーション グループと Windows 設定グループを使用して、サブスクライバで、新しい個人設定グループが作成されル場合、サブスクライバからグループをエクスポートし、サブスクライバにインポートすることで、同期することができます。
いずれの場合でも、スクリプトは、同期される個人設定グループが両方のデータベースに最初に存在することを前提としています。
スクリプトの実行
PowerShell スクリプトと2つのSQL スクリプトは同じディレクトリになければなりません。PowerShell コマンドプロンプトから PowerShell スクリプトを実行します。昇格は必要ありません。両方のデータベースの詳細と、同期される個人設定グループの名前が確認されます。指定されたデータベースの存在確認が行われ、2つの SQL スクリプトが実行されます。これらのスクリプトはサブスクライバで実行されますが、後から削除されるリンクされたサーバ エントリを作成して、パブリッシャに接続します。
2つのスクリプトは次の処理を実行します。
- CheckMapping.sql - グループのすべての詳細を比較し、考えられる問題を特定します。これらの問題は次の3つのカテゴリに分けられます。
- 警告 - パブリッシャの個人設定グループに、サブスクライバには存在しない、アプリケーション グループなどの余分なエンティティがあります。このため、同期した後、サブスクライバは追加のエンティティを受信します。
- エラー - サブスクライバの個人設定グループには、パブリッシャに存在しない追加のエンティティがあります。このため、データがサブスクライバに表示されないことがあり、調査が必要です。
- 致命的 - Windows 設定グループ「originalname」フィールドがパブリッシャとサブスクライバで一致しません。通常は、類似したデータが既にサブスクライバに存在することが原因です。マッピングは実行できません。
- MapUGs.sql - マッピングを実行します。「致命的」が検出された場合は、実行できません。実行される前に、最初にユーザに確認するため、ユーザは必要な変更を行って、再起動できます。
GeoSync の設定
個人設定グループを同期した後、この説明に従い、2つのデータベース間で、GeoSync を有効にできます。設定後、Environment Manager の [GeoSync] タブで、同期された個人設定グループを同期済みに設定する必要があります。このグループのデータが既にパブリッシャに存在する場合は、一部のパブリッシャのデータがサブスクライバに送信されないことを保証するために、GeoSync 条件の設定が必要になることがあります。
CheckMapping 処理
CheckMapping.sql は、パブリッシャおよびサブスクライバ データベースで次の点を確認します。
確認 |
問題カテゴリ |
---|---|
個人設定グループは両方のデータベースに存在しません。 |
致命的 |
[設定] タブのチェックボックス項目が、個人設定グループ間で同じではありません。 |
警告 |
影響を受けるユーザは両方のデータベースに存在します。SID が同じですが、GUID は異なります。 |
致命的 |
詳細プロパティ UpgradeFbrToHive の設定がデータベース間で異なります。 |
致命的 |
アプリケーション グループ割り当てが異なります。 |
パブリッシャにはその他のアプリケーション グループがあります - 警告 サブスクライバにはその他のアプリケーション グループがあります - エラー |
アプリケーション グループに割り当てられたアプリケーションが異なります。 |
パブリッシャにはその他があります - 警告 サブスクライバにはその他があります - エラー |
アプリケーション定義が異なります - EXE、OS バージョン、ファイル バージョン |
パブリッシャにはその他があります - 警告 サブスクライバにはその他があります - エラー |
アプリケーション グループに割り当てられたレジストリ、ファイル、フォルダ パスが異なります。 |
パブリッシャにはその他があります - 警告 サブスクライバにはその他があります - エラー |
アプリケーション グループの管理されたフォルダが異なります。 |
パブリッシャにはその他があります - 警告 サブスクライバにはその他があります - エラー |
Windows 設定グループ割り当てがデータベース間で異なります。 |
パブリッシャにはその他があります - 警告 サブスクライバにはその他があります - エラー |
Windows 設定グループ コンポーネント、設定、カスタム設定、条件が異なります。 |
パブリッシャにはその他があります - 警告 サブスクライバにはその他があります - エラー |
同期される WSG の OriginalName 列が異なります。 サブスクライバの既存の WSG の元の名前が一致する場合、インポート中にこれが発生する可能性があります。「元の名前」はデータとアーカイブで使用され、MapUGs.sql スクリプトでは修正されないため、簡単に解決することはできません。 |
致命的 |