oracle運用tips大放出! ~ rac環境のrmanのパラレル化を極める 編 ~ @2016-02-23...

23
2016.02.23 NTTデータ先端技術株式会社 大田 祐也 ~ RAC環境のRMANパラレル化を極める 編 ~ Oracle運用Tips大放出!

Upload: yuya-ohta

Post on 16-Apr-2017

1.683 views

Category:

Software


6 download

TRANSCRIPT

Page 1: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

2016.02.23

NTTデータ先端技術株式会社

大田 祐也

~ RAC環境のRMANパラレル化を極める 編 ~

Oracle運用Tips大放出!

Page 2: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

【メイントーク】

RAC環境のRMANバックアップを

パラレル化で高速にするTips

Page 3: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

あるシステムでのおはなし

・ RAC 3node環境

・ orcl データベースが存在(DBは11.2.0.4環境)

- orcl データベースは日次でRMANフルバックアップを取得

- RMANバックアップはnode1で実行

Page 4: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

・ 『RMAN処理を高速にしたい、どうすればいいだろう』

- パラレル化(RMANチャネルの複数割り当て)

- マルチセクションバックアップ

- 表圧縮/RMANのバックアップ圧縮

- 読み取り専用表領域の使用

- 不要表領域の除外

- ASM上へのRMANバックアップ取得

- 増分バックアップ/高速増分バックアップ

RMANの実行時間が長時間化しつつあり…

今回詳しく お話するところです

Page 5: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

RMAN> BACKUP DATABASE ~ ;

早速パラレル化してみましょう!

Page 6: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

RMAN> RUN {

ALLOCATE CHANNEL ch1 DEVICE TYPE DISK ;

ALLOCATE CHANNEL ch2 DEVICE TYPE DISK ;

ALLOCATE CHANNEL ch3 DEVICE TYPE DISK ;

BACKUP DATABASE ~ ;

}

早速パラレル化してみましょう!

実行ノード(今回はnode1) でのパラレル化 任意のチャネル名と

することが可能

Page 7: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

RMAN> RUN {

ALLOCATE CHANNEL ch1 DEVICE TYPE DISK CONNECT ‘sys/<password>@orcl1’ ;

ALLOCATE CHANNEL ch2 DEVICE TYPE DISK CONNECT ‘sys/<password>@orcl2’ ;

ALLOCATE CHANNEL ch3 DEVICE TYPE DISK CONNECT ‘sys/<password>@orcl3’ ;

BACKUP DATABASE ~ ;

}

早速パラレル化してみましょう!

各ノードに分散したパラレル化

パスワードを明示指定した チャネルでの接続が必須

Page 8: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

パラレル化をする際に考慮すること

Page 9: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

考慮すること1: チャネル指定をどこまで行うか(パラレル度)

・ 1つのチャネルでは最大で1CPUコアを使用します。

⇒ 高速化のためには複数チャネルでのバックアップが望ましいため、

システムのCPU空き状況を踏まえ、検証を行いながらI/O性能を

最大限引き出せるようチャネル数を設定してください。

・ では、チャネル数を多くすればするほど高速化が望めるのでしょうか?

必ずしもそうではなく、気を付けたいポイントがあります。

⇒ 各チャネルはどのようにバックアップを取っているのでしょうか?

Page 10: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

考慮すること1: チャネル指定をどこまで行うか(パラレル度)

・ 各チャネルはどのようにバックアップを取っているのでしょうか?

⇒ データファイルごとにバックアップを取得しています。

⇒ つまり、大きなデータファイルが存在する場合、そのチャネルでの

バックアップ時間がネックとなります。 ← ココです!

Page 11: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

考慮すること1: チャネル指定をどこまで行うか(パラレル度)

・ ここで力を発揮するのが、マルチセクションバックアップ機能です。

⇒ 大規模なデータファイルを、セクション単位に分割してバックアップ

する機能です。

⇒ 分割するセクションサイズは指定可能です(デフォルトでは1GB)

・ このように使います。

RMAN> BACKUP SECTION SIZE 100M DATABASE ~ ;

Page 12: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

考慮すること1: チャネル指定をどこまで行うか(パラレル度)

・ マルチセクションバックアップ機能を使用することで…

⇒ 大規模データファイルのバックアップがネックとならなくなります。

⇒ パラレル化とマルチセクションバックアップはセットで検討しましょう。

Page 13: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

考慮すること1: チャネル指定をどこまで行うか(パラレル度)

・ マルチセクションバックアップ機能を使用することで…

⇒ 大規模データファイルのバックアップがネックとならなくなります。

⇒ パラレル化とマルチセクションバックアップはセットで検討しましょう。

Page 14: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

考慮すること2: 障害発生時の動きについて

・ バックアップ取得中にどれか1チャネルが停止した場合、RMANバック

アップ処理はエラー終了します。

⇒ RMANバックアップ処理の再実行の考慮が必要です。

⇒ このシステムでは、DBA調査を行ってから個別対応とするため、

自動再実行にはしませんでした。

Page 15: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

考慮すること3: 停止ノードのチャネル指定を行わないようにする

・ ALLOCATE CHANNEL指定を行う際、正常起動しているノードの

チャネル指定を行う必要があります。停止ノードのチャネル指定を行う

と、バックアップ取得はRMAN起動時点で失敗します。

⇒ 停止ノードのチャネル指定を行わないような考慮が必要です。

⇒ このシステムでは、ノード(インスタンス)の起動判定を行った上で

チャネル設定を行うようにしました。

Page 16: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

考慮すること4: 【番外編】 パスワードを埋め込みたくない場合

RMAN> RUN {

ALLOCATE CHANNEL ch1 DEVICE TYPE DISK CONNECT ‘sys/<password>@orcl1’ ;

ALLOCATE CHANNEL ch2 DEVICE TYPE DISK CONNECT ‘sys/<password>@orcl2’ ;

ALLOCATE CHANNEL ch3 DEVICE TYPE DISK CONNECT ‘sys/<password>@orcl3’ ;

BACKUP DATABASE ~ ;

} パスワードを明示指定した チャネルでの接続が必須

なのですが…

Page 17: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

RMAN> RUN {

ALLOCATE CHANNEL ch1 DEVICE TYPE DISK CONNECT ‘/@orcl1’ ;

ALLOCATE CHANNEL ch2 DEVICE TYPE DISK CONNECT ‘/@orcl2’ ;

ALLOCATE CHANNEL ch3 DEVICE TYPE DISK CONNECT ‘/@orcl3’ ;

BACKUP DATABASE ~ ;

}

考慮すること4: 【番外編】 パスワードを埋め込みたくない場合

Oracle Walletを利用すればこのようにパスワードを

隠匿可能です!

Page 18: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

【30秒小ワザ】

SQL*Plusで簡単に問合せ結果を

Excel形式で出力するTips

Page 19: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

SQL*Plusで簡単に問合せ結果をExcel形式で出力するTips

・ SQLの問い合わせ結果をExcelで参照したいとき、みなさんは

どのようにされていますか?CSV形式で出力してExcelに貼り付けて

区切ってゴニョゴニョ.. といった方法でしょうか?

・ でも、CSV形式で出力するのは少し面倒ですよね…

⇒ set colsep ‘,’ を使うと簡単ですが、固定長になってしまう…

⇒ select A || ‘,’ || B || ‘,’ || C from ~ といった方法だと

可変長で綺麗に出力されるものの、SQL作成が少し面倒…

そこで

簡単に問合せ結果をExcel形式で出力できる方法をご紹介します!

Page 20: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

SQL*Plusで簡単に問合せ結果をExcel形式で出力するTips

・ 簡単に問合せ結果をExcel形式で出力できる方法をご紹介します!

⇒ set markup html on を使います!

SQL> set pages 9999 SQL> set trimspool on ⇒ ここはご自由に設定してください SQL> set term off ⇒ ここはご自由に設定してください SQL> set markup html on ⇒ ココです! SQL&gt; spool <FileName>.xls ⇒ 拡張子をxlsとするのがミソです! <br>

SQL&gt; <Select文>

SQL&gt; set markup html off

<br> SQL> spool off

Page 21: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

SQL*Plusで簡単に問合せ結果をExcel形式で出力するTips

・ 出力したファイルをExcelで開いてみましょう!

⇒ ファイル形式うんぬんのポップアップがでますが、”はい” を押します。 ⇒ 下記のように、列毎に綺麗に表示されます。 あとは、みなさんのお好きなように編集してください。

Page 22: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

【さいごに】

本日のお礼

Page 23: Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG

2016.02.23

NTTデータ先端技術株式会社

大田 祐也

このような機会を頂いたことに

とても感謝しております!

みなさまの運用が少しでもHappyになる

エッセンスとなれば幸いです!

本日はご清聴いただきありがとうございました!