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

 

久しぶりにOracle

先月買った T5120 に Oracle Database 12c を入れてみました。

  • Solaris 11.2
  • Oracle Database EE 12.1.0.2.0

xauth がなかったのでインストールしたくらいで、後はすんなりいつものように簡単に入りました。

時間は掛かりましたけどね。時刻設定がおかしいのはそのうち直します…

oracle@solaris11:~$ sqlplus sys/xxxxxxxx as sysdba

 

SQL*Plus: Release 12.1.0.2.0 Production on Sun Aug 10 06:40:34 2014

 

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

 

 

Connected to:

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>

Oracle Database 12c

CentOS 6.4 (x86_64) にインストールしてみました。簡単にメモ。

基本的にはマニュアル通りやれば普通にできます。

ホスト名の設定。/etc/hosts などで名前が引けないとインストールできません。

[root@ora1 ~]# hostname
ora1.sugimura.cc
[root@ora1 ~]# echo "192.168.0.xxx ora1 ora1.sugimura.cc" >> /etc/hosts

/etc/sysctl.conf の設定。下記の10行ほどを追加。

# Oracle 12c
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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 = 1048576

反映するには sysctl -p です。

[root@ora1 ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
...

rpm のチェック。ファイルにリストアップしておいてからxargsで回すのが好みです。

[root@ora1 ~]# cat rpmcheck
binutils
compat-libcap1
compat-libstdc++-33
compat-libstdc++-33.i686
gcc
gcc-c++
glibc
glibc.i686
glibc-devel
glibc-devel.i686
ksh
libgcc
libgcc.i686
libstdc++
libstdc++.i686
libstdc++-devel
libstdc++-devel.i686
libaio
libaio.i686
libaio-devel
libaio-devel.i686
libXext
libXext.i686
libXtst
libXtst.i686
libX11
libX11.i686
libXau
libXau.i686
libxcb
libxcb.i686
libXi
libXi.i686
make
sysstat
unixODBC
unixODBC-devel
[root@ora1 ~]# cat rpmcheck | xargs rpm -q
binutils-2.20.51.0.2-5.36.el6.x86_64
compat-libcap1-1.10-1.x86_64
compat-libstdc++-33-3.2.3-69.el6.x86_64
compat-libstdc++-33-3.2.3-69.el6.i686
... (インストールされていません の表示が出ないことを確認)

グループやユーザを作成。

[root@ora1 ~]# groupadd oinstall
[root@ora1 ~]# groupadd dba
[root@ora1 ~]# groupadd oper
[root@ora1 ~]# groupadd backupdba
[root@ora1 ~]# groupadd dgdba
[root@ora1 ~]# groupadd kmdba
[root@ora1 ~]# useradd -g oinstall -G dba,backupdba,dgdba,kmdba oracle -m
[root@ora1 ~]# passwd oracle
ユーザー oracle のパスワードを変更。
新しいパスワード: ....

/etc/security/limits.conf に追加。

oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768

設定を確認。

[root@ora1 ~]# su - oracle
[oracle@ora1 ~]$ ulimit -Sn
1024
[oracle@ora1 ~]$ ulimit -Hn
65536
[oracle@ora1 ~]$ ulimit -Su
2047
[oracle@ora1 ~]$ ulimit -Hu
16384
[oracle@ora1 ~]$ ulimit -Ss
10240
[oracle@ora1 ~]$ ulimit -Hs
32768

ディレクトリを作成。

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

[root@ora1 ~]# mkdir /u01/oradata
[root@ora1 ~]# chown oracle:oinstall /u01/oradata
[root@ora1 ~]# chmod 775 /u01/oradata

[root@ora1 ~]# mkdir /u01/fast_recovery_area
[root@ora1 ~]# chown oracle:oinstall /u01/fast_recovery_area
[root@ora1 ~]# chmod 775 /u01/fast_recovery_area

[root@ora1 ~]# mkdir -p /u01/app/oraInventory
[root@ora1 ~]# chown oracle:oinstall /u01/app/oraInventory
[root@ora1 ~]# chmod 775 /u01/app/oraInventory

ここまで準備してようやくインストール実行。
runInstallerの実行時にDISPLAY変数が設定されていないとエラーになるものの、構わず続行して問題ないです。

[root@ora1 ~]# su - oracle
[oracle@ora1 ~]$ cd /u01/arc/database/ (展開したディレクトリ)
[oracle@ora1 database]$ ls -F
install/  response/  rpm/  runInstaller*  sshsetup/  stage/  welcome.html*
[oracle@ora1 database]$ ./runInstaller

着々と進んでいきます。

Oracle12c_install

root.sh を実行して無事終了。

Oracle12c_done

インストール後は環境設定。oracle ユーザの ~/.bash_profile に必要なものを書きます。

export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=Japanese_Japan.utf8
export ORACLE_SID=orcl

sqlplus が使えることを確認。あとはDB作ったりネットワークの設定をしたりですね。

[oracle@ora1 ~]$ . .bash_profile
[oracle@ora1 ~]$ sqlplus /nolog

SQL*Plus: Release 12.1.0.1.0 Production on 火 7月 30 17:29:58 2013

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

SQL> quit