コンテンツにスキップ

「Oracle Database」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
translateme を追加
アーカイブ化
タグ: 新規リダイレクト
 
1行目: 1行目:
#redirect [[ArchWiki:アーカイブ]]
[[Category:データベース管理システム]]
[[Category:Oracle]]
[[Category:アーカイブ]]
[[en:Oracle]]
[[nl:Oracle]]
[[zh-hans:Oracle]]
{{Related articles start}}
{{Related|Oracle クライアント}}
{{Related articles end}}
{{Translateme|2019年に翻訳されてから、更新されていません。}}
このドキュメントでは Arch Linux に Oracle Database 12c (12.1) をインストールする手順を説明します。別のサーバーで動作している Oracle に接続したいだけの場合、[[Oracle クライアント]]の記事を読んでください。Oracle Express Edition をインストールする場合は {{AUR|oracle-xe}} パッケージを使ってください。

==準備==

先に [[Xorg]] を設定して[[ウィンドウマネージャ]]あるいは[[デスクトップ環境]]をインストールする必要があります。

===依存パッケージ===
Arch Linux 環境に Oracle Database をインストールする前に、以下のパッケージがインストールされているか確認してください:

* {{Grp|base-devel}} (グループに含まれている全てのパッケージ)
* {{Pkg|jre8-openjdk}}, {{Pkg|mksh}}, {{Pkg|gdb}}, {{Pkg|gawk}}, {{Pkg|libelf}}, {{Pkg|sysstat}}, {{Pkg|libstdc++5}}, {{Pkg|unzip}}, {{Pkg|sudo}}, {{Pkg|icu}}, {{AUR|lib32-libstdc++5}}, {{Pkg|python2}}
* {{Pkg|gcc-multilib}}{{Broken package link|置換パッケージ: {{Pkg|gcc}}}}, {{Pkg|gcc-libs-multilib}}{{Broken package link|置換パッケージ: {{Pkg|gcc-libs}}}}, {{Pkg|libtool}}

そして Oracle のインストーラを動作させるためにデフォルトで Python 3 ではなく Python 2 が使われるように設定してください。詳しくは [[Python]] を参照。

===Oracle ユーザー===

oracle ユーザーと {{ic|oinstall}}, {{ic|dba}} グループを作成してください:

# groupadd oinstall
# groupadd dba
# useradd -m -g oinstall -G dba oracle

ユーザーを作成したらパスワードを設定してください:

# passwd oracle

oracle ユーザーの {{ic|.bashrc}} ファイルをテキストエディタで編集して、以下の内容を追加してください (Oracle の環境変数とパス、デフォルトのエディタを設定します):

export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/product/db
export ORACLE_INVENTORY=/oracle/inventory
export ORACLE_SID='''''<SID of your DB>'''''
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export EDITOR=vi
export VISUAL=vi

vi 以外のエディタでテキストファイルを編集したい場合、上記の {{ic|EDITOR}} と {{ic|VISUAL}} 環境変数の値を変更してください (例: nano, gedit, kate, atom など)。{{ic|ORACLE_SID}} 変数には適切な値を設定してください。{{ic|dbca}} ツールで選択した SID になります。SID を決めていない場合、dbca を実行した後に変数を設定してください。

==設定==

===カーネルパラメータ===

以下のカーネルパラメータを設定する必要があります。{{ic|/etc/sysctl.d/99-sysctl.conf}} ファイルに以下のパラメータを追加してください (既に追加している場合は編集してください):

fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

設定したら変更を反映してください (詳しくは [[sysctl]] を参照):

# sysctl --system

===Pam の設定===

PAM モジュールの制限も設定する必要があります (参照: [[リアルタイムプロセス管理]])。{{ic|/etc/security/limits.conf}} ファイルに以下を追加してください:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

==インストール==

=== ダウンロード ===

Oracle のサイトからユーザーフォルダにソフトウェアをダウンロードしてください: http://www.oracle.com/technology/software/products/database/index.html

ダウンロードしたら {{ic|/media}} フォルダに解凍してください:

# unzip /home/oracle/Downloads/linuxamd64_12102_database_1of2.zip -d /media
# unzip /home/oracle/Downloads/linuxamd64_12102_database_2of2.zip -d /media

以下のようにインストールディレクトリの所有者と所有グループを変更してください:

# chown -R oracle:oinstall /media/database

===ディレクトリの作成===

Oracle ソフトウェアのインストール先となるディレクトリを作成します:

# mkdir -p /oracle/{inventory,recovery,product/db}

そしてパーティションを設定してください:

# chown -R oracle:oinstall /oracle/{inventory,recovery,product/db}

===Oracle インストーラの起動===

{{ic|oracle}} ユーザーでインストーラを起動してください:

$ /media/database/runInstaller

以下のようにインストールウィザードを進めてください:

;インストール・オプション
: "データベース・ソフトウェアのみインストール"

;Grid インストール・オプション
: "単一インスタンス・データベースのインストール"

;製品言語
: "英語"

;データベースのエディション
: "Enterprise Edition"

;インストール場所
: Oracle ベース: {{ic|/oracle}}
: ソフトウェアの場所: {{ic|/oracle/product/db}}

;インベントリの作成
: インベントリの場所: {{ic|/oracle/inventory}}
: oraInventory グループ名: {{ic|oinstall}}

;オペレーティング・システム・グループ
: データベース管理者グループ: {{ic|dba}}
: データベース・オペレータグループ: {{ic|oinstall}}

;前提条件のチェック
: すべて無視

===スクリプトの実行===

Oracle データベースのグラフィカルインストーラは以下のスクリプトを root で実行するように要求します:

# /oracle/inventory/orainstRoot.sh
# /oracle/product/db/root.sh

最後のスクリプトはフルパスを要求します。以下を指定してください:

/usr/local/bin

===リスナー===

最後にインスタンスリスナーを作成する必要があります。グラフィカルツールを (oracle ユーザーで) 起動することで作成できます:

$ netca

設定ウィザードに以下のように答えてください:

; 実行する構成を選択
: リスナー構成

; 実行する処理の選択
: 追加

; リスナー名:
: LISTENER

; 選択済みプロトコル
: TCP

; リスナーが使用する TCP/IP ポート番号
: 標準ポート番号の 1521

; 他のリスナーの構成
: いいえ

そして「完了」をクリックしてください。

同一マシン上で動作している Oracle データベースに接続する場合、インスタンスリスナーは不要です。他のマシンから接続する場合や JDBC ドライバーを使って (Java アプリケーションなどから) 接続する場合に必要になります。

== 起動 ==

sysdba でデータベースにログインするには ({{ic|oracle}} ユーザーで実行):

$ sqlplus / as sysdba

データベースを起動するには:

SQL> startup

データベースを停止するには:

SQL> shutdown immediate

データベースのインスタンスリスナーの起動・停止は {{ic|lsnrctl}} コマンドで行なえます。

リスナーを起動するには:

$ lsnrctl start

リスナーを停止するには:

$ lsnrctl stop

リスナーの状態を確認するには:

$ lsnrctl status

==インストール後の設定==

{{ic|oracle}} ユーザーで {{ic|dbca}} グラフィカルツールを起動することでデータベースを作成できます:

$ dbca

データベースを作成したら、{{ic|/etc/oratab}} ファイルを編集して以下の行を:

<your sid>:<oracle home>:N

以下のように変更してください:

<your sid>:<oracle home>:Y

== トラブルシューティング ==

=== インストール時のエラー ===

インストールの最中にいくつかエラーメッセージが表示されることがあります:

{{note|以下のエラーメッセージは Oracle 11gR2 x64 で現れるものです。}}

以下のエラーメッセージが表示される場合:

INFO: /usr/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'
collect2: error: ld returned 1 exit status

「続行」をクリックしてください。上記のエラーが表示された場合、レキシカルコンパイラを使うことができません。レキシカルコンパイラは中国語や日本語の辞書を生成するのに使われます。

また、以下のエラーが表示される場合:

/oracle/product/db/lib/libnnz11.so: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status

{{ic|$ORACLE_HOME/sysman/lib/ins_emagent.mk}} ファイルを開いて190行目の {{ic|$(MK_EMAGENT_NMECTL)}} を置き換えてください:

$(MK_EMAGENT_NMECTL) -lnnz11

修正したらインストーラウィンドウの「再試行」をクリックしてください。

=== IPv6 の問題 ===

デフォルトでは、リスナーは {{ic|localhost.localdomain}} を listen するように設定されます。Arch のデフォルトの IPv6 設定は異なっているため、データベースインスタンスがリスナーを登録できません。問題を解決するには、リスナーの状態を確認してください:

$ lsnrctl status

以下のように表示される場合:

The listener supports no services

{{ic|$ORACLE_HOME/network/admin}} に存在する {{ic|listener.ora}} ファイルを編集して以下の行を:

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))

以下のように変更してください:

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

上記の設定で、リスナーは外部 IP アドレスを使うようになります。

設定後、再度リスナーの状態を確認してください:

$ lsnrctl status

以下のように表示されればリスナーが正しく機能しています:

Service "<SID name>" has 1 instance(s).
Instance "<SID name>", status READY, has 1 handler(s) for this service...

2023年8月30日 (水) 20:50時点における最新版