タグ付けされた質問 「transactional-replication」

4
クラスタリングとトランザクションレプリケーションと可用性グループ
1台のサーバーマシンに障害が発生した場合でも、データベースバックエンドが24時間利用可能であるため、SQL Server 2012に依存するアプリケーションを確認する必要があると仮定します。 DBAではなく開発者として、フェールオーバー/高可用性にどのシナリオを使用するかを理解するのに苦労しています。 Windowsフェールオーバークラスター内の2つ(またはそれ以上)のサーバー、クラスター化されたインスタンスとしてのSQL Server トランザクションレプリケーションで最新の状態に保たれる2つ(またはそれ以上)のSQL Serverインスタンス 同期コミットモードで構成されたSQL Server可用性グループ内の2つ(またはそれ以上)のSQL Server これらのシナリオのどれが、どのような種類のワークロードで機能し、どのような種類の障害/停止がそれらのシナリオで処理できるのでしょうか?彼らは同等/交換可能ですか?


1
複製されるLOBデータの長さ(2135980)が構成済みの最大値65536を超えています
レプリケーションエラー「レプリケートされるLOBデータの長さ(2135980)が構成済みの最大65536を超えています」が発生します。 sp_configureは以前に適用されて最大値(-1)に設定され、sys.configurationsに対するクエリは最大値(-1)が使用中であることを確認しました。 EXEC sp_configure 'max text repl size', -1 ; RECONFIGURE; GO select * from sys.configurations where name like 'max text repl size%'; GO 最大値ではなく「最大テキストreplサイズ」に大きな値を使用して、無効にしてからもう一度オンにしてみましたが、役に立ちませんでした。 「テキストの最大replサイズ」の設定や他のどこかを上書きできるものはありますか?

6
MS SQL Serverで混乱したレプリケーションを修正する方法
バックアップからデータベースを復元しました。データベースはレプリケーションを使用して別のサーバーに公開します。データベースを復元するとレプリケーションが壊れると想定して、レプリケーションを削除して再作成しようとしました(ゼロから再作成するスクリプトがあります)。私が何をしたか正確にはわかりませんが、今は完全にめちゃくちゃな状態にあり、修正できません。 最初に、(パブリッシャーサーバー上の)サブスクリプションを削除しようとします。 EXEC sp_dropsubscription @publication = 'PublicationName', @article = N'all', @subscriber = 'SubscriberServerName' これは動作するようです。SELECT * FROM syssubscriptions結果は表示されません。サブスクライバーサーバーでSSMS> {SubscriberServer}>レプリケーション>ローカルサブスクリプション-サブスクリプションがありません。 それで、私は出版物を削除しようとします。SSMS> {サーバー}>レプリケーション>ローカルパブリケーション> {PublicationName}>削除。これにより、次のエラーメッセージが表示されます。 Could not delete publication 'PublicationName'. Could not drop article. A subscription exists on it. Changed database context to 'DatabaseName'. (Microsoft SQL Server, Error: 14046) OK、それで私は記事を落とそうとします: EXEC sp_droparticle @publication = …

1
バックアップからのトランザクションレプリケーションの初期化
レプリケーションのパブリケーションを設定するときに、バックアップからの初期化を許可するオプションがあります。私たちは数年前から複製データベースを作成しており、常にバックアップから初期化してきましたが、このフラグを設定したことはありません(数日前に初めて気づきました)。複製は常に問題なく機能してきました。 これを使用する必要があることを説明するヒットがたくさん見つかりましたが、理由を説明するものはありません。 これが実際に何をしているのか誰かが理解していますか?私の観点から、それは必要ではないようですが、私は何かを逃している必要があると考えています。

1
トランザクションログを切り捨てることができません、log_reuse_wait_desc-AVAILABILITY_REPLICA
今朝、私はデータベースの1つでトランザクションログが一杯になったという警告に目覚めました。このサーバーは、常時接続のクラスターであり、トランザクションレプリケーションサブスクライバーでもあります。log_reuse_wait_descを確認したところ、logbackupが表示されました。4日前に誰かが誤ってlogbackupジョブを無効にしていたため、ログバックアップジョブを再度有効にしたところ、ログがクリアされました。午前4時だったので、その朝遅くにオフィスに行って、ログが400GBに達したときにログを鳴らそうと思いました。 午前10時-オフィスにいて、縮小する前にログの使用状況を確認したところ、約16%でした。私は驚いて、複製を示したlog_reuse_wait_descを確認しました。これがレプリケーションサブスクライバーだったため、混乱しました。次に、dbがCDCに対して有効になっていることがわかり、それが原因である可能性があるため、CDCを無効にすると、log_reuse_wait_descにAVAILABILITY_REPLICAが表示されます。 一方、ログの使用量は着実に増加しており、現在は17%です。alwaysonダッシュボードを確認し、送信済みキューとやり直しキューを確認しましたが、どちらもほぼゼロです。ログの再利用がAVAILABILITY_REPLICAと表示され、ログをクリアできない理由がわかりません。 なぜこれが起こっているのでしょうか?

1
サーバークラッシュ後にレプリケーションを復元する方法
1つのSQL Server 2005インスタンスに2つのデータベースがあり、それらの間でトランザクションレプリケーションが行われていました(記事として3つのテーブル)。このサーバーは、パブリッシャーとディストリビューターの両方として機能しました。 次に、サーバーのRAIDに障害が発生しました。しかし.mdf、クラッシュする前に、ほぼすべてのファイルを切り離してコピーすることができました。 システムの復元後、SQL Serverを再インストールし、システムデータベース(master、model、msdb)を復元して、.mdfファイルを同じパスに配置しました。それで始まった。 レプリケーションで問題が発生しました。ローカルパブリケーションのフォルダは、空であったけれどもローカルサブスクリプション問題のサブスクリプションが含まれていたフォルダ。私が新しい出版物を追加しようとしたとき、私は得ました: 新しいパブリケーションウィザードで、パブリケーション名の取得中に1つ以上のエラーが発生しました。 Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。(Microsoft.SqlServer.ConnectionInfo) 無効なオブジェクト名 'dbo.syspublications'。(Microsoft SQL Server、エラー:208) 左側のサブスクリプション(最終的にはなんとか管理できました)を削除して、サーバーでの公開と配布を無効にすることを試みることにしました。 SQL Serverは 'someserver'での公開と配布を無効にできませんでした。 無効なオブジェクト名 'dbo.syssubscriptions'。EXECUTEの後のトランザクション数は、COMMITまたはROLLBACK TRANSACTIONステートメントが欠落していることを示しています。以前のカウント= 0、現在のカウント=1。EXECUTE後のトランザクションカウントは、COMMITまたはROLLBACK TRANSACTIONステートメントがないことを示しています。以前のカウント= 0、現在のカウント=1。EXECUTE後のトランザクションカウントは、COMMITまたはROLLBACK TRANSACTIONステートメントがないことを示しています。以前のカウント= 0、現在のカウント=1。EXECUTE後のトランザクションカウントは、COMMITまたはROLLBACK TRANSACTIONステートメントがないことを示しています。以前のカウント= 0、現在のカウント=1。EXECUTE後のトランザクションカウントは、COMMITまたはROLLBACK TRANSACTIONステートメントがないことを示しています。以前のカウント= 0、現在のカウント=1。データベースコンテキストを「マスター」に変更しました。(Microsoft SQL Server、エラー:208) システムデータベースバックアップから一部の情報が復元されなかったようです(おそらくdistributionデータベースに何かが欠落している可能性があります)。 また、公開と配布を無効にできないという質問に答えるようにしました。しかし、成功しませんでした。私が作成しようとしたsyspublicationsの両方をmasterしてdistribution、何も変わっていません。 では、このサーバーでレプリケーションを機能させるにはどうすればよいですか? サーバー上で他のデータベースを公開しようとしましたが、うまくいきました。したがって、問題は公開されたデータベースに関連しているようです。どうすればそれをクリアして、その上に新しいパブリケーションを作成できますか? System Tables 問題のあるデータベースのサブフォルダは、データベースがパブリッシュされたときに作成されるレプリケーションテーブルを見逃します。 レプリケーションモニターでは、これらの古いサブスクリプションを確認できますが、レプリケーションフォルダーでは使用できません 。

2
SQL Server:トランザクションレプリケーション計算列
私はトランザクションレプリケーションサブスクリプションのサブスクライバーです。私は出版社を管理できません。 パブリケーションデータベースのスキーマ変更に関する次の記事を読みました。 パブリケーションデータベースでスキーマを変更する ただし、サブスクリプション側のスキーマを変更しようとしています(可能な場合)。トランザクションレプリケーションが、サブスクライバーテーブルへの永続的な計算列の追加をサポートするかどうか疑問に思っています。 計算された値を必要とするすべてのテーブルに新しいビューを追加するよりも、このソリューションの方がはるかに好きです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.