web-dev-qa-db-ja.com

VPNを介したSQLServer 2008R2トランザクションレプリケーション

VPN経由でレプリケーションを設定するのに問題があります。

Windows 2008 R2ServerにSQLServer 2008 R2、EnterpriseEditionデータベースがあります。

SQLServerは非標準のポートで実行されています。独自のディストリビューターとして機能するように設定し、このサーバーでパブリッシャーを構成しました。これは、更新可能な国際的な出版物として設定されています(はい、これは必要です)。

このサーバーでは、VPN接続を確立できるようにするために、ルーティングとリモートアクセスを有効にしています。静的IPアドレスプールで構成され、範囲の最初のものが常にサーバーに割り当てられます。この範囲内の静的アドレスをテストユーザーに割り当てました(これが必要かどうかはわかりません)。

すべてのクライアントは2008R2バージョンになりますが、SQLExpressまたは完全な製品のスタンドアロン開発者インスタンスである可能性があります。

クライアントからVPN接続を問題なく確立でき、正しいIPアドレスが割り当てられていることがわかります。

データベースに接続して接続を確立できることをテストした後、最初は機能しないIPアドレス(レプリケーションに必要)ではなく、サーバー名を使用してデータベースに接続できる必要があることに気付きました。サーバーのNETBIOS名を使用して、クライアント上のサーバーのhostsファイルにエントリを作成しました。これで、VPN経由で_SERVER\INSTANCE, PORT_構文を使用して、クライアントからサーバーに接続できます。これはサーバーのデフォルトインスタンスであるため、単純に_SERVER, PORT_構文で接続することもできます。

それでも、次の恐ろしいエラーが発生します:SQL Server replication requires the actual server name to make a connection to the server. Connections through a server alias, IP address, or any other alternate name are not supported. Specify the actual server name, 'SERVER\INSTANCE'. (Replication.Utilities)

私は何を逃しましたか?これを機能させるにはどうすればよいですか?

TIA

3
enashnash

次のコマンドを試してください。

select name from sys.servers

何が返されるかを見てください。レプリケーションのセットアップ中にサーブに接続するには、その名前を使用する必要があります。

または、使用する名前に変更します。

sp_dropserver 'currentname'
go
sp_addserver 'changedname' , 'local'

その後、データベースエンジンを再起動する必要があります

1
Z man

過去に、リモートサーバーがsys.serversに表示するのと同じ名前でサーバー側エイリアス(cliconfig)を作成することでこれを解決しましたが、名前解決がなかったため、サーバー名とポートはIPアドレスとSQLポートを指します。

0

名前付きインスタンスを見つけるのは少し難しいので、私が読んだものに基づいて、ローカルサーバーにエイリアスを追加する必要があると思います。 SQL Serverクライアントは、名前付きインスタンスに関する情報についてSQLブラウザにアクセスします。これはVPN経由では利用できないようです。ただし、その前に、ローカルエイリアスでホスト名が指定されているかどうかを確認します。これは、SQLServer構成マネージャー-エイリアスで追加できます。命を救うアドバイス:32ビットと64ビットのエイリアスの同期を維持します。限目。

0
Erik Bitemo

ポートをデフォルトのポート番号に戻します。ポート番号を変更しても、生活が困難になる以外は何もしていません。

0
mrdenny