Clojure始めました

最近ちょっと勉強し始めています。

JDK 9 ではうまく動かなかったので8に入れ直し、brew install leiningen から。

iMac:~ sugimura$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
iMac:~ sugimura$ brew install leiningen
...
iMac:~ sugimura$ lein repl
Retrieving org/clojure/tools.nrepl/0.2.12/tools.nrepl-0.2.12.pom from central
Retrieving org/clojure/pom.contrib/0.1.2/pom.contrib-0.1.2.pom from central
Retrieving org/sonatype/oss/oss-parent/7/oss-parent-7.pom from central
Retrieving clojure-complete/clojure-complete/0.2.4/clojure-complete-0.2.4.pom from clojars
Retrieving org/clojure/clojure/1.8.0/clojure-1.8.0.pom from central
Retrieving org/clojure/clojure/1.8.0/clojure-1.8.0.jar from central
Retrieving org/clojure/tools.nrepl/0.2.12/tools.nrepl-0.2.12.jar from central
Retrieving clojure-complete/clojure-complete/0.2.4/clojure-complete-0.2.4.jar from clojars
nREPL server started on port 49442 on host 127.0.0.1 - nrepl://127.0.0.1:49442
REPL-y 0.3.7, nREPL 0.2.12
Clojure 1.8.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_144-b01
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

user=> (+ 1 2 )
3
user=> quit
Bye for now!

 

Rails 5.1 + jQuery

Rails 5.1 で jQuery のサポートがなくなったということで、あれこれ動かなくなってしまう場合があります。

Gemfile にjquery-railsを追加します。

gem 'jquery-rails'

app/assets/javascripts/application.js をこのように修正しましょう。

//= require jquery
//= require rails-ujs
//= require turbolinks
//= require_tree .

とりあえず5.0と同じように使いたいときの急場凌ぎということで。

44歳

12日に44歳になりまして。ブログは1995年からやってたんですけど、中断があったり移転したりでぼちぼちですね。

技術的なネタでちょっと残しておきたいなーというのをまとめようかなと思ってます。

 

 

Cloud Control 13cR2 + RMAN + Data Guard 12cR1

昨日作った Cloud Control で Data Guard をやってみます。

ターゲットの認識から。

こんな感じで認識できればOKです。ora1 (192.168.0.9) と ora2 (192.168.0.10) の2台で、それぞれいくつかデータベースを作りました。

 

コンテナデータベースとして作った orcl を選んで、可用性からスタンバイ・データベースの追加に進みます。

フィジカルスタンバイを作ろうとしたらNOARCHIVELOGモードだと言われました。ふむふむ。

[oracle@ora1 ~]$ sqlplus sys/oracle@orcl as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 金 5月 5 23:42:46 2017

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



Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
に接続されました。
SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
ERROR:
ORA-12514: TNS:
リスナーは接続記述子でリクエストされたサービスを現在認識していません


警告: Oracleにはもう接続されていません。
SQL>

[oracle@ora1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 金 5月 5 23:43:25 2017

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

アイドル・インスタンスに接続しました。

SQL> startup mount
ORACLEインスタンスが起動しました。

Total System Global Area 1660944384 bytes
Fixed Size		    2925072 bytes
Variable Size		  989859312 bytes
Database Buffers	  654311424 bytes
Redo Buffers		   13848576 bytes
データベースがマウントされました。
SQL> alter database archivelog;

データベースが変更されました。

SQL> 

SQL> alter database open;

データベースが変更されました。

SQL> alter system switch logfile;

システムが変更されました。

SQL> archive log list;
データベース・ログ・モード     アーカイブ・モード
自動アーカイブ                 有効
アーカイブ先                    USE_DB_RECOVERY_FILE_DEST
最も古いオンライン・ログ順序   27
アーカイブする次のログ順序    29
現行のログ順序               29
SQL> alter system switch logfile;

システムが変更されました。

SQL> archive log list;
データベース・ログ・モード     アーカイブ・モード
自動アーカイブ                 有効
アーカイブ先                    USE_DB_RECOVERY_FILE_DEST
最も古いオンライン・ログ順序   28
アーカイブする次のログ順序    30
現行のログ順序               30
SQL> quit
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing optionsとの接続が切断されました。

無事アーカイブログモードに出来ました。

リカバリカタログの設定もしてみます。rc データベースをリカバリカタログにします。

マニュアルはこちらですね。

http://docs.oracle.com/cd/E57425_01/121/BRADV/rcmcatdb.htm#GUID-E836E243-6620-495B-ACFB-AC0001EF4E89

[oracle@ora1 ~]$ sqlplus sys/oracle@rc as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 土 5月 6 00:41:05 2017

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



Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
に接続されました。
SQL>
SQL> create user rco identified by oracle
  2  temporary tablespace temp
  3  default tablespace users
  4  quota unlimited on users;

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

SQL> grant recovery_catalog_owner to rco;

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

SQL> 

RMAN で接続してリカバリカタログを作ります。

[oracle@ora1 ~]$ rman catalog rco/oracle@rc

Recovery Manager: Release 12.1.0.2.0 - Production on 土 5月 6 00:43:32 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

リカバリ・カタログ・データベースに接続されました。

RMAN> create catalog;

リカバリ・カタログが作成されました。

RMAN>

バックアップが取れて管理されることも確認してみますか。

[oracle@ora1 ~]$ rman target sys/oracle@orcl catalog rco/oracle@rc

Recovery Manager: Release 12.1.0.2.0 - Production on 土 5月 6 00:45:57 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

ターゲット・データベース: ORCL (データベースID=1470878180)に接続されました
リカバリ・カタログ・データベースに接続されました。

RMAN> register database;

データベースがリカバリ・カタログに登録されました。
リカバリ・カタログの完全再同期を開始しています
完全再同期が完了しました

RMAN> backup database;

backupが開始されました(開始時間: 17-05-06)
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=96 デバイス・タイプ=DISK
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
(略)

RMAN> list backup;


バックアップ・セットのリスト
===================


BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ --------
96      Full    1.23G      DISK        00:00:20     17-05-06
        BPキー: 100   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20170506T004656
        ピース名: /u01/app/oracle/fast_recovery_area/ORCL/backupset/2017_05_06/o1_mf_nnndf_TAG20170506T004656_djs7mjqb_.bkp
(略)

RMAN> report schema; 

データベースdb_unique_name ORCLのデータベース・スキーマのレポート

永続データファイルのリスト
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    800      SYSTEM               YES     /u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_djo4jp48_.dbf
3    740      SYSAUX               NO      /u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_djo4hlz6_.dbf
4    225      UNDOTBS1             YES     /u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_djo4kt90_.dbf
5    250      PDB$SEED:SYSTEM      NO      /u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_djo4lxkx_.dbf
6    5        USERS                NO      /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_djo4ks6y_.dbf
(略)

無事 RMAN も使えるようになったということで、本題の Data Guard に戻ります。orcl データベースのフィジカルスタンバイを作ります。

ora2 (192.168.0.10) の同じ場所に作るという形にしてみました。

ジョブを起動したらのんびり待ちです。これがまた緊張するんですよね… Platinum 試験だと時間がないんですよ。ドキドキします。練習して心構えだけでもしておきましょう。

無事終わったら「Data Guardサマリー」に出てきます。

いったんここまで。

 

Enterprise Manager Cloud Control 13c R2 を入れてみる

  • Oracle Linux 6.9 をインストール
  • yum update で更新
  • 必要なモジュールのインストール
  • ユーザやグループの作成
  • OSやカーネルのパラメータ設定
  • Oracle Database 12c R1 をインストール
  • テンプレートからDB作成
  • EMCC 13cR2 をインストール

ダウンロードはこちらからです。

http://www.oracle.com/technetwork/oem/enterprise-manager/downloads/index.html

(参考文献)

仮想マシンには 2CPU + 16GB RAM + 100GB HDD を割り当てました。ディスクは最低でもこれくらい必要そうです。

まずは必要なモジュールのインストールから。

oracle-rdbms-server-12cR1-preinstall は結構あれこれやってくれます。

[root@oem13cr2 ~]# yum install make binutils gcc libaio glibc-common libstdc++ libXtst sysstat glibc-devel glibc-devel.i686 
[root@oem13cr2 ~]# yum install oracle-rdbms-server-12cR1-preinstall
[root@oem13cr2 ~]# sysctl -p

/etc/hosts を設定。

192.168.0.6 oem13cr2 oem13cr2.localdomain

oracle ユーザのパスワードを変更。

[root@oem13cr2 ~]# passwd oracle
ユーザー oracle のパスワードを変更。
新しいパスワード:

インストール先のディレクトリを作成。

[root@oem13cr2 ~]# mkdir -p /u01/app
[root@oem13cr2 ~]# chown -R oracle:oinstall /u01/app

iptables を停止。

[root@oem13cr2 ~]# service iptables stop
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]
[root@oem13cr2 ~]# chkconfig iptables off

最後に、/etc/selinux/config を設定して再起動。enforced では動かないようです。

SELINUX=permissive
[root@oem13cr2 ~]# shutdown -r now

再起動したら Oracle Database のインストール。software only で入れます。

EMCC用のDBのテンプレートを展開します。

[oracle@oem13cr2 ~]$ cd /u01/app/oracle/product/12.1.0/dbhome_1/assistants/dbca/templates/
[oracle@oem13cr2 templates]$ unzip ~/12.1.0.2.0_Database_Template_for_EM13_2_0_0_0_Linux_x64.zip 
Archive:  /home/oracle/12.1.0.2.0_Database_Template_for_EM13_2_0_0_0_Linux_x64.zip
  inflating: set_repo_param_12.1.0.2.0_Database_SQL_for_EM13_2_0_0_0_Large_deployment.sql  
  inflating: set_repo_param_12.1.0.2.0_Database_SQL_for_EM13_2_0_0_0_Medium_deployment.sql  
  inflating: set_repo_param_12.1.0.2.0_Database_SQL_for_EM13_2_0_0_0_Small_deployment.sql  
  inflating: shpool_12.1.0.2.0_Database_SQL_for_EM13_2_0_0_0.sql  
  inflating: 12.1.0.2.0_Database_Template_for_EM13_2_0_0_0_Large_deployment.dbc  
  inflating: 12.1.0.2.0_Database_Template_for_EM13_2_0_0_0_Medium_deployment.dbc  
  inflating: 12.1.0.2.0_Database_Template_for_EM13_2_0_0_0_Small_deployment.dbc  
  inflating: 12.1.0.2.0_Database_Template_for_EM13_2_0_0_0.dfb  
  inflating: 12.1.0.2.0_Database_Template_for_EM13_2_0_0_0.ctl  
[oracle@oem13cr2 templates]$ 

dbcaを起動します。

[oracle@oem13cr2 templates]$ /u01/app/oracle/product/12.1.0/dbhome_1/bin/dbca

データベースの作成 → 拡張モード の次の画面でテンプレートが選択できるようになります。

ここでは Small Deployment を選んでみました。

グローバルデータベース名やSIDは emrep に。管理オプションは指定せずに作ります。

ディスク容量はきついので /home 以下にデータファイルを置くようにしました。

リスナーを作ります。

文字コードは AL32UTF8 にしないとダメなようです。

DBが出来上がったら一段落です。oracleユーザの ~/.bash_profile で環境変数を設定しておきましょう。

ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1/
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
NLS_LANG=Japanese_Japan.AL32UTF8

export ORACLE_HOME
export PATH
export NLS_LANG
[oracle@oem13cr2 ~]$ sqlplus sys/oracle@EMREP as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 金 5月 5 16:32:06 2017

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



Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
に接続されました。
SQL>

ようやく準備が出来たので、本題の EMCC のインストールをします。zipが7つに分かれていますが、1つ目のbinに実行権限をつけて実行することで始まります。/u01 には 30GB 以上の空きを確保しておきましょう。

[oracle@oem13cr2 ~]$ chmod +x em13200p1_linux64.bin 
[oracle@oem13cr2 ~]$ ./em13200p1_linux64.bin 
0%...

前提条件のチェックで、ip_local_port_range を 11000 – 65000 にしてくれと怒られました。修正して「再実行」します。

# oracle-rdbms-server-12cR1-preinstall setting for net.ipv4.ip_local_port_range is 9000 65500
#net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.ip_local_port_range = 11000 65000
[root@oem13cr2 ~]# sysctl -p
...
net.ipv4.ip_local_port_range = 11000 65000

インストール・タイプは「簡易」で。

インストール先は /u01/app/oracle/ 以下にそれぞれ設定しました。

パスワードやDBへの接続情報を設定します。

BI Publisher はオプションらしいので外しました。

結構な時間がかかります。ディスクあふれに注意しながら、のんびり待ちます。

1時間少々で終わりました。

https://インストールしたサーバ:7802/em にアクセスしてログインできます。

 

起動と終了はこちらで紹介されているスクリプトが便利です。

https://oracle-base.com/articles/13c/cloud-control-13cr1-installation-on-oracle-linux-6-and-7

/etc/oratab にはDBの自動起動/終了の設定を書いておきます。

emrep:/u01/app/oracle/product/12.1.0/dbhome_1:Y

起動スクリプト。

#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
export OMS_HOME=/u01/app/oracle/middleware
export AGENT_HOME=/u01/app/oracle/agent/agent_inst

# Start everything
$ORACLE_HOME/bin/dbstart $ORACLE_HOME

$OMS_HOME/bin/emctl start oms

$AGENT_HOME/bin/emctl start agent

終了は逆ですね。

#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
export OMS_HOME=/u01/app/oracle/middleware
export AGENT_HOME=/u01/app/oracle/agent/agent_inst

# Stop everything
$OMS_HOME/bin/emctl stop oms -all

$AGENT_HOME/bin/emctl stop agent

$ORACLE_HOME/bin/dbshut $ORACLE_HOME