問題タブ [alwayson]

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.

0 投票する
1 に答える
622 参照

database-backups - SQL Server の Always ON 構成では、Nul へのトランザクション ログ バックアップは Always On 構成を壊しますか?

SQL 2012 AO に参加している 2 つのノードがあるとします。これはテスト用インスタンスです。インデックスの再構築操作中に、ログが非常に大きくなりました (250 GB)。スペースの都合上、バックアップできません。Tlog を Nul にバックアップすると (縮小するためだけに)、Always On が壊れますか?

0 投票する
0 に答える
77 参照

sql-server - SQL Server 2014 の読み取り専用接続が再起動後に転送されない

1 つのノードが読み取り専用ノードとして機能する 4 ノードの SQL Server 2014 (12.0.4416) 環境があります。ルーティングをセットアップすると、applicationintent = readonlyプロパティを使用でき、すべてが機能しているようです。読み取り専用を使用する接続はapplicationintent、正しいサーバーに転送されます。を実行して確認しましたselect @@servername

ただし、readonlyレプリカをネットワークから切断するか再起動すると、接続はプライマリからの読み取りに戻ります。

再起動後に再び機能させるために何かを有効にする必要がありますか?

0 投票する
1 に答える
1849 参照

sql-server - データを一時テーブルに挿入するストアド プロシージャで ApplicationIntent=ReadOnly を使用する

SQL Server 2012 の AlwaysOn リスナーを使用しており、いくつかのストアド プロシージャを呼び出すためにパラメーターを使用して接続を使用したいのですがApplicationIntent=ReadOnly、これが私の質問です。一時テーブルにデータを挿入するストアド プロシージャは、ApplicationIntent=ReadOnly?

0 投票する
0 に答える
787 参照

sql-server - SQL Server Always On と接続プール

読み取り専用レプリカをセットアップするときに発生する問題を把握しようとしています。読み取り専用レプリカを照会する単純なアプリケーションがあり、@@servername を実行して正しいレプリカにヒットすることを検証できます。すべてが計画どおりに機能します。問題なく同期サーバーにフェールオーバーでき、テスト アプリケーションは引き続きレプリカから読み取ります。

私が抱えている問題は、読み取り専用レプリカを再起動すると、アプリケーションが読み取り専用レプリカに戻らないことです。読み取り専用レプリカがオンラインに戻った後でも、ルーティングで設定されているものに移動します。別のサーバーからの新しい接続は、読み取り専用レプリカにヒットします。テストを実行しているサーバーで別の方法で AG に接続しようとすると、読み取り専用レプリカに接続されます。以下の powershell スクリプトは、引き続き別のサーバーにアクセスします。

アプリケーションを停止し、約 10 分または 15 分待ってからアプリケーションを起動すると、読み取り専用レプリカにヒットします。pooling=false を使用するように接続文字列を設定した場合。次に、レプリカが接続を受け入れる準備ができたら、レプリカをヒットすることにより、想定どおりに動作します。

これは、読み取り専用レプリカのシナリオをテストするために使用しているものです。

私は何が欠けていますか?それとも私のテストは間違っていますか?

0 投票する
1 に答える
1048 参照

powershell - Microsoft フェールオーバー クラスターに (powershell で) クォーラムがあるかどうかを確認する方法

Microsoft フェールオーバー クラスターに (powershell で) クォーラムがあるかどうかを判断しようとしています。コマンドレットGet-ClusterQuorumはクォーラム構成を提供しますが、状態が必要です。

コマンドレットGet-Cluster | fl *は多くのクラスター プロパティを提供しますが、必要なものが見つかりません ( DynamicQuorumは構成パラメーターであり、 FixQuorumPreventQuorumが正確に何を意味するのかを誰かが説明してくれれば幸いですが、おそらくそれらはStart-ClusterNodeに関連しています-FixQuorumコマンド)

AlwaysOn 高可用性がインストールされているので、クエリを実行できます。

sys.dm_hadr_cluster から cluster_name、quorum_type_desc、quorum_state_desc を選択します

次のようなものを取得します:myclustername、NODE_MAJORITY、NORMAL_QUORUM

必要なもののようですが、SQLなしでこれを取得するにはどうすればよいですか? よろしくお願いします。

0 投票する
1 に答える
967 参照

sql-server - AlwaysON SQL Server 2014 アプリケーション例外: データベースが読み取り専用であるため、データベースの更新に失敗しました

2 つのノードの可用性グループがあります。2 つのノードはSQL cluster1- node1SQL cluster 2- node2可用性グループ リスナーです。Java アプリケーションはこのリスナーに接続しており、最初はすべて正常に動作しています。つまり、フェイルオーバーを実行するまで、アプリケーションはデータベースで読み取り/書き込みの両方を実行できます。

コネクタ文字列はdriverURL=jdbc:jtds:sqlserver://[Listerner DNS Name]:[Port]/[Database]

最初は node1 がプライマリで、node2 がセカンダリだったとします。フェールオーバー後、node1 はセカンダリになり、node2 はプライマリになります。これで、アプリケーションは引き続きデータベースに接続できますが、データベースで読み取りしか実行できません。その DB に挿入しようとすると、アプリケーションは例外 (タイトルに記載されています) をスローします。

基本的に、どのノードがプライマリであるかに関係なく、アプリケーションが常に読み取り/書き込みを実行できるようにする必要があります。何か案は ?

0 投票する
0 に答える
349 参照

c# - 可用性グループのフェールオーバー中のクエリ エラー

SQL Server 2012 に対して実行する C# OLTP アプリケーションがあります。データベースが AlwaysOn 可用性グループにある場合、フェールオーバーが発生した場合でも、アプリケーションを中断することなく実行したいと考えています。フェイルオーバーによって中断されたトランザクションから回復するために、C# SqlCommand オブジェクトを別のクラス (RetryableSqlCommand) でラップしました。このクラスは、フェイルオーバーに関連する例外 (接続が切断された、リモート トランザクションを強化できなかったなど) をキャッチし、それらを自動的に再試行します。指数関数的なバックオフ遅延の後。小さなテスト アプリでは、このコードは思いどおりに機能します。完全な OLTP アプリで中程度の負荷 (1 秒あたり数百トランザクション) で実行すると、データベースを手動でフェールオーバーするとエラーが発生します。

エラーは、1 つのマスタ レコードと 4 つの詳細レコードを挿入する、最も頻繁に呼び出されるストアド プロシージャの 1 つで常に発生します。ストアド プロシージャは常に、挿入されたマスター レコードと詳細レコードの ID を OUTPUT パラメーターとして返します。C# コードは次のようになります。

上記の行で InvalidCastException が発生します。これは、デバッグ ログから判断したように、ID がストアド プロシージャから DBNull として返されているためです。私が知る限り、ストアド プロシージャはすべてのレコードを 1 つのトランザクションに挿入するため、このようなことは決して起こらないはずです。トランザクションが中断された場合、RetryableSqlCommand クラスによってキャッチされ、再試行される例外が存在するはずです。InvalidCastException の説明はありますか?