2014年12月31日水曜日

ORACLE 公開の Oracle Linux 6.x Docker イメージを使う。

ORACLE から Docker イメージが公開されています。
Oracle Linux 6.x / 7.x があります。
http://public-yum.oracle.com/docker-images/OracleLinux/

前回は、ORACLE の Docker RPM をインストールしてみました。
今回は、引き続き、
Oracle Linux 6.6 にインストールした Docker で
Oracle Linux 6.6 のイメージを起動してみます。

イメージのダウンロード

ホスト側の OS にて、wget コマンドでイメージをダウンロードします。
今回のイメージはこれです。
http://public-yum.oracle.com/docker-images/OracleLinux/OL6/oraclelinux-6.6.tar.xz
[root@docker01 ~]# wget http://public-yum.oracle.com/docker-images/OracleLinux/OL6/oraclelinux-6.6.tar.xz
--2014-12-29 05:19:01--  http://public-yum.oracle.com/docker-images/OracleLinux/OL6/oraclelinux-6.6.tar.xz
public-yum.oracle.com をDNSに問いあわせています... 184.51.198.32, 184.51.198.8
public-yum.oracle.com|184.51.198.32|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 73544076 (70M) [application/x-tar]
`oraclelinux-6.6.tar.xz' に保存中

100%[=================================================>] 73,544,076   480K/s 時間 2m 30s

2014-12-29 05:21:32 (477 KB/s) - `oraclelinux-6.6.tar.xz' へ保存完了 [73544076/73544076]

Docker へのイメージの登録

イメージを解凍して、Docker に登録します。
[root@docker01 ~]# ls -lh oraclelinux-6.6.tar.xz
-rw-r--r--. 1 root root 71M 11月 11 05:34 2014 oraclelinux-6.6.tar.xz
[root@docker01 ~]# xz -d oraclelinux-6.6.tar.xz ★解凍
[root@docker01 ~]# ls -lh oraclelinux-6.6.tar
-rw-r--r-- 1 root root 312M 11月 11 05:34 2014 oraclelinux-6.6.tar
[root@docker01 ~]# docker load -i oraclelinux-6.6.tar ★登録

イメージが登録されました。
[root@docker01 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
oraclelinux         6.6                 d56e767abb61        6 weeks ago         319.4 MB

コンテナの起動

登録したイメージから、コンテナを起動してみます。
「docker run」コマンド実行の直後から、起動されたコンテナに接続されています。
[root@docker01 ~]# docker run -i -t --name cont01 oraclelinux:6.6 /bin/bash
[root@4296678bec11 /]# uname -n ★ここからコンテナ
4296678bec11
[root@4296678bec11 /]# cat /etc/oracle-release
Oracle Linux Server release 6.6
[root@4296678bec11 /]# uname -r
3.8.13-44.1.1.el6uek.x86_64
サービスの自動起動設定は下記のような感じです。
[root@4296678bec11 /]# chkconfig --list
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rdisc           0:off   1:off   2:off   3:off   4:off   5:off   6:off
restorecond     0:off   1:off   2:off   3:off   4:off   5:off   6:off
rhnsd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off

YUM リポジトリも参照するように設定されています。
[root@4296678bec11 /]# yum repolist
public_ol6_UEKR3_latest               | 1.2 kB     00:00
public_ol6_UEKR3_latest/primary       |  11 MB     00:17
public_ol6_UEKR3_latest                              288/288
public_ol6_latest                     | 1.4 kB     00:00
public_ol6_latest/primary             |  45 MB     01:14
public_ol6_latest                                29075/29075
repo id                 repo name                                                   status
public_ol6_UEKR3_latest Unbreakable Enterprise Kernel Release 3 for Oracle Linux 6Se   288
public_ol6_latest       Oracle Linux 6Server Latest (x86_64)                         29075
repolist: 29363

public-yum-ol6.repo ファイルには、
ひととおりの Yum リポジトリが記載されています。
※有効にされているのは、public_ol6_latest と public_ol6_UEKR3_latest だけです。
[root@4296678bec11 /]# cat /etc/yum.repos.d/public-yum-ol6.repo | grep -E "\[.*\]|name|baseurl|enable"
[public_ol6_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/
enabled=1
[public_ol6_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/addons/$basearch/
enabled=0
[public_ol6_ga_base]
name=Oracle Linux $releasever GA installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/0/base/$basearch/
enabled=0
[public_ol6_u1_base]
name=Oracle Linux $releasever Update 1 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/1/base/$basearch/
enabled=0
[public_ol6_u2_base]
name=Oracle Linux $releasever Update 2 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/2/base/$basearch/
enabled=0
[public_ol6_u3_base]
name=Oracle Linux $releasever Update 3 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/3/base/$basearch/
enabled=0
[public_ol6_u4_base]
name=Oracle Linux $releasever Update 4 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/4/base/$basearch/
enabled=0
[public_ol6_u5_base]
name=Oracle Linux $releasever Update 5 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/5/base/$basearch/
enabled=0
[public_ol6_u6_base]
name=Oracle Linux $releasever Update 6 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/6/base/$basearch/
enabled=0
[public_ol6_UEK_latest]
name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/$basearch/
enabled=$uek
[public_ol6_UEKR3_latest]
name=Unbreakable Enterprise Kernel Release 3 for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEKR3/latest/$basearch/
enabled=$uekr3
[public_ol6_UEK_base]
name=Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/base/$basearch/
enabled=0
[public_ol6_MySQL]
name=MySQL 5.5 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/MySQL/$basearch/
enabled=0
[public_ol6_gdm_multiseat]
name=Oracle Linux 6 GDM Multiseat ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/gdm_multiseat/$basearch/
enabled=0
[public_ol6_MySQL56]
name=MySQL 5.6 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/MySQL56/$basearch/
enabled=0
[public_ol6_spacewalk20_server]
name=Spacewalk Server 2.0 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/spacewalk20/server/$basearch/
enabled=0
[public_ol6_spacewalk20_client]
name=Spacewalk Client 2.0 for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/spacewalk20/client/$basearch/
enabled=0
[public_ol6_ofed_UEK]
name=OFED supporting tool packages for Unbreakable Enterprise Kernel on Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/ofed_UEK/$basearch/
enabled=0
[public_ol6_playground_latest]
name=Latest mainline stable kernel for Oracle Linux 6 ($basearch) - Unsupported
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/playground/latest/$basearch/
enabled=0

コンテナからデタッチ

「Ctrl + p + q」キーで、コンテナから抜けます。
キーを押すと、すぐにホスト側の OS に戻ります。
「docker ps」コマンドで、コンテナが起動したままということがわかります。
[root@4296678bec11 /]# [root@docker01 ~]# ★キー入力で抜けた
[root@docker01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4296678bec11        oraclelinux:6.6     "/bin/bash"         17 minutes ago      Up 17 minutes                           cont01

コンテナの停止

コンテナを、「docker stop」コマンドで停止してみます。
停止中のコンテナは、「docker ps」だけだと表示されなくなりますが、
「-a」オプションで表示することができます。
[root@docker01 ~]# docker stop cont01
cont01
[root@docker01 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
4296678bec11        oraclelinux:6.6     "/bin/bash"         19 minutes ago      Exited (-1) 7 seconds ago                       cont01

コンテナの起動

「docker start」コマンドで停止中のコンテナを起動してみます。
「docker run」とは違い、新規作成ではなく以前に作成したコンテナが起動されます。
コンテナ ID も、停止前のままです。
[root@docker01 ~]# docker start cont01
cont01
[root@docker01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4296678bec11
       oraclelinux:6.6     "/bin/bash"         19 minutes ago      Up 5 seconds                            cont01

コンテナに再接続

起動したコンテナに再接続してみます。
[root@docker01 ~]# docker attach cont01

[root@4296678bec11 /]# ★接続した

イメージ登録からコンテナ起動/停止まで、ひととおり試してみました。
Docker サイトからバイナリを DL~インストールする場合とは違い、
デフォルトでも、余分な標準出力がなくなります。

以上、ORACLE 製 Docker イメージを使ってみる話でした。

2014年12月30日火曜日

Oracle Linux 6.x への Docker RPM インストール。

以前、Oracle Linux 6.5 に Doker のサイトから
docker バイナリを DL して使用してみました。
今回は、ORACLE のパブリック YUM サイトにある RPM で
Docker をインストールしてみます。
http://public-yum.oracle.com/repo/OracleLinux/OL6/addons/x86_64/

手順は、Oracle Linux のマニュアル、Docker の Web サイト
どちらにもあります。
Oracle Linux
Administrator's Solutions Guide for Release 6
https://docs.oracle.com/cd/E37670_01/E37355/html/index.html

Docker
Oracle Linux 6 and 7
https://docs.docker.com/installation/oracle/

今回の環境

今回は、Oracle Linux 6.6 にインストールします。
[root@docker01 ~]# cat /etc/oracle-release
Oracle Linux Server release 6.6
[root@docker01 ~]# uname -r
3.8.13-44.1.1.el6uek.x86_64

Yum リポジトリの参照設定

Docker の RPM がある public_ol6_addons リポジトリを有効にします。
enabled=0 を enabled=1 に変更しておきます。
[root@docker01 ~]# vi /etc/yum.repos.d/public-yum-ol6.repo
[root@docker01 ~]# grep public_ol6_addons -A6 /etc/yum.repos.d/public-yum-ol6.repo
[public_ol6_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

Docker の RPM

Docker パッケージが
public_ol6_addons リポジトリにあることがわかります。
[root@docker01 ~]# yum list docker
読み込んだプラグイン:security
利用可能なパッケージ
docker.x86_64                       1.3.2-1.0.1.el6                       public_ol6_addons

この RPM をインストールします。
[root@docker01 ~]# yum info docker
読み込んだプラグイン:security
利用可能なパッケージ
名前                : docker
アーキテクチャ      : x86_64
バージョン          : 1.3.2
リリース            : 1.0.1.el6
容量                : 4.3 M
リポジトリー        : public_ol6_addons
要約                : Automates deployment of containerized applications
URL                 : http://www.docker.com
ライセンス          : ASL 2.0
説明                : Docker is an open-source engine that automates the deployment of any
                    : application as a lightweight, portable, self-sufficient container
                    : that will run virtually anywhere.
                    :
                    : Docker containers can encapsulate any payload, and will run
                    : consistently on and between virtually any server. The same container
                    : that a developer builds and tests on a laptop will run at scale, in
                    : production*, on VMs, bare-metal servers, OpenStack clusters, public
                    : instances, or combinations of the above.

Docker のインストール

Docker の RPM を yum コマンドでインストールします。
[root@docker01 ~]# yum install docker
(省略)
インストール:
  docker.x86_64 0:1.3.2-1.0.1.el6

依存性関連をインストールしました:
  augeas-libs.x86_64 0:1.0.0-7.el6
  cyrus-sasl-md5.x86_64 0:2.1.23-15.el6_6.1
  dnsmasq.x86_64 0:2.48-14.el6
  ebtables.x86_64 0:2.0.9-6.el6
  glusterfs.x86_64 0:3.6.0.28-2.el6
  glusterfs-api.x86_64 0:3.6.0.28-2.el6
  glusterfs-libs.x86_64 0:3.6.0.28-2.el6
  gnutls-utils.x86_64 0:2.8.5-14.el6_5
  iscsi-initiator-utils.x86_64 0:6.2.0.873-13.0.1.el6
  libvirt.x86_64 0:0.10.2-46.0.1.el6_6.2
  libvirt-client.x86_64 0:0.10.2-46.0.1.el6_6.2
  lxc.x86_64 0:1.0.6-2.0.1.el6
  lxc-libs.x86_64 0:1.0.6-2.0.1.el6
  lzop.x86_64 0:1.02-0.9.rc1.el6
  nc.x86_64 0:1.84-22.el6
  netcf-libs.x86_64 0:0.2.4-1.el6
  qemu-img.x86_64 2:0.12.1.2-2.448.el6_6
  radvd.x86_64 0:1.6-1.el6
  usbredir.x86_64 0:0.5.1-1.el6
  yajl.x86_64 0:1.0.7-3.el6

依存性を更新しました:
  cyrus-sasl.x86_64 0:2.1.23-15.el6_6.1      cyrus-sasl-gssapi.x86_64 0:2.1.23-15.el6_6.1
  cyrus-sasl-lib.x86_64 0:2.1.23-15.el6_6.1  cyrus-sasl-plain.x86_64 0:2.1.23-15.el6_6.1

完了しました!

Docker がインストールされました。
[root@docker01 ~]# which docker
/usr/bin/docker
[root@docker01 ~]# docker -v
Docker version 1.3.2, build c78088f/1.3.2

Docker の RPM に含まれるファイルです。
「/usr/bin/docker」も含まれています。
[root@docker01 ~]# rpm -ql docker
/etc/rc.d/init.d/docker
/etc/sysconfig/docker
/etc/sysconfig/docker-storage
/etc/udev/rules.d/80-docker.rules
/usr/bin/docker
/usr/libexec/docker
/usr/libexec/docker/dockerinit
/usr/share/bash-completion/completions/docker
/usr/share/doc/docker-1.3.2
/usr/share/doc/docker-1.3.2/AUTHORS
/usr/share/doc/docker-1.3.2/CHANGELOG.md
/usr/share/doc/docker-1.3.2/CONTRIBUTING.md
/usr/share/doc/docker-1.3.2/LICENSE
/usr/share/doc/docker-1.3.2/LICENSE-vim-syntax
/usr/share/doc/docker-1.3.2/MAINTAINERS
/usr/share/doc/docker-1.3.2/NOTICE
/usr/share/doc/docker-1.3.2/README-vim-syntax.md
/usr/share/doc/docker-1.3.2/README.md
/usr/share/man/man1/docker-attach.1.gz
/usr/share/man/man1/docker-build.1.gz
/usr/share/man/man1/docker-commit.1.gz
/usr/share/man/man1/docker-cp.1.gz
/usr/share/man/man1/docker-create.1.gz
/usr/share/man/man1/docker-diff.1.gz
/usr/share/man/man1/docker-events.1.gz
/usr/share/man/man1/docker-exec.1.gz
/usr/share/man/man1/docker-export.1.gz
/usr/share/man/man1/docker-history.1.gz
/usr/share/man/man1/docker-images.1.gz
/usr/share/man/man1/docker-import.1.gz
/usr/share/man/man1/docker-info.1.gz
/usr/share/man/man1/docker-inspect.1.gz
/usr/share/man/man1/docker-kill.1.gz
/usr/share/man/man1/docker-load.1.gz
/usr/share/man/man1/docker-login.1.gz
/usr/share/man/man1/docker-logout.1.gz
/usr/share/man/man1/docker-logs.1.gz
/usr/share/man/man1/docker-pause.1.gz
/usr/share/man/man1/docker-port.1.gz
/usr/share/man/man1/docker-ps.1.gz
/usr/share/man/man1/docker-pull.1.gz
/usr/share/man/man1/docker-push.1.gz
/usr/share/man/man1/docker-restart.1.gz
/usr/share/man/man1/docker-rm.1.gz
/usr/share/man/man1/docker-rmi.1.gz
/usr/share/man/man1/docker-run.1.gz
/usr/share/man/man1/docker-save.1.gz
/usr/share/man/man1/docker-search.1.gz
/usr/share/man/man1/docker-start.1.gz
/usr/share/man/man1/docker-stop.1.gz
/usr/share/man/man1/docker-tag.1.gz
/usr/share/man/man1/docker-top.1.gz
/usr/share/man/man1/docker-unpause.1.gz
/usr/share/man/man1/docker-version.1.gz
/usr/share/man/man1/docker-wait.1.gz
/usr/share/man/man1/docker.1.gz
/usr/share/man/man5/Dockerfile.5.gz
/usr/share/vim/vimfiles/doc/dockerfile.txt
/usr/share/vim/vimfiles/ftdetect/dockerfile.vim
/usr/share/vim/vimfiles/syntax/dockerfile.vim
/usr/share/zsh/site-functions/_docker
/var/lib/docker

デフォルトで docker デーモンは自動起動するようになっていますが、
インストール直後は停止しているので起動します。
[root@docker01 ~]# chkconfig --list docker
docker          0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@docker01 ~]# service docker status
docker は停止しています
[root@docker01 ~]# service docker start
Starting cgconfig service:                                 [  OK  ]
Starting docker:                                           [  OK  ]

docker が起動されています。
[root@docker01 ~]# docker info
Containers: 1
Images: 1
Storage Driver: devicemapper
 Pool Name: docker-252:0-270430-pool
 Pool Blocksize: 65.54 kB
 Data file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata
 Data Space Used: 661 MB
 Data Space Total: 107.4 GB
 Metadata Space Used: 970.8 kB
 Metadata Space Total: 2.147 GB
 Library Version: 1.02.89-RHEL6 (2014-09-01)
Execution Driver: native-0.2
Kernel Version: 3.8.13-44.1.1.el6uek.x86_64
Operating System: <unknown>

以上、Oracle Linux への Docker RPM インストールでした。

2014年12月29日月曜日

最近の OTN 掲示板(日本語)について。

もともと私は、OTN の掲示板に積極的に参加してませんでしたが、
以前はこの掲示板が、大変、栄えていました。
Oracle Technology Network (OTN) Japan - 掲示板
こちらは旧OTN掲示板です。

http://otn.oracle.co.jp/forum/index.jspa?categoryID=2
懐かしい OTN 掲示板。



2014年12月21日日曜日

Oracle VM Server と Docker。


JPOUG Advent Calendar 2014 の16日目のエントリです。2回目でちゃいました。
前日は 佐々木潤 さんの 泥箱的なメモ - モデルをスケッチする でした。

今回は、Docker の話です。
最近流行の Docker ですが、当然ながら Oracle Linux でも使用できます。



そして、Oracle VM Server 上の Linux でも使用できます。
Oracle VM Server の Dom-0 でコンテナを起動したりするわけではなく、
Dom-U の Linux でコンテナを起動します。



2014年12月7日日曜日

Oracle VM Server と OpenStack。

今日は、JPOUG Advent Calendar 2014 の7日目のエントリです。
昨日は kouta shiobara さんの Trying Database: optimizer_dynamic_sampling=11 でした。

今回は、最近提供開始された、
ORACLE の OpenStack ディストリビューションの話です。
Oracle VM Server for x86 も、OpenStack で管理できるようになります。

Oracle OpenStack for Oracle Linux
http://www.oracle.com/us/technologies/linux/openstack/overview/index.html

2014年11月30日日曜日

vForum 2014 でみつけた ORACLE。

今月のはじめに、VMware 社の vFroum 2014 というイベントがありました。
http://vforum.jp/



そこに、なぜか ORACLE が出展(赤枠のところ参照)。


展示内容は、ストレージでした。


Solutions Showcase ソリューション展示コーナー の
日本オラクル株式会社の説明より・・・
クラウド&ビッグデータ時代、厳しい競争を勝ち抜く情報管理基盤に、統合ストレージ製品「Oracle ZFS Storage ZS3」シリーズをご紹介します。ZS3は仮想化&クラウド機能を強化、16000超VMを7分以内に同時起動できブートストームを解消。もちろんOpenStack Cinder、REST APIもサポート。更にOracleデータベースとインテリジェントな連携ができるのはZS3だけ。

紹介されている ZS3 というストレージ(ZS3-2)を実機展示していて、
ESXi の NFS データストアとして使用していました。
当然ながら、Oracle Database の dNFS(Direct NFS)もサポートしています。

Oracle ZFS Storage ZS3-2
http://www.oracle.com/jp/products/servers-storage/storage/nas/zs3-2/overview/index.html

ZS3-4 というのもあります。
http://www.oracle.com/jp/products/servers-storage/storage/nas/zs3-4/overview/index.html

カタログを見ると、ストレージ自体は FC / iSCSI とかも
対応しているようですが、 NFS データストアとして使用していました。

ZS3 を VM のデータストアにも、Oracle のデータベース領域にも使ってね
という提案のようです。

VMware Compatibility Guide で検索してみると・・・
http://www.vmware.com/resources/compatibility/search.php?deviceCategory=san

ZS3-2 /ZS3-4 どちらも NAS(NFS データストア)として
2014年11月で最新の ESXi 5.5 u2 まで、ちゃんと登録されていました。
※2014年11月30日時点です。


VAAI NAS (ESXi のストレージ処理支援機能)にも対応しています。
ただし、まだ ESXi 5.1 u2 までしか登録されていませんでした。
使えそうな気はしますが・・・

ZS3-2


ZS3-4



ちなみに、
当然ながら vForum には Oracle VM とかは出てきません。

以上、今月みつけた面白いものについてでした。

2014年10月30日木曜日

Oracle Linux 7 をやらないと…と思った話。


いまさらな話になりますが、
Oracle Linux 7 をインストールしてみました。

インストール中の画面は、このような感じでした。

ISO イメージから起動中。



日本語を選択。



各種設定の画面。



ソフトウェア選択画面。



インストール処理をしながら
root パスワード設定ができる・・・




インストール画面からして
結構、危機感を覚えました。

ちなみに、今回の Oracle Linux は下記です。
[root@localhost ~]# cat /etc/oracle-release
Oracle Linux Server release 7.0
[root@localhost ~]# uname -r
3.8.13-35.3.1.el7uek.x86_64

以上、そろそろ Oracle Linux 7 をやらないと
と思った話でした。

2014年9月27日土曜日

Oracle Linux で ルーティング設定。(route-ethX)

これまで、うちでは Oracle Linux(RHEL や CentOS も) の静的ルーティング設定は
/etc/sysconfig/static-routes ファイルに記載していました。

static-routes ファイルには、下記のように
192.168.5.0/24 は 192.168.0.252 へ、みたいな感じで設定できます。
[root@infra02 ~]# cat /etc/sysconfig/static-routes
any net 192.168.5.0/24 gw 192.168.0.252
any net 192.168.4.0/24 gw 192.168.0.251

Oracle Linux 6 のマニュアルを見ていたら、
/etc/sysconfig/network-scripts/route-ethX
といったファイルにもルーティング設定を記載できることに気づきました。

ためしに、OL 6.5 に設定してみました。
[root@dsvb01 ~]$ cat /etc/oracle-release
Oracle Linux Server release 6.5

まず、デフォルトゲートウェイ以外のルーティング情報が未設定の状態です。
[root@dsvb01 ~]# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.5.252   0.0.0.0         UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
192.168.5.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.62.0    0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.72.0    0.0.0.0         255.255.255.0   U         0 0          0 eth2

ip コマンドでも確認してみます。
[root@dsvb01 ~]# ip route show
default via 192.168.5.252 dev eth0
169.254.0.0/16 dev eth1  proto kernel  scope link  src 169.254.44.197
192.168.5.0/24 dev eth0  proto kernel  scope link  src 192.168.5.61
192.168.62.0/24 dev eth1  proto kernel  scope link  src 192.168.62.61
192.168.72.0/24 dev eth2  proto kernel  scope link  src 192.168.72.61

route-ethX ファイルを編集しました。
今回は、eth2 の経路情報を追加したかったので、route-eth2 です。
[root@dsvb01 ~]# cat /etc/sysconfig/network-scripts/route-eth2
192.168.71.0/24 via 192.168.72.253 dev eth2

eth2 を DOWN → UP させます。
[root@dsvb01 ~]# ifdown eth2
[root@dsvb01 ~]# ifup eth2
Determining if ip address 192.168.72.61 is already in use for device eth2...

ルーティング情報が追加されました。
netstat と ip コマンド両方で見てみました。
[root@dsvb01 ~]# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.5.252   0.0.0.0         UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
192.168.5.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.62.0    0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.71.0    192.168.72.253  255.255.255.0   UG        0 0          0 eth2
192.168.72.0    0.0.0.0         255.255.255.0   U         0 0          0 eth2
[root@dsvb01 ~]# ip route show
default via 192.168.5.252 dev eth0
169.254.0.0/16 dev eth1  proto kernel  scope link  src 169.254.44.197
192.168.5.0/24 dev eth0  proto kernel  scope link  src 192.168.5.61
192.168.62.0/24 dev eth1  proto kernel  scope link  src 192.168.62.61
192.168.71.0/24 via 192.168.72.253 dev eth2
192.168.72.0/24 dev eth2  proto kernel  scope link  src 192.168.72.61

マニュアルはこちら。
Oracle Linux 管理者ガイド,リリース6
11.7 ネットワーク・ルーティングの構成
http://docs.oracle.com/cd/E39368_01/e48214/ch11s07.html

以上、OL 6 にルーティング設定をする話でした。

2014年9月25日木曜日

Oracle 12c PDB の RAC での見え方。

何となくよく聞かれるのですが、
RAC 環境でも PDB を作成できます。
その場合、RAC のそれぞれの DB インスタンスから PDB が見えるようになります。

Oracle Database 12c の PDB は、RAC 環境ではこうなります。
今回は、2ノード RAC です。
[grid@dsva01 ~]$ crsctl stat res ora.rdgdb.db -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.rdgdb.db
      1        ONLINE  ONLINE       dsva01                   Open,STABLE
      2        ONLINE  ONLINE       dsva02                   Open,STABLE
--------------------------------------------------------------------------------

コンテナ DB(CDB)は1つで、DB サーバは 2ノードで、2 DB インスタンスです。
[oracle@dsva01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on 木 9月 25 08:45:24 2014
Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
に接続されました。
SQL> col host_name for a10
SQL> select inst_id,host_name,instance_name,status from gv$instance;
   INST_ID HOST_NAME  INSTANCE_NAME    STATUS
---------- ---------- ---------------- ------------
         1 dsva01     rdgdb1           OPEN  ★2インスタンス
         2 dsva02     rdgdb2           OPEN
SQL> select inst_id,name,cdb,dbid from gv$database order by 1;
   INST_ID NAME      CDB       DBID
---------- --------- --- ----------
         1 RDGDB     YES 3513886885  ★CDBは1つ。DBID が同じ。
         2 RDGDB     YES 3513886885

PDB は、2つ作ってあります。
シード PDB (テンプレート用 PDB)も合わせると3つあります。
SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 TESTDB1                        READ WRITE NO
         4 TESTDB2                        READ WRITE NO

それぞれの RAC ノードから、PDB が見えます。
DBID が同じ PDB が、インスタンス1 と 2 それぞれから見えています。
SQL> select inst_id,name,dbid from gv$pdbs order by 2,1;
   INST_ID NAME                                 DBID
---------- ------------------------------ ----------
         1 PDB$SEED                       1284832173
         2 PDB$SEED                       1284832173
         1 TESTDB1                         660856108
         2 TESTDB1                         660856108
         1 TESTDB2                         508821250
         2 TESTDB2                         508821250
6行が選択されました。

以上、RAC 環境での PDB の見え方でした。

2014年9月7日日曜日

JPOUG> SET EVENTS 20140907 のメモ。

今日は、IIJ@飯田橋にて開催された
JPOUG のイベントに参加してきました。
休日開催はとてもありがたいです。

JPOUG> SET EVENTS 20140907
http://www.jpoug.org/2014/08/05/jpoug-set-events-20140907

JPOUG について
http://www.jpoug.org/%E8%AA%AC%E6%98%8E


聞かせていただいた話と、
個人的興味があるところを残しておこうと思います。

■知られざる Oracle Database 12c の新機能

  • Oracle の仕組み調査には、DBA_OBJECTS や実行計画を見るのが有効みたい。
  • データファイルのオンライン移動は、やっぱりすごい。
  • バックグラウンドプロセスがマルチスレッドにできる(threaded_execution)。
  • 監査方式(Unified Auditing)が追加されている、変更ではなく追加みたい。


■エンジニアなでしこ魂3 -オラクルとプラチナと私-

  • エンジニアの経験談を、その本人から聞けることはとても有益だと思います。
  • プラチナ取得したくなりました。


■Oracle Database 12c マルチテナント入門

  • VMでの統合、スキーマ統合、PDBでの統合それぞれについて
    ちゃんと説明できるようになりたいと思いました。
  • 特に、リソース配分の問題についてのメリデメ説明が難しい気がする。


■Lightning Talks

MySQLユーザから見た「ここが{ヘンだ,スゴい}よOracle Database」

  • 「OracleにはDBAの役割が組み込まれてる」みたいな感覚が新鮮でした。
WindowsでもChefしたい!

  • Windows に Chef-solo で Java などを入れる話。
  • やっぱり Cygwin 使うのか・・・
安くて速くて安心な構成を目指して

  • ASM の冗長性の選択ってやっぱり悩ましいんですね。

続・IIJもデータベースのサービスやっています

  • IIJ のデータベースサービス基盤には、Oracle VM クラスタがある。


発表内容の要点とは直接関係ないモノばかりですが・・・
以上、JPOUG イベントからのメモでした。

2014年9月3日水曜日

ASM ディスクとして使うゼロ埋めファイルを作る。

地味な話ですが、ASM 用のゼロ埋めデバイスを作成してみます。

今回も、このあたりの話です。
Oracle Grid Infrastructureインストレーション・ガイド
11gリリース2 (11.2) for Linux
3.3.1.2
Oracle ASMで使用するためのNASデバイスでのファイルの作成
http://docs.oracle.com/cd/E16338_01/install.112/b56271/storage.htm#CFACJAGB

ファイル作成先は、NFS 領域です。
[grid@dbsv01 ~]$ df -h /u02
Filesystem Size Used Avail Use% Mounted on
192.168.60.59:/nfs/dbf01 20G 9.9G 8.7G 54% /u02

ASM インスタンスでは、asm_diskstring に
ゼロ埋めデバイスのパスを指定しています。
ディレクトリではなく、ファイルのフルパスを指定しています。
「*」も使えます。
SQL> col NAME for a16
SQL> col VALUE for a20
SQL> select name,value from v$parameter
  2  where name in('instance_name','asm_diskstring');
NAME             VALUE
---------------- --------------------
instance_name    +ASM1
asm_diskstring   /u02/oradata/nadb/*

dd コマンドで、ゼロ埋めデバイスを作成します。
※サイズは小さめにしてます。この例のままだと 10MBにしかなりません。
[grid@dbsv01 ~]$ dd if=/dev/zero of=/u02/oradata/nadb/asm_disk02 bs=1024k count=10 oflag=direct
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.498258 s, 21.0 MB/s

このファイルは、grid ユーザがアクセスできるように
パーミッション設定します。
[grid@dbsv01 ~]$ chown grid:asmadmin /u02/oradata/nadb/asm_disk02
[grid@dbsv01 ~]$ chmod 660 /u02/oradata/nadb/asm_disk02
[grid@dbsv01 ~]$ ls -l /u02/oradata/nadb/asm_disk02
-rw-rw---- 1 grid asmadmin 10485760 9月 3 23:22 2014 /u02/oradata/nadb/asm_disk02

ASM インスタンスでは、
さっそく asm_diskstring のパスにある
ゼロ埋めファイルが、ASM で使えるディスクとして認識されます。
SQL> col NAME for a12
SQL> col PATH for a30
SQL> select HEADER_STATUS,PATH,NAME from v$asm_disk;

HEADER_STATU PATH                           NAME
------------ ------------------------------ ------------
CANDIDATE    /u02/oradata/nadb/asm_disk02
MEMBER       /u02/oradata/nadb/asm_disk01   DG_NADB_0000

これを、SQL や ASMCA などで、ASM ディスクグループに追加したりします。

以上、ASM むけ ゼロ埋めデバイス作成の話でした。

2014年9月1日月曜日

Oracle で NFS+ASM にデータベースファイルを格納する。

あまり話題になることはないかもしれませんが、
Oracle Database で NFS 領域にデータファイルを配置する場合も
ASM が使えたりします。
Oracle Grid Infrastructureインストレーション・ガイド
11gリリース2 (11.2) for Linux
3.3.1.2
Oracle ASMで使用するためのNASデバイスでのファイルの作成
http://docs.oracle.com/cd/E16338_01/install.112/b56271/storage.htm#CFACJAGB
NFS 領域に直接データベースのファイルを配置する場合と、
NFS かつ ASM にデータベースのファイルを配置する場合を比較すると
下記のような感じになります。
※とりあえず、データファイルだけ書きました。



NFS に直接データファイルを配置する場合、
たとえば下記のように見えます。
※例では、NFS を /u02 配下にマウントしています。
[grid@dbsv01 ~]$ df -h /u02
Filesystem                Size  Used Avail Use% Mounted on
192.168.60.59:/nfs/dbf01   20G  7.5G   12G  41% /u02



NFS で ASM を使用する場合、
dd コマンドで「ゼロ埋込みファイル」を作成して
それを ASM ディスクとして使用します。

余分なレイヤが追加されるようにも見えますが、
NFS で表領域にファイルをオンライン追加できたり
NFS サーバを複数並べてストレージ筐体レベルで冗長化できたり
するので、メリットがゼロというわけではないとは思います。



おそらく本番環境でやることはないと思いますが、
1つのデータベースで、
NFS 上の OS ファイルと ASM ファイル両方を利用することもできます。
SQL> col TABLESPACE_NAME for a15
SQL> col FILE_NAME for a32
SQL> select TABLESPACE_NAME,FILE_NAME from dba_data_files;

TABLESPACE_NAME FILE_NAME
--------------- --------------------------------
USERS           +DG_NADB/nadb/users01.dbf
UNDOTBS1        +DG_NADB/nadb/undotbs01.dbf
SYSAUX          +DG_NADB/nadb/sysaux01.dbf
SYSTEM          +DG_NADB/nadb/system01.dbf
EXAMPLE         +DG_NADB/nadb/example01.dbf
UNDOTBS2        +DG_NADB/nadb/undotbs02.dbf
TS_TEST         /u02/oradata/nadb/ts_test01.dbf


7行が選択されました。

こんなイメージです。



ちなみに当然ながら、1台のサーバ(OS)に
ASM を利用している DB と
ASM 利用していない DB を同居させることもできます。

以上、Oracle の NFS+ASM の話でした。

2014年8月19日火曜日

LVM とファイルシステム拡張。(Oracle Linux 6.5 + ext4)

Oracle VM Server の VM で、
ファイルシステムをマウントしたまま LVM 拡張してみようと思います。

今回の OS は Oracle Linux 6.5 で、
ファイルシステムは ext4 です。
[root@dga1 ~]# cat /etc/oracle-release
Oracle Linux Server release 6.5
[root@dga1 ~]# uname -r
3.8.13-16.2.1.el6uek.x86_64
[root@dga1 ~]# mount | grep /u01
/dev/mapper/vg01-lv_u01 on /u01 type ext4 (rw)

順に領域拡張していこうと思います。


LVM フィジカルボリュームの作成

ディスクデバイスを認識させたら、
最初に PV(フィジカルボリューム) を作成します。



今回 LVM に割り当てる、OS に認識させたディスクです。
デバイスは、既に OS に認識させてある状態です。
Oracle VM Server の仮想ディスクで、
「/dev/xvd~」というデバイス名になっています。
[root@dga1 ~]# fdisk -l /dev/xvde

ディスク /dev/xvde: 21.5 GB, 21474836480 バイト
ヘッド 255, セクタ 63, シリンダ 2610
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

ディスクを PV にします。
[root@dga1 ~]# pvcreate /dev/xvde
  Physical volume "/dev/xvde" successfully created

PV が作成されました。
作成した直後は、PV の PE(フィジカルエクステント)がまだゼロです。
[root@dga1 ~]# pvdisplay /dev/xvde
  "/dev/xvde" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/xvde
  VG Name
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               NFQeA6-BUXJ-1ZdH-jjrd-wcVx-3rcH-KrhfHA

LVM ボリュームグループを拡張

VG(ボリュームグループ) に PV を追加します。



いまのところ、VG に空き PE はありません。
[root@dga1 ~]# vgdisplay vg01
  --- Volume group ---
  VG Name               vg01
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               9.99 GiB
  PE Size               4.00 MiB
  Total PE              2558
  Alloc PE / Size       2558 / 9.99 GiB
  Free  PE / Size       0 / 0
  VG UUID               mqF5A0-U1Js-8I7Z-Qm6U-Hewn-UUYD-AF1gzO

VGに、PV を追加します。
[root@dga1 ~]# vgextend vg01 /dev/xvde
  Volume group "vg01" successfully extended

PV に PE が作成されました。
[root@dga1 ~]# pvdisplay /dev/xvde
  --- Physical volume ---
  PV Name               /dev/xvde
  VG Name               vg01
  PV Size               20.00 GiB / not usable 4.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              5119
  Free PE               5119
  Allocated PE          0
  PV UUID               NFQeA6-BUXJ-1ZdH-jjrd-wcVx-3rcH-KrhfHA

その分、VG の 合計 PE 、空き PE が増ました。
[root@dga2 ~]# vgdisplay vg01
  --- Volume group ---
  VG Name               vg01
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               29.99 GiB
  PE Size               4.00 MiB
  Total PE              7677
  Alloc PE / Size       2558 / 9.99 GiB
  Free  PE / Size       5119 / 20.00 GiB
  VG UUID               mqF5A0-U1Js-8I7Z-Qm6U-Hewn-UUYD-AF1gzO

LVM 論理ボリュームを拡張

VG に容量追加されたので、LV(ロジカル ボリューム)を拡張します。



拡張前の LV です。
今回は、「/dev/vg01/lv_u01」という LV を拡張します。
[root@dga1 ~]# lvdisplay /dev/vg01/lv_u01
  --- Logical volume ---
  LV Path                /dev/vg01/lv_u01
  LV Name                lv_u01
  VG Name                vg01
  LV UUID                f8s6v0-0zHS-KBXY-55Ik-78h9-LshZ-sGVgkn
  LV Write Access        read/write
  LV Creation host, time ol65-base, 2014-08-11 13:45:30 +0900
  LV Status              available
  # open                 1
  LV Size                9.99 GiB
  Current LE             2558
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

LV に、VG の PE をすべて割り当てます。
[root@dga1 ~]# lvextend --extents 7677 /dev/vg01/lv_u01
  Extending logical volume lv_u01 to 29.99 GiB
  Logical volume lv_u01 successfully resized

PV の空き PE がゼロになっています。
[root@dga1 ~]# pvdisplay /dev/xvde
  --- Physical volume ---
  PV Name               /dev/xvde
  VG Name               vg01
  PV Size               20.00 GiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              5119
  Free PE               0
  Allocated PE          5119
  PV UUID               NFQeA6-BUXJ-1ZdH-jjrd-wcVx-3rcH-KrhfHA

VG の空き PE もゼロになりました。
[root@dga1 ~]# vgdisplay vg01
  --- Volume group ---
  VG Name               vg01
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               29.99 GiB
  PE Size               4.00 MiB
  Total PE              7677
  Alloc PE / Size       7677 / 29.99 GiB
  Free  PE / Size       0 / 0
  VG UUID               mqF5A0-U1Js-8I7Z-Qm6U-Hewn-UUYD-AF1gzO

その分、LV が拡張されました。
[root@dga1 ~]# lvdisplay /dev/vg01/lv_u01  --- Logical volume ---
  LV Path                /dev/vg01/lv_u01
  LV Name                lv_u01
  VG Name                vg01
  LV UUID                f8s6v0-0zHS-KBXY-55Ik-78h9-LshZ-sGVgkn
  LV Write Access        read/write
  LV Creation host, time ol65-base, 2014-08-11 13:45:30 +0900
  LV Status              available
  # open                 1
  LV Size                29.99 GiB
  Current LE             7677
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

ext4 ファイルシステムの拡張

拡張した LV に合わせて、ファイルシステムを拡張します。



LV 「/dev/mapper/vg01-lv_u01」に作成してあるファイルシステムは
「/u01」ディレクトリにマウントしたままです。
[root@dga1 ~]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/mapper/vg_ol65base-lv_root  8.3G  3.0G  4.9G  38% /
tmpfs                            1.5G  383M  1.1G  26% /dev/shm
/dev/xvda1                       477M   55M  397M  13% /boot
/dev/mapper/vg01-lv_u01          9.8G  8.8G  484M  95% /u01

ファイルシステムを拡張します。
[root@dga1 ~]# resize2fs /dev/mapper/vg01-lv_u01
resize2fs 1.43-WIP (20-Jun-2013)
Filesystem at /dev/mapper/vg01-lv_u01 is mounted on /u01; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mapper/vg01-lv_u01 is now 7861248 blocks long.

ファイルシステムが拡張されました。
[root@dga1 ~]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/mapper/vg_ol65base-lv_root  8.3G  3.0G  4.9G  38% /
tmpfs                            1.5G  383M  1.1G  26% /dev/shm
/dev/xvda1                       477M   55M  397M  13% /boot
/dev/mapper/vg01-lv_u01           30G  8.8G   20G  32% /u01

検証していて、「やっぱり足りなかった」になりやすそうな
/u01 を拡張してみました。

以上、LVM の領域拡張でした。

2014年7月26日土曜日

Oracle VM Server の記憶域リポジトリを NFS エクスポートしてみる。

Oracle VM Manager(OVMM)では、
記憶域リポジトリのエクスポートができます。

Oracle VM Server がマウントしているリポジトリを
他のサーバからもマウントできるようにすることで、
リポジトリのバックアップをしやすくなったりします。

今回は、OVS リポジトリをエクスポートして
Linux から NFS マウントしてみます。

※ちなみに、今回試したのは Oracle VM Manager 3.2.6 です。

2014年7月15日火曜日

Oracle Database Vault どうですか。

最近、DB データへのアクセスについて事件があったようです。
なんとなく、Oracle Database で有名な「SYS で何でもできちゃう」についての制御ができる
Oracle Database Vault(DBV)がウケそうな気がしたので
簡単に紹介してみようと思います。

DBV を有効化するには

DBV は、Oracle Database の Enterprise Edition のオプション機能です。
DBMS のインストール中などに有効化できます。

DBV では SYS 外にも「DBV 管理者」などの役割のユーザを用意することで、
いわゆる 職掌分離 ができます。
DBCA で DB 作成するときに、下記のような感じで
DBV 管理用のユーザを作成することができます。




DBV が有効化されている環境だと どうなるか

DBV が有効化されると、
今までの権限やロールといった概念の他に
レルム と呼ばれる、スキーマオブジェクトと権限をまとめるような概念が登場します。
SYS をアプリ用データに関わるレルムに参加させないことによって、
DB 管理者が本来の DB 管理業務では見るべきではないデータに
アクセスできないようになります。

まず、SYS でログインしてユーザを作成しようとしてみます。
DB に表領域の作成はできますが、
SYS なのに新規ユーザを作成することはできなくなっています。
[oracle@db03 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on 火 7月 15 00:45:36 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
に接続されました。
SQL> show user
ユーザーは"SYS"です。
SQL> create tablespace ts_user01 datafile '/u02/oradata/dbvdb/ts_user01.dbf' size 10M;

表領域が作成されました。

SQL> create user user01 identified by "********";
create user user01 identified by "********"
                                 *
行1でエラーが発生しました。:
ORA-01031: 権限が不足しています。

ユーザ管理は、DBV 管理者の役割になっています。
DBV 管理者であれば、ユーザ作成や、権限設定ができます。
※今回は、DBV の管理者として DBVADM というユーザを作成しています。

DBV の管理者はすべての管理操作が許可されているではないので
役割を越えた権限設定などをしようとするとエラーになります。
SQL> connect dbvadm
パスワードを入力してください:
接続されました。
SQL> show user
ユーザーは"DBVADM"です。
SQL> create user user01 identified by "********";

ユーザーが作成されました。

SQL> alter user user01 default tablespace ts_user01;

ユーザーが変更されました。

SQL> alter user user01 quota unlimited on ts_user01;

ユーザーが変更されました。

SQL> grant connect to user01;

権限付与が成功しました。

SQL> grant create table to user01;
grant create table to user01
*
行1でエラーが発生しました。:
ORA-47410: GRANT(CREATE TABLEに対する)のレルム違反です

SYS ユーザで、 create table 権限を付けておきます。
SQL> connect / as sysdba
接続されました。
SQL> show user
ユーザーは"SYS"です。
SQL> grant create table to user01;

権限付与が成功しました。

作成した USER01 のオブジェクトはレルムを作成して保護します。
下記のような DBV 専用の Web UI から設定することができます。
※DB Control とは微妙に URL が異なります。(/em が /dva になる)



細かい設定は省略・・・
Database 11g R2 では、普通の EM っぽい UI です。



レルムで保護した USER01 スキーマに
SYS でテーブル作成しようとしてもエラーになりました。
SQL> connect / as sysdba
接続されました。
SQL> show user
ユーザーは"SYS"です。
SQL> create table user01.tab1 (c1 number, c2 varchar2(10));
create table user01.tab1 (c1 number, c2 varchar2(10))
*
行1でエラーが発生しました。:
ORA-47401: CREATE TABLE(USER01.TAB1に対する)のレルム違反です
しかし、USER01 ユーザであれば、
ちゃんとテーブル作成して、参照もできます。
そして SYS では、USER01 のテーブルを参照できなくなっています。
SQL> connect user01
パスワードを入力してください:
接続されました。
SQL> show user
ユーザーは"USER01"です。
SQL> create table user01.tab1 (c1 number, c2 varchar2(10));

表が作成されました。

SQL> insert into user01.tab1 values(1,'himitsu');

1行が作成されました。

SQL> commit;

コミットが完了しました。

SQL> select * from user01.tab1;

        C1 C2
---------- ----------
         1 himitsu

SQL> connect / as sysdba
接続されました。
SQL> show user
ユーザーは"SYS"です。
SQL> select * from user01.tab1;
select * from user01.tab1
                     *
行1でエラーが発生しました。:
ORA-01031: 権限が不足しています。

このような感じで、SYS であっても不要なデータ参照ができないように
制御することができます。

ちなみに、上記のような SYS によるテーブル参照エラーも、
ちゃんと監査ログとして残すことができます。




ただし 設計が難しかったり、
当然ながら DB 運用の見直しも必要になったりということはあります・・・


ちなみに、マニュアルはこのあたりがわかりやすいと思います。

Oracle Database 2日でセキュリティ・ガイド 11g リリース2(11.2)
Oracle Database Vaultを使用した管理者のアクセスの制御
http://docs.oracle.com/cd/E16338_01/server.112/b56296/tdpsg_securing_data.htm#CIADFEAG

以上です。Oracle Database Vault の話でした。

2014年6月2日月曜日

Oracle VM 3.3 Beta の新 VM コンソール。


Oracle VM 3.3 Beta だと、VM のコンソールが新しくなる予定ですが、
最近まで、3.3 Beta の新コンソールを使用するために必要な RPM が提供されていませんでした。

これまでは、OVMM 3.3 でコンソールを開こうとすると・・・



下記のようなメッセージが出ていました。


Error 404: Page not found.
The ovmcore-console libraries were not found on the system.
Please install the correct ovmcore-console rpm suitable for your system on the Manager server.
See the Oracle VM Installation Guide for additional information

そのため、VM にコンソールアクセスするときは、
Oracle VM Manaer を使っていても、VNC(vncviewer など) や、
SSH ポートフォワーディングなどを使用する必要がありました。

しかし最近やっとコンソールで使用する RPM
「ovmcore-console」が DL できるようになりました。
Beta 版のインストーラと同じページから DL できます。
Oracle VM Early Access Downloads
http://www.oracle.com/technetwork/server-storage/vm/downloads/ovm-early-access-1743261.html

OVMM 3.3 を Oracle Linux 6.5 にインストールしていたので、
RPM も「~.el6.~」のものをインストールしてみました。
[root@ovmm33beta ~]# cat /etc/oracle-release
Oracle Linux Server release 6.5
[root@ovmm33beta ~]# rpm -qpi ovmcore-console-1.0-36.el6.noarch.rpm
警告: ovmcore-console-1.0-36.el6.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Name        : ovmcore-console              Relocations: (not relocatable)
Version     : 1.0                               Vendor: Oracle America
Release     : 36.el6                        Build Date: 2014年05月28日 06時38分36秒
Install Date: (not installed)               Build Host: ca-build56.us.oracle.com
Group       : User Interface/Desktops       Source RPM: ovmcore-console-1.0-36.el6.src.rpm
Size        : 545571                           License: MPL
Signature   : RSA/8, 2014年05月28日 06時38分40秒, Key ID 72f97b74ec551f03
URL         : http://www.oracle.com/virtualization
Summary     : NoVnc console client application for use with Ovm Manager to view VirtualMachine console's
Description :
This is the NoVNC client application files to use with OVM 3 Manager.
This allows the remote management of Virtual Machines through Ovm Manager.

rpm コマンドでインストールしてみます。
[root@ovmm33beta ~]# rpm -ivh ovmcore-console-1.0-36.el6.noarch.rpm
警告: ovmcore-console-1.0-36.el6.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
準備中...                ########################################### [100%]
   1:ovmcore-console        ########################################### [100%]

インストールされました。
[root@ovmm33beta ~]# rpm -q ovmcore-console
ovmcore-console-1.0-36.el6.noarch

OVMM 3.3 でコンソールが開けるようになりました。
今までの Java 製コンソールでは都度 jnlp ファイルを DL していましたが、
新しい HTML5 + Java Script 版は
前よりストレスなくコンソールが開くような気がします。

ちなみに、コンソールの右上には、これまなかった
「Ctrl」、「Alt」、「Ctrl-Alt-Del」ボタンがつけられています。



が、まだベータ版のせいか、
わりとよく勝手に閉じたり切断されたりする気がします・・・

以上、OVMM の新コンソールの話でした。

2014年5月6日火曜日

Oracle VM 3 + EM 12c 連携への道(3: OEM への OVMM 登録)

このポストは、
Oracle VM 3 + EM 12c 連携への道(2: OEM Agent へのプラグイン追加)
のつづきです。

「Oracle Virtualization」プラグインをデプロイした Oracle VM Manager(OVMM)を、
Oracle Enterprise Manager Cloud Control 12c(OEM)に登録してみます。

マニュアルでは下記のあたりです。
Oracle Enterprise Manager Cloud管理ガイド 12c リリース3 (12.1.0.3)
4 IaaS用のクラウドの設定http://docs.oracle.com/cd/E26854_01/doc.121/b70509/cloud_iaas_setup.htm
※今回使っているのは OEM 12c R3 ではないですが…

作業の流れ
  1. OEM への OVMM サーバ登録
    Oracle VM 3 + EM 12c 連携への道(1: OEM へのサーバ登録)
  2. OVMM サーバの OEM Agent へのプラグイン追加
    Oracle VM 3 + EM 12c 連携への道(2: OEM Agent へのプラグイン追加)
  3. OEM への OVMM 登録 ★←今回はここ

手順

「Enterprise」→「クラウド」→「インフラストラクチャ・ホーム」を開きます。



「Infrastructure Cloud」を右クリックして、「OVMマネージャへの登録」を開きます。



「Oracle VM Manager の追加」で、これから追加する OVMM に名前をつけます。
※例では「ovmm3-n2-vmm」としています。

監視エージェントを、虫メガネマークのボタンをクリックして選択します。
「Oracle Virtualization」プラグインをデプロイしたエージェントが
起動している OVMM サーバが自動検出されるので、
それを選択して「選択」をクリックします。



選択した監視エージェントが、入力されたことを確認します。
残りの Oracle VM Manager の設定を入力します。
  • Oracle VM ManagerのURL
    今回は tcp://localhost:54321 を指定します。ポート番号はデフォルトのままです。
    OVMM サーバにインストールされた OEM エージェントから接続するため
    アドレスは localhost としています。
    マニュアルには TCPS にしたほうがよさそうなことが記載されていますが、
    その場合は OVMM で事前に TCPS の有効化が必要で、
    しかも一度有効化すると戻せないようなので今回はあえて TCP で接続します。
    OVMM サーバに、別のサーバの OEM エージェントから接続する場合は、
    TCPS での接続が必須になるようです。
  • Oracle VM Managerの監視資格証
    OVMM にログインするユーザを指定します。
    デフォルトの管理者「admin」を使用しています。

  • Oracle VM Managerの管理資格証明
    監視資格証明と同じユーザを使用しようとおもったのであえて入力していません。

  • Oracle VM Managerコンソール
    普段、直接 OVMM にアクセスする URL を指定しています。
    今回は、https://<OVMM のアドレス>:7002/ovm/console/
    (https://ovmm3-n2.gowatana.lab:7002/ovm/console/)を指定しました。

入力したら「発行」ボタンをクリックします。



ジョブが正常に発行されました。
「ジョブ詳細」をクリックすると、OVMM を登録するジョブの進捗がみられます。



ジョブのステータスが「1 成功」になったら登録完了です。



再び「Enterprise」→「クラウド」→「インフラストラクチャ・ホーム」
を開くと、OVMM が登録されていることがわかります。
※OVMM の状態が正しく表示されるまで、少し時間がかかるのかもしれません。



これで、OEM から OVMM が操作できるようになります。
Oracle VM で IaaS ・・・

以上、Oracle VM 3.x と OEM 12c の連携設定でした。