Linux Ubuntu 11.10ハウツーでのOracle 11gR2 Express Edition に従ってUbuntu 12.04にOracle 11gR2 Express Editionをインストールし、/dev/shm
のOracleメモリターゲットの問題に遭遇した(セクション7。そのガイド)/dev/shm
は/dev/shm
から/run/shm
へのUbuntu 11.10リリースノートに記載されているように、デフォルトでシンボリックリンクとして実装されるためです。シンボリックリンクはOracleが期待するものと互換性がないため、データベースの起動時にOracleエラー(ORA-00845:MEMORY_TARGET)が発生します。
「Linux Ubuntu 11.10 howtoでのOracle 11gR2 Express Edition」のセクション7)は、/etc/init.d/Oracle-shm
を設定してUbuntuの/dev/shm
を使用するように構成された起動スクリプト/run/shm
を文書化していますnotはUbuntu 12.04で望ましい効果を発揮し、/dev/shm
は期待どおりにマウントされません-おそらく11.10で動作しました。これは すでに注目され、さまざまな解決策が提案されています エントリを/etc/fstab
に追加し、/etc/init.d/Oracle-shm
スクリプトを次のように変更することで、少し異なる方法で問題を回避することを選択しました:
共有メモリ一時ファイルシステムのエントリを/etc/fstab
に追加すると、たとえば(2ギガバイトのファイルの場合)
shm /dev/shm tmpfs size=2g 0 0
/etc/init.d/Oracle-shm
のmount
行の変更:
rm -f /dev/shm
mkdir /dev/shm
mount -B /run/shm /dev/shm
単純に
rm -f /dev/shm
mkdir /dev/shm
mount /dev/shm
とにかく、提案されたすべてのソリューションでは、最初にシンボリックリンクを削除してから目的の動作を実装することにより、起動時にデフォルトのUbuntuの動作を元に戻します。
共有メモリファイルシステムをセットアップできるようにしたい一度限り
共有メモリ一時ファイルシステムのエントリを/etc/fstab
に追加すると、たとえば(2ギガバイトのファイルの場合)
shm /dev/shm tmpfs size=2g 0 0
/ dev/shmへの既存のシンボリックリンクを削除し、Sudoとしてディレクトリとして作成します。
rm –f /dev/shm
mkdir /dev/shm
共有メモリ一時ファイルシステムのマウント
mount /dev/shm
これはすべて、再起動するまで正常に機能します。再起動すると、/dev/shm
から/run/shm
へのシンボリックリンクが、/dev/shm
が共有メモリの一時ファイルシステムとしてマウントされる代わりに再表示されます。
それでは質問です。
起動時に最初に作成される/dev/shm
から/run/shm
へのシンボリックリンクを防ぐためにUbuntu 12.04(および12.10)のデフォルトの動作を変更するにはどうすればよいですか?
action = show&redirect = OneiricOcelot/TechnicalOverview#Upgrades
/etc/init/mounted-dev.conf
で行を削除します
[ -e /dev/shm ] || ln -s /run/shm /dev/shm