実行中のOracleデータベースでSHELLを変更できますか?

実行中のOracleデータベースでSHELLを変更できますか?

私は新しい契約を始めましたが、以前に処理したことがない問題に直面しました。

Oracleデータベースはkornシェルから起動されます。

oracle:x:500:100:Oracle user:/home/oracle:/usr/bin/ksh

私はすべてのbashスクリプトを持っており、テスト環境はありません。毎日bashの使用をお楽しみください。

私は.profileでbashを呼び出してみましたが、スクリプトに環境変数が必要で、他のシェルが起動すると問題が発生します。

実行中のプロセスに影響を与えずにログイン時に/etc/passwdを編集し、bashシェルを起動できますか?

答え1

データベース自体はログインシェルを頻繁に使用しないことがあります。

ログインシェルは、bashスクリプトの作成にログインシェルの使用を制限しません。スクリプトの - 行は、#!スクリプトの実行に使用するインタプリタをシェルに伝えます。これは特定のスクリプトに適しているbashか、またはkshpythonでもよい。perl

唯一の違いは、ユーザーとしてログインするときにログインシェルが何であるか、およびログインシェルを使用できるoracle他のすべての場所です(どこにあるかを見るには、Oracleデータベースのドキュメントを読む必要がありますが、私が知る限りkshおよびbashすべてcshサポートされます。)

個人的には、ログインシェルの変更を避け、代わりにコマンドラインからbash対話型シェルを手動で起動します(ユーザーとして対話型操作に使用したいシェルの場合)oracle

答え2

定期的な使用のためにプライベートUnixアカウントを作成し(ベースで利用可能)、必要な場合にのみoracleアカウントを使用することをお勧めします。これにより、アカウントの変更(またはOracleが実行する方法について送信できる文書が無効になることを心配する必要はありません。)、発生する可能性のあるすべての事故。シェルを変更しても実行中のプロセスは中断されませんが、驚きを引き起こす可能性があります。

実行するほとんどのDDL / DML操作では、Oracleユーザーである必要はありません。 Oracleユーザーのみが必要です。個人アカウントを使用できます。

答え3

この質問に正確に答えるには:もちろんです。できる影響を与えずにOracleシェルを変更します。現在のプロセス。ただし、chsh/etc/passwdを編集しないことをお勧めします。

kshからoracleとして実行されると予想されるcron(またはスケジュールされた)操作を検討してください。また、kshをログインシェルとして実行する既存のプロセスによって生成されたすべてのタスクを検討してください。

早く見てくださいLinux x86-64用Oracle®データベースクイックインストールガイド11gリリース1(11.1)ksh以外のシェルの一部のサポートを示していますが、それに応じて必要なシェルプロファイルを設定する必要があります。

このように変更した後は、アプリをリサイクルしてすべてを再利用できるようにします。

~/.bashrc および/または ~/.bash_profile を設定し、インタラクティブexec bashに作業するときに入力する方が簡単です。

関連情報