블로그 이미지
꿈을 꾸는 꾸러기 YBHoon

카테고리

분류 전체보기 (81)
Oracle (71)
운영체제 (7)
ETC (0)
Study (3)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

태그목록

최근에 올라온 글

'Oracle'에 해당되는 글 71건

  1. 2010.03.24 Oracle 11g on RHEL 4
  2. 2010.03.24 Tuning - SQL Trace
  3. 2010.03.23 Tuning - SQL 처리 구조 & Autotrace
  4. 2010.03.23 11g on RHEL4
  5. 2010.03.22 RHEL 4에 Oracle 9i 설치하기
  6. 2010.03.22 Tuning
  7. 2010.03.22 Oracle Client & DB Link
  8. 2010.03.18 Backup - RMAN
  9. 2010.03.18 Recovery - Flashback
  10. 2010.03.16 Backup - Datapump

1. 초기 파티션 설정시 /(root 디렉토리)를 5000이 아닌 10000으로 준다.


2. 이미 파티션이 지정되어 1번으로 하기 힘들 경우

VMware에서 별도의 하드(10G 이상?)를 추가하면 된다.


# fdisk -l  (VMware에 하드를 추가한 후에 내용 파악)

# fdisk /dev/sdb (파티션 나누기)
n, p, 1, , , w (질문에 왼쪽의 순서대로 입력 ; 빈칸은 엔터)

# mkfs.ext3 /dev/sdb1 (포맷하기)

# mkdir /u01 (루트에 u01이란 폴더를 만들어서 연결시킬 경우)
# mount /dev/sdb1 /u01

# vi /etc/fstab ; (파일에 아래 내용 추가)
/dev/sdb1          /u01          ext3       defaults      1 2

# df -h ; 상태 보기

 

 

- 메모리 추가 (운영체제가 일부 메모리를 사용하므로 약간의 용량 추가 필요)


VMware에서 1024MB로 설정된 메모리를 1280MB로 변경시켜줄 것

=> swap은 메모리의 1.5배 이상이면 되므로 그대로 2048MB 사용하면 됨

 

 

- 하드웨어 요구사항 (기본적으로 되어 있음)

 

1. 최소 1기가 이상의 /tmp 디렉토리 공간
2. 1024 x 768 이상의 화면 해상도

 

 

- 운영체제 최소 요구 사항

 

Red Hat Enterprise Linux 4 Update 7
Red Hat Enterprise Linux 5 Update 2

 

 

- Kernel Requirements

 

Red Hat Enterprise Linux 4: 2.6.9 이상
Red Hat Enterprise Linux 5: 2.6.18이상

 

# uname -r


- 불필요한 서비스 제거

chkconfig --level 123456 xinetd off
chkconfig --level 123456 sendmail off
chkconfig --level 123456 cups off
chkconfig --level 123456 cups-config-daemon off
chkconfig --level 123456 smartd off
chkconfig --level 123456 isdn off
chkconfig --level 123456 pcmcia off
chkconfig --level 123456 iptables off
 

- 패키지 요구사항 (3개의 패키지를 추가 설치해야 함)


binutils-2.15.92.0.2
compat-libstdc++-33-2.3
elfutils-libelf-0.97
elfutils-libelf-devel-0.97
gcc-3.4.6
gcc-c++-3.4.6
glibc-2.3.4-2.41
glibc-common-2.3.4
glibc-devel-2.3.4
glibc-headers-2.3.4
libaio-devel-0.3.105 => 없음
libaio-0.3.105
libgcc-3.4.6
libstdc++-3.4.6
libstdc++-devel-3.4.6
make-3.80
pdksh-5.2.14
sysstat-5.0.5 => 없음
unixODBC-2.2.11
unixODBC-devel-2.2.11 => 없음

 

1. 패키지 체크 (설치가 안된 것은 별도로 설치해야 함)

# rpm -q binutils-* compat-libstdc++-33-* elfutils-libelf-* elfutils-libelf-devel-* gcc-* gcc-c++-* glibc-2.3.4-* glibc-common-* glibc-devel-* glibc-headers-* libaio-devel-* libaio-* libgcc-* libstdc++-* libstdc++-devel-* make-* pdksh-* sysstat-* unixODBC-* unixODBC-devel-*

 

2. 추가 패키지 설치

# cd /media/cdrom/RedHat/RPMS/

# rpm -ivh libaio-devel-0.3.105-2.i386.rpm
# rpm -ivh sysstat-5.0.5-25.el4.i386.rpm
# rpm -ivh unixODBC-devel-2.2.11-1.RHEL4.1.i386.rpm
# cd /
# eject (리눅스 CD 제거)

 

 

- 그룹 및 유저생성 (그룹을 세분화할 것을 오라클이 권고함)

# groupadd oinstall
# groupadd -g 502 dba (OSDBA 그룹 - 필수)
# groupadd -g 503 oper (OSOPER 그룹 - 필수)
# groupadd -g 504 asmadmin (OSDBA 그룹 - Grid 환경)
# groupadd -g 505 asmoper (OSOPER 그룹 - Grid 환경)
# groupadd -g 506 asmdba (OSASM 그룹 - Grid 환경)
# useradd -u 502 -g oinstall -G dba,asmdba,oper,asmadmin,asmoper oracle

# passwd oracle

 

 

- 환경 변수 설정

 

# vi /etc/security/limits.conf

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536

 

# vi /etc/pam.d/login

session    required     pam_limits.so

 

# vi /etc/profile

if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
umask 022
fi

 

# vi /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
# net.ipv4.ip_local_port_range = 1024 65000 (R1의 경우)
net.ipv4.ip_local_port_range = 9000 65500 # (R2의 경우)
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

 

 

- 설치 파일 복사

 

# cp -av /media/cdrom/* /home/oracle
# chown -R oracle.oinstall /home/oracle
# chmod 777 /home/oracle

 

 

- 설치 관련 디렉토리 생성 (/home/oracle이 아닌 /u01/app/oracle에 설치하기 위함)

 

# mkdir -p /u01
# chown -R oracle.oinstall /u01
# chmod 777 /u01

 

 

- patch

 

설치전 p4198954_40_linux.zip 패치를 할 것

 

 

- 오라클 유저로 접속 후 변경

 

$ vi .bash_profile

export DISPLAY=:0.
export JAVA_HOME=/usr/java/jdk1.6.0_20
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11g
export EDITOR=vi
export ORACLE_SID=testdb
export ORACLE_TERM=xterm
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$JAVA_HOME/bin:$PATH:$ORACLE_HOME/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

'Oracle > Installation' 카테고리의 다른 글

RHEL 5 + 11g R2  (0) 2010.06.03
DB 수동설치  (0) 2010.04.26
11g on RHEL4  (0) 2010.03.23
RHEL 4에 Oracle 9i 설치하기  (0) 2010.03.22
Solaris 10에 DBCA를 활용한 Oracle 10g 설치  (1) 2010.03.11
Posted by YBHoon
, |

Tuning - SQL Trace

Oracle/Tuning / 2010. 3. 24. 11:43


- Autotrace와는 별개로 별도의 세팅이 필요하며 즉시 볼 수 없으며 덤프 파일이 0생성됨
=> 다른 사람의 사용 내역도 추적할 수 있음

$ cd /home/oracle/admin/testdb/udump/
$ mkdir backup
$ mv *.trc backup/

SQL> conn scott/tiger
Connected.
SQL> alter session set sql_trace=true;
alter session set sql_trace=true
*
ERROR at line 1:
ORA-01031: insufficient privileges

SQL> conn / as sysdba
Connected.
SQL> grant alter session to scott;

Grant succeeded.

SQL> conn scott/tiger
Connected.
SQL> alter session set sql_trace=true;

Session altered.

- 덤프 파일 내용

=====================
PARSING IN CURSOR #1 len=17 dep=0 uid=54 oct=3 lid=54 tim=1239642295151919 hv=1745700775 ad='299a3ddc'
select * from emp
END OF STMT
PARSE #1:c=248962,e=415408,p=22,cr=366,cu=0,mis=1,r=0,dep=0,og=1,tim=1239642295151916
EXEC #1:c=0,e=14,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=1239642295152659
FETCH #1:c=1000,e=852,p=0,cr=7,cu=0,mis=0,r=1,dep=0,og=1,tim=1239642295153560
FETCH #1:c=0,e=25,p=0,cr=1,cu=0,mis=0,r=13,dep=0,og=1,tim=1239642295154613
STAT #1 id=1 cnt=14 pid=0 pos=1 obj=51148 op='TABLE ACCESS FULL EMP (cr=8 pr=0 pw=0 time=845 us)'

=> 보기가 힘들어서 TKPROF라는 툴을 사용해서 봄

$ tkprof testdb_ora_4394.trc abc.txt explain=scott/tiger sys=no (scott의 결과만 recursive는 제외)

select *
from
 emp


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.04       0.08          2          2          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        2      0.00       0.00          0          8          0          14
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        4      0.04       0.08          2         10          0          14

Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 54  (SCOTT)

Rows     Row Source Operation
-------  ---------------------------------------------------
     14  TABLE ACCESS FULL EMP (cr=8 pr=0 pw=0 time=845 us)


Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   MODE: ALL_ROWS
     14   TABLE ACCESS (FULL) OF 'EMP' (TABLE)

********************************************************************************

OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.04       0.08          2          2          0           0
Execute      2      0.00       0.00          0          0          0           0
Fetch        2      0.00       0.00          0          8          0          14
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        5      0.04       0.08          2         10          0          14

Misses in library cache during parse: 1 => hard parsing
Misses in library cache during execute: 1


OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse       17      0.03       0.04          0          0          0           0
Execute    124      0.13       0.14          0          0          0           0
Fetch      141      0.03       0.14         20        364          0         465
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total      282      0.20       0.32         20        364          0         465

Misses in library cache during parse: 15
Misses in library cache during execute: 15

    3  user  SQL statements in session.
  123  internal SQL statements in session.
  126  SQL statements in session.
    2  statements EXPLAINed in this session.
********************************************************************************
Trace file: testdb_ora_4394.trc
Trace file compatibility: 10.01.00
Sort options: default

       1  session in tracefile.
       3  user  SQL statements in trace file.
     123  internal SQL statements in trace file.
     126  SQL statements in trace file.
      17  unique SQL statements in trace file.
       2  SQL statements EXPLAINed using schema:
           SCOTT.prof$plan_table
             Default table was used.
             Table was created.
             Table was dropped.
    1074  lines in trace file.
      32  elapsed seconds in trace file.

'Oracle > Tuning' 카테고리의 다른 글

Tuning - Instance Tuning  (0) 2010.03.30
Tuning - 최적 경로 계산  (0) 2010.03.29
Tuning - Index  (0) 2010.03.26
Tuning - SQL 처리 구조 & Autotrace  (0) 2010.03.23
Tuning  (0) 2010.03.22
Posted by YBHoon
, |


- SQL 수행은 server process가 진행하나 계획은 optimizer가 세움

- 전체 범위 처리 ; 기본적으로 한번에 하나의 데이터씩 fetch하는 것이 아니라 한번에 전체를 한꺼번에 fetch함
- 부분 범위 처리 ; 일정한 조건이 되면 전체가 채워지지 않아도 fetch를 함

- OWI ; 부분적으로 나눠서 흐름 상에 장애를 분석하는 기술

- Cursor ; 메모리 상의 가상공간

> select s.name, d.dname
from student s, department d
where s.deptno=d.deptno;


NAME       DNAME
---------- ----------------
전인하     컴퓨터공학과
이동훈     전자공학과
박미경     컴퓨터공학과
김영균     컴퓨터공학과
박동진     전자공학과
김진영     멀티미디어학과
지은경     컴퓨터공학과
오유석     멀티미디어학과
하나리     멀티미디어학과
임유진     컴퓨터공학과
서재진     컴퓨터공학과
윤진욱     멀티미디어학과
이광훈     컴퓨터공학과
김진경     전자공학과
조명훈     전자공학과
류민정     컴퓨터공학과

16 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 120585980

---------------------------------------------------------------------------------
| Id  | Operation          | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |            |    16 |   688 |     7  (15)| 00:00:01 |
|*  1 |  HASH JOIN         |            |    16 |   688 |     7  (15)| 00:00:01 |
|   2 |   TABLE ACCESS FULL| DEPARTMENT |     7 |   161 |     3   (0)| 00:00:01 |
|   3 |   TABLE ACCESS FULL| STUDENT    |    16 |   320 |     3   (0)| 00:00:01 |
---------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - access("S"."DEPTNO"="D"."DEPTNO")

Note
-----
   - dynamic sampling used for this statement


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
         15  consistent gets
          0  physical reads
          0  redo size
        929  bytes sent via SQL*Net to client
        396  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         16  rows processed

'Oracle > Tuning' 카테고리의 다른 글

Tuning - Instance Tuning  (0) 2010.03.30
Tuning - 최적 경로 계산  (0) 2010.03.29
Tuning - Index  (0) 2010.03.26
Tuning - SQL Trace  (0) 2010.03.24
Tuning  (0) 2010.03.22
Posted by YBHoon
, |

11g on RHEL4

Oracle/Installation / 2010. 3. 23. 01:10

-
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

- /etc/profile
if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
umask 022
fi

- .bash_profile
export ORACLE_BASE=/app/oracle/
export ORACLE_HOME=$ORACLE_BASE/product/11g

/home 을 ORACLE_HOME으로 사용하지 않도록 경고함

'Oracle > Installation' 카테고리의 다른 글

DB 수동설치  (0) 2010.04.26
Oracle 11g on RHEL 4  (0) 2010.03.24
RHEL 4에 Oracle 9i 설치하기  (0) 2010.03.22
Solaris 10에 DBCA를 활용한 Oracle 10g 설치  (1) 2010.03.11
Oracle 10g, Red Hat 4에 설치하기  (0) 2010.03.11
Posted by YBHoon
, |


compat-libstdc++-33-3.2.3-46.1 => compat-libstdc++-33-3.2.3-47.3
openmotif21-2.1.30-8.i386.rpm => openmotif21-2.1.30-11.RHEL4.6
java-1.4.2-gcj-compat-1.4.2.0-26jpp => java-1.4.2-gcj-compat-1.4.2.0-27jpp
nss_db-compat-2.2-28 => nss_db-compat-2.2-29
gnome-libs-1.4.1.2.90-44.1.i386.rpm => gnome-libs-1.4.1.2.90-44.1
xorg-x11-deprecated-libs-devel-6.8.1-23.EL.i386.rpm => xorg-x11-deprecated-libs-devel-6.8.2-1.EL.63
libaio-0.3.102-1 => libaio-0.3.105-2
libaio-devel-0.3.102-1 => libaio-devel-0.3.105-2

-
# groupadd -g 5000 dba
# useradd -g dba oracle
# passwd oracle
# cat /etc/passwd

-
# vi /etc/sysctl.conf

kernel.shmall=2097152
kernel.shmmax=536870912
kernel.shmmnl=4096
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ip4v.ip_local_port_range=1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144

-
# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536


-
# vi /etc/pam.d/login

session required pam_limits.so


-
# vi /etc/ld.so.conf

/lib
/usr/lib
/usr/local/lib


-
$ vi .bash_profile

export EDITOR=vi
export LD_ASSUME_KERNEL=2.4.19
export JAVA_HOME=/usr/java/jdk1.6.0_20
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9i
export ORACLE_OWNER=oracle
export ORACLE_SID=testdb
export LANG=ko_KR.eucKR
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$JAVA_HOME/bin:$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/JRE/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

-

$ mkdir /home/oracle/database
$ mkdir /home/oracle/patch
$ mkdir /home/oracle/patchset
$ cp p4198954_21_LINUX.zip /home/oracle/patch
$ cp ship_9204_linux_disk1.cpio /home/oracle/database
$ cp ship_9204_linux_disk2.cpio /home/oracle/database
$ cp ship_9204_linux_disk3.cpio /home/oracle/database
$ cp p4547809_92080_LINUX.zip /home/oracle/patchset


-


-
$ cpio -idmv < ship...

-
export LANG=c

-
./runInstaller

- DBCA Error
$ vi /opt/oracle/product/9i/bin/dbca
:123
$JRE_DIR/bin/jre -native -DORACLE_HOME

'Oracle > Installation' 카테고리의 다른 글

Oracle 11g on RHEL 4  (0) 2010.03.24
11g on RHEL4  (0) 2010.03.23
Solaris 10에 DBCA를 활용한 Oracle 10g 설치  (1) 2010.03.11
Oracle 10g, Red Hat 4에 설치하기  (0) 2010.03.11
VMware에 Solaris 10 설치하기  (0) 2010.03.09
Posted by YBHoon
, |

Tuning

Oracle/Tuning / 2010. 3. 22. 12:44

- H/W 튜닝

- server sizing ; 동시 접속수에 따라 용량, 속도 등을 계산함 => 품의서 작성에 활용

- SQL 튜닝

'Oracle > Tuning' 카테고리의 다른 글

Tuning - Instance Tuning  (0) 2010.03.30
Tuning - 최적 경로 계산  (0) 2010.03.29
Tuning - Index  (0) 2010.03.26
Tuning - SQL Trace  (0) 2010.03.24
Tuning - SQL 처리 구조 & Autotrace  (0) 2010.03.23
Posted by YBHoon
, |

- DB 서버에 접속하기 위해 필요한 프로그램

- N-tier

- Middleware

- Net 8 ; Client와 Server를 연결(중계)해주는 역할 (일종의 프로토콜)
=> Oracle Clinent를 설치하면 Net 8이 설치됨 / client에 설치 됨
=> tnsnames.ora ; DB 서버에 관한 주소록 (접속하고자 하는 서버의 목록을 넣어 둠)
=> 1. ip, 2. port, 3. SID 확인하여 server 접속

- listener ; server에서 client와의 연결을 돕는 프로그램으로 초기 접속시에만 관여함
=> listener.ora ; user process가 요구한 SID를 확인하여 server process와 연결시킴
=> 기존에 접속된 프로세스는 listener가 필요하지 않음 / 프로그램이 종료되어 다시 접속할 때는 필요
=> fork ; 여러개가 복제되어 사용됨

- tnsname.ora ; 텍스트 파일로 수정 가능
$ tnsping testdb2

- listener.ora ; 2GB가 될 경우 다운됨 => 지우지 않고 사이즈를 0으로 만들어줘야 함
$ echo /dev/null > /home/oracle/product/10g/network/admin/listener.ora
$ ls -lsh /home/oracle/product/10g/network/admin/listener.ora

- DB link ; 접속하고자 하는 서버에 tnsnames.ora에 정보가 등록되어야 함
> create public database link testdb2_scott => public은 모든 사용자가 사용 / 없으면 생성한 유저만 사용
connect to scott identified by tiger
using 'testdb2';

- 버전이 달라도 DB Link는 가능 (버전이 높은 곳에 tnsname.ora를 설정해야 함)

- DDL은 사용할 수 없음

'Oracle > Administration' 카테고리의 다른 글

Admin - Inegrity  (0) 2010.03.03
Admin - Index  (0) 2010.03.03
Admin - Table  (0) 2010.03.02
Admin - Undo  (0) 2010.03.02
Admin - Tablespaces & Datafiles  (0) 2010.02.25
Posted by YBHoon
, |


- RAC를 운영하기 위해 ASM을 사용함 => ASM의 백업은 RMAN을 사용

- open 상태에서는 archive mode 상태에서 백업 받아야함

- 전체 블록 대신 사용하는 블록만 백업을 받을 수 있음 (용량 절약)

- 증분 백업 ; 변경된 부분만 백업받기 가능

- 분할 백업 ; 용량을 분할하여 백업받기 가능

- 복구 카달로그 ; 백업할 내용이 어디에 있는지를 저장

- 채널 ; 백업을 받는 장소

- 접속하는 방법
$ su - ; root 접속
# which rman ; rman이 있는 위치
# cp /home/oracle/product/10g/bin/rman /usr/x11R6/bin/rman ; 실행 가능 파일을 rman 위치로 복사
# exit
$ rman target /
> congifure default device type to disk;

- 파일 크기가 2GB를 넘어가면 성능이 떨어짐 (특히 UNIX 환경) ; 백업 피스로 분할해서 백업하면 됨

- 차등 증분 백업 ; 이전의 백업받은 내용이 현재의 백업 레벨보다 낮거나 같을 경우 앞으로 가지 않고 그 시점에서 백업

- 누적 증분 백업 ; 현재의 레벨보다 작을 경우에만 그 시점에서 백업, 그렇지 않을 경우 이전 백업 레벨로 감

- 백업 문제 실수 ; 채널을 3개 할당했으나 백업 과정에서 지정하지 않아서 오류 발생
run {
allocate channel c1 device type disk maxpiecesize = 10M;
allocate channel c2 device type disk maxpiecesize = 10M;
allocate channel c3 device type disk maxpiecesize = 10M;
backup taplespace sysaux
format '/data/backup/rman/%d_%p_%t'; => 채널 지정이 안됨
backup taplespace example
format '/data/backup/close/%d_%p_%t'; => 채널 지정이 안됨
backup taplespace system
format '/data/backup/open/%d_%p_%t'; => 채널 지정이 안됨
}

- 문제 정답
run {
allocate channel c1 device type disk maxpiecesize = 10M;
allocate channel c2 device type disk maxpiecesize = 10M;
allocate channel c3 device type disk maxpiecesize = 10M;
backup
tablespace sysaux channel c1
format '/data/backup/rman/%d_%p_%t'
taplespace example channel c2
format '/data/backup/close/%d_%p_%t'
taplespace system channel c3
format '/data/backup/open/%d_%p_%t';
}

- 백업 복구 문제 1
run {
allocate channel c1 device type disk
maxpiecesize=500M;
backup database channel c1
format '/data/backup/rman/%d_%p_%t';
}

- 백업 복구 문제 2
$ rman target /
> startup mount
> report schema;
using target database control file instead of recovery catalog
Report of database schema

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    490      SYSTEM               ***     /data/temp1/system01.dbf
3    250      SYSAUX               ***     /data/temp1/sysaux01.dbf
4    11       USERS                ***     /data/temp1/users01.dbf
5    100      EXAMPLE              ***     /data/temp1/example01.dbf
6    20       INSA                 ***     /data/temp1/insa01.dbf
7    10       UNDO                 ***     /data/temp1/undo01.dbf

> run {
restore datafile 4; => 전체를 복원할 경우 restore database
recover datafile 4; => 전체를 복구할 경우 recover database
alter database open; => mount만 시켰으므로 open시킴
}

- 백업 복구 문제 3
> run {
sql 'alter tablespace user offline immediate'; => 복구할 tblspace를 먼저 off시킴 
set newname for datafile 4 to '/data/temp/user01.dbf';
restore datafile 4;
switch datafile 4;
recover datafile 4;
sql 'alter tablespace users online'; => 복구한 tblspace를 on함
}

- redo log 문제
alert_testdb.log에서 장애 직전의 시퀀스 번호 확인
$ cd /home/oracle/admin/testdb/bdump

> run {
set until sequence 시퀀스번호 thread 1;
alter database mount;
restore databae;
recover database;
alter database open resetlogs;
}

-
run {
sql 'alter session set nls_dataformat="YYYY-MM-DD:HH24:MI:SS"'; => 한국내의 날짜 시간 세팅과 다르므로 맞춰야 함
set until time='2010-03-19:12:47:23';
restore database;
recover database;
alter database open resetlogs;
}

'Oracle > Backup & Recovery' 카테고리의 다른 글

Data Recovery  (0) 2010.04.20
RMAN  (0) 2010.04.15
Recovery - Flashback  (0) 2010.03.18
Backup - Datapump  (0) 2010.03.16
Backup - DB Cloning  (0) 2010.03.16
Posted by YBHoon
, |

- 논리적인 장애에 대한 복구 방법 (복구가 안되는 경우도 있음 ; 불완전복구 - 대부분 복구 가능)

- 3가지 종류 ; DB, Table, Row
=> Row Level ; 특정 Row만 원하는 시점으로 복구할 수 있음
=> Table Level ; 특정 Table만 원하는 시점으로 복구할 수 있음
=> DB Level ; 모든 Table을 원하는 시점으로 복구할 수 있음 - truncate table, drop user (기본 off 모드)

- undo data를 활용함 / undo가 덮어씌였을 경우 복구 불가

- flashback log를 이용해 복구함 (10g 설치시 초기에 2GB 할당)
=> flashback log 파일이 오히려 문제를 일으킬 수 있음

- version query ; 예전 값을 확인하는 쿼리 => 누구나 사용 가능

- transaction query ; 예전 값으로 복원하는 쿼리 => 권한을 두어 제한함

- 사용 안되는 경우
=> external table, temp table, fixed table, cluster, view
=> DDL로 구조가 바뀐 경우
=> undo retention
=> commit을 안한 경우 ; 잘못된 commit을 수정하기 위함

- 휴지통은 stack 구조이므로 나중에 지워진 것이 먼저 복구됨

- DB leve 요구사항
=> parameter file에서 on 시켜야함
=> archive mode on
=> DB는 mount 상태여야 함

'Oracle > Backup & Recovery' 카테고리의 다른 글

RMAN  (0) 2010.04.15
Backup - RMAN  (0) 2010.03.18
Backup - Datapump  (0) 2010.03.16
Backup - DB Cloning  (0) 2010.03.16
Backup - export & import  (0) 2010.03.15
Posted by YBHoon
, |

- export vs. datadump

export datadump
저속 고속
분할불가 분할가능
시간예측불가 시간예측가능
일시정지불가 일시정지가능

- 10g 이상에서만 가동

- HDD에 직접 액세스 불가

- 병렬 처리를 위해 최소 3개의 CPU 필요 ; 2개는 작업, 1개는 작업 분할 (짝수로 장착하므로 4개 이상)

'Oracle > Backup & Recovery' 카테고리의 다른 글

Backup - RMAN  (0) 2010.03.18
Recovery - Flashback  (0) 2010.03.18
Backup - DB Cloning  (0) 2010.03.16
Backup - export & import  (0) 2010.03.15
Recovery - Control File  (0) 2010.03.15
Posted by YBHoon
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함