スペックの足りないマシン(泣)にRedHat7.1とOracle9iをインストールした時のメモ。
|
容量の例 | 場所 | 備考 |
---|---|---|
516MB | / | /tmpはここに存在するので、512MB以上 |
50MB | /boot | |
7000MB | /home | インストールする場所。 |
1919MB | /usr | |
512MB | swap | swapは512MB以上 |
250MB | /var |
グループ名の例 | ユーザー名の例 | ユーザー作成時のオプション | |
---|---|---|---|
インストール用 | oinstall | oracle | -g oinstall -G dba |
DB管理者 | dba | dba | -g dba |
DBユーザー | oper | -g oper |
環境変数名 | 内容の例 | 備考 |
---|---|---|
ORACLE_BASE | /home/oracle | インストール用ユーザーのディレクトリ |
ORACLE_HOME | /home/oracle/OraHome1 | インストール先のディレクトリ |
ORACLE_OWNER | oracle | インストール用ユーザー |
TEMP、TMPDIR | インストール時の作業ディレクトリを指定。400MB以上必要 |
$ cat /proc/sys/kernel/sem
250 100 100 128
$ echo 250 32000 100 128 > /proc/sys/kernel/sem
$ mount /mnt/cdrom ←GNomeの場合は不要。CDを入れるだけでマウントされるから $ /mnt/cdrom/runInstaller(三)rootからコマンドを実行するよう指示されたら、別のtermから入ってrootになって実行する。 (四)CDを入れ替える時は、マウントを解除してから取り出す。GNomeの場合は、CD-ROMのアイコンを右クリックして﹁マウント解除﹂を選ぶことでも行える。 (五)ins_plsql.mkのターゲットinstall起動中にエラーが発生した場合、こちらを参考にして復旧させる。ポイントは以下の通り。
$ su - $ cd $ORACLE_HOME/bin $ vi genclntsh LD_SELF_CONTAINED="-z defs" → "" $ ./genclntsh$ORACLE_HOME/lib/libclntst9.aが出来ればOK。中断していたインストーラーのダイアログから﹁再試行﹂。
動作 | コマンド | 説明 |
---|---|---|
DB起動 | dbstart | /etc/oratabで「SID:ディレクトリ:Y」になっているものが対象 |
sqlplus
/nolog SQL> connect / as sysdba SQL> startup SQL> exit |
dbstartが効かない場合の方法 | |
リスナー起動 | lsnrctl start LISTENER | リスナーとは、DBクライアントの要求をOracleDBに伝えるものらしい |
リスナー終了 | lsnrctl stop LISTENER | |
DB終了 | dbshut | 対象はdbstartと同じ |
sqlplus
/nolog SQL> connect / as sysdba SQL> shutdown immediate (又はshutdown abort) SQL> exit |
dbshutが効かない場合の方法 |
sys | 管理者用ユーザー |
manager | sysのパスワード |
SID | 接続対象のSID |
$ sqlplus "sys/manager@SID as sysdba"
CREATE TABLESPACE 表領域名A DATAFILE 'ディレクトリ/ファイル.dbf' SIZE 50M ←表領域のファイル名 及び ファイルサイズ DEFAULT STORAGE (INITIAL 3M NEXT 3M MINEXTENTS 1 MAXEXTENTS 121 ←あるいは、「MAXEXTENTS unlimited」で無制限 PCTINCREASE 50) ONLINE; ←表領域の指定
CREATE TABLESPACE 表領域名B DATAFILE 'ディレクトリ/ファイル.dbf' SIZE 50M ←一時表領域のファイル名 及び ファイルサイズ DEFAULT STORAGE (INITIAL 3M NEXT 3M MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 50) TEMPORARY; ←一時表領域の指定
ORA-12913: ディク
ショナリ管理表領域を作成できません
﹂
が出て、一時表領域が作れなくなってしまった。DBの容量の問題ではないみたいだし、よく分からない…。
と思っていたら、どうやらOracle9.2では一時表領域を作るためのSQLが変わったみたい。[2004-11-12]
CREATE TEMPORARY TABLESPACE 表領域名B TEMPFILE 'ディレクトリ/ファイル.dbf' SIZE 50M←一時表領域のファイル名 及び ファイルサイズ AUTOEXTEND OFF;・ユーザーを作成する。
CREATE USER ユーザー名 ←ハイフン「-」等を含む時には、ユーザー名をダブルクォーテーションで囲む IDENTIFIED BY パスワード DEFAULT TABLESPACE 表領域名A ←表領域の指定 TEMPORARY TABLESPACE 表領域名B ←一時表領域の指定。普通は一時表領域「TEMP」を使うのかな? QUOTA unlimited ON 表領域名A; ←「DEFAULT TABLESPACE」で指定した表領域変更は、﹁CREATE﹂の代わりに﹁ALTER﹂を使うことで行える。 ・ユーザーに権限を与える。ユーザーを作っただけでは、そのユーザーはログインすることすら出来ない。
GRANT connect TO ユーザー名; ←connect:ログインする(SESSIONを繋ぐ)ことが出来るような権限を含んだロール GRANT resource TO ユーザー名; ←resource:テーブル作成権限等がある、開発者用に用意されているロール
DROP TABLESPACE 表領域名 INCLUDING CONTENTS;
﹁INCLUDING CONTENTS﹂を付けることで、表領域が空でなくても削除できる。
というより、空にする方法の方が分からないぞー。
これだけだと、表領域の実体であるdbfファイルは無くならないので、UNIXコマンドで削除する必要がある。
なお、表領域を削除してもユーザーが削除されるわけではないようだ。
create tablespaceは必要でも、create userは不要ということ。
ちなみに、どんな表領域が在るかは、以下のSQLで分かる。[2004-06-12]
SELECT TABLESPACE_NAME, CONTENTS FROM DBA_TABLESPACES;
ALTER DATABASE DATAFILE 'ファイル名' RESIZE 〜;