OracleDBには非常に多くの機能があります。
その機能全てを把握して使用できるエンジニアは存在しないとまで言われております。
そんな中で、OracleDBで使用するインターフェイスを4つ紹介していきたいと思います。
現場によって運用方法が異なるため、今まで使ってきていなかったのに、とある現場では頻繁に使うとなって困る事もあります。
基本的なコマンドも一緒に紹介していきたいと思います。
OracleDBで使用するユーザインターフェース
1、SQLPLUS
これはお馴染みですよね。
Oracleを担当したエンジニアでなくとも、開発系などOracleDBが存在する環境では当然使います。
接続方法は、管理者ユーザの場合は以下。
sqlplus / as sysdba
別のデータベースユーザの場合は以下。
sqlplus ユーザ名/パスワード@データベース名
その後は、SQLを使って様々なオペレーションを実施します。
SQL; set pages 1000 SQL; set lines 500 SQL; select INSTANCE_NUMBER,INSTANCE_NAME,STATUS from v$instance INSTANCE_NUMBER INSTANCE_NAME STATUS --------------- ---------------- ------------ 1 odb12c OPEN
2、RMAN
RMANはOracleのバックアップなどで利用するRecovery Managerのインターフェースになります。
RMANバックアップで、リカバリ・カタログを使用する場合とそうでない場合でアクセス方法が異なります。
通常の管理者として接続する場合は下記になります。
rman target /
上記で管理者ユーザとしてrmanプロンプトへ移行できます。
ちなみに、RMANでは下記のようにDBの起動や停止、SQLも実行できます。
RMAN> startup
Oracle instance started database mounted database opened Total System Global Area 1644167168 bytes Fixed Size 2925024 bytes Variable Size 1056968224 bytes Database Buffers 570425344 bytes Redo Buffers 13848576 bytes
また、バックアップリカバリの機能を使う上では下記の基本設定を確認するコマンドだけご紹介します。
OracleDBのバックアップリカバリについては、別記事で詳しく書ければと思います。
RMAN> show all; using target database control file instead of recovery catalog RMAN configuration parameters for database with db_unique_name ODB12C are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/12.1.0/dbhome/dbs/snapcf_odb12c.f'; # default
3、ADR
ADRとは11gからの機能で、OracleDBのアラートやリスナー関連のログの管理や、障害発生時のインシデント作成などを行います。
この機能自体は、OracleDBのGold試験くらいでしかまともに使いませんが、個人的にはオペレーターへインシデント作成のマニュアルを作成する際には有効かと思います。
※ADRを使用する場合だけですが
こちらも専用のインターフェイスがありますので、ご紹介します。
まず、ADRのコマンドラインを立ち上げます。
adrci ADRCI: Release 12.1.0.2.0 - Production on Sun Mar 26 15:10:30 2017 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. ADR base = "/u01/app/oracle" adrc;
adrciコマンドで接続が出来ます。
次にアラートとインシデントの確認のための簡単なコマンドを書いていきます。
adrci; show incident ADR Home = /u01/app/oracle/diag/tnslsnr/Oracle12c/listener: ************************************************************************* 0 rows fetched ADR Home = /u01/app/oracle/diag/tnslsnr/Oracle12c/odb_listener: ************************************************************************* 0 rows fetched ADR Home = /u01/app/oracle/diag/rdbms/odb12c/odb12c: ************************************************************************* 0 rows fetched
今回はインシデントが存在しませんが、何かしらの論理障害を抱えている場合は、この一覧にインシデントIDと一緒に表示されます。
次にアラートログを見ていきます。
しかし、ADRは複数のHOME(ログを管理するためのホームディレクトリと捉えてください)を持てるので、参照するアラートログは1つまでになるので、ADR HOMEに固定のパスをセットする必要があります。
そこで、下記のとおり、ADR HOMEを確認し、セットしています。
adrci; show home ADR Homes: diag/tnslsnr/Oracle12c/listener diag/tnslsnr/Oracle12c/odb_listener diag/rdbms/odb12c/odb12c adrci; set home diag/rdbms/odb12c/odb12c
show homeコマンドで現在設定されているパス一覧を表示し、set home パス名で設定します。
そうすると、そのパスで管理されているログが参照できるようになります。
下記はアラートログをtail -f モードで標準出力しています。
adrci; show alert -tail -f ~略 2017-03-26 15:00:52.698000 +09:00 Thread 1 cannot allocate new log, sequence 26 Private strand flush not complete Current log# 1 seq# 25 mem# 0: /u01/app/oracle/oradata/odb12c/redo01.log 2017-03-26 15:00:55.766000 +09:00 Thread 1 advanced to log sequence 26 (LGWR switch) Current log# 2 seq# 26 mem# 0: /u01/app/oracle/oradata/odb12c/redo02.log 2017-03-26 15:01:22.821000 +09:00 Thread 1 advanced to log sequence 27 (LGWR switch) Current log# 3 seq# 27 mem# 0: /u01/app/oracle/oradata/odb12c/redo03.log
正直、滅多に使わないADRですが、いざという時のために覚えておいても良いかもしれません。
4、ASM
次は、ASMに関するインターフェイスになります。
ASMはOracleの機能でReal Application Cluster(以後RACと呼称)の環境ではまず間違いなく使用すると思うので、Oracleだけで仕事をするには必須の知識です。
接続方法は、今回は私の自宅のRAC環境を用いて、まずgridユーザになります。
そして、下記のコマンドを入力します。
asmcmd -p
-pはオプションで、カレントディレクトリを表示させています。
つまり、asmcmdは通常のファイルシステムのようにディレクトリを移動しながら作業できるインターフェイスになります。
なので下記のようにlsコマンドも使用できます。
ASMCMD [+] ; ls FRA/
ここで、ASMを扱う上で基本的なコマンドを1つご紹介しておきます。
ASMディスクについては、動的パフォーマンスビューからなど、確認する方法はたくさんありますが、このインターフェイスではASM専用コマンドで確認が出来ます。
ASMCMD [+] ; lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED NORMAL N 512 4096 1048576 15342 6216 5114 551 0 Y DATA/ MOUNTED NORMAL N 512 4096 1048576 15342 15054 5114 4970 0 N FRA/
ASM管理のディスクの状態やAU SIZEなど各種情報が取得できます。
何かディスクグループなどに対して作業する場合は、確認のために使用する事があるので、このコマンドは覚えておいた方が良いです。
あくまで基礎なので、知っている方の方が多いとは思います。
まとめ
いかがでしたでしょうか。
各機能についてもう少し詳しく書ければいいのですが、ブログにまだ慣れていないので非常に疲れました(笑)
今回は、あくまでインターフェイスの紹介までという所で終わりたいと思います。