ipcs -m
共有メモリ セグメントを一覧表示するために使用します。ipcrm
残りの共有メモリ セグメントを削除するために使用します。
2019 年 6 月 24 日の編集: わかりました。上記の回答は、正しい限りではありますが、少し簡潔でした。特に、複数の DB インスタンスを持つホストがあり、1 つだけがクラッシュした場合、どのメモリ セグメントをクリーンアップする必要があるかをどのように判断できますか?
まぁ、これも出来ます。実行中のインスタンスごとに、 w// as sysdba
で接続してから実行しますoradebug setmypid
(すべての Oracle PID が SGA に接続するため、任意の pid で実行できます)。次に、実行しますoradebug ipc
。それは(うまくいけば)返されIPC information written to the trace file
ます。そのため、udump (または diag_dest) ディレクトリに移動し、トレース ファイルを探します。インスタンスのすべての IPC 情報が含まれます。これには が含まれますShmId
。このインスタンスが使用している ShmId のファイルを調べます。の出力を見てくださいipcs -m
。
実行中のすべてのインスタンスに対してこれを行った場合、ipcs -m
ゼロ以外のメモリ割り当てを示し、実行中のインスタンスからの情報で説明できないからのメモリ セグメント出力oradebug ipc
は、クラッシュしたインスタンスからの残りのメモリ セグメントである必要があります。を使用ipcrm
して削除します。
複数のインスタンスが実行されているホストでこれを行う場合、これは少し面倒な場合があります。注意して進めてください。実行中のインスタンスの SGA を削除したくない!
それが役立つことを願って....