DBA11g(1Z0-018)

Oracle Master Bronzeを取得するために必要な試験の1つであるDBA 11gについての情報を取りまとめしたいと思います。

2011年4月17日

Oracle Master Database 11g Bronze(1Z0-018:Bronze DBA11g)

を受験した。

「徹底攻略ORACLE MASTER Bronze DBA11g教科書[1Z0-018]対応 (ITプロ/ITエンジニアのための徹底攻略)」を隅々まで解いたこともあって、正解率75%で「1Z0-051 11gSQL基礎I」よりも簡単に合格することができ、1Z0-051とあわせてOracle Master Database 11g Bronze認定となった。

できれば、Oracle Databaseを自分の環境にインストールして、Enterprise Managerのインターフェイスは一通り触っておくとよいと思う。

把握しておくべき部分は次の通り。
・ブロック、エクステント、セグメントの違い
・データベースバッファキャッシュ、共有プール、ラージプールの違い
・SQLチューニング・アドバイザとSQLアクセス・アドバイザの違い
・完全リカバリと不完全リカバリ(Point in Time)の違い
・一貫性バックアップと非一貫性バックアップの違い

2011年4月15日

ORA-01950: no privileges on tablespace '(表領域名)'

該当の表領域を利用できる権限がないためにエラーが発生する。

create user username identified by "password";
grant connect to username;
とするとデフォルト表領域の指定がないので、usernameのデフォルト表領域は、USERSとなる。

usernameでログインして、表を作成しようとするとconnectロールでは表が作成できないので、grant create table to usernameで別途CREATE TABLEシステム権限を付与してあげる必要がある。また、alter user username quota unlimited on tablespace で表領域に(例えば・・・)無制限割当をしてあげることで初めて、表が作成できる。

CentOSにOracle Database 11gを構築する

CentOSはサポート一覧にあるOSではないが、Redhat Linux互換なので、インストールすることができる。

OTNのアカウントを取得すれば、http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html からOracle Database 11g Release 2(11.2.0.1.0)をダウンロードできる。

/usr/local/srcにlinux_11gR2_database_1of2.zip、linux_11gR2_database_2of2.zipをダウンロードして、以下の手順で実際にインストールした。

1.インストールに必要なグループならびにユーザーを作成
groupadd oinstall
groupadd dba
useradd oracle -g oinstall -G dba

2.X Window Systemがインストールされていない場合には、レスポンスファイルを利用して、サイレントインストールを行うか、実際にX Window Systemをインストールする。
yum groupinstall "X Window System" "GNOME Desktop Environment"

ここからはOralce Universal Installerを利用したGUIインストールを前提とする。

3.依存関係のあるパッケージをインストールする
yum install gcc compat-libstdc++-33 elfutils-libelf-devel gcc-c++ libaio-devel sysstat unixODBC-devel pdksh

4./etc/sysctlをviで開き、以下のカーネルパラメータを追加する

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 25032000 100128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.sem=250 32000 100 128

5.sysctl -p で設定を反映する

6.ulimit -n 65536 コマンドを実行する

7.startx でX Window Systemを起動する

8.xhost hostname で接続を許可する

9.su oracle でユーザーをスイッチする

10.export DISPLAY=hostname:0.0 を実行する

11.以下のコマンドを実行し、Universal Installerを起動し、インストーラーに従ってインストールを行う。
cd /usr/local/src
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip
cd database
./runInstaller

12.インストールが完了したら、インストーラーに従って、su rootでrootに戻り、以下のコマンドを実行した。
oraInventory/orainstRoot.sh
oracle/product/11.2.0/dbhome_1/root.sh

13.サービス起動時にデータベースを同時に起動するよう /etc/oratab を修正した。
orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:Y

14.サービスが起動できるように oracleユーザーの.bash_profile を以下のように追記した。
export PATH
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

15.以下のコマンドをoracleユーザーで起動できることを確認する
lsnrctl start
emctl start dbconsole

16.自動起動スクリプトを /etc/init.d/dbora で作成する
作成方法は、先ほど紹介したサイレントモードインストール方法のサイトにあるスクリプトを参照してください。