web-dev-qa-db-ja.com

データベースの起動時にORA-01157を取得する

データファイルを作成しました/tmp/encrypted_ts.dbf。マシンが再び起動したとき、データファイルはなくなっていました。私がそれを始めたとき、私はORA-01157、詳細は次のとおりです。

ORA-01157: cannot identify/lock data file 54 - see DBWR trace file
ORA-01110: data file 54: '/tmp/encrypted_ts.dbf'

だから私はalter database datafile 54 offline drop;、そして私はORA-01516。データベースを再起動するにはどうすればよいですか?

2
user2018791

オラクルがあなたのエラーについて言っていることをお見せしましょう。

ORA-01157:データファイルstringを識別/ロックできません-DBWRトレースファイルを参照してください

原因:バックグラウンドプロセスは、データファイルの1つを見つけることができなかったか、ファイルがすでに使用されているためにロックに失敗しました。データベースはこのファイルへのアクセスを禁止しますが、他のファイルは影響を受けません。ただし、データベースを開く最初のインスタンスは、すべてのオンラインデータファイルにアクセスする必要があります。オペレーティングシステムに付随するエラーは、ファイルを識別できなかった理由を示しています。

アクション:オペレーティングシステムにファイルをデータベースで使用可能にします。次に、データベースを開くか、ALTER SYSTEM CHECK DATAFILESを実行します。

ORA-01516:存在しないログファイル、データファイル、または一時ファイル "string"

原因:ALTER DATABASEを使用して、ログファイル、データファイル、または一時ファイルの名前を変更しようとしました。または、データファイルまたは一時ファイルの属性を変更する(たとえば、サイズ変更、自動拡張、オンラインまたはオフライン)。または、データファイルを再作成または移動します。指定されたファイルがデータベースの制御ファイルに認識されていないか、要求でサポートされているタイプではないため、試行は失敗しました。

Action:必要に応じて、正しいタイプの既存のファイルの名前または番号を指定します。可能なファイルのリストについては、関連するV $テーブルを確認してください。

この場合、データファイルが属する表領域を再作成できます。

  1. データベースが停止している場合は、マウントします。

    STARTUP MOUNT;
    
  2. オフラインでデータファイルを削除します。

    ALTER DATABASE DATAFILE 'full_path_file_name' OFFLINE DROP;
    
  3. データベースがマウントされている場合は、それを開きます。

    ALTER DATABASE OPEN;
    
  4. ユーザー表領域を削除します。

    DROP TABLESPACE tablespace_name INCLUDING CONTENTS;
    
  5. テーブルスペースを再作成します。

上記の手順をテストして問題をシミュレートし、/ tmpディレクトリにデータファイルを含む新しいテーブルスペースを作成しました。

3
JSapkota