1. $ORACLE_HOME 하위 파일 삭제

 

2. /etc 에 oraInst.loc , oratab 삭제

 

3. /usr/local/bin/oraenv 삭제

 

4. /tmp 에 관련 파일 삭제

 

5. oracle 관련 계정 삭제

 

6. oracle 관리 계정 홈디렉토리 삭제

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

Putty에서 한글 입력시 깨짐 현상 해결(in linux)  (0) 2013.08.07
Redo Log File, Data File 조회 SQL  (0) 2013.07.18
Alert Log 보며 작업하기  (0) 2013.07.16
by 짱구를꼭말려 2013. 8. 12. 23:38

mount: mount point /mnt/cdrom does not exist  (cdrom 디렉토리가 없어서 나오는 에러)

 

#cd /      최상위 루트로 가라 (여기서 루트는 /root 가 아닌 / 를 말함)

#cd  mnt          mnt 디렉토리로 가라

#mkdir cdrom   cdom 디렉토리만들라

#mount /dev/cdrom mnt/cdrom    /dev/cdrom 장치를 /mnt/cdrom 디렉토리로 마운트 하라!

# cd cdrom

#ls  -al          시디롬 에 파일과 디렉토리가 보이실 것입니다.

사실 /dev/cdrom 은 심볼릭링크 파일로 실제 디바이스 장치는 아니고 cdrom 이 어떤 건지 가르킬뿐 입니다. 

#ls -al /dev/cdrom 하면 아래 같이 나오는데 이는 cdrom 이 실제론 hdc 라는거죠!!

lrwxrwxrwx 1 root root 3 Jul 19 04:18 /dev/cdrom -> hdc

hdc 란 확장 ide 의 3번째 디스크를 말합니다.

 

'OS > 오류' 카테고리의 다른 글

RHEL5 - ifconfig 127.0.0.1 로 나올때  (0) 2013.08.12
by 짱구를꼭말려 2013. 8. 12. 19:52

 

 

neat 를 쳐서

 

DNS 에 각 주요 ISP DNS 주소를 등록해 준다.

KT         168.126.63.1 / 168.126.63.2

SKBB     210.220.163.82 / 219.250.36.130

LGU+     164.124.107.9 / 203.248.242.2

 

데이콤    164.124.101.2 / 203.248.240.31

Google   8.8.8.8 / 8.8.4.4

 

/etc/init.d/network restart 로 재시작 해 주면 된다

'OS > 오류' 카테고리의 다른 글

Putty에서 CD가 인식이 안될 때  (0) 2013.08.12
by 짱구를꼭말려 2013. 8. 12. 19:10

해결방법

 

도구 -> 인터넷 옵션 -> 보안 -> 사용자지정수준.. -> 파일 다운로드 시 자동으로 사용자에게 물음 (사용 체크)

신뢰하는 사이트에서 해당 주소 제거

by 짱구를꼭말려 2013. 8. 12. 18:45

 

 

Swap Size 해결하는 방법

 

이미 운영 중인 시스템에서 사용하고 있는 스왑공간이 부족(그럴 이유는 없겠지만, 거의...그러나간혹 오라클설치하려니 스왑 공간이 부족하다. 괜히 늘려주고 싶다.)하여 스왑영역을 확보하기 위해서는, 파티션을 재구성하여 스왑파티션을 설정하거나 스왑파일을만드는 방법이 있습니다. 그러나, 파티션을 다시 구성하기 위해서는 여유있는파티션이 있어야 하며, 번거롭고, 많은 작업이 필요하므로, 스왑파일을 만들어서 스왑영역을 확보하는 방법에 대해 찾다가 알게 되었습니다.

256MB의 스왑파일을 만들어 보겠습니다. 먼저 스왑파일을 만들 공간을 설 정합니다.

다음과 같은 명령을 내리면 /boot 디렉토리 밑에 256MB짜리 NULL 파일이 만들어 집니다.

/dev/zero는 Null byte의 source를 뜻하며 생성하고자 하는 swap파일의 명칭은 편의상 swapfile로 하였습니다.

#dd if=/dev/zero of=/boot/swapfile bs=1024 count=262144 (256MB)

#mkswap -c -v1 /boot/swapfile  -c옵션은 스왑메모리로 생성하는 도중 배드블록을 점검하도록 하는 옵션이며,

-v1옵션은 업데이트된 버전의 스왑파일시스템을 이용한다는 것을 설정하는 옵션이다

만든 파일이 스왑파일로 작동할 수 있도록 설정을 합니다. v0 옵션은 old 스 타일이고, v1은 new 스타일입니다.

#swapon /boot/swapfile 활성화를 시킵니다.

#free명령으로 스왑영역이 늘어난 것을 확인할 수 있습니다.

부팅 시 스왑공간이 활성화되게 하려면 /etc/fstab 파일에 아래 한 줄을 추가 합니다.

/boot/swapfile swap swap defaults 1 1

 

[root@server122 /]# more /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda5                               partition       2048248 80      -4
/home/swapfile                          file            2621432 0       -6

▲ SWAP 보기 (/home/swapfile 로 만들었다)

 

 

by 짱구를꼭말려 2013. 8. 12. 11:13

백업 복구2 - p68

Flashback Query의 3가지 분류

1. Row level Flashback

2. Table Level Flashback

3. Database Level Flashback

 

 1. Row Level Flashback (기본값 : 사용함)

※ Table의 특정 부분만 찾아서 변경하는 방법

※ 이 기능은 Undo Data의 정보를 이용한다. 만약 Undo Segment를 다른 Transaction에서 재사용하면 이 기능으로 Flashback 할 수 없다.

※ table의 구조가 변경되어도 Flashback 할 수 없다.

 

Flashback Version Query (해당 데이터의 과거 변경 이력을 전부 찾아주는 쿼리)

SQL> select versions_startscn st_scn, versions_endscn endscn,
  2  versions_xid txid, versions_operation opt, 이름
  3  from 회원 versions between scn minvalue and maxvalue
  4  where tel=111;

 

   ST_SCN  ENDSCN         TXID             O 이름
---------- ---------- ---------------- - ----------
   1654659                   06001500F9030000 U 홍길동
   1654625    1654659     09001D0005040000 I 김유신

 

SCN을 시간으로 (Version Query를 시간으로 변경하여 보여주는 기능)

SCOTT> select scn_to_timestamp(1654625) from dual;

 

SCN_TO_TIMESTAMP(1654625)
--------------------------------
06-JUL-13 03.28.07.000000000 PM

 

Flashback Transaction Query (원래 데이터로 돌려주게 하는 기능, 업데이트 쿼리를 가르쳐 주는 기능)

이 기능은 본인이 UPDATE로 원래 데이터로 돌릴 수 있다면 필요성이 낮은 기능

  1  select undo_sql from flashback_transaction_query
  2  where table_name='회원'
  3  and commit_scn between 611043 and 611071
  4  order by start_timestamp desc

select undo_sql from flashback_transaction_query
                              *
ERROR at line 1:
ORA-01031: insufficient privileges     --------------------      권한 에러가 발생한다

 

SCOTT> conn / as sysdba
Connected.
SYS> grant select any transaction to scott;

Grant succeeded.

SYS> conn scott/tiger
Connected.                                                                        권한을 부여한다

 

  1  select undo_sql from flashback_transaction_query
  2  where table_name='회원'
  3  and commit_scn between 1654625 and 1654659                 -> 위에서 조회한 SCN 번호
  4  order by start_timestamp desc

이렇게 치면 업데이트를 시키게 해 주는 쿼리가 나오는데 복사해서 실행하면 된다.

나는 왜 안나오지... 안나와서 그냥 넘어간다.

 

 2. Table Level Flashback 백업과 복구2 p82 (기본값 : 사용함)

DML 에러가 발생했을 때 특정 테이블 전체를 되돌리는 Flashback 방법

※ Supplimental log 기능이 enable 되어 있어야 사용하능하다

※ 이 기능은 Undo Data의 정보를 이용한다. 만약 Undo Segment를 다른 Transaction에서 재사용하면 이 기능으로 Flashback 할 수 없다.

※ table의 구조가 변경되어도 Flashback 할 수 없다.

※ 테이블 전체의 내용이 변경 된다.

① 특정 테이블에 DML 에러가 발생했을 때 사용하는 방법 - Undo data 사용

② 특정 테이블이 drop table 되었을 때 사용하는 방법 - Recyclebin 사용

 

① 특정 테이블에 DML 에러가 발생했을 때 사용하는 방법

▼ 복구시점의 SCN을 알고 있을 경우 복구 방법

SCOTT> select * from ibgo;

    I_CODE I_NAME            QTY
---------- ---------- ----------
       100 새우              100
       101 문어               50
       102 오징어             20
       105 쭈꾸미             50

 

SCOTT> conn / as sysdba                            scott이 SCN을 확인하기 위해 권한을 부여함
Connected.

SYS> grant dba to scott;

Grant succeeded.

 

SCOTT> select current_scn from v$database;                                현재 SCN 조회하기

CURRENT_SCN
-----------
    1674124

 

SCOTT> update ibgo set i_name='왕새우' where i_name='새우';

1 row updated.

 

SCOTT> commit;

Commit complete.

 

SCOTT> select * from ibgo;

    I_CODE I_NAME            QTY
---------- ---------- ----------
       100 왕새우            100
       101 문어               50
       102 오징어             20
       105 쭈꾸미             50

SCOTT> select current_scn from v$database;

CURRENT_SCN
-----------
    1674255                                                새우를 왕새우로 변경한 후 SCN

 

SCOTT> update ibgo set i_name='대왕문어' where i_name='문어';

1 row updated.

 

SCOTT> commit;

Commit complete.

 

SCOTT> select current_scn from v$database;

CURRENT_SCN
-----------
    1674279                                                문어를 대왕문어로 변경한 후 SCN

 

SCOTT> delete from ibgo;

4 rows deleted.

 

SCOTT> commit;

Commit complete.

 

SCOTT> select current_scn from v$database;

CURRENT_SCN
-----------
    1674306                                                모든 데이터를 삭제한 후 SCN

 

SCOTT> flashback table ibgo to scn '1674124';                     새우가 있던 table로 flashback
flashback table ibgo to scn '1674124'
                      *
ERROR at line 1:
ORA-08189: cannot flashback the table because row movement is not enabled

(이 기능을 사용하려면 테이블에 row movement라는 속성이 enable 되어 있어야 한다)

 

SCOTT> alter table ibgo enable row movement;

Table altered.

 

SCOTT> flashback table ibgo to scn '1674124';

Flashback complete.

 

SCOTT> select * from ibgo;

    I_CODE I_NAME            QTY
---------- ---------- ----------
       100 새우              100
       101 문어               50
       102 오징어             20
       105 쭈꾸미             50

복구시점의 SCN만 알면 쉽게 복구가 가능하지만, SCN을 알고 있는 경우가 많이 없기 때문에 별로 쓰이지는 않는 내용이었습니다.


row movement

어떤 테이블에서 row movement를 enable 하면 그 테이블과 연관된 View 기능을 사용할 수 없게 되는 경우가 발생한다

Flashback table을 사용하기 위해 row movement를 enable로 변경하였다면 반드시 해당 테이블과 연관된 view를 확인해야 한다 (10g 까지만, 11g는 예외)

명령어 : alter table ibgo enable row movement

 

SCOTT> set line 200;
SCOTT> col object_name for a10
SCOTT> col object_type for a10
SCOTT> col status for a8
SCOTT> select object_name,object_type,status from dba_objects where owner='SCOTT' and object_name like 'IBGO%';

OBJECT_NAM OBJECT_TYP STATUS
---------- ---------- --------
IBGO       TABLE      VALID                                        현재 상태조회

 

SCOTT> create index ibgo_iname_idx on ibgo (i_name);

Index created.

SCOTT> create view ibgo_v as select i_name,qty from ibgo;

View created.

(ibgo table에 index와 view생성)

 

SCOTT> col object_name for a15
SCOTT> select object_name,object_type,status from dba_objects where owner='SCOTT' and object_name like 'IBGO%';

OBJECT_NAME     OBJECT_TYP STATUS
--------------- ---------- --------
IBGO            TABLE      VALID
IBGO_INAME_IDX  INDEX      VALID
IBGO_V          VIEW       VALID                            현재 상태 조회

 

SCOTT> alter table ibgo disable row movement;

Table altered.

SCOTT> select object_name,object_type,status from dba_objects where owner='SCOTT' and object_name like 'IBGO%';

OBJECT_NAME     OBJECT_TYP STATUS
--------------- ---------- --------
IBGO            TABLE      VALID
IBGO_INAME_IDX  INDEX      VALID
IBGO_V          VIEW       INVALID

 

(10g 까지만 이렇게 되니 11g는 걱정않고 사용해도 됩니다)

 

 

 

▼ SCN은 모르지만 시간을 알고 있을 때 복구하는 방법 (백업과 복구2 p.88)

장애가 난 시간을 추측하여 Flashback 하는 방법

Flashback Version Query를 사용하여 변경사항을 조회해서 찾을 수 있기도 하지만

시간으로 간단히 해결해보자

 

SCOTT> flashback table ibgo to timestamp(systimestamp - interval '5' minute);

Flashback complete.

(지금으로부터 5분전으로 되돌리기)

 

SCOTT> flashback table ibgo to timestamp(systimestamp - interval '30' second);

Flashback complete.

(지금으로부터 30초전으로 되돌리기)

 

원하는 데이터를 찾을 때까지 반복할 수 있으나 이 방법도 Undo data를 이용하기 때문에 오래 전 데이터는 Flashback 할 수 없을 가능성도 많다

 

② 특정 테이블이 drop table 되었을 때 사용하는 방법 - 휴지통(Recyclebin) 사용

10g 부터 휴지통 기능이 생겼다

※ 테이블이 삭제되어 휴지통으로 옮겨지게되면 해당 테이블스페이스에 그대로 용량을 차지하고 남아있게 되지만, 해당 테이블스페이스의 용량이 꽉 차고 다른 데이터가 insert 되면 휴지통에 해당하는 부분에 덮어 쓰게 되어 그 이후로 사라지게 된다. 이 점은 Autoextend 기능이 on 으로 되어 있어도 같다.

※ sys사용자의 table은 삭제해도 휴지통으로 들어가지 않고 purge 된다. But sys사용자가 다른 사용자의 테이블을 삭제하면 해당 사용자의 user_recyclebin에 지워진 테이블이 저장된다.

 

▼ drop table 복구하기

SCOTT> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
ASSM                           TABLE
BIN$4MyQZhMJCajgQAB/AQAnRA==$0 TABLE
BONUS                          TABLE
CLOBTEST                       TABLE
DEPT                           TABLE
DEPT2                          TABLE
DEPT20                         TABLE
EMP                            TABLE
GOGAK                          TABLE
IBGO                           TABLE
IBGO_V                         VIEW

JOB_TEST01                     TABLE
RTEST01                        TABLE
RTEST02                        TABLE
RTEST2                         TABLE
SALGRADE                       TABLE
SYS_TEMP_FBT                   TABLE
T1                             TABLE
TEST02                         TABLE
TEST3                          TABLE
TEST4                          TABLE
TT100                          TABLE

UTEST01                        TABLE
회원                           TABLE

24 rows selected.                                현재 사용자의 테이블 상황 확인

 

SCOTT> drop table ibgo;

Table dropped.

 

SCOTT> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
ASSM                           TABLE
BIN$4MyQZhMJCajgQAB/AQAnRA==$0 TABLE
BIN$4NYp0Gt+2kngQAB/AQA5BA==$0 TABLE                        ibgo 테이블이 휴지통으로 옮겨짐
BONUS                          TABLE
CLOBTEST                       TABLE
DEPT                           TABLE
DEPT2                          TABLE
DEPT20                         TABLE
EMP                            TABLE
GOGAK                          TABLE
IBGO_V                         VIEW

JOB_TEST01                     TABLE
RTEST01                        TABLE
RTEST02                        TABLE
RTEST2                         TABLE
SALGRADE                       TABLE
SYS_TEMP_FBT                   TABLE
T1                             TABLE
TEST02                         TABLE
TEST3                          TABLE
TEST4                          TABLE
TT100                          TABLE

UTEST01                        TABLE
회원                           TABLE

24 rows selected.

 

SCOTT> show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
IBGO             BIN$4NYp0Gt+2kngQAB/AQA5BA==$0 TABLE        2013-07-06:19:20:41
TEST3            BIN$4MyQZhMJCajgQAB/AQAnRA==$0 TABLE        2013-07-06:09:05:07

휴지통 확인

 

SCOTT>  flashback table ibgo to before drop                                 - 테이블 복구
Flashback complete.

 

SCOTT> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
ASSM                           TABLE
BIN$4MyQZhMJCajgQAB/AQAnRA==$0 TABLE
BONUS                          TABLE
CLOBTEST                       TABLE
DEPT                           TABLE
DEPT2                          TABLE
DEPT20                         TABLE
EMP                            TABLE
GOGAK                          TABLE
IBGO                           TABLE
IBGO_V                         VIEW

JOB_TEST01                     TABLE
RTEST01                        TABLE
RTEST02                        TABLE
RTEST2                         TABLE
SALGRADE                       TABLE
SYS_TEMP_FBT                   TABLE
T1                             TABLE
TEST02                         TABLE
TEST3                          TABLE
TEST4                          TABLE
TT100                          TABLE

UTEST01                        TABLE
회원                           TABLE

24 rows selected.

 

SCOTT> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST3            BIN$4MyQZhMJCajgQAB/AQAnRA==$0 TABLE        2013-07-06:09:05:07

 

ibgo 테이블이 복구되었고 휴지통에서 사라졌다

 

휴지통 비우는 방법

SCOTT> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST3            BIN$4MyQZhMJCajgQAB/AQAnRA==$0 TABLE        2013-07-06:09:05:07

SCOTT> purge table test3;                test3 테이블만 휴지통에서 삭제

Table purged.

 

SCOTT> show recyclebin;

아무것도 없다.

 

SCOTT> purge recyclebin;                휴지통 전체를 비우는 방법

Recyclebin Purged.

 

SCOTT> drop table 회원 purge;            휴지통에 넣지 않고 완전히 삭제하는 방법

Table dropped.

 

 

 

 

 



 

 

 

'Oracle > 백업과 복구' 카테고리의 다른 글

Drop 된 Table 복구하기  (0) 2013.07.22
by 짱구를꼭말려 2013. 8. 8. 12:18

가끔 영문이나 default 로 Linux 를 설치 시 putty 나 xshell 같은 곳에서 vi editor 사용시에 한글입력이 다 깨지는 경우가 있다.

이럴 경우, 아래와 같이 /etc/sysconfig/i18n 을 수정해 줌으로써 간단히 해결 할 수 있다.

참고로, 본인의 환경은 OEL5 (Oracle Enterprise Linux 5) 32bit 환경이고, 커널은 2.6.18-238.el5 이다. (아마 rhel5 에서도 해당 방법이 가능 할 것이다. 하지만 가끔 따로 폰트 패키지를 설치해야 할 경우가 있으니 참고하자.)

 

- 터미널 프로그램이 putty 일 경우, 캐릭터 셋을 UTF-8 이 아닌 cp949 로 해놓고 하자 


- /etc/sysconfig/i18n 파일 수정 후 적용 방법

### 본인의 경우 원본 /etc/sysconfig/i18n 을 열어보면,
### 아래와 같이 셋팅이 되어져 있다.
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"


### 요 부분을 아래와 같이 바꿔주자 (참고로 root 계정으로 수정가능)
LANG="ko_KR.eucKR"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.eucKR:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"


## 그런 다음 reboot 하지 않고 적용 되게 source 로 적용하자
[root@chacha ~]# source /etc/sysconfig/i18n
## 다른 계정에서도 필요하다면 (oracle 같은..) 해당 계정에서도 적용해주자.
[oracle@chacha ~]$ source /etc/sysconfig/i18n

 

- 그리고 xshell 일 경우, 인코딩을 Korean (EUC) 로 바꿔주어야 되는 경우도 있다. 참고하자!

by 짱구를꼭말려 2013. 8. 7. 12:01

일단 VMWare 로 20GB 하드디스크를 추가한다

 

Setting -> add -> Hard Disk -> Create a new virtural disk -> SCSI -> 20 GB (Store virtual disk as a single file)

-> Finish

 

재부팅 후 디스크 조회

[root@chan ~]# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1288    10241437+  83  Linux
/dev/sda3            1289        1925     5116702+  83  Linux
/dev/sda4            1926        3916    15992707+   5  Extended
/dev/sda5            1926        2180     2048256   82  Linux swap / Solaris
/dev/sda6            2181        2307     1020096   83  Linux
/dev/sda7            2308        3916    12924261   83  Linux

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

sdb 에 20기가짜리 하드디스크가 보인다

 

[root@chan ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 2610.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1): 엔터
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): 엔터
Using default value 2610

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

 

▼이제 포맷을 한다

[root@chan ~]# mkfs.ext3 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2621440 inodes, 5241198 blocks
262059 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
160 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

 

▼디렉토리 생성 후 마운트

[root@chan ~]# mkdir /data
[root@chan ~]# mount /dev/sdb1 /data/

▼마운트 잘 됬나 확인

[root@chan ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             4.8G  2.5G  2.1G  55% /
/dev/sda7              12G  7.5G  3.9G  67% /app
/dev/sda6             965M   68M  848M   8% /var
/dev/sda2             9.5G  5.5G  3.6G  61% /home
/dev/sda1              99M   12M   83M  12% /boot
tmpfs                 506M     0  506M   0% /dev/shm
/dev/hdc              2.9G  2.9G     0 100% /media/RHEL_5.3 i386 DVD
/dev/sdb1              20G  173M   19G   1% /data

 

▼ 재부팅마다 자동 마운트 되도록 설정

[root@chan ~]# vi /etc/fstab

LABEL=/                 /                       ext3    defaults        1 1
LABEL=/app              /app                    ext3    defaults        1 2
LABEL=/var              /var                    ext3    defaults        1 2
LABEL=/home             /home                   ext3    defaults        1 2
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda5         swap                    swap    defaults        0 0

/dev/sdb1               /data                   ext3    defaults        1 2

맨 아랫줄 추가

 

'OS > RHEL5' 카테고리의 다른 글

RHEL5 설치  (0) 2013.12.01
by 짱구를꼭말려 2013. 8. 2. 22:54

 DB (Database) 복구의 원리   백업과복구1 P.29~31

데이터의 복구 원리를 설명하기 전에 우선, 데이터가 저장되는 원리를 먼저 보자. 사용자가 A라는 데이터를 테이블에 입력한다고 하면,

- Redo log buffer 에 A 에 먼저 들어가고,

 

- 사용자가 commit 을 하면 Redo log buffer 에 A 가 Redo log file 에 SCN 과 함께 저장이 되고 (SCN 을 1이라고 가정한다. ) Redo log buffer 에서는 A 가 지워질 것이다.

 

- 이 때, log switch 같은 것이 발생해서 checkpoint  가 일어나면 DB buffer cache 에 있던 A 가 Data file 로 내려써 지게 되면서 CKPT (check point) 프로세스가 Data file 헤더와 Control file 헤더에 각각 동일한 SCN (여기서는 1) 을 기록하게 된다.

 

- 이 상태에서 DB backup 을 받고 (Data 파일에 SCN 이 1인 상태), 그 이후로 데이터 B, C 가 들어와서 SCN 이 2~3 으로 증가 후 Data/control file의 헤더에 이제 SCN 이 3인 상태가 되었다고 가정하자.

 

- 여기서 새로운 데이터 D와 E 가 들어와서 commit 이 발생, 그리고 LGWR 이 해당 데이터들을 Redo log file 내려써야 하는데, 빈 공간이 없다면 기존의 A, B 가 들어가 있는 공간 (inactive redo log file) 에 덮어 쓸 것이다. 그러면서 또 다시 checkpoint 가 일어나서 data/control header 에도 SCN 이 4->5 로 증가했다고 가정하자.

 


 

만약, 이 상황에서 예기치 않게 DB 서버에 장애가 생겨서 데이터 파일이 날아갔다고 하면, 기존에 backup 해 둔 데이터를 복사해 와서 (Restore) DB 를 Recover 해야한다.

 

하지만 위의 상황에서 backup data 에는 A 가 입력 되었을 때의 데이터, 즉, Data file 의 SCN 이 1 일때의 상태이고, 현재 Control file 의 SCN 이 5 번이다.

 

SCN 이 서로 다르므로 Recover 를 할 때는 2~5 번까지의 작업을 Redo log file 이나 Archive log file 을 뒤져서 Recover 를 해야하는데 (2~5 번 순서대로 하고, 만약 2번이 없으면 더 이상 진행되지 않는다.) Redo log 에서 SCN 2번이 저장되어 있는 부분을 (즉, 데이터 B 를 입력했던 부분) 데이터 D 가 덮어써 버렸으니, SCN 2번 부분을 복구 할 수 없게 된다.

 

이런 경우는 no archive log mode 라고 하고 Oracle 을 처음 설치하면 기본 모드이다.

 

이런 문제를 막기 위해서 Redo log file 에 덮어쓰기 전에 다른 곳으로 복사해 두고 덮어쓰는 방법을 쓸 수 있는데 이런 방법을 archive log mode 라고 한다.

 

 

 

 Archive log mode 로 변경하기

 

## 현재 log mode 조회

SYS> archive log list;

Database log mode       No Archive Mode

Automatic archival       Disabled

Archive destination       USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     101

 

Current log sequence       103


## DB 종료

SYS> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

 


## Parameter file 변경

SYS> !vi $ORACLE_HOME/dbs/inittestdb.ora

log_archive_dest_1='location=/data/arc1'

log_archive_dest_2='location=/data/arc2'

 

log_archive_format=%s_%t_%r.arc

▲ 1과 2 폴더에는 같은 파일이 저장이 된다. 용량이 부족할 경우 1개만 사용하도록 하자


## mount 상태로 startup

SYS> startup mount;

ORACLE instance started.


Total System Global Area  422670336 bytes

Fixed Size    1344616 bytes

Variable Size  260049816 bytes

Database Buffers  155189248 bytes

Redo Buffers    6086656 bytes

 

Database mounted.


## archive log mode 경로 변경 내용 확인

SYS> archive log list;

Database log mode       No Archive Mode

Automatic archival       Disabled

Archive destination       /data/arc2

Oldest online log sequence     101

 

Current log sequence       103


## archive mode 로 변경하기

SYS> alter database archivelog;


Database altered.


SYS> archive log list;

Database log mode       Archive Mode

Automatic archival       Enabled

Archive destination       /data/arc2

Oldest online log sequence     101

Next log sequence to archive   103

 

Current log sequence       103


## DB open

SYS> alter database open;


 

Database altered.

 

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

[Oracle Admin] Chap 2. SQL 문장의 실행 원리  (0) 2013.09.08
[Oracle Admin] Chap 1. Oracle server 구조  (0) 2013.09.08
Export, Import  (0) 2013.07.24
Table Space 및 DATA file 관리  (0) 2013.07.16
불완전 복구(Incomplete Recovery)  (0) 2013.07.16
by 짱구를꼭말려 2013. 8. 2. 22:27

인텔 펜티엄 듀얼코어 E5300  내가 쓰고 있는 CPU 이다.

 

소켓 : 775 LGA

작동클럭 : 2.6 G

775소켓 시피유들은 FSB * 배수로 동작 속도가 결정 (배수는 고정)

 
E5300 기본 동작 속도는 FSB 200 * 13배수로 2,600 즉 2,6G의 속도

 

여기서 오버시 FSB(버스속도)로 오버를 하게 되는데
 
현재는 200 * 13 = 2,600 해서 기본으로 사용하고 있다. 

 

적당히 조절해서 3기가로 써야겠다 

 

FSB 를 230 으로 올려서 3GHz 로 오버를 하였고, Rated FSB가 921MHz가 되었다.

메인보드에는 지원하는 한계 Rated FSB 가 존재한다고 하니 적당히 오버를 해야 된다.

 

오버 방법은 컴퓨터를 켜고 del 를 눌러 CMOS 설정화면에 가서 FSB 설정하는 부분을 200 -> 230 으로 올려주면 된다.

대부분의 메인보드에서 지원할 것이다.

by 짱구를꼭말려 2013. 7. 31. 23:20