「OracleTips」の編集履歴(バックアップ)一覧はこちら
「OracleTips」(2009/02/20 (金) 19:30:09) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*&bold(){SQLトレースの取得}
***SYSユーザで接続
$ sqlplus /nolog
SQL> conn sys/xxxx as sysdba
***対象セッション確認
SQL> SELECT sid,serial#,username,program,machine,status FROM v$session;
***トレース開始
SQL> EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION([sid],[serial#],TRUE);
udumpディレクトリ配下のトレースファイルを参照。
***トレース終了
SQL> EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION([sid],[serial#],FALSE);
----
*&bold(){サーバー・パラメータ・ファイル(SPFILE)情報の参照}
SQL> SHOW PARAMETER SPFILE
もしくは
SQL> SELECT VALUE FROM V$PARAMETER WHERE NAME = 'spfile' ;
----
*&bold(){サーバー・パラメータ・ファイル(SPFILE)の変更}
SQL> ALTER SYSTEM SET name = 'value' SCOPE=[SPFILE | MEMORY | BOTH];
静的パラメータの場合、"SCOPE=SPFILE"とし、データベースを再起動後に有効となる。
*&bold(){コールドバックアップ対象のファイル一覧}
set echo off;
set termout off;
set heading off;
set feedback off;
set linesize 256;
set flush off;
set pagesize 0;
set trimspool on;
[spool スプールファイル]
select ddf.file_name from dba_tablespaces dt, dba_data_files ddf
where dt.tablespace_name = ddf.tablespace_name;
select dtf.file_name from dba_tablespaces dt, dba_temp_files dtf
where dt.tablespace_name = dtf.tablespace_name;
select MEMBER from v\$logfile;
select NAME from v\$controlfile;
select value from v\$system_parameter where name ='spfile';
*&bold(){SQL*Plusでの列表示属性の制御}
set col [列名] format [表示形式]
set col [列名] justify [left/center/right] 左寄せ/中央寄せ/右寄せ
set col [列名] null [null文字] 値がnullの場合に[null文字]に指定した文字を表示
set col [列名] new_value [変数名] [表示形式]
【表示形式】
文字列:A[文字数] 例:set col c1 format a10
日付時刻列:A[文字数]
数値列:[数値書式]
【数値書式(代表的な物)】
9:有効桁数表示
0:有効桁数表示で前0詰め
B:値が0の場合に空白を表示
,:カンマを表示
【new_valueについて】
[列名]で指定した列の値が[変数名]で指定した変数に格納される。
例えば…
SQL> COL YMD NEW_VALUE FILENAME
SQL> SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') || 'spool.txt' YMD FROM DUAL;
→この結果「FILENAME」変数にシステム日付+'spool.txt'がセットされる。
SQL> spool &FILENAME
*&bold(){SQLトレースの取得}
***SYSユーザで接続
$ sqlplus /nolog
SQL> conn sys/xxxx as sysdba
***対象セッション確認
SQL> SELECT sid,serial#,username,program,machine,status FROM v$session;
***トレース開始
SQL> EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION([sid],[serial#],TRUE);
udumpディレクトリ配下のトレースファイルを参照。
***トレース終了
SQL> EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION([sid],[serial#],FALSE);
----
*&bold(){サーバー・パラメータ・ファイル(SPFILE)情報の参照}
SQL> SHOW PARAMETER SPFILE
もしくは
SQL> SELECT VALUE FROM V$PARAMETER WHERE NAME = 'spfile' ;
----
*&bold(){サーバー・パラメータ・ファイル(SPFILE)の変更}
SQL> ALTER SYSTEM SET name = 'value' SCOPE=[SPFILE | MEMORY | BOTH];
静的パラメータの場合、"SCOPE=SPFILE"とし、データベースを再起動後に有効となる。
*&bold(){コールドバックアップ対象のファイル一覧}
set echo off;
set termout off;
set heading off;
set feedback off;
set linesize 256;
set flush off;
set pagesize 0;
set trimspool on;
[spool スプールファイル]
select ddf.file_name from dba_tablespaces dt, dba_data_files ddf
where dt.tablespace_name = ddf.tablespace_name;
select dtf.file_name from dba_tablespaces dt, dba_temp_files dtf
where dt.tablespace_name = dtf.tablespace_name;
select MEMBER from v\$logfile;
select NAME from v\$controlfile;
select value from v\$system_parameter where name ='spfile';
*&bold(){SQL*Plusでの列表示属性の制御}
set col [列名] format [表示形式]
set col [列名] justify [left/center/right] 左寄せ/中央寄せ/右寄せ
set col [列名] null [null文字] 値がnullの場合に[null文字]に指定した文字を表示
set col [列名] new_value [変数名] [表示形式]
【表示形式】
文字列:A[文字数] 例:set col c1 format a10
日付時刻列:A[文字数]
数値列:[数値書式]
【数値書式(代表的な物)】
9:有効桁数表示
0:有効桁数表示で前0詰め
B:値が0の場合に空白を表示
,:カンマを表示
【new_valueについて】
[列名]で指定した列の値が[変数名]で指定した変数に格納される。
例えば…
SQL> COL YMD NEW_VALUE FILENAME
SQL> SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') || 'spool.txt' YMD FROM DUAL;
→この結果「FILENAME」変数にシステム日付+'spool.txt'がセットされる。
SQL> spool &FILENAME
*&bold(){高速INSERT}
SQL> INSERT /*+ APPEND */ INTO [追加先テーブル] SELECT * FROM [追加元テーブル];
この後は、COMMITかROLLBACKしかできない。
*&bold(){テーブルスペースの断片化調査}
SELECT *
FROM (
SELECT DFILE.TABLESPACE_NAME TABLESPACE_NAME,
DFILE.FILE_ID FILE_ID,
DFILE.BYTES ALL_BYTES,
DFILE.BLOCKS ALL_BLOCKS,
EXT.SEGMENT_NAME SEGMENT_NAME,
EXT.SEGMENT_TYPE SEGMENT_TYPE,
EXT.BLOCK_ID BLOCK_ID,
EXT.BLOCKS BLOCKS,
EXT.BYTES BYTES
FROM DBA_DATA_FILES DFILE,
DBA_EXTENTS EXT
WHERE DFILE.TABLESPACE_NAME = '[調査したいテーブルスペース名]'
AND EXT.FILE_ID = DFILE.FILE_ID
UNION
SELECT DFILE.TABLESPACE_NAME TABLESPACE_NAME,
DFILE.FILE_ID FILE_ID,
DFILE.BYTES ALL_BYTES,
DFILE.BLOCKS ALL_BLOCKS,
'FREE_SPACE' SEGMENT_NAME,
'FREE_SPACE' SEGMENT_TYPE,
DFREE.BLOCK_ID BLOCK_ID,
DFREE.BLOCKS BLOCKS,
DFREE.BYTES BYTES
FROM DBA_DATA_FILES DFILE,
DBA_FREE_SPACE DFREE
WHERE DFILE.TABLESPACE_NAME = '[調査したいテーブルスペース名(上と同じ)]'
AND DFREE.FILE_ID = DFILE.FILE_ID
) AAA
ORDER BY FILE_ID,BLOCK_ID