ORACLE操作常用コマンド


一、SQLPLUS編集コマンド
現在の実行コマンドは、select*from tabと仮定します.
   
(a)ppend:バッファの現在の行末にテキストを追加
   

      :a order by tname 
      :select * from tab order by tname;
    

(注:aの後ろに2つのスペースが付いています)
   
(c)hange/old/new:現在の行に古いテキストを新しいテキストで置き換える
   

      :c/*/tname     
      :select tname from tab;
    

   
(c)hange/text:現在の行からテキストを削除
   

      :c/tab       
      :select tname from ;
    

   
del:現在の行を削除する
   
del n:n行目を削除
   
(i)nputテキスト:現在の行の後に行を追加する
   
(l)ist:バッファ内のすべての行を表示
   
(l)istn:バッファ内のn行目を表示
   
(l)istm n:バッファ内のmからn行を表示
   
run:現在のバッファのコマンドを実行する
   
/:現在のバッファのコマンドを実行する
   
r:現在のバッファのコマンドを実行する
   
@ファイル名:呼び出しメモリのsqlファイルを実行します.次のようにします.
   
edit s<リターン>:現在のディレクトリの下にs.sqlファイルが存在しない場合、システムは自動的にs.sqlファイルを生成します.
「select*from tab;」と入力します.ディスクが終了します.
   
@s:現在のユーザーの下にあるすべてのテーブル、ビュー、同義語が自動的にクエリーされます.
   
@@ファイル名:はい.sqlファイルの呼び出し命令の1つ.sqlファイルの場合の使用
   
saveファイル名:バッファのコマンドをファイル形式でディスクに保存し、デフォルトのファイル拡張子は.sql
   
getファイル名:ディスクに呼び出されたsqlファイル
   
startファイル名:呼び出しメモリのsqlファイルを実行する
   
spoolファイル名:その後の各種操作および実行結果を「オフライン」すなわちディスクファイルに格納し、デフォルトファイル拡張子は.lst
   
spool:現在のオフラインステータスを表示
   
spool off:出力を停止します.例:
   

    SQL> spool a
    SQL> spool
          A.LST
    SQL> spool off
    SQL> spool
          
    

   
exit:SQL*PLUSを終了する
   
descテーブル名:テーブルの構造を表示する
   
show user:現在の接続ユーザーを表示
   
show error:エラー表示
   
show all:68個のシステム変数値をすべて表示
   
edit:デフォルトエディタを開き、Windowsシステムのデフォルトはnotepadです.exe、バッファの最後のSQL文をafiedtに呼び出します.bufファイルで編集
   
editファイル名:現在のディレクトリで指定する.sqlファイル呼び出しエディタで編集
   
clear screen:現在の画面表示をクリア
二、表操作コマンド
   
dictionary:すべてのデータ辞書テーブルの名前と解釈、同義語dictがあります.
  
dict_column:すべてのデータ辞書表のフィールド名と解釈
  
インデックスに関するデータ辞書を検索する場合は、次のSQL文を使用します.
  
  
SQL>select * from dictionary where instr(comments,'index')>0; 

  
もし私たちがuserを知りたいならindexesテーブルの各フィールド名の詳細な意味は、次のSQL文を使用できます.
  
  
SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES';

  
これにより、ORACLEの他のドキュメント資料を表示することなく、データ辞書の詳細な名前と解釈を簡単に知ることができます.
  
以下に、ORACLEユーザーがよく使うデータ辞書のクエリーの使用方法をカテゴリ別にリストします.
  
  
1、ユーザー
  

    --             
    SQL>select username,default_tablespace from user_users;
  
  --         
  SQL>select * from user_role_privs;
  
  --                
  SQL>select * from user_sys_privs;
  SQL>select * from user_tab_privs;
  

  
2、表
  
  
--         
  SQL>select * from user_tables;
  
  --      log    
  SQL>select object_name,object_id from user_objects
  where instr(object_name,'LOG')>0;
  
  --         
  SQL>select object_name,created from user_objects where object_name=upper('&table_name');
  
  --       
  SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
  where segment_name=upper('&table_name');
  
  --    ORACLE       
  SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;
    

  
  
3、索引
  
  
--         
  SQL>select index_name,index_type,table_name from user_indexes order by table_name;
  
  --          
  SQL>select * from user_ind_columns where index_name=upper('&index_name');
  
  --       
  SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
  where segment_name=upper('&index_name');
    

  
4、シリアル番号
  
  
--     ,last_number    
  SQL>select * from user_sequences;
    

  
  
5、ビュー
  
--       
  SQL>select view_name from user_views;
  
  --       select  
  SQL>set view_name,text_length from user_views;
  SQL>set long 2000;   :       text_length   set long    
  SQL>select text from user_views where view_name=upper('&view_name');

  
  
6、同義語
  
  
--        
  SQL>select * from user_synonyms;

  
  
7、制約
  
  
--         
  SQL>select constraint_name, constraint_type,search_condition, r_constraint_name
  from user_constraints where table_name = upper('&table_name');
  
  SQL>select c.constraint_name,c.constraint_type,cc.column_name
  from user_constraints c,user_cons_columns cc
  where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')
  and c.owner = cc.owner and c.constraint_name = cc.constraint_name
  order by cc.position;

  
  
8、ストレージ関数とプロセス
  
  
--          
  SQL>select object_name,status from user_objects where object_type='FUNCTION';
  SQL>select object_name,status from user_objects where object_type='PROCEDURE';
  
  --           
  SQL>select text from all_source where owner=user and name=upper('&plsql_name');

三、データベースメンテナンス関連命令
1.取得データベース名と作成日
  
SELECT name, created, log_mode, open_mode FROM v$database;

2、ORACLEデータベースのコンピュータのホスト名、ORACLEデータベースのインスタンス名及びORACLEデータベース管理システムのバージョン情報
  
SELECT host_name, instance_name, version FROMv$instance
;
3、oracleデータベースのバージョンを知るための特別な情報
  
select * from v$version;

4、制御ファイルの名前を取得する
  
select * from v$controlfile;

5.OracleデータベースのREDOログ構成情報を取得する
  
SELECT group#, members, bytes, status, archived FROM v$log;
  select GROUP#,MEMBER from v$logfile;

6、oracleの各REDOログ(メンバー)ファイルが格納されている場所を取得する
  
select * from v$logfile;

7、ORACLEデータベースのバックアップとリカバリポリシーとアーカイブファイルの具体的な場所を知っている
  
archive log list

8、ORACLEデータベースにどれだけの表領域があるか、各表領域の状態を知る
  
select tablespace_name, block_size, status, contents, logging from dba_tablespaces;
  select tablespace_name, status from dba_tablespaces;

9、各表領域にどのディスク上に存在するか、ファイルの名前などの情報を知る
  
SELECT file_id, file_name, tablespace_name, status, bytes from dba_data_files;
  select file_name, tablespace_name from dba_data_files;

10.Oracleデータベース・システムにどれだけのユーザーがいるか、いつ作成されたかを知る
  
select username,created from dba_users;
  select username, DEFAULT_TABLESPACE from dba_users;

11.制御ファイルから情報を取り出すには、以下の関連コマンドが含まれる
  
select * from v$archived
  select * from v$archived_log
  select * from v$backup
  select * from v$database
  select * from v$datafile
  select * from v$log
  select * from v$logfile
  select * from v$loghist
  select * from v$tablespace
  select * from v$tempfile

12、制御ファイルは2つの大部分から構成されている:再利用可能な部分と再利用できない部分.再利用可能な部分のサイズはCONTROL_FILE_RECORD_KEEP_TIMEパラメータは、デフォルト値が7日で、再利用可能な部分の内容が7日保持され、1週間後にこの部分の内容が上書きされる可能性があることを制御します.再利用可能な部分はリカバリマネージャで使用され、この部分の内容は自動的に拡張されます.Oracleデータベース管理者は、CREAT DATABASEまたはCREAT CONTROLFILE文の次のキーワード(パラメータ)を使用して、再利用できない部分のサイズに間接的に影響を与えることができます.
  
MAXDATAFILES
  MAXINSTANCES
  MAXLOGFILES
  MAXLOGHISTORY
  MAXLOGMEMBERS

13、制御ファイルの構成を表示する
  
SELECT type, record_size, records_total, records_used FROM v$controlfile_record_section;

14、表示が2つに分かれている場合は、set pagesize 100のようなSQL*Plusコマンドを使用して出力をフォーマットする必要があります.フォーマット出力コマンドには、次のものがあります.
  
record_size:          。
  records_total:           。
  records_used:           。

15、制御ファイル中の全てのデータファイル(DATAFILE)、表領域(TABLESPACE)、及びREDOログ(REDO LOG)が使用する記録状況を知る
  
SELECT type, record_size, records_total, records_used
  FROM v$controlfile_record_section
  WHERE type IN ( 'DATAFILE', 'TABLESPACE', 'REDO LOG');

16、制御ファイルの名前を取得する
  
select value from v$parameter where name ='control_files';
    :
    select * from v$controlfile

17、インストールされているOracleデータベースに制御ファイルを追加または移動する方法
次に、インストール済みのOracleデータベースで制御ファイルを追加または移動する手順を示します.
a、データ辞書v$controlfileを利用して既存の制御ファイルの名前を取得する.
b、Oracleデータベースを正常にクローズします.
c、パラメータファイルに新しい制御ファイル名を追加するCONTROL_FILESパラメータにあります.
d、オペレーティングシステムのコピーコマンドを使用して、既存の制御ファイルを指定の場所にコピーする.
e、Oracleデータベースを再起動します.
f、データ辞書v$controlfileを利用して、新しい制御ファイルの名前が正しいかどうかを検証する.
g、上記の操作を誤ってやり直した場合、無駄な古い制御ファイルを誤って削除しなければならない.
注意:サーバー初期化パラメータファイル(SPFILE)を使用している場合は、Oracleデータベースを閉じることはできません.手順3でalter system set control_を使用する必要があります.filesのOracleコマンドを使用して、制御ファイルの場所を変更します.
  
SQL> alter system set control_files =
  'D:\Disk3\CONTROL01.CTL',
  'D:\Disk6\CONTROL02.CTL',
  'D:\Disk9\CONTROL03.CTL' SCOPE=SPFILE;

18.制御ファイルは極めて重要なファイルであるため、上述した制御ファイルの複数のコピーに異なるハードディスク上の保護措置があるほか、データベースの構造が変化した後、直ちに制御ファイルをバックアップしなければならない.Oracleコマンドを使用して、制御ファイルをバックアップできます.
  
alter database backup controlfile to 'D:\backup\control.bak';

19.トレースファイルにバックアップすることもできます.このトレースファイルには、制御ファイルの再構築に必要なSQL文が含まれています.このトレースファイルを生成するには、次のSQL文を使用します.
  
alter database backup controlfile to trace;

20、oracleコマンドを正常に閉じる
  
shutdown immeditae