ORA-27125エラー

3735 ワード

私はredhat linux 6.3 64 bitシステムのインストールを完了oracle 10.2.0.1、dbcaコマンドを実行してライブラリを構築する時ora-27125エラーに遭遇して、oerrクエリーを使用します
[oracle@oracle database]$ oerr ora 27125
27125, 00000, "unable to create shared memory segment"
// *Cause: shmget() call failed
// *Action: contact Oracle support

共有メモリの割り当てに失敗しました
その後eygleブログで解決策を見つけました...
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Hugepages,hugetlb_shm_グループとORA-27125
1
作者:eygle|English【転載時に記事の出典と作者情報及び本声明をハイパーリンク形式で明記してください】
リンク:http://www.eygle.com/archives/2011/12/hugepageshugetl.html
駅構内関連記事|Related Articles
 ORA-600 KGHALO 4 Heap Managerからのエラー
ORA-600 [6749] ON SYSMAN.MGMT_METRICS_RAW
TNS-00583エラー解決例一則
Invalid Login Using Trusted Authenticationエラーの原因
Oracleデータ・リカバリ:ORA-600 4097エラー・ソリューションの1つ
一部のオペレーティングシステムでは、データベースの起動時またはデータベースの作成時にORA-27125エラーが発生する可能性があります.Oracle Linux 6にOracle 10.2.0.1をインストールし、データベースの作成時にこのエラーに遭遇しました.
このエラーの解決は、/proc/sys/vm/hugetlb_を変更することです.shm_グループファイル.
以下は楊さんが言及した問題で、解決方法は同じです.
Linux上のデータベースが起動できない問題を解決します.
お客様のLinux 5.6 x 86-64環境で、データベースをインストールした後、データベースエラー:ORA-27125を起動します.
OracleドキュメントのORA-27125エラーの説明は次のとおりです.
ORA-27125: unable to create shared memory segment
Cause: shmget() call failed
Action: contact Oracle support
調べてみると、問題はlinuxのhugetblと関係があることがわかりました.
解決策も簡単です.まずoracleユーザーのグループ情報を確認します.
[oracle@yans1 ~]$ id oracle
uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)
[oracle@yans1 ~]$ more/proc/sys/vm/hugetlb_shm_group
0
次にrootで次のコマンドを実行し、dbaグループをシステムカーネルに追加します.
# echo 501 >/proc/sys/vm/hugetlb_shm_group
その後、データベースを起動し、問題は消えます.
ではhugetlb_shm_グループは何ですか?以下に説明します.
hugetlb_shm_group contains group id that is allowed to create SysV shared memory segment using hugetlb pageここではHugePageについて繰り返し説明します.以下はHugePageについての説明と説明です.
When a process uses some memory, the CPU is marking the RAM as used by that process. For efficiency, the CPU allocate RAM by chunks of 4K bytes (it's the default value on many platforms). Those chunks are named pages. Those pages can be swapped to disk, etc.
Since the process address space are virtual, the CPU and the operating system have to remember which page belong to which process, and where it is stored. Obviously, the more pages you have, the more time it takes to find where the memory is mapped. When a process uses 1GB of memory, that's 262144 entries to look up (1GB/4K). If one Page Table Entry consume 8bytes, that's 2MB (262144 * 8) to look-up.
Most current CPU architectures support bigger pages (so the CPU/OS have less entries to look-up), those are named Huge pages (on Linux), Super Pages (on BSD) or Large Pages (on Windows), but it all the same thing.
また、インストール中に発生したOS認証エラーは、次のように解決できます.
Linuxシステムにoralceをインストール中に、Linuxリリースがoracleの推奨バージョンでない場合、runInstallerが完了できないエラーが表示される可能性があります.
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<<
この問題にぶつかると,次の3つの方法で解決できる.
1、Linuxの発行マークを修正する
redhat-5にoracleをインストールする場合は、ファイル'/etc/redhat-release'の内容を
Red Hat Enterprise Linux Server release 5 (Tikanga)
Oracleでサポートされているバージョンに変更
Red Hat Enterprise Linux Server release 4 (Tikanga)
2、runInstallerの場合-ignoreSysPreReqsパラメータを加える.
./runInstaller -ignoreSysPreReqs
3.oraparam.iniのパラメータの変更
システムのバージョン番号を追加
参考文献:
http://wiki.debian.org/Hugepages