問題タブ [transactional-replication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - SQL トランザクション レプリケーションでは、テーブルに対するユーザー権限を変更すると、新しいスナップショットがトリガーされますか?
私は、SQL Server 2012 のトランザクション レプリケーション シナリオについて何らかの助けを得たいと思っていました。あるいは、SQL サーバーのどこにアクセス許可が格納されているかを理解しているだけかもしれません。トランザクション レプリケーション構成で、パブリッシャーの特定のテーブルに対するユーザーのアクセス許可 (SELECT または INSERT の付与など) を変更すると、サブスクライバーが新しいスナップショットからプルする必要があるようにスキーマが変更されますか?
私の懸念は、新しいスナップショットが作成されている間、サブスクライバーが事実上オフラインになるような変更によるダウンタイムの可能性です。理想的には、特定のユーザーに、パブリッシャーまたはサブスクライバーのいずれかで複製された記事への新しいアクセス許可を、リセットせずに付与するだけで済みます。更新されたアクセス許可がパブリッシャーからサブスクライバーにレプリケートされることについては心配していません (実際、理想的にはレプリケートされません)。前もって感謝します!
c# - データベース(SQLサーバー)の変更についてC#アプリケーションに通知する方法
私はac#アプリケーションに取り組んでいます。このアプリケーションには、マスター データベースとスレーブ データベースがあります。マスター データベースは、転写レプリケーションを使用してスレーブ データベースのデータを更新します (私はそれを実装し、正常に動作しています)。
私の問題は、マスターデータベースがスレーブデータベースのデータを更新するときに、データが更新されたことをC#アプリケーションがどのように認識し、ユーザーインターフェイスだけでなくキャッシュ内のデータも更新することです。
つまり、SQL サーバーから C# アプリケーションにデータを公開する方法を教えてください。
sql-server-2012 - RMO 経由の SQL Server Express 2012 プル同期でサブスクリプションが表示されない
SQL Server 2012 と SQL Server Express 2012 の間でレプリケーションをセットアップしようとしています。SSMS を介してパブリケーションとサブスクリプションをセットアップし、RMO を介して同期を実行しようとしています。
こちらの回答に従いましたが、同期しようとしているサブスクリプションが存在しないというエラーが表示されます。サブスクライバーのサブスクリプションのリストを調べるためにこれを試しましたが、空です。
しかし、SSMS でサブスクリプションを確認できます。そこにいて私を見ている。これらの設定方法について何かが欠けているに違いありません。パブリケーションとサブスクリプションの両方を既に削除して再作成しました。運がない。
更新: TransPullSubscriptions を探すようにサンプル コードを変更しました。2 番目のリンクのコードは、サブスクリプションを正しく出力するようになりました。
ただし、実際に同期を実行するコードは、サーバー上のサブスクリプションをまだ認識していません。
ロード プロパティのテストは失敗しますが、続行するとエラーがスローされます。「SynchronizationAgent」は、オブジェクトがサーバー内の既存のオブジェクトを提示する場合にのみ使用できます。
更新: より多くのコードが追加されました!
c# - レプリケートされたテーブルを削除/作成する最良の方法
会計アプリケーション用に複数のテーブルをレプリケートするように SQL Server レプリケーションをセットアップしました。初期スナップショットでトランザクション レプリケーションを使用しています。約100人の加入者があります。
レプリケートされたテーブルを更新する最善の方法を見つけようとしています。現在、更新を行う場合、エンド ユーザーは、データを一時テーブルに移動し、テーブルを削除してから、新しいテーブル定義に基づいてテーブルを再作成することで、テーブルをアップグレードするユーティリティを実行する必要があります。問題は、レプリケートされたテーブルを削除できないことです。
これまで色々と調べたり試したりしてきました。レプリケートされたテーブルを削除/作成するために私が見つけたものから、記事を削除する必要がありますが、すべてのサブスクリプションが削除された場合にのみ削除できます。つまり、テーブルをアップグレードするには、すべての記事とサブスクリプションを削除してから、パブリケーションを完全に再作成する必要があります。
これにはかなりのリファクタリングが必要になるため、面倒です。また、100 人のサブスクライバすべてに対して複製をやり直すのにかかる時間も、主な懸念事項です。レプリケートされたテーブルの削除/作成を処理するためのより良い方法があるかどうか疑問に思っていました。
ありがとう、マコライト
sql - レプリケーション TempDB のサイズ
現在、2 つの MS SQL Server (両方とも 2008 r2 を実行) でレプリケーションをセットアップしています。
サブスクライバーでは、私の tempdb は、1 時間以内に約 28 GB というとんでもない速度ですぐにいっぱいになります。進行中のトランザクションを保存するために tempdb を使用する必要があることは理解していますが、これは後で縮小する必要がありますか?
レプリケーション用に 35Gb のログ ファイルも取得しましたが、これも縮小できないようです。
誰かアイデアはありますか?
ありがとう
sql-server - OS エラー 53 のため、プロセスはファイルを読み取れませんでした
私はこれを修正するために高低を探しましたが、すべてが同じことを言っています-権限エラーです。レプリケーション モニターに表示されるエラーには明確に示されていますが、何が間違っているのかわかりません。
セットアップ(スクリーンショットのすべての赤い線で申し訳ありません-ものを偽装するために最善を尽くしています;)):
- パブリッシャーとディストリビューターは SQL Server 2012 (11.0.3128) 上にあります
- サブスクライバーがリモート SQL Server 2008 (10.50.2550) である - プル サブスクリプションを使用
- SQL_Replication_Dev http://screencast.com/t/mz7ZX3fCWと呼ばれる Windows ユーザー。このユーザーは両方のサーバーに同じパスワードで存在します
- 両方の SQL Server で作成された SQL_Replication_Dev ユーザーのログインhttp://screencast.com/t/pGmnYQTZJm
- SQL_Replication_Dev ユーザーは、パブリッシング DB と
distribution
パブリッシャー上の DB、およびサブスクライバー上のサブスクライバー DB にマップされます。すべてのインスタンスで、db_owner
役割が割り当てられていますhttp://screencast.com/t/2uVfHbkf4Q - パブリケーションはネットワーク共有を使用しており、デフォルト フォルダーではありませんhttp://screencast.com/t/OgnUcfBWlz
- SQL_Replication_Dev ユーザーはhttp://screencast.com/t/d5s1ZZiW
Full Control
を共有する必要があります - SQL_Replication_Dev ユーザーは
Full Control
、基になるフォルダーhttp://screencast.com/t/T6zJaku2Cobにアクセスする必要があります。 - SQL_Replication_Dev ユーザーは、パブリケーションhttp://screencast.com/t/BQ7EEh4vfcのパブリック アクセス リスト (PAL) に登録されています。
- スナップショット エージェントとログ リーダー エージェントの両方が SQL_Replication_Dev ユーザーとして設定されますhttp://screencast.com/t/iCpytv8yjL
- サブスクリプション配布エージェントは、SQL_Replication_Dev ユーザーを使用し、http: //screencast.com/t/onD82Zd1gU0B を偽装するように設定されています。
サブスクリプションは正常に作成され、パブリケーション スナップショット エージェントを起動して、フォルダー共有にスナップショットを正常に作成します。
パブリッシャーのレプリケーション モニターを見ると、OS エラー 53 ( http://screencast.com/t/4ORyBkQUYVRg ) の詳細が表示されThe network path was not found
ます。パスとファイルが存在し、SQL_Replication_Dev ユーザーがアクセスできます (サーバーにログインし、共有を介してファイルに移動することでこれをテストしましたが、これで十分ですか?)。
何か案は?