SSL 証明書 事前作業(Apache)

■本記事の背景
Apacheを使った、SSL証明書の更新作業を初めて実施する際、コマンドの内容、申請の仕方がわからず、時間を浪費し、苦労がありましたので、下記に「事前作業」、認証機関への「申請方法」を纏めることにしました。

<手順>
1.対象サーバにログインします。

2.作業ディレクトリに移動します。
cd /etc/httpd/conf.d/
※cd は移動するコマンドです。 書式:cd (option) /directory name
※今回作業ディレクトリは、 /etc/httpd/conf.d/ とします。

3.現行の設定ファイルを作業前にコピーします。
cp -p ssl.conf ssl.conf.2018
※cpはcopyコマンドです。 書式:cp [オプション] コピー元 コピー先

4.praivate(秘密キー作成)のディレクトリに移動
cd /etc/pki/tls/private/

5.秘密キーとCSRキー作成します。
<秘密キー作成>
openssl genrsa -out 2018test.com.key 2048
※2018test.com.key という名前の秘密キーを作成します。
<CSR作成>
openssl req -new -key 2018test.com.key -out 2018test.com.csr
※2018test.com.csrという名前の秘密キーを作成します。
★ポイント
秘密キー(2018test.com.key)を使って、 2018test.com.csrを作成しているので秘密キー名を間違わないよう気を付けて下さい。

CSR情報登録

■Country(国名)
Country Name (2 letter code) [AU]:JP
■State(都道府県名)
State or Province Name (full name) []:Tokyo
■Locality(市区町村名)
Locality Name (eg, city) []:Kanagawa
■Organization(組織名)
Organization Name (eg, company) []:test.CO.Ltd
■Organization Unit(部門名)
Organizational Unit Name (eg, section) []:test Department
■Common Name(コモンネーム)
Common Name (eg, YOUR name) []:www.test.com

※下記はエンターで飛ばしてOK※
Email Address []:
A challenge password []:
An optional company name []:

6.CSRの情報を認証機関に申請します。

 

補足.CSRの申請方法は下記に記載します。
下記は認証機関がシマンテックの場合
ストアフロントにアクセスします。

更新可能な製品は赤字で表示されます。
更新対象の製品を選択肢、内容を確認の上、「更新」ボタンをクリックします。

製品および有効期間と署名アルゴリズムを選択します。

ライセンス数を選択します。
エクスプレスサービスを追加する場合にチェックします。
サーバタイプを選択します。

企業名・団体名を検索します。

申請手続き担当者(技術担当者)の情報を入力します。

CSRを生成します。
取得したCSRの内容を貼り付けます。

RMAN④ リストアリカバリ(障害発生時点まで)

今回はRMANのリストア・リカバリ方法のうち、障害発生時点まで復旧させる方法を記載させて頂きます。

障害発生時点まで復旧させる前提としては、以下となります。

・OSに障害が無いこと
・DBデータファイル以外の、制御ファイル、REDOログファイル、アーカイブREDOログファイルに破損が無いこと
・バックアップが成功しており、バックアップファイルが存在すること

リストア・リカバリコマンドと実行例は以下の通りです。

1.DBデータのリストア
RMANでDBファイルをリストアする場合、mountモードで起動している必要があります。

コマンド:

su – oracle
sqlplus / as sysdba
startup mount;

実行例:————————————————————————-
# su – oracle
$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on

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, Real Application Testing
and Unified Auditing options
に接続されました。

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

Total System Global Area 4.1540E+10 bytes
Fixed Size 4371656 bytes
Variable Size 5979324152 bytes
Database Buffers 3.4426E+10 bytes
Redo Buffers 128843776 bytes
データベースがマウントされました。

———————————————————————————-

 

2.RMAN起動
リストア・リカバリを実行するために、RMANを起動します。

コマンド:

export NLS_DATE_FORMAT=’yyyy/mm/dd hh24:mi:ss’
rman target /

実行例:————————————————————————-
$ export NLS_DATE_FORMAT=’yyyy/mm/dd hh24:mi:ss’
$ rman target /

Recovery Manager: Release 12.1.0.2.0 – Production on

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

ターゲット・データベース: ORCL(DBID=1234245419、未オープン)に接続されました
———————————————————————————-

 

3.DBのリストア・リカバリを実行
以下のRMANコマンドを実行することで、リストアをリカバリを同時に実行します。また、実行例を見て頂くと、まずデータファイルをリストアし、REDOログファイルからリカバリしていることが分かると思います。

コマンド:

run {
restore database;
recover database;
}

実行例:————————————————————————-

RMAN> run {
restore database;
recover database;
}

リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=1068 デバイス・タイプ=DISK

restoreが開始されました(開始時間: 2018-03-21 10:47:18)

チャネルORA_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_DISK_1: データファイル00001を/oracle/data/orcl/system01.dbfにリストアしています
チャネルORA_DISK_1: データファイル00002を/oracle/data/orcl/sysaux01.dbfにリストアしています
チャネルORA_DISK_1: データファイル00003を/oracle/data/orcl/undotbs01.dbfにリストアしています
チャネルORA_DISK_1: データファイル00004を/oracle/data/orcl/users01.dbfにリストアしています
チャネルORA_DISK_1: バックアップ・ピースORCL_0sqf1zed_1_1から読取り中です
チャネルORA_DISK_1: ピース・ハンドル=/backup/ORCL_0sqf1zed_1_1 タグ=TAG20170922T101540
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:21:45
restoreが完了しました(完了時間: 2018-03-21 11:29:29)

recoverが開始されました(開始時間: 2018-03-21 11:29:29)

メディア・リカバリを開始しています
メディア・リカバリが完了しました。経過時間: 00:00:03

recoverが完了しました(完了時間: 2018-03-21 11:29:32)
チャネル: ORA_DISK_1がリリースされました

———————————————————————————-

4. DBをオープンする

コマンド:
alter database open;

実行例:————————————————————————-

RMAN> alter database open;
alter database open;
文が処理されました

———————————————————————————-

以上で完了です。

次回以降、時間指定リカバリと、全損時想定のリカバリ方法を記載したいと思います。

RMAN③ リスト

今回はRMAN(Recovery Manager)のバックアップリストの見方です。

バックアップしたファイルの管理や、リストア・リカバリをする際に重要な情報が記載されています。

尚、RMAN起動前に以下のように環境変数を設定しておくと、バックアップファイルの日時まで表示されるようになります(デフォルトは日にちのみ)。

Linux系
export NLS_DATE_FORMAT=’yyyy/mm/dd hh24:mi:ss’

Windows
set NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS

コマンドは、以下となります。

list backup;

以下は、検証用シングルDBでのリスト出力結果です。
RAC環境になると、ノード毎にスレッドが異なって表示されますが、大差はないです。

 

バックアップファイルは主に3種類あります。
・データファイル
・アーカイブログファイル
・制御ファイルとSPファイル

バックアップした順に表示されており、SCN、時間などを確認すると、どのバックアップにどの時間帯がバックアップされているかが分かります。

また、実行中のRMAN処理の状況は、以下SQLで確認することが出来ます。

set line 200

SELECT OPERATION,OBJECT_TYPE,STATUS,
TO_CHAR(START_TIME,’yyyy/mm/dd hh24:mi:ss’) “START_TIME”
FROM V$RMAN_STATUS WHERE STATUS=’RUNNING’
ORDER BY START_TIME;

OPERATION とOBJECT_TYPE を確認すると、何のファイルを処理中か判別できます。

BACKUP 、ARCHIVELOG → アーカイブログバックアップ中
BACKUP 、DB FULL → フルバックアップ中
CONTROL FILE AND SPFILE AUTOBACK → 制御ファイルの自動バックアップ中
DELETE → バックアップファイルの削除中

 

RMAN② バックアップ

今回はRMAN(Recovery Manager)のバックアップとなります。

Oracleのバックアップには、オンラインバックアップ、オフラインバックアップ。差分、増分などあります。
オンラインバックアップからリストア・リカバリする場合は、バックアップ中のアーカイブログも必要になります (無いとリカバリできません)。

RMANを起動し、以下のコマンドを実行することで様々なバックアップをすることができます。
バックアップ先ディレクトリや、制御ファイルの自動バックアップは前回の「設定」により指定することができます。

・フルバックアップ
backup database;

・フルバックアップとアーカイブログのバックアップ。アーカイブログはバックアップ後に削除
backup database plus archivelog delete all input;

※上述の通り、オンラインバックアップの場合は、アーカイブログがリストア・リカバリに必要になります。このコマンドはバックアップとアーカイブログを同時に取得するので便利かと思います。

・バックアップ先を指定してバックアップ
backup database format ‘/backup/oracle/%U’;

・特定表領域のバックアップ
backup tablespace 表領域名;

・特定データファイルのバックアップ
backup datafile ファイル番号;
backup datafile ‘ファイル名’;

・タグを付けてバックアップ
backup database tag ‘for_versionup’;

・増分バックアップ
レベル0 (初回・・イメージコピーで取得)
backup as copy incremental level 0 database;
レベル1 (差分・・バックアップセットで取得)
backup incremental level 1 [cumulative] database;
※ cumulative・・累積増分

———–

・アーカイブログバックアップ
すべてのアーカイブログをバックアップ
backup archivelog all;

アーカイブログ取得後、削除(バックアップしたファイルのみ削除)
backup archivelog all delete input;

アーカイブログ取得後、削除(バックアップ対象のすべての削除)
backup archivelog all delete all input;

バックアップされていないアーカイブログのみバックアップする
backup archivelog all not backed up 1 times;

特定のシステムチェンジナンバー(SCN)以降のバックアップ(データ移行時など、全てのアーカイブログが必要ではないときなどに)
backup archivelog from scn ?????;

※システムチェンジナンバー(SCN)
トランザクションごとに順番に割り振られる番号。
リカバリを行う際などに利用。データファイル、制御ファイル、REDOログファイルなどに割り振られる。

上記はバックアップコマンドの一部になります。運用設計や、移行設計により様々なコマンドを利用して実装していきます。

RMAN① バックアップ設定

前回はコールドバックアップについて記載しましたが、今回から数回はOracle標準のバックアップツールであるRMAN(Recovery Manager)についてとなります。

個人的に気に入っているRMANを使うメリットです。

1. バックアップ管理が容易 ・・ バックアップ対象ファイルをOracleが自動で取得する。世代管理も自動。

2.未使用領域の圧縮・・データファイルのうち、使用していない領域は圧縮の対象になる。

3.破損バックアップの検出・・バックアップ取得時に破損ブロックを検出する。OSコマンドやストレージ機能を使用したバックアップでは、破損ブロックが含まれた状態のバックアップになってしまう可能性もある。

———————————————————————–

バックアップコマンド自体は、

backup database;  フルバックアップ

backup database plus archivelog delete all input;  フルバックアップとアーカイブログのバックアップ。アーカイブログはバックアップ後に削除

などがありますが、事前に運用設計にあわせ、バックアップ設定をしておくことがおすすめです。(バックアップのコマンド詳細は次回以降)

———————————————————————–

現在の設定を表示:

show all;

保存設定(世代管理:例は3世代):

CONFIGURE RETENTION POLICY TO REDUNDANCY 3;

保存設定(日数管理:例は5日前までに復旧できる):

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS;

バックアップファイルの保存先(DBとアーカイブログの保存先):

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT ‘/backup/%U’;

%Uは必須(重複しないファイル名を自動生成してくれる)。その他、%dでDB名、%IはDBID(SPファイルのリストア時に必要)を入れると、バックアップファイルを管理しやすいかな、と思います。

制御ファイル、SPファイルの自動バックアップ有効:

CONFIGURE CONTROLFILE AUTOBACKUP ON;

制御ファイルには、バックアップ時の情報が記録されているので、リストア・リカバリを容易にするためには必須かと思っています。

制御ファイル、SPファイルのバックアップ保存先:

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/backup/%F’;

 

設定を元に戻す場合は、値の代わりにCLEARオプションを指定して戻る方法や、sql*plus からEXECUTE DBMS_BACKUP_RESTORE.RESETCONFIG を実行すると全てのパラメータをデフォルトに戻せます。

コールドバックアップ

私は、アプリ開発技術者時代に初めてデータベース(SQLServer)に触れ、その後、Oracle専任技術者となり、お客様に最適なシステムの提案、構築、問題解決などをしています。このページでは、Oracleを学んできた上で役立ちそうな情報を記載していこうと思っています。

データベース環境は、11gR2、12cR1、12cR2です。基本はStandard Editionでも出来る内容を考えています。

まずバックアップの基本であるコールドバックアップとなります。

コールドバックアップに必要なDB構成ファイルは以下のコマンドで表示されます。

DB構成ファイル
————————
set line 200
col name for a100
col member for a100

select name from v$controlfile
union
select name from v$datafile
union
select name from v$tempfile
union
select member from v$logfile ;
————————

※一時表領域は再作成可能ですが、リストア時に古いファイルが残っている場合、他のファイルと整合性が合わないなど、おかしな動作をする懸念があるので、含めています。

上記で表示されたファイルをDB正常停止後にバックアップすればOKです。

shutdown immediate (shutdown abort、異常終了時は不可)

その他、パラメータファイルや、ネットワーク関連ファイル、パスワードファイルもあれば良いかと思います。

パラメータファイル
ORACLE_HOME/dbs (Windowsの場合は、%ORACLE_HOME%\database)
・システムパラメータファイルの場合
spfile<SID>.ora
・ 初期化パラメータファイルの場合
init<SID>.ora

※SPファイルがASM内に格納されている場合は、以下コマンドなどで作成できます。
create pfile = ‘/tmp/initxx.ora’ from spfile’;

各構成パラメータファイル
$ORACLE_HOME/network/admin ディレクトリ
tnsnames.ora
listener.ora
sqlnet.ora

パスワードファイル
$ORACLE_HOME/dbs (Windowsの場合は、%ORACLE_HOME%\database)
orapw<SID>

Windowsの場合、PWD<SID>.ora