[관리][튜닝] Oracle DB 튜닝하기 -1
1.먼저 각 테이블 스페이스에 대한 데이타 파일의 크기 확인
SVRMGR> select file_name, bytes from dba_data_files;
#주요 테이블 스페이스를 늘린다..
특히 temp 와 rbs 를 집중적으로
temp는 200M rbs는 500M 정도로
# 테이블 스페이스의 크기 조정..
SVRMGR> alter database datafile ‘/home/oracle/oradata/auction/rbs01.dbf’
SVRMGR> resize 500M ;
Statement processed
2.롤백세그먼트정보를 알아본다.
SVRMGR> select * from dba_rollback_segs;
3.롤백세그먼트를 추가 한다.
먼저 롤백 세그먼트의 경합상태를 알아본다.
SVRMGR> select r.name, s.gets, s.waits
2> from v$rollstat s, v$rollname r
3> where s.usn = r.usn;
롤백세그먼트를 생성한다.
SVRMGR> create rollback segment r05 tablespace rbs;
Statement processed.
롤백세그먼트를 ONLINE 한다.
SVRMGR> alter rollback segment r05 online;
롤백세그먼트를 init.ora(initORCL.ora) 에 추가 한다.
4. log 파일을 추가한다.
먼저 archive log mode 로 변환한다.
initORCL.ora 에 다음을 추가한다.
log_archive_start = true
log_archive_dest = $ORACLE_HOME/dbs/arch log_archive_format = “T%TS%S.ARC”
SVRMGR> startup mount;
SVRMGR> alter database archivelog;
SVRMGR> alter database open;
SVRMGR> archive log list;
로그 파일 추가 및 크기 변경
EDO LOG FILE SIZE의 변경 또는 추가
===================================
* Oracle에서 사용 중인 REDO Log file은 V7에서는 Default로 Size가 512K인
3개의 REDO Log file이 생긴다.
DB를 이용하는 Application의 특성에 따라 REDO Log file의 수를 늘리거나 REDO Log file의 Size를 크게 할 필요가 있다. REDO Log file의 Size를 변경
하거나 수를 늘리는 것은 아래와 같은 방법을 이용한다.
– REDO Log file의 Size 변경
(1) V$Log와 V$Logfile을 이용해 어느 것이 Current Log인지 또한 각 Log file의 Data file 명인지를 확인한다.
SQLDBA> select * from v$log;
(7.3이상인 경우는 SQLDBA가 아니고 SVRMGR)
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHAN
—— ——- ——— —— ——– — ——– ———- FIRST_TIME
——————
1 1 55 512000 1 NO CURRENT 65081
2/06/95 19:32:57
2 1 53 512000 1 NO INACTIVE 64111
1/21/95 11:06:14
3 1 54 512000 1 NO INACTIVE 64801
1/21/95 11:41:44
3 rows selected.
SQLDBA> select * from v$logfile;
GROUP# STATUS MEMBER
——– ——- ————————————————
1 /usr4/ora713/dbs/log1ORA713.dbf
2 /usr4/ora713/dbs/log2ORA713.dbf
3 /usr4/ora713/dbs/log3ORA713.dbf
3 rows selected.
(2) V$Logfile에서 확인된 Inactive Log file을 먼저 아래의 Command를 이용
해 Log file을 Drop한다. 정상적으로 Drop되면 Host Command를 이용해 Datafile을 Remove한다.
SQLDBA> alter database drop logfile
‘/usr4/ora713/dbs/log2ORA713.dbf’;
Statement processed.
SQLDBA> !rm /usr4/ora713/dbs/log2ORA713.dbf
(3) Oracle V7에서는 Default로 3개의 REDO Log file이 생기는데 최소한 2개
이상의 REDO Log file이 필요하다. 즉 위의 (3)과 같이 2번째 Log file을 Drop 하였으므로 Log file은 2개만 남아 있는데 1개를 또 Drop하고자 하니 아래와 같이 Ora-1567 & Ora-1532 Error가 발생한다. 이 때에는 다음과 같이 Log file의 Size를 크게 하여 이미 Drop된 2번 Logfile을 Add한 후 Drop하여야 한다.
SQLDBA> alter database drop logfile
‘/usr4/ora713/dbs/log3ORA713.dbf’;
ORA-01567:dropping log 3 would leave less than 2 log files in thread 1 ORA-00312:online log 3 thread 1:’/usr4/ora713/dbs/log3ORA713.dbf’
(4) Drop한 Log file을 추가한 후에 Drop 한다. Logfile Add 시 여기에서는 3m로 정의하여 크기를 조정하였다.
SQLDBA> alter database add logfile
‘/usr4/ora713/dbs/log2ORA713.dbf’ size 3M; Statement processed.
SQLDBA> alter database drop logfile
‘/usr4/ora713/dbs/log3ORA713.dbf’;
Statement processed.
SQLDBA> !rm /usr4/ora713/dbs/log3ORA713.dbf
(5) (4)에서 Drop된 3번 Logfile을 Add한다.
SQLDBA> alter database add logfile
‘/usr4/ora713/dbs/log3ORA713.dbf’ size 3M; Statement processed.
(6) V$Log에서 Current Logfile은 바로 Drop할 수 없다. 이를 Drop하기 위해
서는 현재의 Current Logfile을 Inactive로 하여야 한다. Inactive로 하려면 ‘Alter System Switch Logfile’ Command를 이용하여야 한다.
SQLDBA> alter system switch logfile;
Statement processed.
(7) INAVTIVE가 되었으면 다음과 같이 Logfile을 Drop하고 Datafile 의 Remove후 Logfile의 Size를 변경하여 Add한다.
SQLDBA> alter database drop logfile
‘/usr4/ora713/dbs/log1ORA713.dbf’;
Statement processed.
SQLDBA> !rm /usr4/ora713/dbs/log1ORA713.dbf
SQLDBA> alter database add logfile
‘/usr4/ora713/dbs/log1ORA713.dbf’ size 3M; Statement processed.
(8) (1)에서 (7) 까지는 기존의 Log file을 Drop 후 새로이 만드는 것에 관한 설명이며 이외 기존에 3개 Log file을 4개로 변경할 경우에는 아래와 같이 Logfile을 필요한 갯수 만큼 Add하면 된다.
SQLDBA> alter database add logfile
‘/usr4/ora713/dbs/log4ORA713.dbf’ size 3M; Statement processed.
이상입니다.