Mar27th

oracle

Top / oracle

OS認証でログイン

[cac@micdbt01 ~]$ su - oracle
パスワード:
[oracle@micdbt01 ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on 火 12月 12 13:25:39 2017

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

SQL> conn /as sysdba
接続されました。
SQL>

Index検索が使われているかの確認

set autotrace on
select * from micit01.TBL_KN_KKKN_SYNO_R where kn_kkkn_syno_seq='165'
自動トレース有効
実行計画だけでなく、文の統計を表示します。
Plan hash value: 690867547
 
--------------------------------------------------------------------------------------------------
| Id  | Operation                   | Name               | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |                    |     1 |    87 |     3   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| TBL_KN_KKKN_SYNO_R |     1 |    87 |     3   (0)| 00:00:01 |
|*  2 |   INDEX UNIQUE SCAN         | SYS_C003119959     |     1 |       |     2   (0)| 00:00:01 |
--------------------------------------------------------------------------------------------------
…

Indexが使われない場合は、TABLE ACCESS FULLとなる。

oracleジョブ削除

インポート時に誤ってCtrl+Cで処理をキャンセルした場合、画面上は処理が終了しているように見えるが
バックグランドで処理は継続されている。
バックグランド処理を停止する場合はsqldeveloper等を使用しDBA権限で以下のSQLを実施しジョブ名を確認する
select * from DBA_DATAPUMP_JOBS;
ジョブ名を確認しインポートを実行したサーバ上で以下のコマンドを実行しジョブを削除する
impdp ユーザ/パスワード attach=<ジョブ名>
※ユーザ/パスワードはエラーが発生したimpdpに実施していたユーザとパスワード
Impdp> kill_job
※ジョブを削除しますかと聞かれるのでYESを入力
【ジョブ削除が出来なかった場合】	⇒マスターテーブルのみ削除
■テーブル確認
select * from dba_tables where table_name like '%SYS_IMPORT_SCHEMA_01%'
⇒マスターテーブル名はジョブ名と同じ
■テーブル削除
drop table SYS_IMPORT_SCHEMA_01 purge;
■ジョブ確認
select * from DBA_DATAPUMP_JOBS;
⇒同時に消えるはず

ディレクトリオブジェクトについて

エクスポート、インポートを実行するDATE_PUMPユーティリティはダンプファイル等を出力、入力するディレクトリオブジェクトが必要。エクスポート、インポート実行時にdirectoryオプションを指定しない場合デフォルトのディレクトリオブジェクト「DMP_DIR」が指定される。
ディレクトリ作成
 create directory <ディレクトリ名> as '<ディレクトリのフルパス>'
 ※ <ディレクトリ名> と実際のフルパスの名称は異なっていてもよい
 例)create directory HOGE as '/u01/oracle/admin/mictst/datafile/dump'
権限付与
 ディレクトリオブジェクトは作成しただけでは使用できないので書き込み、読み取り権限を付与する必要がある。
 grant read,write on directory <ディレクトリ名> to <ユーザ名>
 ※<ユーザ名>にはエクスポート、インポートを実行するユーザを指定 
ディレクトリ確認
 select * from all_directories
権限確認
 select * from user_tab_privs
ディレクトリ削除
 先に権限を削除してからディレクトリ削除を行う
 revoke read,write on directory <ディレクトリ名> to <ユーザ名>
 drop directory <ディレクトリ名>

表領域、データファイル

作成、追加
・表領域を新規作成し3Gのデータファイルを自動拡張なしで1つ作成する場合
 create tablespace <表領域名>
 datafile '<データファイル名フルパス>.dbf' size 3G autoextend off
・表領域を新規作成し3Gのデータファイルを自動拡張なしで1つ作成、100Mのデータファイルを自動拡張ありで1つ作成する場合
 create tablespace <表領域名>
 datafile '<データファイル名フルパス>.dbf' size 3G autoextend off、
 '<データファイル名フルパス>.dbf' size 100M autoextend on next 10M maxsize unlimited
 ※自動拡張をありにした場合は「next」オプションで拡張する量を指定し、「maxsize」オプションで最大拡張幅を指定する。
 上記の場合10Mづつ拡張し、最大32Gまで拡張する。
 ※データファイルはデフォルトでSMALLFILEで作成される。BIGFILEで作成する場合は
   「create BIGFILE tablespace <表領域名> ~~~~」で作成可能、BIGFILEの最大拡張幅は32T
・データファイルの追加
 alter tablespace <表領域名> add datafile '<データファイル名フルパス>.dbf' size 3G autoextend off
削除、変更
・表領域の削除(データファイルも纏めて削除)
 drop tablespace <表領域名> including contents and datafiles cascade constraints 
 ※表領域のみ削除する場合はオプションはdrop tablespace <表領域名>でオプションは必要ない 
・データファイルの変更
 alter database datafile '<データファイル名フルパス>.dbf' resize 5G autoextend on next 10M maxsize 10G
 ※基本的なオプションは作成と同じ、サイズ変更のオプションのみ「resize」となる。
   サイズを縮小する場合はデータを空にする(drop user等で)必要があるので注意
 ※データファイルの移動も可能だが表領域をオフラインに変更し行う。←方法は別途記載予定

oracle自動メンテナンス

●自動メンテナンスタスクの機能
タスク名						説明
自動オプティマイザ統計収集		データベースオブジェクトに対する統計情報を自動的に収集する機能。 
自動セグメント・アドバイザ		再生可能な領域が存在しているセグメントを識別し、それらのセグメントの断片化を解消する方法について推奨する機能 
自動SQLチューニング・アドバイザ	高負荷のSQL文のパフォーマンスを調査し、それらの文のチューニング方法について推奨する機能 
●自動メンテナンスタスクの有効・無効確認
select CLIENT_NAME
     ,STATUS 
 from DBA_AUTOTASK_CLIENT;

CLIENT_NAME                                                      STATUS 
---------------------------------------------------------------- --------
auto optimizer stats collection                                  ENABLED  
auto space advisor                                               ENABLED  
sql tuning advisor                                               DISABLED 
●自動メンテナンスタスクのスケジュール確認
select s.WINDOW_NAME
     ,s.REPEAT_INTERVAL
     ,s.DURATION
     ,s.ENABLED
     ,a.AUTOTASK_STATUS
     ,a.OPTIMIZER_STATS
     ,a.SEGMENT_ADVISOR
     ,a.SQL_TUNE_ADVISOR
 from DBA_SCHEDULER_WINDOWS s,
      DBA_AUTOTASK_WINDOW_CLIENTS a
where s.WINDOW_NAME = a.WINDOW_NAME(+);
WINDOW_NAME                    REPEAT_INTERVAL