web-dev-qa-db-ja.com

SQL Server:サブスクライバーをパブリケーションに追加できません

Microsoftの公式チュートリアル に従ってレプリケーションを構成しようとしています。セクション トランザクションパブリケーションへのサブスクリプションの作成 で、ステップ5を参照してください。

サブスクライバーインスタンスの名前が表示されないため、[サブスクライバーの追加]をクリックし、ドロップダウンリストから[SQL Serverサブスクライバーの追加]をクリックします。次に、[サーバーに接続]ダイアログボックスが表示されます。サブスクライバーインスタンス名を入力し、SQL Server認証に切り替え、saユーザー名とパスワードを入力して、[接続]をクリックします。

数秒後、次のようなエラーダイアログが表示されます。

DBSUB\SQLEXPRESSに接続できません。

追加情報:

->サーバーDBSUB\SQLEXPRESSへの接続に失敗しました。 (Microsoft.SqlServer.ConnectionInfo)

SQL Serverへの接続を確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。 (プロバイダー:SQLネットワークインターフェイス、エラー:26-指定されたサーバー/インスタンスの検索エラー)(Microsoft SQL Server)

ことは、サーバーIS非常に利用可能です。私はping DBSUBだけでなく、RDPもそれに含まれます。

SQL Serverエージェントが実行されています。

SQL Serverインスタンスは、リモート接続を許可するように構成されています。 (RDPからDBSUBへ、ログインDBSUB\SQLEXPRESS DBSUB上のSQL Server Management Studio(DBPUB上のSQL Server Management Studioではなく)、[サーバーのプロパティ]、[接続]ページ、[このサーバーへのリモート接続を許可する]がオンになっている)

奇妙なことに、意図的に間違った名前(DBSUB、DBSUB\BLAHなど)を入力すると、別のエラーが発生します。

また、これはExpressインスタンスではないことに注意してください。アップグレードからの古い名前です。

この問題の解決にご協力いただければ幸いです。

前もって感謝します、

更新: この記事 に従ってエイリアスを構成しました(申し訳ありませんが、Microsoftログインの背後にあります)。指示は正しくありませんでした。しかし、エイリアスについて少し学ぶと、正しく設定することができました。残念ながら、エイリアスはこの問題の解決策ではないという新しいエラーが表示されます。

サブスクライバーに接続できません。

追加情報:

SQL Serverレプリケーションでは、サーバーに接続するために実際のサーバー名が必要です。サーバーエイリアス、IPアドレス、またはその他の別名を使用した接続はサポートされていません。実際のサーバー名「DBSUB\SQLEXPRESS」を指定します。 (レプリケーション。ユーティリティ)

SQL Browserサービスが実行されていないことに気づきました。パブリッシャーとサブスクライバーの両方でそれを有効にし、DBSUB\SQLEXPRESSを介して接続すると、動作します。

2
Inversus

名前の変更に加えて、構成マネージャーからSQL Server Browserサービスを開始する必要がありました。

0
Inversus

以前のコメントで説明したように、レプリケーションを確立できなかったのは、新しいホストにアップグレードされていたインスタンス名が原因である可能性がありますが、以前と同じインスタンス名を使用しています。

この問題はSQLサーバーを再インストールしなくても修正できますが、1分程度のダウンタイムが必要になります

次の手順は、このリンク here にあります。

(基本的に私はここのリンクから直接ステップをコピーしています)

ケース1:SQL Serverの既定のインスタンスをホストする名前を変更したコンピューターの場合

sp_dropserver <old_name>;  
GO  
sp_addserver <new_name>, local;  
GO

ケース2:SQL Serverの名前付きインスタンスをホストする名前を変更したコンピューターの場合

sp_dropserver <old_name\instancename>;  
GO  
sp_addserver <new_name\instancename>, local;  
GO

どちらの場合も、後でSQLサーバーサービスを再起動する必要があります。

完了したら、次の方法で再度確認を行います。

SELECT @@SERVERNAME
1
Yoshiaki