質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Q&A

解決済

2回答

1275閲覧

SQLSERVERのレプリケーションの設定でサブスクライバーを指定時にネットワーク経由でサーバに繋がらない

kktpx40

総合スコア5

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

0グッド

0クリップ

投稿2022/07/12 07:34

編集2022/07/13 05:28

SQLSERVER同士のレプリケーションの設定がうまくいかず、ネットで調べたことは大体行ったつもりですが、
ネットワーク経由で別サーバのSQLSERVERに接続できず、レプリケーションの設定を完了することができません。
ただし、完全に接続できない訳ではないため、なんの設定が足りないのかに気付けずに作業が頓挫しています。

同じようなご経験、解決の知見があればご教示頂きたく存じます。

<やりたいこと>
下記サーバAからサーバBへレプリケーションを行おうとしています。

※Version以外の情報は実際のものとは異なります。

<サーバA>パブリッシャー 192.168.10.1 インスタンス名:AAA
SQLSERVER 2014Standard SQLSERVERManagementStudioのVersion 12.0.4100.1
プッシュ側


<VLAN上のファイアウォール>


<サーバB>サブスクライバー 192.168.20.1 サーバ名:SRVB インスタンス名:BBB
SQLSERVER 2016Standard  SQLSERVERManagementStudioのVersion 15.0.18386
ユーザ:repl_user  パスワード:user#001

<前提>
設定を進めたところ、
サーバAで新しいサブスクリプションを作成し、サーバBをサブスクライバーに指定しようとしたところ、
SQLSERVERManagementStudioのログインウィンドウが表示されて、
下記のようにサーバBの情報を入力して接続ボタンを押下しました。
サーバ名:SRVB\BBB
認証:SQLSERVER認証
ログイン:repl_user
パスワード:user#001

<エラーメッセージ>
SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: SQL Network Interfaces, error: 26 - 指定されたサーバーまたはインスタンスの位置を特定しているときにエラーが発生しました)

<自分で調べたこと、行ったこと>
サーバ1
・サーバ2に対してFTPコマンドを用いて1433、~~1443、~~1434ポートで通信ができることを確認
・サーバ2に対してサーバ名:SRVB ユーザ:repl_user  パスワード:user#001 でSQL認証ログインができることを確認
・  〃         :SRVB\BBB ユーザ:repl_user  パスワード:user#001 でSQL認証ログインが「できない」
ことを確認
・ODBC(32bit)の設定を行い、サーバ2に対してテスト接続ができることを確認
・ファイアウォール無効化、受信の規則に1433、1443を追加
・hostsファイルにサーバ2のIPとホスト名(サーバ名)を追記

サーバ2
・サーバ1に対してFTPコマンドを用いて1433、~~1443、~~1434ポートで通信ができることを確認
・ManagementStudioのリモート接続可否設定にチェックがついていることを確認
・構成マネージャーのTCPの設定が有効になっていること、IPアドレスタブ の IPAll の
TCPポートに1433が設定さていることを確認
・SQL Serverのサービスを再起動
・SQL Server Browseのサービスを再起動
・サーバ名:SRVB ユーザ:repl_user  パスワード:user#001 でSQL認証ログインができることを確認
・サーバ名:SRVB\BBB ユーザ:repl_user  パスワード:user#001 でSQL認証ログインができることを確認
・ファイアウォール無効化、受信の規則に1433、~~1443、~~1434を追加

共通
・サーバ1とサーバ2間のファイヤーウォールの通信許可設定→Ping、1433、~~1443、~~1434の通信許可設定を確認

<思っていること>
・ODBC(32bit)の設定を行い、サーバ2に対してテスト接続ができるのでネットワークの設定は問題ない
・サーバ1のManagementStudioを起動させてサーバ2にはインスタンス名を指定しなければ繋がる
・サーバ2のManagementStudioを起動させてログインは可能
・サーバ1でレプリケーション設定の流れでサブスクライバーの指定をしたときのみエラーがでるから、
ManagementStudioのバージョン差(互換性?)でエラーがでるのかも??とは思っている。
(サーバ2のManagementStudioのバージョンアップは運用の調整が必要で実施できていない。)

以上

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

「サーバ1」→「サーバ2」に名前付きインスタンスで接続が行えていない状況かと思います。

受信の規則に1433、1443を追加

「1443」は誤りかと思います。下記の設定になっているかご確認下さい。
・TCP 1433
・UDP 1434

■ Windows ファイアウォールの構成 - SQL Server
https://docs.microsoft.com/ja-jp/sql/sql-server/install/configure-the-windows-firewall-to-allow-sql-server-access?view=sql-server-ver16

構成マネージャーのTCPの設定が有効になっている

サーバ2に「既定のインスタンス」と「名前付きインスタンス」の2つのインスタンスが存在しているかと思います。
それぞれ設定が別になっているかと思いますので、
「名前付きインスタンス」の「TCP/IP」が有効化されているかご確認下さい。

また、「名前付きインスタンス」は既定の場合は「動的ポート」になっているかと思います。
特定の TCP ポートを使うよう構成が行えますので、ポート指定で接続が行えるか試してみて下さい。

■ 特定の TCP ポートで受信待ちするようにサーバーを構成する
https://docs.microsoft.com/ja-jp/sql/database-engine/configure-windows/configure-a-server-to-listen-on-a-specific-tcp-port?view=sql-server-ver16

投稿2022/07/12 23:59

cx20

総合スコア4633

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ファイアウォール(Fortigate)の通過許可の設定でSQLSERVEで使用する1433と1434を指定していましたが、1434のポートの種別を「TCP」から「UDP」へ変更したところ、名前付きインスタンスを指定してもサーバ2へ繋がるようになりました。

CX20様からの回答と現状の設定を確認するなかで気づきを得ることができ解決できました。
ありがとうございました。

※また次は想定していないメッセージが出力されたのですが、別の質問を立てさせて頂きます。

投稿2022/07/13 06:23

kktpx40

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問