タグ別アーカイブ: Oracle

[Oracle初心者運用メモ]大文字/小文字、全角/半角区別なしであいまい検索

≪Oracle10gR2からの大文字/小文字、全角/半角区別なしであいまい検索≫

大文字/小文字区別なしの検索は、大文字/小文字変換関数を使用することにより
DBの値,検索文字どちらも大文字(又は小文字)に
変換して検索することで区別なし検索ができます。

全角/半角区別なしの検索は、
Oracle10gR2から
UTL_I18N.TRANSLITERATEという日本語のひらがなとカタカナを変換する機能が提供され、
この機能を使用することでDBの値,検索文字どちらも全角(又は半角)に
変換して検索することで区別なし検索ができます。

 

下記SQLは、大文字/小文字、全角/半角区別なしで部分一致検索です。

select name
from 製品マスタ
where
UTL_I18N.TRANSLITERATE(UPPER(TO_MULTI_BYTE(name)),'kana_fwkatakana')
like '%' || UTL_I18N.TRANSLITERATE(UPPER(TO_MULTI_BYTE( 検索文字 )),'kana_fwkatakana') || '%'

※'kana_fwkatakana'はすべてのタイプの仮名文字を全角カタカナに変換します。

[Oracle初心者運用メモ]一時領域サイズ変更Oracle10g

≪Olacle10gの一時領域サイズ変更≫

前回のブログでOracle11gでの一時領域サイズ変更の内容を書いておりましたが
[Oracle初心者運用メモ]一時領域サイズ変更

今度はOracle10gのDBサーバで
同様にディスク使用量が急激に増えてしまいました。

前回のOracle11gの時と同じようにサイズ変更を行えばいいかな
と軽く考えていたのですが
Oracle11gで実施したサイズ変更コマンドを実行すると
エラーになってしまいました。

調べてみると、Oracle10gで一時領域のサイズを縮小するには
一時領域を新しく作り直す必要があるそうです。

下記の手順でコマンド実行により可能です。
(SPLPLUSを起動して実行)

1.TEMP領域に一時領域を追加
alter tablespace TEMP_AREA_NAME add tempfile ‘新規TEMPファイルパス’ size 500M;

2.追加した一時領域の自動拡張制限を設定しておく
alter database datafile ’新規TEMPファイルパス’ autoextend on maxsize 10000M;

3.既存の一時領域をオフラインにする
alter database tempfile ‘既存TEMPファイルパス’ offline;

4.既存の一時領域を削除する
alter database tempfile ‘既存TEMPファイルパス’ drop including datafiles;
↑↑↑
本当は、これで、物理ファイルも削除されるはず(?)だけど
本番DBサーバでは物理ファイルが削除されていなかったので
Oracleサービス停止して、物理ファイルのみ別途削除を行いました。

※Enterprise Managerでも設定可能です。

 

 

 

 

[Oracle初心者運用メモ]一時領域サイズ変更

 

Oracleマスターなどの資格を持っていない初心者なのですが、
試行錯誤しながら構築-運用を行っています。
その中で困ったことを投稿していきたいと思います。

≪Olacle11gの一時領域サイズ変更≫

DBサーバ(Olacle11g)のディスク使用量が急激に増えたため
調べたところ、Oracleの一時領域ファイル(TEMPファイル)のサイズが
18GBまで増えていました。

一時領域サイズの設定を確認したところ
導入時の初期サイズは500MBで無制限の自動拡張の設定でした。
(無制限の自動拡張はデフォルト設定)

一時領域が増えた原因は今後調べるとして。。
このままだとディスク空き容量がなくなってしまうため
一時領域サイズ縮小と自動拡張の制限設定を実施することになりました。

 

SPLPLUSを起動し、下記のコマンドで対応できます。

1.一時領域サイズ縮小
ALTER TABLESPACE TEMP SHRINK SPACE KEEP 500M;

2.一時領域自動拡張制限サイズ変更
ALTER DATABASE TEMPFILE  ‘TEMPファイルパス’ AUTOEXTEND ON MAXSIZE 5120M;

※Enterprise Managerでも設定可能です。

 

[Oracle初心者運用メモ]Oracle11gパスワード有効期限

 

Oracleマスターなどの資格を持っていない初心者なのですが、
試行錯誤しながら構築-運用を行っています。
その中で困ったことを投稿していきたいと思います。

≪Olacle11gのパスワード有効期限≫

客先のシステムをOracle10gからOracle11gにバージョンアップし
数か月経った頃、
社内にテスト環境として構築していたOracle11gに接続しようとすると
「ORA-28001: パスワードが期限切れです。」のエラーが。。

調べてみると、Oracle11gからパスワードの有効期限はデフォルトで180日と
設定されるということでした。
(Oracle10gまではデフォルトは無期限でした)

 

sysユーザでSPLPLUSを起動し、下記のコマンドで対応できます。

1.デフォルトプロファイルのパスワード有効期限を無期限に設定
alter profile default limit password_life_time unlimited;

2.パスワードを変更
alter user [ユーザID] identified by [パスワード];

3.ロックされている場合は、ロックを解除する
alter user [ユーザID] account unlock;

※Enterprise Managerでも設定可能です。

 

客先の本番環境に構築した時期を確認してみたら
期限切れまであと1ヶ月だったので、
なんとか期限切れエラーが発生するまでに対応できました。