
No.3ベストアンサー
- 回答日時:
SIDはインスタンスの識別子、service_nameはサービス名。
インスタンスとサービスの違いはRAC を勉強されるとよくわかると思います。
サービス名は初期化パラメータのservice_namesで設定します。
設定されていない場合は先述のとおりdb_unuque_name.db_domainになります。
(これが同義と誤解されやすい原因となっているわけですが)
ところで、service_namesパラメータですが、複数形になっていることからもわかるように、複数のサービス名をコンマ区切りで指定できるようになっています。
これをこのように使います。
2ノードRAC環境で、インスタンス1(SID=hoge1)、インスタンス2(SID=hoge2)があったとします。
ノードを意識することなく接続できるようにするためにクライアント側のtnsnames.oraにはこんな設定を追加します。
HOGE.EXAMPLE.COM
(DESCRIPTION =
(LOAD_BALANCE = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
(CONNECT_DATA = (SERVER = DECIDATED)(SERVICE_NAME = hoge.example.com))
)
インスタンス1とインスタンス2のservice_namesパラメータにhoge.example.comを追加します。すると、インスタンス1とインスタンス2にラウンドロビンで接続できるようになります。
ここで、もしtnsnames.oraのservice_name=...がSID=hoge1だったらどうなるでしょう?
インスタンス2のSIDはhoge2ですから一致せず、インスタンス2には接続できず、いつもインスタンス1に繋がってしまいます。
次に、一時的にメンテナンスのためにインスタンス2にアクセスしてほしくないケースを考えます。service_nameであれば、インスタンス2のservice_namesパラメータからhoge.example.comを削除することで(動的に変更できます)直ちにインスタンス1にのみ接続されるようにできます。
ここで、もしORACLE_SIDだったら・・・変更のためにインスタンスの再起動が必要になってしまいますね?
最後にservice_namesは複数登録できます。3ノードRAC環境において、オンライン処理(service_name=ONLINE)、バッチ処理(service_name=BATCH)があったとします。
バッチ処理は1つのノード(インスタンス1)でのみ処理したいとします。オンライン処理は3つのノードでしたいとします。
そんなとき、service_nameであれば、
<<サーバ側の初期化パラメータ>>
1:service_names = online, batch
2:service_names = online
3.service_names = online
<<クライアント側のtnsnames.ora>>
オンライン処理
ONLINE.EXAMPLE.COM
(DESCRIPTION =
(LOAD_BALANCE = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
(CONNECT_DATA = (SERVER = DECIDATED)(SERVICE_NAME = online.example.com))
)
BATCH.EXAMPLE.COM
(DESCRIPTION =
(LOAD_BALANCE = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
(CONNECT_DATA = (SERVER = DECIDATED)(SERVICE_NAME = batch.example.com))
)
と、クライアント側では接続先サーバを気にすることなく構成できますね?
BATCHのノードを1から2にしたい場合の変更はサーバ側のみでできますよね?
serivce_namesの"batch"設定をノード2に移すだけです。
No.2
- 回答日時:
上記の検索リンク順にたどってゆくとわかると思います。
tnsnames.ora
からたどると、確かにわかりにくい説明ばかりかもしれません。いや、実際そうですね。このファイルは互換性のために、いまだに存在して言うかと私は思っています。
これらが使用去られるようになったのはVer7 くらいからだったと思います(今11?)。
ファイルから見るとよくわからないので、GUIツールから見て、ガイドを読んでゆくとわかると思います。DB管理ツールですね。エンタープライズXXXだったかな?
GUIで変えると、ああ、ここが変わるんだ、とわかるはずです。実験できるなら、名前に、全て設定箇所か特定できる名前をつけるといいです。
通常ホスト名とか、グループ(チーム名)を、いろんなところにつけてしまうから、これって何の役に立っているのと、新人君からよく聞かれます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- Ruby パイソンプログラミング 2 2022/12/03 18:44
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- 中学校 名前の聞き方 1 2022/09/04 15:47
- PHP 記述のおかしいところを教えて下さい。 1 2023/02/03 11:25
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
このQ&Aを見た人はこんなQ&Aも見ています
-
ORA-00959: 表領域'****'は存在しません
Oracle
-
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
データを削除しても表領域の使用率が減りません
Oracle
-
-
4
Oracleでインスタンスを複数にしたい
Oracle
-
5
datapumpの実行方法について
Oracle
-
6
Oracleで上書きImportはできますか?
その他(データベース)
-
7
CASE文のエラーについて
Oracle
-
8
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
9
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
10
突然オラクルへ接続できなくなりました
Oracle
-
11
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
12
PL/SQLで@ファイル名が反応しません
Oracle
-
13
異なるスキーマからデータを抽出するには?oracl、PL/SQL
Oracle
-
14
コマンドプロンプトのエラーについて
その他(パソコン・周辺機器)
-
15
create databaseがうまくいきません。。
Oracle
-
16
Viewにインデックスは張れますか?
Oracle
-
17
フルインポートで警告が発生します
Oracle
-
18
特定のスキーマのテーブルを一括削除したい
その他(データベース)
-
19
Oracleでの文字列連結サイズの上限
Oracle
-
20
SQL*PLUSにてデータベース名表示
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SIDとSERVICE_NAMEの違いとは?
-
突然オラクルへ接続できなくな...
-
異なる文字コードの環境にイン...
-
TNSListener サービスを再起動...
-
Oracle 11g ユーザー名およびパ...
-
OracleのWindowsプロセス名
-
テーブルの参照方法
-
SQLServer2005 レプリケーショ...
-
WiFi環境があればTikTokLiteは...
-
CloverをインストールしたUSBメ...
-
Postgresqlとoracleとのデータ...
-
Windowsサーバのパッチ更新の適...
-
OraOps10.dllのエラーについて
-
SQLServer2005上の別DBからテ...
-
oracle 10g EXについての簡単...
-
倒産した18禁ゲーム会社のパ...
-
ORA-12170のエラーについて
-
AOE3 (AGE OF EMPIRE3)を友人と...
-
ウイルスバスター2004がインス...
-
クライアントからのリスナーが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SIDとSERVICE_NAMEの違いとは?
-
突然オラクルへ接続できなくな...
-
異なる文字コードの環境にイン...
-
OracleClientサーバIPアドレス変更
-
ORA-01092 ORACLEインスタンス...
-
DBサーバの接続エラー
-
Sqldeveloperに関して
-
ログを見ても無応答の原因がつ...
-
Enterprise Manager を使用し、...
-
SID、SERVICE_NAMES、GLOBAL_DB...
-
HTTPリスナー
-
OracleのUID
-
共有サーバ接続で ora-12523
-
tnsnames.oraファイルについて
-
デフラグについて
-
OracleのWindowsプロセス名
-
Oracleサービスが突然起動でき...
-
サーバ上のOracleデータベース...
-
oracle 10g サーバ機のIPアド...
-
リスナーの構成
おすすめ情報