読者です 読者をやめる 読者になる 読者になる

SHIBUYA 3%

(元在宅が)渋谷で働くエンジニアの備忘録的memo & 雑記 - ココロはいつもSHIBUYAに在り

MacにOracle Databaseを入れようとして頑張っみたけど・・

mac oracle

結果、諦めました。

会社で11gを使っていてローカルで検証やチューニングを試してみたいと思ったのがきっかけ。
(DBAじゃないので、色々出来ない)

諦めてVirtualBoxUbuntuいれて、Oracle Databaseを入れてみた

VirtualBoxVagrant経由で使う

vagrantVirtualBoxのインストールは省略

ubuntuインストール

A list of base boxes for Vagrant - Vagrantbox.es

  • 適当にubuntuvagrant boxを探す

  • 以下、boxを登録、作成

$ vagrant box add ubuntu14 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
$ vagrant init ubuntu14
  • IPを固定にして使いたいのでVagrantfileを編集
config.vm.network "private_network", ip: "192.168.125.125"

ubuntuに入る

$ vagrant ssh

ubuntuにdockerをインストール

Installation on Ubuntu

$ sudo vi /etc/apt/sources.list.d/docker.list
以下を追記
--------------------------------------------------------------------
deb https://apt.dockerproject.org/repo ubuntu-trusty main
--------------------------------------------------------------------

$ sudo apt-get update
$ sudo apt-get install linux-image-extra-$(uname -r)

$ sudo apt-get update
$ sudo apt-get install docker-engine

# Macだと起動時にエラーになった気がする。以下のどちらかで解決できたはずです。。
# $ sudo usermod -aG docker vagrant
$ sudo usermod -aG docker ubuntu

Docker起動

$ sudo service docker start
$ docker --version

DockerにOracle Database XE 11gをインストール&起動

github.com

$ sudo docker pull wnameless/oracle-xe-11g
$ sudo docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g
  • 起動確認
$ sudo docker ps -a
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                                                      NAMES
919c59369a7c        wnameless/oracle-xe-11g   "/bin/sh -c '/usr/sbi"   13 minutes ago      Up 13 minutes       8080/tcp, 0.0.0.0:49160->22/tcp, 0.0.0.0:49161->1521/tcp   reverent_joliot
  • 停止
$ sudo docker stop 919c59369a7c
919c59369a7c

Oracle SQL Developer ダウンロード

  • Githubの接続情報を元にSQL Developerからアクセスできるか試してみる

hostname: 192.168.125.125
port: 49161
sid: xe
username: system
password: oracle

接続テストには成功する、接続も成功する。でも警告がでた!

リクエストされた操作の実行中にデータベース警告が発生しました:

ORA-28002: the password will expire within 7 days
28002. 00000 -  "the password will expire within %s days"
*Cause:    The user's account is about to expire and the password
           needs to be changed
*Action:   change the password or contact the DBA
ベンダー・コード28002

Oracleが起動したコンテナに入る

ssh root@localhost -p 49160
password: admin
/u01/app/oracle/product/11.2.0/xe/bin# ./sqlplus system/oracle@localhost/xe
----------------------------------------------------------------------------------------
SQL*Plus: Release 11.2.0.2.0 Production on Sat Jan 30 22:38:34 2016

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

ERROR:
ORA-28002: the password will expire within 7 days

Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> ALTER USER system IDENTIFIED BY oracle;
  • (おまけ)パスワードの期限を無制限に設定 alter profile default limit password_life_time unlimited;

これで警告はなくなりました。。

これで当初の目的だったMacのローカル上で、Oracle Databaseを起動できた。