数日前、DBでシャットダウンを実行しましたが、非常に時間がかかったため、m/cをシャットダウンしました。マシンを再起動した後、TOADを使用してデータベースに接続しようとすると、この例外が発生します。以下のスレッドを参照しましたが、問題はまだ解決していません:
私のtnsnames.oraの内容:
ORCL=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(Host=localhost)
(PORT=1521)
)
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=orcl)
)
)
「lsnrctl services」の出力:
LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 15-FEB-2012 23:53:33
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
The command completed successfully
すべてのOracleサービスが実行されています。起動コマンドを使用してデータベースを起動しようとしました:
C:\Users\PPPP>sqlplus
SQL*Plus: Release 11.2.0.1.0 Production on Wed Feb 15 23:56:59 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Enter user-name: / as sysdba
Connected to an idle instance.
SQL> startup
Oracle instance started.
Total System Global Area 1071333376 bytes
Fixed Size 1375792 bytes
Variable Size 763363792 bytes
Database Buffers 301989888 bytes
Redo Buffers 4603904 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 214624
Session ID: 5 Serial number: 3
Listener.logファイルに次のエラーが表示されます。
Thu Feb 16 00:13:28 2012
16-FEB-2012 00:13:28 * (CONNECT_DATA=(CID=(PROGRAM=)(Host=__jdbc__)* (USER=PRITHVIRAJ-PC$))(SERVICE_NAME=orcl)) * (ADDRESS=(PROTOCOL=tcp) (Host=127.0.0.1)(PORT=59161)) * establish * orcl * 12514
TNS-12514: TNS:listener does not currently know of service requested in connect descriptor
この問題の整理を手伝ってください。
ORA-19815
メッセージは、3GBのリカバリ先がいっぱいであることを示しています。データベースは、これ以上のREDOログファイルをアーカイブできません。完全なREDOログファイルを切り替える必要がある段階に達しましたが、アーカイブできないため、再利用できません。これがきちんとシャットダウンしない理由だと思います。おそらく、その状態のデータベースでは多くのことができなかったので、そもそもシャットダウンしたかったのでしょう。
短期的な修正は、十分なディスク領域があることを前提として、リカバリ領域のサイズを増やすことです。例:
startup nomount
alter system set db_recovery_file_dest_size=4G scope=both;
alter database mount;
alter database open;
ただし、アーカイブを管理する方法を考え出し、リカバリ領域のサイズをバックアップと保持のニーズに適した値に設定する必要があります。これは、古いバックアップを削除するジョブをスケジュールするのと同じくらい簡単かもしれません。 Enterprise Managerコンソールの[可用性]タブの[現在のバックアップの管理]から。しかし、あなたはあなたにとって最良のコースを決定する必要があります(そして、あなたの要件について何も知らず、EM/RMANについてもあまり知らないインターネット上のランダムな人からの盲目的なアドバイスには従わないでください)。
このコマンドを使用します。それは問題を解決するかもしれません
alter system
set local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
(Host=127.0.0.1)
(PORT=1521)))';