SAVEコマンド
・SQLバッファの内容をファイルに保存する。
<構文>
SAVE <ファイル名> [REP | APP]
REP:置換
APP:追記
2008年1月31日木曜日
2008年1月25日金曜日
samba:ドメインコントーラの設定
■ドメインコントローラとして機動させるためのsmb.confの設定パラメータ
os level = 32
ローカルマスターブラウザ(LMB)機能を提供する先の優先順位を決める。
PDCと構成する場合は"32"以上を設定。
preferred master = yes
sambaデーモン起動時にLMB機能を選定する処理の実行を設定。
ドメインコントローラはLMB機能を提供する必要があるため"yes"を設定。
domain master = yes
異なるサブネット間でブラウザリストを交換するためのドメインマスターブラウザ(DMB)機能の提供。
domain logons = yes
ドメインログオン機能を提供。
passdb backend = ldapsam
アカウント情報を管理するバックエンドデーターベース形式の指定。
smbpasswd,tdbsam,ldapsamなど。
admin users = Administrator
ドメイン管理者アカウントの設定。
Windowsクライアントをドメインに参加させるにはドメイン管理者のユーザー名とパスワードが必要。
logon home
ドメインログオンするユーザーのホームディレクトリを指定。
logon drive = "Z:"
ログオンユーザーのホームディレクトリのドライブレターを指定。
logon path = \\%L\Profiles\%U
移動プロファイルの格納場所を指定。
logon script = logon.bat
ログイン時の実行スクリプトを指定。
NETLOGON共有ディレクトリに配置。
■ドメインサーバーログインの流れ
①ユーザー作成
※ドメイン管理者は必ず作成。
#useradd -s /bin/false test -- OS側ユーザー追加
#pdbedit -a test -- sambaユーザ追加
new password:
retype new password:
②ユーザー一覧表示
#pdbedit -L (-w)
③マシンアカウント登録
#useradd -d /dev/null -s /bin/false testhost$ -- "マシン名$"で登録
#pdbedit -a -m testhost -- "m"オプションを追記
④クライアント端末よりドメイン実施
■samba+ldap構成の流れ
ldap設定ファイル作成(/etc/openldap/slapd.conf)
①スキーマの設定
②suffixの設定
ツリー構造の頂点の設定
③管理者ユーザーの設定
rootdn・・・LDAPサーバを管理する特権ユーザー
rootpw・・・特権ユーザのパスワード
④アクセス制限の設定
■samba+LDAP用設定パラメータ
ldap suffix = "dc=test,dc=com"
slapd.confと同じsuffixを指定。
ldap user suffix = "ou=People"
Sambaユーザー情報を格納するLDAPツリーの指定。
ldap suffixを基準にした相対位置。
ldap group suffix = "ou=Group"
sambaグループ情報を格納するLDAPツリーの指定。
ldap suffixを基準にした相対位置。
ldap machine sufix = "ou=Computer"
マシンアカウント情報を格納するLDAPツリーの指定。
ldap suffixを基準にした相対位置。
ldap admin dn = "cn=administrator,dc=test,dc=com"
LDAPから情報を取得する際のLDAP管理者権限ユーザー。
rootdnと同じ値を設定。
※パスワードについては"smbpasswd -w"にてsamba側に設定しておく。
ldap passwd sync = yes
Windows用パスワード(sambaで設定したパスワード)とLinuxユーザーパスワードを同期する。
■参照サイト
os level = 32
ローカルマスターブラウザ(LMB)機能を提供する先の優先順位を決める。
PDCと構成する場合は"32"以上を設定。
preferred master = yes
sambaデーモン起動時にLMB機能を選定する処理の実行を設定。
ドメインコントローラはLMB機能を提供する必要があるため"yes"を設定。
domain master = yes
異なるサブネット間でブラウザリストを交換するためのドメインマスターブラウザ(DMB)機能の提供。
domain logons = yes
ドメインログオン機能を提供。
passdb backend = ldapsam
アカウント情報を管理するバックエンドデーターベース形式の指定。
smbpasswd,tdbsam,ldapsamなど。
admin users = Administrator
ドメイン管理者アカウントの設定。
Windowsクライアントをドメインに参加させるにはドメイン管理者のユーザー名とパスワードが必要。
logon home
ドメインログオンするユーザーのホームディレクトリを指定。
logon drive = "Z:"
ログオンユーザーのホームディレクトリのドライブレターを指定。
logon path = \\%L\Profiles\%U
移動プロファイルの格納場所を指定。
logon script = logon.bat
ログイン時の実行スクリプトを指定。
NETLOGON共有ディレクトリに配置。
■ドメインサーバーログインの流れ
①ユーザー作成
※ドメイン管理者は必ず作成。
#useradd -s /bin/false test -- OS側ユーザー追加
#pdbedit -a test -- sambaユーザ追加
new password:
retype new password:
②ユーザー一覧表示
#pdbedit -L (-w)
③マシンアカウント登録
#useradd -d /dev/null -s /bin/false testhost$ -- "マシン名$"で登録
#pdbedit -a -m testhost -- "m"オプションを追記
④クライアント端末よりドメイン実施
■samba+ldap構成の流れ
ldap設定ファイル作成(/etc/openldap/slapd.conf)
①スキーマの設定
②suffixの設定
ツリー構造の頂点の設定
③管理者ユーザーの設定
rootdn・・・LDAPサーバを管理する特権ユーザー
rootpw・・・特権ユーザのパスワード
④アクセス制限の設定
■samba+LDAP用設定パラメータ
ldap suffix = "dc=test,dc=com"
slapd.confと同じsuffixを指定。
ldap user suffix = "ou=People"
Sambaユーザー情報を格納するLDAPツリーの指定。
ldap suffixを基準にした相対位置。
ldap group suffix = "ou=Group"
sambaグループ情報を格納するLDAPツリーの指定。
ldap suffixを基準にした相対位置。
ldap machine sufix = "ou=Computer"
マシンアカウント情報を格納するLDAPツリーの指定。
ldap suffixを基準にした相対位置。
ldap admin dn = "cn=administrator,dc=test,dc=com"
LDAPから情報を取得する際のLDAP管理者権限ユーザー。
rootdnと同じ値を設定。
※パスワードについては"smbpasswd -w"にてsamba側に設定しておく。
ldap passwd sync = yes
Windows用パスワード(sambaで設定したパスワード)とLinuxユーザーパスワードを同期する。
■参照サイト
2008年1月24日木曜日
SGA管理
DB_BLOCK_SIZE
ブロックサイズ。
DB_BLOCK_BUFFERS
バッファキャッシュ内のデータベースバッファ数。
DB_CACHE_SIZE
バッファプールサイズ。
DB_nK_CACHE_SIZE
複数のブロックサイズを使用する際の、ブロックサイズ毎のキャッシュサイズ。
~バッファキャッシュサイズを決める場合、下記の二通りがある。~
①db_block_buffers × db_block_size
②db_cache_size
JAVA_POOL_SIZE
javaプールサイズ。(Javaオブジェクト及びその他のJava実行メモリー)
SHARED_POOL_SIZE
共有プールサイズ。(SQL及びPL/SQLの実行のメモリー割り当て)
内部SGAオーバヘッド(その他の初期化パラメータにて割り当てられるメモリー)を含む。
◎グラニュル
SGA内の領域割り当て単位。
<サイズ>
※一般的なプラットフォームでの値。
SGAの合計サイズが1GB以下:4MB
SGAの合計サイズが1GB以上:16MB
SGA_MAX_SIZE
SGAの最大サイズ。
SGA_TARGET
SGAサイズ自動管理。
<自動管理対象>
共有プール [shared_pool_size]
ラージ・プール [large_pool_size]
Javaプール [java_pool_size]
バッファ・キャッシュ [db_cache_size]
Streamsプール [streams_pool_size]
<手動設定>
ログ・バッファ [log_buffer]
KEEPバッファ・キャッシュ [db_keep_cache_size]
RECYCLEバッファ・キャッシュ [db_recycle_cache_size]
非標準ブロック・サイズ・バッファ・キャッシュ [db_nk_cache_size]
■共有サーバプロセス
クライアントからの接続要求をリスナーが受けとると、接続要求タイプに基づき、適切なサービス・ハンドラ(ディスパッチャ、専用サーバープロセス)を判断。転送先のサービスハンドラ利用状況をサービス登録(PMONから提供される)から確認し、要求を転送する。
<共有サーバー用初期化パラメータ>
SHARED_SERVERS
MAX_SHARED_SERVERS
■専用サーバー
専用サーバ・プロセス
クライアントからの要求が専用サーバープロセスへ接続。
ブロックサイズ。
DB_BLOCK_BUFFERS
バッファキャッシュ内のデータベースバッファ数。
DB_CACHE_SIZE
バッファプールサイズ。
DB_nK_CACHE_SIZE
複数のブロックサイズを使用する際の、ブロックサイズ毎のキャッシュサイズ。
~バッファキャッシュサイズを決める場合、下記の二通りがある。~
①db_block_buffers × db_block_size
②db_cache_size
JAVA_POOL_SIZE
javaプールサイズ。(Javaオブジェクト及びその他のJava実行メモリー)
SHARED_POOL_SIZE
共有プールサイズ。(SQL及びPL/SQLの実行のメモリー割り当て)
内部SGAオーバヘッド(その他の初期化パラメータにて割り当てられるメモリー)を含む。
◎グラニュル
SGA内の領域割り当て単位。
<サイズ>
※一般的なプラットフォームでの値。
SGAの合計サイズが1GB以下:4MB
SGAの合計サイズが1GB以上:16MB
SGA_MAX_SIZE
SGAの最大サイズ。
SGA_TARGET
SGAサイズ自動管理。
<自動管理対象>
共有プール [shared_pool_size]
ラージ・プール [large_pool_size]
Javaプール [java_pool_size]
バッファ・キャッシュ [db_cache_size]
Streamsプール [streams_pool_size]
<手動設定>
ログ・バッファ [log_buffer]
KEEPバッファ・キャッシュ [db_keep_cache_size]
RECYCLEバッファ・キャッシュ [db_recycle_cache_size]
非標準ブロック・サイズ・バッファ・キャッシュ [db_nk_cache_size]
■共有サーバプロセス
クライアントからの接続要求をリスナーが受けとると、接続要求タイプに基づき、適切なサービス・ハンドラ(ディスパッチャ、専用サーバープロセス)を判断。転送先のサービスハンドラ利用状況をサービス登録(PMONから提供される)から確認し、要求を転送する。
クライアントからの接続要求(ユーザープロセス)をディスパッチャへ接続。 クライアントからの接続をバーチャルサーキットへバインド。 要求が来るとディスパッチャがバーチャルサーキットを共通キューへ配置。 共有サーバー・プロセスが共通キューからバーチャルサーキットを取り出し要求を処理。 バーチャルサーキットを解放。別の要求を取得。処理が終了すると PMONプロセスがディスパッチャの場所とロード情報をリスナーに登録。
SHARED_SERVERS
インスタンス起動時に作成される共有サーバーの最小数。 起動後はDBが自動で動的に管理。 標準的には「1共有サーバー/10接続」
PMONによって自動作成可能な共有サーバーの最大数。 SHARED_SERVERSの値が優先。 。リソースの問題上最大値を管理したい場合に設定
- 共有メモリー上に作成可能なバーチャルサーキットの許容最大数。
- ディスパッチャプロセス構成の設定。
- 接続プロトコル、ディスパッチャ数など、属性と値にて設定。
- 例)DISPATCHERS='(PROT=tcp)(DISP=5)'
- ディスパッチャ数=最大同時セッション数/接続数。
専用サーバ・プロセス
クライアントからの要求が専用サーバープロセスへ接続。
2008年1月23日水曜日
テーブル件数カウント
-- 結果を画面表示する
set serveroutput on
-- 出力バッファ変更 ※デフォルトは2000バイト
SET SERVEROUTPUT ON SIZE 1000000
declare
-- テーブル名変数定義
tname varchar2(100);
-- テーブル件数変数定義
tcount number;
-- テーブル件数取得SQL変数定義
count_sql varchar2(300);
begin
for tab_rec in (select * from tab) loop
tname := tab_rec.tname;
count_sql := 'select count(*) from ' || tname;
execute immediate count_sql into tcount;
dbms_output.put_line( tname || ',' || tcount );
end loop;
end;
/
set serveroutput on
-- 出力バッファ変更 ※デフォルトは2000バイト
SET SERVEROUTPUT ON SIZE 1000000
declare
-- テーブル名変数定義
tname varchar2(100);
-- テーブル件数変数定義
tcount number;
-- テーブル件数取得SQL変数定義
count_sql varchar2(300);
begin
for tab_rec in (select * from tab) loop
tname := tab_rec.tname;
count_sql := 'select count(*) from ' || tname;
execute immediate count_sql into tcount;
dbms_output.put_line( tname || ',' || tcount );
end loop;
end;
/
JP1AJS登録情報バックアップ
"ajsprint"コマンドにてJP1AJSの登録情報をテキストファイルにてバックアップ可能。
◎バックアップ取得方法
ajsprint -F AJSROOT1 -a <バックアップ対象のフルパス> <バックアップファイルパス>
例)
C:\>ajsprint -F AJSROOT1 -a / jp1_backup.txt
◎リストア方法
ajsdefile -F AJSROOT1 -d <ユニット作成のフルパス> <リストア対象ファイルパス>
例)
C:\>ajsdefine -F AJSROOT1 -d / jp1_backup.txt
◎バックアップ取得方法
ajsprint -F AJSROOT1 -a <バックアップ対象のフルパス> <バックアップファイルパス>
例)
C:\>ajsprint -F AJSROOT1 -a / jp1_backup.txt
◎リストア方法
ajsdefile -F AJSROOT1 -d <ユニット作成のフルパス> <リストア対象ファイルパス>
例)
C:\>ajsdefine -F AJSROOT1 -d / jp1_backup.txt
2008年1月22日火曜日
プロファイル
◎パスワード
有効期限
UTLPWDMG.SQLを使用して指定。($ORACLE_HOME\RDBMS\ADMIN)
変更する際はUTLPWDMG.SQLを編集し、スクリプトを実行する。
※値が"DEFAULT"の場合、DEFAULTプロファイルの設定値が適用される。
◎UTLPWDMG.SQL
デフォルト
-- Check for the minimum length of the password
IF length(password) < 8 THEN
raise_application_error(-20002, 'Password length less than 4');
END IF;
→「複雑なパスワード検証」にて"VERIFY_FUNCTION"を設定する。
有効期限
- 期限切れ後の猶予日数
- パスワード再利用可能変更回数
- 再利用できなくなるまでの日数
- 複雑なパスワード検証
UTLPWDMG.SQLを使用して指定。($ORACLE_HOME\RDBMS\ADMIN)
変更する際はUTLPWDMG.SQLを編集し、スクリプトを実行する。
- ロックまでのログイン試行失敗回数
- 指定回数失敗後のロックされる日数
※値が"DEFAULT"の場合、DEFAULTプロファイルの設定値が適用される。
◎UTLPWDMG.SQL
デフォルト
- 長さが4文字以上
- ユーザー名とは異なること
- 少なくとも1文字のアルファベット、1文字の数字、1文字の句読点を含むこと
- 以前のパスワードと3文字以上違いがあること
-- Check for the minimum length of the password
IF length(password) < 8 THEN
raise_application_error(-20002, 'Password length less than 4');
END IF;
→「複雑なパスワード検証」にて"VERIFY_FUNCTION"を設定する。
権限制御
~権限制御の実装方法~
1.特定のユーザーのみに許可を与える。
2.ユーザーに対して制限を与える。
◎権限の種類
システム権限
プロシージャに対する権限
EXECUTE
型に対する権限
◎ADMIN OPTION
他のユーザーへのシステム権限の付与、取り消しを許可するかどうか。
◎OEMの操作権限
デフォルトにてDatabaseControlアクセス権限を持っているのは”SYS”、”SYSTEM”ユーザー。
~既存ユーザーへのDatabaseControl管理権限付与~
"MGMT_USER"(ロール)
"SELECT ANY DICTIONARY"(システム権限)
→手動にて権限を設定すればOEMへのアクセスは可能。
ただし管理者としての設定がされていないためブラックアウトやメール通知の機能が使用できない。
1.特定のユーザーのみに許可を与える。
2.ユーザーに対して制限を与える。
◎権限の種類
システム権限
- ユーザー、ロールに対して付与、取り消しが可能。
- コマンド:「GRANT」「REVOKE」
- 特定のスキーマオブジェクトに対する権限。
- コマンド:「GRANT」「REVOKE」
- DML操作・・・DELETE、INSERT、UPDATE、SELECT
- DDL操作・・・ALTER、INDEX、REFERENCES
プロシージャに対する権限
EXECUTE
型に対する権限
◎ADMIN OPTION
他のユーザーへのシステム権限の付与、取り消しを許可するかどうか。
◎OEMの操作権限
デフォルトにてDatabaseControlアクセス権限を持っているのは”SYS”、”SYSTEM”ユーザー。
~既存ユーザーへのDatabaseControl管理権限付与~
- sysまたはsystemユーザーにてOEMにログイン。
- 「設定」→「管理者」を選択し「作成」をクリック。
- 権限を付与したいユーザーを選択し「終了」をクリック。
- 確認画面が表示されるので「終了」をクリック。
- ログアウトし追加したユーザーでのアクセスを確認。
"MGMT_USER"(ロール)
"SELECT ANY DICTIONARY"(システム権限)
→手動にて権限を設定すればOEMへのアクセスは可能。
ただし管理者としての設定がされていないためブラックアウトやメール通知の機能が使用できない。
2008年1月21日月曜日
テーブル情報取得
テーブル設計の際に必要な情報をcsv形式ファイルにて取得する。
※取得の際はスクリプトファイルを作成し実行する。
コマンドから実行すると実行コマンド自体もspoolファイルに出力される。
■テーブル
set echo off
set linesize 1000
set pagesize 0
set trimspool on
set colsep ','
set feedback off
set termout on
col TABLE_NAME format a30
spool table_data.csv
select TABLE_NAME, -- テーブル名
PCT_FREE,
PCT_USED,
INITIAL_EXTENT, -- 初期テーブルサイズ
NEXT_EXTENT, -- 拡張時テーブル増加サイズ
MAX_EXTENTS, -- 最大拡張サイズ
AVG_ROW_LEN -- 平均行の平均長さ
from user_tables;
spool off
exit
■索引
set echo off
set linesize 1000
set pagesize 0
set trimspool on
set colsep ','
set feedback off
set termout on
col TABLE_NAME format a30
spool table_data.csv
select INDEX_NAME, -- 索引名
PCT_FREE,
TABLESPACE_NAME, -- 表領域名
INITIAL_EXTENT, -- 初期テーブルサイズ
NEXT_EXTENT, -- 拡張時テーブル増加サイズ
MAX_EXTENTS, -- 最大拡張サイズ
AVG_LEAF_BLOCKS_PER_KEY, -- 平均リーフブロック数
AVG_DATA_BLOCKS_PER_KEY -- 平均ブロック数
from user_indexes;
spool off
exit
◎索引作成
※取得の際はスクリプトファイルを作成し実行する。
コマンドから実行すると実行コマンド自体もspoolファイルに出力される。
■テーブル
set echo off
set linesize 1000
set pagesize 0
set trimspool on
set colsep ','
set feedback off
set termout on
col TABLE_NAME format a30
spool table_data.csv
select TABLE_NAME, -- テーブル名
PCT_FREE,
PCT_USED,
INITIAL_EXTENT, -- 初期テーブルサイズ
NEXT_EXTENT, -- 拡張時テーブル増加サイズ
MAX_EXTENTS, -- 最大拡張サイズ
AVG_ROW_LEN -- 平均行の平均長さ
from user_tables;
spool off
exit
■索引
set echo off
set linesize 1000
set pagesize 0
set trimspool on
set colsep ','
set feedback off
set termout on
col TABLE_NAME format a30
spool table_data.csv
select INDEX_NAME, -- 索引名
PCT_FREE,
TABLESPACE_NAME, -- 表領域名
INITIAL_EXTENT, -- 初期テーブルサイズ
NEXT_EXTENT, -- 拡張時テーブル増加サイズ
MAX_EXTENTS, -- 最大拡張サイズ
AVG_LEAF_BLOCKS_PER_KEY, -- 平均リーフブロック数
AVG_DATA_BLOCKS_PER_KEY -- 平均ブロック数
from user_indexes;
spool off
exit
◎索引作成
2008年1月18日金曜日
AUX_STATS$
統計情報が保存されるテーブル
------------------------------------------
col SNAME format a30
col PNAME format a20
select * from AUX_STATS$;
------------------------------------------
SNAME
PNAME
PVAL1
PVAL2
CPUSPEEDNW
インスタンス起動時のCPU速度(MhHz)
IOSEEKTIM
シークタイム+OSオーバーヘッド時間(ミリ秒)
IOTFRSPEED
1ブロックの平均転送速度(byes/millisec)
SREADTIM
1ブロックの平均リードタイム(ミリ秒)
MREADTIM
マルチブロックの平均リードタイム(ミリ秒)
CPUSPEED
オラクルからみたCPU速度(MHz)
MAXTHR
最大I/Oスループット(byte/sec)
SLAVETHR
I/Oスレーブ単位での平均I/Oスループット(bytes/sec)
------------------------------------------
col SNAME format a30
col PNAME format a20
select * from AUX_STATS$;
------------------------------------------
SNAME
PNAME
PVAL1
PVAL2
CPUSPEEDNW
インスタンス起動時のCPU速度(MhHz)
IOSEEKTIM
シークタイム+OSオーバーヘッド時間(ミリ秒)
IOTFRSPEED
1ブロックの平均転送速度(byes/millisec)
SREADTIM
1ブロックの平均リードタイム(ミリ秒)
MREADTIM
マルチブロックの平均リードタイム(ミリ秒)
CPUSPEED
オラクルからみたCPU速度(MHz)
MAXTHR
最大I/Oスループット(byte/sec)
SLAVETHR
I/Oスレーブ単位での平均I/Oスループット(bytes/sec)
ORA-12560
Windows環境にてoracle10gを起動する際に以下のエラーが発生。
C:\oracle\product\10.2.0\db_1\BIN>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 金 1月 18 08:43:38 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL>
SQL>
SQL> conn as sysdba
ユーザー名を入力してください: system
パスワードを入力してください:
ERROR:
ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました
・接続識別子を指定しなかった場合に決定されるデフォルとのデータベース決定順位
リスナー経由で接続され、サービス名が解決できない場合はエラー(ORA-12514)
3、4が採用された場合
ローカル接続(BEQ接続)で接続され、サービス名が解決できない場合は、エラー(ORA-12560)
1、2、3、4のいずれも設定されていない場合
エラー(ORA-12560)
◎レジストリエディタ起動方法
「スタート」-「ファイル名を指定して実行」をクリックし、'Regedit'を入力。
C:\oracle\product\10.2.0\db_1\BIN>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 金 1月 18 08:43:38 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL>
SQL>
SQL> conn as sysdba
ユーザー名を入力してください: system
パスワードを入力してください:
ERROR:
ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました
・接続識別子を指定しなかった場合に決定されるデフォルとのデータベース決定順位
- 環境変数LOCALに設定されているネットサービス名
- レジストリ\HKEY_LOCAK_MACHINE\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\LOCALに設定されているネット・サービス名
- 環境変数ORACLE_SIDに設定されているネット・サービス名
- レジストリ\HKEY_LOCAK_MACHINE\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\ORACLE_SIDに設定されているネット・サービス名
リスナー経由で接続され、サービス名が解決できない場合はエラー(ORA-12514)
3、4が採用された場合
ローカル接続(BEQ接続)で接続され、サービス名が解決できない場合は、エラー(ORA-12560)
1、2、3、4のいずれも設定されていない場合
エラー(ORA-12560)
◎レジストリエディタ起動方法
「スタート」-「ファイル名を指定して実行」をクリックし、'Regedit'を入力。
2008年1月17日木曜日
初期化パラメータ
star_transformation_enabled
スタークエリー
履歴データを持ち高速に検索するためのスキーマ「スター・スキーマ」を活用した問い合わせ。
job_queue_processes {0~1000}
[デフォルト:0]
ジョブ
DBMS_JOBパッケージで起動させるストアド処理。
PLSQLジョブをスケジューリングして定期的に実行させるには、DBMS_JOBパッケージを使用。
aq_tm_processes {0~10}
[デフォルト:0]
キューメッセージ
アプリケーション間、コンピュータ間でのメッセージのやり取り。
メッセージを格納(メールボックス)できるものを用意し、非同期での通信が可能。
db_file_multiblock_read_count { オペレーティング・システム依存}
[デフォルト:効率的に実行できる最大I/Oサイズと一致し、プラットフォームによって異なる]
◎レベル
Oracleデータベース機能で必要とされる多くの重要な統計が収集されない。
{TEMP_DISABLE | TRUE | FALSE}
[デフォルト:
FALSE]
- コストベースの問い合わせ変換をスタークエリーに適用するかどうか。
- オプティマイザがコストベースべ最適なスタークエリープランを自動的に作成するので、そのプランをスタークエリーに適用するかどうか。
スタークエリー
履歴データを持ち高速に検索するためのスキーマ「スター・スキーマ」を活用した問い合わせ。
job_queue_processes {0~1000}
[デフォルト:0]
- ジョブ実行用に作成できるプロセスの最大数。
ジョブ
DBMS_JOBパッケージで起動させるストアド処理。
PLSQLジョブをスケジューリングして定期的に実行させるには、DBMS_JOBパッケージを使用。
aq_tm_processes {0~10}
[デフォルト:0]
- キューメッセージ監視用のキューモニタープロセス数。
- キュー・メッセージの時間監視が使用可能。
キューメッセージ
アプリケーション間、コンピュータ間でのメッセージのやり取り。
メッセージを格納(メールボックス)できるものを用意し、非同期での通信が可能。
db_file_multiblock_read_count { オペレーティング・システム依存}
[デフォルト:効率的に実行できる最大I/Oサイズと一致し、プラットフォームによって異なる]
- 1回のI/O操作で読み取られるブロックの最大数。
- 最大値は”オペレーティング・システムの最大I/Oサイズ/
DB_BLOCK_SIZE”。
UNIXの場合の最大I/Oサイズは1MB(
1024KB)。
- パラメータが明示的に設定されていない場合は、デフォルト値を使用して自動的にチューニング(10.2)
statistics_level
{ALL | TYPICAL | BASIC}
[デフォルト:TYPICAL]
- データベースおよびオペレーティング・システムの統計の収集レベル。
◎レベル
TYPICAL
データベースの自動管理機能で必要とされるすべての主要統計が収集。ALL
TYPICAL
設定を使用して収集される統計よりも多くの統計が収集。BASIC
Oracleデータベース機能で必要とされる多くの重要な統計が収集されない。
query_rewrite_enabled
{ false | true | force }
[デフォルト:optimizer_features_enableが「10.0.0」以上"true"、「9.2.0」以下"false"]
データベースへのクエリー・リライトの使用設定。
クエリー・リライト
応答時に実データを読み取るのではなく、必要な情報が含まれたマテリアライズド・ビューを透過的に読み取る。
使用には
マテリアライズド・ビューが必要。
undo_management
UNDO領域管理モードの指定。
自動にするとロールバックデータをロールバックセグメントではなくUNDO表領域に書き込む。
改行コード
- Windows環境にて作成したファイルをUNIXへFTPすると、改行コードが「^M」で入ってしまい、シェルが正常に起動しないことがある。
- catコマンドで確認すると正常だが、viコマンドで確認すると「^M」が挿入されている。
→FTPにてアップロードする際にアスキーモードにアップロードを行う。
◎転送モード
アスキーモード
ファイルの改行コードを変換してアップロードする。
「テキストベースのファイル」に関してはこのモードでアップロードを行う。
例)".txt",".log"
バイナリモード
ファイルの改行コードを変換せずそのままアップロードする。
「実行形式のファイル」に関してはこのモードでアップロードを行う。
例)"jpg","jif"などの画像ファイル、"zip"などの圧縮ファイル。
2008年1月16日水曜日
spoolファイルのトリミング
set echo off
コンソールメッセージ非表示。
set linesize n
レコード表示のラインサイズ(横幅)。
set pagesize 0
ページ間のセパレータを無くす(縦行での空白を無くす)。
set trimspool on
各行の右側のスペースを削除。
set trimout on
ファイルから実行したコマンドによる出力の表示を抑止。
set feedback off
「~行が選択されました」を非表示。
set colsep ','
カラム間の区切り文字をカンマ','にする。
コンソールメッセージ非表示。
set linesize n
レコード表示のラインサイズ(横幅)。
set pagesize 0
ページ間のセパレータを無くす(縦行での空白を無くす)。
set trimspool on
各行の右側のスペースを削除。
set trimout on
ファイルから実行したコマンドによる出力の表示を抑止。
set feedback off
「~行が選択されました」を非表示。
set colsep ','
カラム間の区切り文字をカンマ','にする。
CRON実行結果出力
・cronの実行結果(出力情報)はデフォルトではcronを実行しているユーザーにメールされる。
※/var/mail/に出力されいる。
◎出力の種類
「1」・・・標準出力
「2」・・・標準エラー出力
例)
ファイルへ出力 2> file
出力しない 1> /dev/null 、>/dev/null 2>&1
※/var/mail/
◎出力の種類
「1」・・・標準出力
「2」・・・標準エラー出力
例)
ファイルへ出力 2> file
出力しない 1> /dev/null 、>/dev/null 2>&1
2008年1月15日火曜日
DBMS_STATS.GATHER_SCHEMA_STATS
■DBMS_STATS.GATHER_SCHEMA_STATS
【スキーマ単位統計情報取得】
exec DBMS_STATS.GATHER_SCHEMA_STATS(
OWNNAME => '分析するスキーマ('NULL'は現行スキーマ)',
ESTIMATE_PERCENT => 'サンプルレート('NULL'は計算)',
BLOCK_SAMPLE => 'ランダンムブロックサンプリングを使用するかどうか',
METHOD_OPT =>
DEGREE => '並列度',
GRANULARITY => '収集する統計情報の細分化',
CASCADE => 'インデックス統計 有無',
STATTAB => '現在の統計情報の保存場所を示すユーザ統計情報の識別子',
STATID => 'STATTAB内の統計情報を関連付ける識別子',
OPTIONS => 'オプション',
OBJLIST => '失効または空と判断されたオブジェクトのリストを戻す',
STAOWN => 'STATTABを含んだスキーマ',
NO_INVALIDATE => '依存カーソルの無効の有無'
FORCE => 'ロックされている場合でも統計情報を収集'
);
◎optionの種類
'GATHER'
すべてのオブジェクト統計情報取得。
'GATHER STALE'
DBA_TAB_MODIFICATIONSのリストから判断。
表にMONITORING属性が指定されていて、なおかつ最後の統計情報取得後に10%以上の更新されたもの。
(MONITORING属性がついていないものと、更新が10%以下のものは対象外)
'GATHER AUTO'
oracleが必要と判断したオブジェクト統計情報を取得。
新しい統計情報を必要とするオブジェクトを暗黙的に判別し、統計情報を収集する。
’GATHER STALE’に加え、MONITORING属性に関係なく統計情報が取得されていない表が対象。
”AUTO”がしてされた場合に有効になる追加パラメータは
"ownname","stattab","statid","objilist","statown"のみ。
'GATHER_EMPTY'
統計情報が存在しないオブジェクトの統計情報を取得。
◎MONITORING属性の確認
select table_name , monitoring from user_tables;
→「monitoring」が”YES”になっているもの。
◎統計情報格納テーブル
select * from aux_stats$;
◎oracle10gからのデフォルト設定について
◎統計情報のロック
スキーマとテーブル単位で設定が可能。
<ロック>
DBMS_STAT.LOCK_SHEMA_STATS ( ownname <スキーマ名>);
DBMS_STAT.LOCK_TABLE_STATS ( ownname <スキーマ名>, tabname);
<ロック解除>
DBMS_STAT.UNLOCK_SHEMA_STATS ( ownname <スキーマ名>);
DBMS_STAT.UNLOCK_TABLE_STATS ( ownname <スキーマ名>, tabname);
例)
DBMS_STATS.GATHER_SCHEMA_STATS (
NULL, →現行のスキーマの統計情報を取得。
NULL, →oracleにてサンプリング率を計算。
FALSE, ランダム行サンプリングの実施。
'AUTO', →列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列を判断。
DBMS_STATS.DEFAULT_DEGREE, →初期化パラメータに基づく並列度を使用。
'DEFAULT', →グローバル、パーティションレベルで統計所法を収集。
TRUE, →索引についても統計情報を取得。
NULL, →統計情報の保存場所。
NULL, →統計情報を関連付ける識別子。
'GATHER AUTO', →必要な統計情報をすべて自動的に集計する。(GATHER AUTOが指定された場合、有効な追加パラメータはownname、stattab、statid、objlistおよびstatownのみ)
NULL,
TRUE,
FALSE
);
- 統計情報収集パッケージ。
- スキーマ単位での統計情報取得とリスト取得の2つの取得が可能。
- テーブル、インデックスが非常に多い場合など、「Analyze」コマンドでの統計情報取得が困難な場合に、スキーマ単位で統計情報を取得できる。
- パラメータ指定時は「パラメータ => '設定値'」の形式で表記。すべてのパラメータについて設定を入力する場合は「設定値」のみで表記。
【スキーマ単位統計情報取得】
exec DBMS_STATS.GATHER_SCHEMA_STATS(
OWNNAME => '分析するスキーマ('NULL'は現行スキーマ)',
ESTIMATE_PERCENT => 'サンプルレート('NULL'は計算)',
BLOCK_SAMPLE => 'ランダンムブロックサンプリングを使用するかどうか',
METHOD_OPT =>
DEGREE => '並列度',
GRANULARITY => '収集する統計情報の細分化',
CASCADE => 'インデックス統計 有無',
STATTAB => '現在の統計情報の保存場所を示すユーザ統計情報の識別子',
STATID => 'STATTAB内の統計情報を関連付ける識別子',
OPTIONS => 'オプション',
OBJLIST => '失効または空と判断されたオブジェクトのリストを戻す',
STAOWN => 'STATTABを含んだスキーマ',
NO_INVALIDATE => '依存カーソルの無効の有無'
FORCE => 'ロックされている場合でも統計情報を収集'
);
◎optionの種類
'GATHER'
すべてのオブジェクト統計情報取得。
'GATHER STALE'
DBA_TAB_MODIFICATIONSのリストから判断。
表にMONITORING属性が指定されていて、なおかつ最後の統計情報取得後に10%以上の更新されたもの。
(MONITORING属性がついていないものと、更新が10%以下のものは対象外)
'GATHER AUTO'
oracleが必要と判断したオブジェクト統計情報を取得。
新しい統計情報を必要とするオブジェクトを暗黙的に判別し、統計情報を収集する。
’GATHER STALE’に加え、MONITORING属性に関係なく統計情報が取得されていない表が対象。
”AUTO”がしてされた場合に有効になる追加パラメータは
"ownname","stattab","statid","objilist","statown"のみ。
'GATHER_EMPTY'
統計情報が存在しないオブジェクトの統計情報を取得。
◎MONITORING属性の確認
select table_name , monitoring from user_tables;
→「monitoring」が”YES”になっているもの。
◎統計情報格納テーブル
select * from aux_stats$;
◎oracle10gからのデフォルト設定について
- 10gからはデフォルト設定にて統計情報を取得する。
- 取得タイミングは月~金(22時~8時)、土日(土曜0時~日曜24時)。
- 上記時間帯でスケジューラ・ジョブのウィンドウがオープンしている。
- 統計のロックを行うと統計情報は更新されない。
- 時計情報が取得されていないもの、前回取得から10%以上行が更新されたものが対象。
- 実行されるプログラムは「dbms.stats.gather_database_stats_job_proc」(「dbms_stats.gather_databse_stats」に’gather auto’オプションをしていした動きと同等)
◎統計情報のロック
スキーマとテーブル単位で設定が可能。
<ロック>
DBMS_STAT.LOCK_SHEMA_STATS ( ownname <スキーマ名>);
DBMS_STAT.LOCK_TABLE_STATS ( ownname <スキーマ名>, tabname
<ロック解除>
DBMS_STAT.UNLOCK_SHEMA_STATS ( ownname <スキーマ名>);
DBMS_STAT.UNLOCK_TABLE_STATS ( ownname <スキーマ名>, tabname
例)
DBMS_STATS.GATHER_SCHEMA_STATS (
NULL, →現行のスキーマの統計情報を取得。
NULL, →oracleにてサンプリング率を計算。
FALSE, ランダム行サンプリングの実施。
'AUTO', →列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列を判断。
DBMS_STATS.DEFAULT_DEGREE, →初期化パラメータに基づく並列度を使用。
'DEFAULT', →グローバル、パーティションレベルで統計所法を収集。
TRUE, →索引についても統計情報を取得。
NULL, →統計情報の保存場所。
NULL, →統計情報を関連付ける識別子。
'GATHER AUTO', →必要な統計情報をすべて自動的に集計する。(GATHER AUTOが指定された場合、有効な追加パラメータはownname、stattab、statid、objlistおよびstatownのみ)
NULL,
TRUE,
FALSE
);
ストレージ関連
◎ストレージ用語
「PCI SUNswift」
1枚のカードで10/100Mbps EtheとFast/Wide SCSIをサポートするPCIアダプタ。
「HBA」(Host Bus Adapter)
サーバをファイバチャネル接続するための必須アダプタカード。各OS用ドライバが必要。OSからはSCSIボードとして認識。
「FCAL」(Fibre Channel-Arbitrated Loop)
トポロジー内に最大127個のノードを接続することが可能なループ型ファイバチャネルネットワーク。接続構成。
「シングル/デュアル」
コントローラの2重化。
■参考サイト
http://www.soi.wide.ad.jp/class/20030038/slides/68/index_70.html
「PCI SUNswift」
1枚のカードで10/100Mbps EtheとFast/Wide SCSIをサポートするPCIアダプタ。
「HBA」(Host Bus Adapter)
サーバをファイバチャネル接続するための必須アダプタカード。各OS用ドライバが必要。OSからはSCSIボードとして認識。
「FCAL」(Fibre Channel-Arbitrated Loop)
トポロジー内に最大127個のノードを接続することが可能なループ型ファイバチャネルネットワーク。接続構成。
「シングル/デュアル」
コントローラの2重化。
■参考サイト
http://www.soi.wide.ad.jp/class/20030038/slides/68/index_70.html
2008年1月11日金曜日
DB物理設計について
『第一にユーザー必要とするレベル!!優先順位は何かを確認する!!』
レスポンス?冗長性?運用の容易さ?何が大事なのか。。。
レスポンス?冗長性?運用の容易さ?何が大事なのか。。。
では、実際の設計時にどんなDBでも必要な事はキャパシティプランニング。
レコード単位でのデータ量、テーブルの特性など正確で情報を把握し、的確なプランニングを行う!!
レコード単位でのデータ量、テーブルの特性など正確で情報を把握し、的確なプランニングを行う!!
- レコード長は?
- 1ブロックに何レコード入る?ブロック内に必要な空き領域は?
- レコード件数÷1ブロックのレコード数=必要なデータ量+テーブル増加予測量=テーブル初期領域
- 表領域の割り当て。 機能単位?同時アクセス?テーブル特性?
- ディスクへの配置。
あとはDBの特性に合わせたデータベース環境構成の設計。
■成果物として作成するものリスト
- データベース定義書
- データベース環境構成定義書
- キャパシティプランニング定義書
- 実装スクリプト
- (CRUD分析表)
登録:
投稿 (Atom)