2014年8月19日火曜日

[Oracle] Undo表領域を縮小(再作成)する方法

OracleのUndo表領域は放っておくとどんどん大きくなってしまうようで、
私が取り扱っている環境でも30GB超になっていました。

よって縮小(というか再作成)する方法を覚書。


1) Undo表領域の情報を確認
SELECT TS.TABLESPACE_NAME, DF.FILE_NAME FROM DBA_TABLESPACES TS
INNER JOIN DBA_DATA_FILES DF
ON TS.TABLESPACE_NAME = DF.TABLESPACE_NAME
WHERE CONTENTS = 'UNDO'
ORDER BY DF.FILE_ID;

2) 一時的にUndo表領域を作成(サイズは適当に)
CREATE UNDO TABLESPACE temp_undotbs
DATAFILE 'dbfファイルのパス'
SIZE 100M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

3) 手順2で作成したUndo表領域に切り替え
ALTER SYSTEM SET UNDO_TABLESPACE = 'temp_undotbs';

4) 手順1で確認したUndo表領域を削除
DROP TABLESPACE undotbs1;

5) Undo表領域を再作成(サイズは適当に)
CREATE UNDO TABLESPACE undotbs1
DATAFILE 'dbfファイルのパス'
SIZE 1024M REUSE AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

6) 再作成したUndo表領域に切り替え
ALTER SYSTEM SET UNDO_TABLESPACE = 'undotbs1';

7) 一時的に作成したUndo表領域を削除
DROP TABLESPACE temp_undotbs;


8) 一時作成したtemp_undotbsのデータファイルはOS上に残ってしまうようなので
   手動で削除(Windowsの場合はOracleの再起動が必要?)

2014年8月15日金曜日

[Oracle] ユーザーに設定されているデフォルト表領域を削除したらどうなるか試してみた

一度、表領域を削除する(かもしれない)要件に出くわしたので
ローカル環境でどうなるかテストしてみました。

1) 表領域の作成
CREATE TABLESPACE tbs_test
DATAFILE 'tbs_test.dbf' SIZE 3M REUSE
LOGGING
ONLINE;

2) ユーザーの作成
CREATE USER test_user
IDENTIFIED BY password
DEFAULT TABLESPACE tbs_test;

-- 権限は適当に付与

3) 表領域の削除
DROP TABLESPACE tbs_test
INCLUDING CONTENTS
CASCADE CONSTRAINTS;

-- 削除は成功する

4) TEST_USERのデフォルト表領域確認
SELECT DEFAULT_TABLESPACE FROM DBA_USERS
WHERE USERNAME = 'test_user';

-- デフォルト表領域はtbs_testのまま

5) 表領域の指定なしでテーブルを作成してみる
CREATE TABLE test_user.test_table (
  column1 NUMBER
);

-- ORA-00959: 表領域'tbs_test'は存在しません。


なんか、Oracle Masterの試験に出てきそうな内容ですが
せっかく試してみたので覚書。

2014年8月8日金曜日

[Windows] GodModeが地味に便利

ググれば簡単に出てくる情報ですが、コントロールパネルの
強化版のような「GodMode」という隠し機能が便利。

手順:
 1. 任意の場所(デスクトップ等)でフォルダを新規作成
 2. フォルダの名前を xxxxx.{ED7BA470-8E54-465E-825C-99712043E01C} とする
 ※「xxxxx」の部分は表示される名前になるので、「GodMode」など任意でよい


○○の設定はコンパネのどこにあったっけ?といった場合に
GodModeを開いて検索をかければ大体ヒットします。

















なお、ご利用は自己責任で。
うかつに設定をいじって元に戻らなくなった、なんてこともありえますからね~

2014年8月1日金曜日

[Oracle] 資格取得の参考サイト

同僚からOracle Masterの勉強で参考になるサイトない?と
聞かれたので、持っていた情報を覚書。

■ Oracle Master Bronze
 - SQL基礎I
 http://www.atmarkit.co.jp/ait/articles/0505/12/news124.html

 - DBA

 - 模擬試験(Oracle10g)

■ Oracle Master Silver

■ Oracle Master Gold


個人的には参考書買ったほうが早いと思いますが。