出産前後の痔にはご注意!

ORACLEのDATABASEフォルダをコピーしてデータベースサーバーを移設しようとしております。
Listnerやtnsnameを設定し、下記のコマンドでSIDとサービスの登録を行いました。
Set ORACLE_SID=SID名
oradim80 -new -sid SID名 -intpwd ORACLE -startmode auto -pfile ~\initSID名.ora

これでサービス起動し、接続も出来ました。

しかし、DOSプロンプトからSVRMGR30を実行するとまず接続出来ないと出て、その後にconnect internal/oracleとすると接続出来ませんでした。
試しに、初めにSet ORACLE_SID=SID名をしてからSVRMGR30を起動すると接続出来ました。

DATABASEフォルダをコピーしてくる方法ではSIDの設定は保持されないのでしょうか?こんな経験がありましたらどうか教えて下さい。
よろしくお願いします。
WindowsNT
Oracle8.0.4

このQ&Aに関連する最新のQ&A

A 回答 (1件)

デフォルト接続先などの情報は、レジストリに持っているので、ファイルだけ持ってきてもダメですね。


オラクル関係のレジストリ情報も連れてくれば解決する話です。
    • good
    • 0
この回答へのお礼

ありがとうございます!

レジストリ確認したらORACLE_SIDがありませんでした。
手動で追加して再起動したら無事接続出来ましたぁ~!!

助かりました!

お礼日時:2007/06/20 10:14

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QSIDとSERVICE_NAMEの違いとは?

tnsnames.oraの中の(CONNECT_DATA=に SIDだったりSERVICE_NAMEだったりしますが、どのような違いがあるのでしょうか?
どちらでもつながるのでいいかとは思いますが、何かメリット・デメリットでもあるのでしょうか?
それとも過去の遺物が未だ共存しているだけでしょうか?
SIDはインスタンスにつけられた名前だと知っていますが、SERVICE_NAMEってなんですか?

Aベストアンサー

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に移すだけです。

SIDはインスタンスの識別子、service_nameはサービス名。
インスタンスとサービスの違いはRAC を勉強されるとよくわかると思います。

サービス名は初期化パラメータのservice_namesで設定します。
設定されていない場合は先述のとおりdb_unuque_name.db_domainになります。
(これが同義と誤解されやすい原因となっているわけですが)

ところで、service_namesパラメータですが、複数形になっていることからもわかるように、複数のサービス名をコンマ区切りで指定できるようになっています。

これをこのように...続きを読む

Q突然オラクルへ接続できなくなりました

ローカルにオラクルをインストールして開発をしていました。
しばらく時間があいた後、開発を再開しようとするとDBへの
接続ができなくなっていました。

sqlplusではDB操作可能なので、DBそのものは落ちていないと
思うのですが…
リスナーのステータスを確認すると(lsnrctl status SID)下記のエラーが出ます。

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MY-PC)(PORT=1521))(CONNECT_DATA=(
SERVER=DEDICATED)(SERVICE_NAME=SID)))に接続中
TNS-12535: TNS: 操作はタイム・アウトしました。
TNS-12560: TNS: プロトコル・アダプタ・エラー
TNS-00505: 操作タイムアウトです。
32-bit Windows Error: 60: Unknown error

何が問題でどうすればよいのかわからないのですが、何か対応策があれば教えてください。
DBを再構築することも考えたのですが、原因がわからなければ同じ事が起こる(起こす?)
ような気がするので。

よろしくお願いします。

ローカルにオラクルをインストールして開発をしていました。
しばらく時間があいた後、開発を再開しようとするとDBへの
接続ができなくなっていました。

sqlplusではDB操作可能なので、DBそのものは落ちていないと
思うのですが…
リスナーのステータスを確認すると(lsnrctl status SID)下記のエラーが出ます。

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MY-PC)(PORT=1521))(CONNECT_DATA=(
SERVER=DEDICATED)(SERVICE_NAME=SID)))に接続中
TNS-12535: TNS: 操作はタイム・アウトしました。
TNS-12560: TNS:...続きを読む

Aベストアンサー

DBの起動/停止とサービスの起動/停止は別物です。
サービスの「OracleServiceSID」と「OracleOraDb11g_home1TNSListener」は、それぞれDBとリスナーのためのもので、DBやリスナーそのものではありません。
サービスの「OracleServiceSID」と「OracleOraDb11g_home1TNSListener」を起動状態にした後で
DBやリスナを起動します。

以下を参考にしてください。
http://www.shift-the-oracle.com/config/startup-oracle.html
http://otndnld.oracle.co.jp/beginner/oracle10g/1st/windows/index.html#configuration

QSYSユーザーでログインしたい

SQL plusでSYSユーザーでログインするにはどうすればよいのでしょうか?
SYSTEMユーザーやSCOTTユーザーではログインできるのですが、SYSユーザーになる方法がわかりません。
お願いします。

Aベストアンサー

>SQL plusでSYSユーザーでログインするにはどうすればよいのでしょうか?
特別なことする必要がないと思います。
ログインできない場合いろいろな原因が考えられます。
一番可能な原因は設定によってSYSユーザーNOMAL権限でログインできない場合あります。
この場合
sqlplus sys/パスワード@接続文字列 as sysdba
で試してください。


>SYSTEMユーザーやSCOTTユーザーではログインできるのですが、SYSユーザーになる方法がわかりません。
conn sys/パスワード@接続文字列 as sysdba

QORAー12560:TNS:protocol adapter error

初心者です。ORACLE9iをインストールしました。コマンドラインから
sqlplus /nolog
SQL>connect /as sysdba
と実行しますが、ERROR:ORAー12560:TNS:protocol adapter error
となり接続出来ません。スタートメニューからSQL Plusを起動しても同エラーとなります。ORACLE関係のサービスは起動しており、ログインユーザはORACLEをインストールしたユーザでORA_DBAグループにも登録されています。OS再起動を実施しても同エラーです。OSはwindows2000Proです。どこをチェックすれば宜しいでしょうか。

Aベストアンサー

環境変数ORACLE_SIDが設定されていないとか...

QORA-03113のエラーでインスタンスが開始できない。

オラクルの超初心者です。
テスト環境を作成したいのですがインスタンス作成後、スタートアップの所でORA-03113のエラーが出てしまい、インスタンスが開始できません。オラクルのバージョンも7と古いのですが、おわかりの方がいらっしゃいましたら教えて下さい。よろしくお願いします。

エラーまでの手順は
1.オラクルのサーバー製品をインストール
2.コントロールパネルでオラクルのサービスを止め、databaseフォルダ内のファイルをすべて削除。
3.databaseフォルダ内にinittest.oraのファイルを保存。
4.DOSからSID作成の命令を発行→成功
5.DOSからSVRMGR23でconnect internal/testで接続→成功
6.DOSからSVRMGR23でstartup nomount pfile=D:\orant\database\inittest.oraを実行した所で上記エラーが発生しました。

Oracle7(Ver7.3.3.0.0)サーバー製品
OS:WindowsNT4.0 SP6
メモリー:512MB

作成するインスタンス名:test
その他:本番環境がオラクル7の為、オラクルのVerUpは出来ません。inittest.oraのファイルは本番のファイルをコピーし、db_nameをtestに修正して作成しました。

オラクルの超初心者です。
テスト環境を作成したいのですがインスタンス作成後、スタートアップの所でORA-03113のエラーが出てしまい、インスタンスが開始できません。オラクルのバージョンも7と古いのですが、おわかりの方がいらっしゃいましたら教えて下さい。よろしくお願いします。

エラーまでの手順は
1.オラクルのサーバー製品をインストール
2.コントロールパネルでオラクルのサービスを止め、databaseフォルダ内のファイルをすべて削除。
3.databaseフォルダ内にinittest.oraのファイルを保...続きを読む

Aベストアンサー

状況から考えますと、次の可能性があります。
再度チェックしてみていただけませんでしょうか。

・initパラメータの設定ミス
 → 下記チェック項目を確認してください。
・Oracleパッケージのインストールに失敗
 → インストールログのチェックと再インストール
・OS環境変数の設定ミス
 → インストールガイド(スタートアップガイド)をチェックしてください。

-------------------------------------------------
◎以下のディレクトリが存在していないか又は、init.oraの指定が間違っている場合。
log_archive_dest
user_dump_dest
background_dump_dest
core_dump_dest
◎ 上記ディレクトリに十分なディスクスペースが無い場合。
◎ 初期化パラメータprocessesに対してセマフォ量が不足している場合。
(proccesses初期化パラメータを極端に小さくしてみてください)

状況から考えますと、次の可能性があります。
再度チェックしてみていただけませんでしょうか。

・initパラメータの設定ミス
 → 下記チェック項目を確認してください。
・Oracleパッケージのインストールに失敗
 → インストールログのチェックと再インストール
・OS環境変数の設定ミス
 → インストールガイド(スタートアップガイド)をチェックしてください。

-------------------------------------------------
◎以下のディレクトリが存在していないか又は、init.oraの指定が間違っている場...続きを読む

QOracleでインスタンスを複数にしたい

初めて質問させていただきます。
Oracleの初心者です。
仕事でOracleインスタンスを複数にして欲しいと言われ方法を
検索したのですが、なかなか見つかりません。。
どうしたら、インスタンスを複数にできますか?
初歩的(?)なことで恥ずかしいのですが分からなくて困っています。
回答よろしくお願い致します。

Aベストアンサー

old インスタンスから new インスタンスを作成する場合以下のような流れでできるかと思います。

1.old インスタンスを起動して CREATE CONTROLFILE 文のトレースを出力。
alter database backup controlfile to trace;
2.old インスタンスを停止。
3.old インスタンスのファイルを new インスタンスを作成する場所にコピー。
4.old インスタンスの初期化パラメータファイルをコピーして new インスタンス用の初期化パラメータファイルを作成。
5.new インスタンス用のパスワードファイルを作成。
6.new インスタンス用のログ出力ディレクトリ (bdump とか) を作成。
7.ORACLE_SID を "new" にセットしてデータベースを nomount で起動。
8.1 で出力されたトレースの "old" を "new" に書き換えて実行。
9.データベースを resetlogs オプション付きでオープン。

QSQLPLUS USER/PASSログインできない

sqlplus testuser/passwd@TESTの形式ではログインできますが、sqlplus testuser/passwdだとORA-01034、ORA-27101が発生します。
ORACLE_SIDは正しくセットしていますが、どのように調査すればよいか分かりませんので、教えて下さい。

以下は実行結果です。

USER[2]% sqlplus testuser/passwd@TEST
SQL*Plus: Release 11.2.0.1.0 Production on 水 1月 11 22:19:45 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
に接続されました。
SQL> exit
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsとの接続が切 断されました。
USER[3]% setenv ORACLE_SID TEST
USER[4]% env | grep ORACLE
ORACLE_SID=TEST
ORACLE_HOME=/opt/app/oracle/product/11.2.0/dbhome_1
ORACLE32_HOME=/home/oracle2/32Bit
ORACLE_TERM=sun5
USER[5]% sqlplus testuser/passwd
SQL*Plus: Release 11.2.0.1.0 Production on 水 1月 11 22:20:17 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.

ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SVR4 Error: 2: No such file or directory
プロセスID: 0
セッションID: 0、シリアル番号: 0

sqlplus testuser/passwd@TESTの形式ではログインできますが、sqlplus testuser/passwdだとORA-01034、ORA-27101が発生します。
ORACLE_SIDは正しくセットしていますが、どのように調査すればよいか分かりませんので、教えて下さい。

以下は実行結果です。

USER[2]% sqlplus testuser/passwd@TEST
SQL*Plus: Release 11.2.0.1.0 Production on 水 1月 11 22:19:45 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With...続きを読む

Aベストアンサー

こんにちわ。

> sqlplus testuser/passwd@TESTの形式ではログインできますが、・・・
@で指定しているのは、接続文字列で$ORACLE_HOME/network/admin/tnsnames.ora
に設定されています。
この値を、ORACLE_SID に設定してもOracle には接続できません。
先ずは、tnsnames.ora を確認してどこのDatabase に接続しようとしている
のか確認して下さい。
ローカル環境のDatabase であれば、そのSID をORACLE_SID に設定
して下さい。

QOracle12cでユーザのSQLPLUSログイン

基本的な質問ですみません。Oracle 12cを初めて使うのですが、すごく単純に、ユーザを作成し、そのユーザでデータベースオブジェクト(テーブルなど)を作成する拡張子が.sqlのスクリプトを流したいです。

11gまでの場合、システムユーザでCREATE USERしたのちに、コマンドプロンプトを立ち上げて
C:\Scripts> SQLPLUS <USER>/<PASSWORD> @createtables.sql
とするだけで良かったと思います。

今回、12cではユーザの考え方が変わっており、CDBとPDBを作成しました。
> SQLPLUS /NOLOG
SQL> CONN SYS AS SYSDBA
(上記のようにローカル接続するとCDBに接続される)

SQL> ALTER SESSION SET CONTAINER=PDB1; // PDBへ移動
SQL> SHOW CON_NAME // 念のため現在接続中のPDBの名前確認
SQL> STARTUP;
(これでマウント状態だったPDB1がOPENしてREAD WRITEになる)

この状態でCREATE USER文を実行してPDB1上でユーザを作成。

ここからなんですが、PDBやCDBへのログイン方法はわかたのですが、PDB上で作成したユーザにはどのようにしてログインするのでしょうか? ログインしてテーブル作成をしたいです。また、テーブル作成のスクリプト文(.sql)があるのでそれを流したい場合は、コマンドプロンプトからどのように実行すればよいでしょうか?

基本的な質問で恐縮ですが、宜しくお願いします。

基本的な質問ですみません。Oracle 12cを初めて使うのですが、すごく単純に、ユーザを作成し、そのユーザでデータベースオブジェクト(テーブルなど)を作成する拡張子が.sqlのスクリプトを流したいです。

11gまでの場合、システムユーザでCREATE USERしたのちに、コマンドプロンプトを立ち上げて
C:\Scripts> SQLPLUS <USER>/<PASSWORD> @createtables.sql
とするだけで良かったと思います。

今回、12cではユーザの考え方が変わっており、CDBとPDBを作成しました。
> SQLPLUS /NOLOG
SQL> CONN SYS AS SYSDBA
...続きを読む

Aベストアンサー

こんにちわ。

> ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。
上のtnsnames.ora の設定は、CDB に接続するためのものです。
新しい接続文字列で、SERVICE_NAME にPDB名を指定したものを作成して
試してみて下さい。


人気Q&Aランキング