티스토리 뷰

카테고리 없음

ORACLE 기본 익히기

미니대왕님 2023. 4. 12. 20:27

http://dbcafe.co.kr/wiki/index.php/%EC%98%A4%EB%9D%BC%ED%81%B4_ASM

 

 

오라클 ASM - DB CAFE

1 ASM 이란?[편집] https://docs.oracle.com/cd/E11882_01/server.112/e18951/asm_util001.htm#OSTMG01620 2 ASMcmd 명령어[편집] 2.1 실행명령어[편집] asmcmd 2.2 diskgroup[편집] ASMCMD> lsdg 2.3 disk 진행사항[편집] ASMCMD> lsdg 2.4 ASM 작

dbcafe.co.kr

0. ASM 명령어 익히기

https://fliedcat.tistory.com/95

 

ASM 관리 - RAC 환경

1. ASM 접속 - 접속 가능 OS 사용자 : asmdba 그룹에 속하는 사용자 - 환경 변수 설정 ORACLE_HOME= ORACLE_SID=asm_sid 1. sqlplus 명령어 접속 shell> id uid=2000(oracle) gid=2000(oinstall) groups=2000(oinstall),2001(dba),2002(asmdba),

fliedcat.tistory.com

1. Rman 
2. OGG
3. UVM
4. raid0~raid6
5. serverless, endpoint 
6. 플레쉬백
7. Grant
8. alter 
9. RDBMS VS Nosql 구별
10. DML, DLL 
11. [Oracle] 문자 처리 함수(Function)의 모든것 아는대로 예를들면 initcap , upper 등..
12. ORA-메세지 주로 겪어본 번호 
13. redo log file, undo log file , control 
14. ASM
15. RAC
16. CRS

 

 

1. Rman 

:RMAN : Recovery Manager
; 8i때부터 생긴 유틸리티이고, 10g부터 대폭 개선이 된 기능입니다.

주요장점
1. 증분블럭백업가능 ; 과거에 백업받은 자료를 비교해서 그 이후에 추가된 자료만 백업(저장공간 대폭감소)
2. 백업시 자료가 있는 블록만 백업
 
(datafile들의 합이 모두 5G라도 사용하는 블럭만 추려서 백업합니다.(백업하면 5G보다는 당연히 적게 되겠죠?)

3. DB가 File System말고, ASM으로 운영될 시 백업은 무조건 RMAN으로밖에 하지 못함

RMAN 구성도


RMAN Memory구조 : 기본적으로 PGA사용하고, 부족하면 SGA(Large Pool, Shared Pool)를 사용합니다.

  --> 위와같은 방식으로 백업파일이 저장이 되기때문에 Control file이나 Catalog안에 들어있는 정보들이 필수로 필요합니다.

Recovery Catalog (복구카탈로그)
; RMAN에서 작업한 내역을 저장하는 공간입니다. user를 하나 생성해서 catalog를 사용하는 tablespace를 할당하고, RMAN으로 해당 유저에 접속해서 작업을 하게되면, 해당 user에 자동으로 view나 table들이 생성되어 백업내역이나, RMAN관련정보들을 조회해볼 수 있습니다.
보통은 catalog를 사용하지 않고, 자신의 DB내에 RMAN정보를 저장(control file에)합니다.

Recovery Catalog 구성 및 catalog를 이용한 rman접속  http://dinggur.tistory.com/178 보세요 ^^;

RMAN 사용하기 : rman target /  (해당 명령어로 접속시 catalog사용하지 않습니다)
RMAN Default값들 보기 : show all;

RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name TESTDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default  << 백업시 몇개의 채널을 할당할지 정합니다.
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/app/rman/%U_%T.rman';  << 백업시 어떤 형태로 저장할지 지정합니다.
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/app/oracle/product/11g/dbs/snapcf_testdb.f'; # default



현재 DB의 상태보기(어떤 Datafile, Tablespace가 있는지)
report schema;

RMAN> report schema;

Report of database schema for database with db_unique_name TESTDB

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    710      SYSTEM               ***     /app/oracle/oradata/testdb/system01.dbf
2    520      SYSAUX               ***     /app/oracle/oradata/testdb/sysaux01.dbf
3    100      UNDOTBS1             ***     /app/oracle/oradata/testdb/undotbs01.dbf
4    12       USERS                ***     /app/oracle/oradata/testdb/users01.dbf
5    343      EXAMPLE              ***     /app/oracle/oradata/testdb/example01.dbf
6    10       KOO                  ***     /app/oracle/oradata/testdb/koo01.dbf
7    5        TEST                 ***     /app/oracle/oradata/testdb/test01.dbf
8    10       FBDA                 ***     /app/oracle/oradata/testdb/fbda01.dbf
9    10       KOO                  ***     /app/oracle/oradata/testdb/koo02.dbf

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    29       TEMP                 29          /app/oracle/oradata/testdb/temp01.dbf
2    10       SCOTT_TEMP           10          /app/oracle/oradata/testdb/scott_temp.dbf



전체 데이터베이스 백업 
RMAN> backup database;

전체 데이터베이스 압축해서 백업
(as compressed backupset은 하나의 옵션으로 다른 백업에도 다 사용가능합니다.) 

RMAN> backup as compressed backupset database;  

tablespace 단위 백업 
RMAN> backup tablespace 'KOO', 'TEST';

datafile 단위 백업(숫자는 위 report schema; 화면에서 datafile 번호입니다.) 
RMAN> backup datafile 6,7;

control file 백업
RMAN> backup current controlfile;
(전체 데이터베이스 압축시나 configure controlfile autobackup on; 되어있으면 따로 백업 받지 않아도
아무 백업이나 수행하면 자동으로 백업받습니다.)


백업된 파일들의 list와 정보보기
RMAN> list backupset;
(특정 tbs의 백업정보를 보고 싶으면 of tablespace 'KOO', 'TEST';
control file의 백업정보를 보고 싶으면 of controlfile; 
을 추가하면 됩니다.)

RMAN> list backupset;


List of Backup Sets
===================


BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
4       Incr 0  295.57M    DISK        00:01:01     2012-02-24:11:37:45
        BP Key: 4   Status: AVAILABLE  Compressed: YES  Tag: TAG20120224T113643
        Piece Name: /app/rman/06n4492c_1_1_20120224.rman
  List of Datafiles in backup set 4
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1    0  Incr 878154     2012-02-24:11:36:44 /app/oracle/oradata/testdb/system01.dbf
  2    0  Incr 878154     2012-02-24:11:36:44 /app/oracle/oradata/testdb/sysaux01.dbf
  3    0  Incr 878154     2012-02-24:11:36:44 /app/oracle/oradata/testdb/undotbs01.dbf
  4    0  Incr 878154     2012-02-24:11:36:44 /app/oracle/oradata/testdb/users01.dbf

.....생략.....

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
9       Full    2.49M      DISK        00:00:00     2012-02-26:11:03:34
        BP Key: 9   Status: AVAILABLE  Compressed: NO  Tag: TAG20120226T110334
        Piece Name: /app/rman/0bn49fs6_1_1_20120226.rman
  List of Datafiles in backup set 9
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  6       Full 921697     2012-02-26:11:03:34 /app/oracle/oradata/testdb/koo01.dbf
  7       Full 921697     2012-02-26:11:03:34 /app/oracle/oradata/testdb/test01.dbf



백업set지우기

RMAN> delete backupset 9;
(숫자는 list backupset;해서 BS Key번호입니다., 숫자를 쓰지 않으면 모든 백업set를 지웁니다.)


전체 backupset 과 target 서버에 저장된 backupset의 정보 비교하기
RMAN> crosscheck backupset;

RMAN> crosscheck backupset;

using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=71 device type=DISK
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/app/rman/06n4492c_1_1_20120224.rman RECID=4 STAMP=776086604
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/app/rman/07n4494d_1_1_20120224.rman RECID=5 STAMP=776086670
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/app/rman/08n49fea_1_1_20120226.rman RECID=6 STAMP=776256971
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/app/rman/09n49fn6_1_1_20120226.rman RECID=7 STAMP=776257255
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/app/rman/0an49fr9_1_1_20120226.rman RECID=8 STAMP=776257386
Crosschecked 5 objects



위의 EXPIRED(실제파일은 없지만 control file에는 저장된 RMAN정보)된 정보 삭제해주기
RMAN> delete expired backupset;

RMAN> delete expired backupset;

using channel ORA_DISK_1

List of Backup Pieces
BP Key  BS Key  Pc# Cp# Status      Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
8       8       1   1   EXPIRED     DISK        /app/rman/0an49fr9_1_1_20120226.rman

Do you really want to delete the above objects (enter YES or NO)? yes
deleted backup piece
backup piece handle=/app/rman/0an49fr9_1_1_20120226.rman RECID=8 STAMP=776257386
Deleted 1 EXPIRED objects



수동으로 백업받은 파일을 RMAN에 등록하기(rman에서 관리하기 위해서)
RMAN> catalog datafilecopy '/backup/example01.dbf';  
(RMAN에서 정보삭제하고 싶으면
change datafilecopy '/backup/example01.dbf' uncatalog;  )

******************************
2. OGG

Oracle GoldenGate 12c를 시작하는 방법

이 기사에서는 Oracle DBA, 실시간 데이터 복제, 데이터 마이그레이션 등을 다루는 사람들을 위해 Oracle GoldenGate를 시작하는 방법에 대해 설명합니다.

Oracle GoldenGate는 무엇을 위한 것입니까?

Oracle GoldenGate는 서로 다른 시스템의 데이터베이스 간에 실시간 데이터 복제를 가능하게 하는 제품입니다.

기본 기능:

  • 고속
  • 경량
  • 유연한 옵션
  • 데이터베이스 서버에서 실행
  • 서로 다른 데이터베이스 제품 간의 복제
  • 서로 다른 OS 간 복제
  • 양방향 복제

Oracle GoldenGate 작동 방식의 전체 이미지

  • GoldenGate는 업데이트 로그를 Trail File이라는 일반 형식으로 작성하고 대상 데이터베이스로 전송합니다.
  • Manager 프로세스는 전반적인 GoldenGate 기능을 관리합니다.
  • 캡처 프로세스는 원본 데이터베이스에서 업데이트된 데이터를 추출하여 추적 파일에 기록합니다.
  • Data Pump는 Trail 파일을 대상 데이터베이스의 Collector 프로세스로 전송합니다.
  • Collector 프로세스는 Trail 파일을 수신하고 이를 로컬 시스템에 저장합니다.
  • Repilcat 프로세스는 Trail 파일을 읽고 대상 데이터베이스를 업데이트합니다.

여기에서 Oracle GoldanGate에 대해 알아보고 Oracle GolenDate 12c 통합 캡처 모드에서 데이터 전송이 어떻게 작동하는지 살펴보겠습니다.

오라클 골든게이트 소개

데이터베이스 환경

소스 데이터베이스(서버#A) 오라클 데이터베이스 12c
오라클 골든게이트 12c
스키마: 테스트
표:샘플1
대상 데이터베이스(서버#B) 오라클 데이터베이스 12c
오라클 골든게이트 12c
스키마: 테스트
표:샘플1

1.Oracle 데이터베이스 구성

  1. Configure Logging Property (Server#A)
    Supplimental Logging은 GoldenGate의 복제에 필요한 추가 정보를 REDO Log에 기록하는 기능이다.
$sqlplus / as sysdba
SQL>alter database add supplemental log data;
SQL>alter database force logging;

2.Enacle Oracle GoldenGate

SQL>alter system set enable_goldengate_replication=true;

3.Oracle 데이터 서버 리소스 구성(Server#A, Server#B)

 GoldenGate에 통합 캡처 모드를 사용할 것이므로 Oracle Database의 "stream_pool_size"를 구성합니다.

 권장 값: (max_sgz_size X 병렬도) + 0.25

SQL>alter system set stream_pool_size=1250M scope=both;

4.Oracle GoldenGate용 사용자 생성(Server#A, Server#B)

SQL>create user ogg identified by oracle;
SQL>grant connect to ogg;
SQL>grant resource to ogg;
SQL>grant dba to ogg;
SQL>exec dbms_goldengate_auth.grant_admin_privilege('ogg');

2.오라클 골든게이트 설치

1.설치하기 전에 (Server#A, Server#B)
  GoldenGate의 홈 디렉토리
  와 Trail 파일의 하위 디렉토리를 만든 다음 바이너리 파일의 압축을 풉니다.

$mkdir -p /u01/app/goldengate
$mkdir -p /u01/app/goldengate/trail
$unzip <GG Installer Package>.zip

2.응답 파일 생성(Server#A, Server#B)

모수 설명
INTALL_OPTION ORA12c 데이터베이스 버전
소프트웨어_위치 /u01/app/goldengate 설치 위치
START_MANAGER 진실 설치 후 관리자 시작
관리자_포트 31000 Manager의 포트 번호
데이터베이스_위치 $ORACLE_HOME Oracle DB의 홈 디렉토리
인벤토리_위치 oraInventory의 PATH 인벤토리의 전체 디렉토리 경로
UNIX_GROUP_NAME 오인스톨 그룹 이름

3.Oracle GoldenGate 설치(Server#A, Server#B)

$<GG Installer Full Path>/runInstaller -silent -nowait -responseFile <Response File Full Path>/gg.rsp

4.디렉터리 만들기(Server#A, Server#B)

$ cd /u01/app/goldengate
$./ggsci
GGSCI> CREATE SUBDIRS

5.글로벌 매개변수 구성(Server#A, Server#B)
  매개변수 파일: /u01/app/goldengate/GLOBALS

syslog none
allowoutputdir /u01/app/goldengate/trail

6.MANAGER 구성 및 시작(Server#A, Server#B)
  매개변수 파일: /u01/app/goldengate/dirprm/mgr.prm

port 31000
dynamicportlist 31100-31109

관리자 시작

$cd /u01/app/goldengate/
$./ggsci
GGSCI> start mgr
GGSCI> INFO ALL
Program   Status  Group  Lag at Chkpt  Time Since Chkpt
MANAGER  STARTED

7.스키마 수준 추가 로깅
  샘플 스키마 활성화: test

$cd /u01/app/goldengate/
$./ggsci
GGSCI>dblogin userid ogg,password oracle
GGSCI>add schematrandata test

8.캡처 구성(Server#A)
  매개변수 파일: /u01/app/goldengate/dirprm/cap.prm

extract cap
userid ogg, password oracle
ddl include mapped
exttrail /u01/app/goldengate/trail
table test.*

데이터베이스에 캡처 그룹 등록

$cd /u01/app/goldengate/
$./ggsci
GGSCI>dblogin userid ogg,password oracle
GGSCI>register extract cap database
GGSCI>add extract cap integrated tranlog,begin now
GGSCI>add exttrail /oracle/trail/source/sr,extract cap

9.Datapump 설정(Server#A)
  매개변수 파일: /u01/app/goldengate/dirprm/puma.prm
  소스 테이블: test.sample1

extract pump
passthru
rmthost Server\#B_IP, mgrport 31000
rmttrail /u01/app/goldengate/trail
table test.sample1;

데이터 펌프 설정

GGSCI>add extract pump,exttrailsource /u01/app/goldengate/trail
GGSCI>add rmttrail /u01/app/goldengate/trail,extract pump

10.Replicat 구성(Server#B)
   매개변수 파일 :/u01/app/goldengate/dirprm/rep.prm
   대상 테이블: test.sample1;

replicat rep
userid ogg, password oracle
MAP test.sample1, TARGET test.sample1;

그룹 추가(통합 모드)

GGSCI>dblogin userid ogg,password oracle
GGSCI>add replicat rep, integrated ,exttrail /u01/app/goldengate/tail

11.GoldenGate 서비스 시작

GGSCI>start *
GGSCI>info all

이것이 GoldenGate 설정의 전부입니다!!
[test.sample1]에서 Source(Server#A) 데이터를 업데이트한 후 업데이트된 Target(Server#B)도 확인하십시오.

간단하고 쉬웠지만 도움이 되셨기를 바랍니다!

************************************************************************************************************************
3. UVM
4. raid0~raid6

RAID1
 - 미러링(mirroring) RAID
 - 총 Disk 용량의 50%만 사용이 가능
 - 데이터를 여러번 기록하면서 걸리는 시간때문에 성능이 감소
 - Fault Tolerant 기능 제공
  //한 개의 디스크가 고장나면 볼륨의 다른 디스크에서 데이터 사용이 가능
 -모든 데이터가 볼륨의 디스크마다 기록되므로 신뢰성 향상 

 기존 Linear Raid, RAID0 과 실습과정은 비슷하므로 사진은 생략하겠습니다.


 RAID 1구성 (/dev/sdf, /dev/sdg)
 (1) 파이션 생성, 타입 fd


 (2) RAID1 설정
 #mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdf /dev/sdg
 경고메세지 - 부팅 장치로 사용할 수 없다는 경고 무시하고 y 입력
 
 #mdadm --detail /dev/md1   //설정 확인. 두개를 합쳣지만 하나의 용량과 비슷함.
 
 (3) 파일 시스템 생성
 #mkfs -t ext4 /dev/md1
 
 (4) 마운트 포인트 생성
 #mkdir /RAID-1
 #mount /dev/md1 /RAID-1
 #df -h
 
 (5) blkid 명령어를 이용하여 UUID 확인 및 /etc/fstab 등록
 #blkid /dev/md1
 #vi /etc/fstab  //내용추가


 (6) RAID 설정 적용
 #mdadm --detail --scan > /etc/mdadm.conf
 
 구분      RAID0    RAID1
 성능      뛰어남   변화없음
 데이터 안정성(결함허용) 보장 못함   보장함
 공간 효율성    좋음   나쁨
 

 

RAID5
 - RAID1 처럼 데이터의 안정성도 어느정도 보장하면서 RAID0처럼
   공간 효율성도 좋은 방식
 - 최소 3개 이상의 DISK가 필요하며, 보통 5개 이상을 사용한다.
 - Disk 장애가 발생하면, 패리티(parity)를 이용하여 데이터를 복구한다.
 - 각 Disk 용량이 1TB일때 4개의 Disk로 RAID5구성 시 3TB만 사용이 가능하다.
   (Disk개수 -1 만큼 사용이가능)
 
 패리티
  - 디스크 장애 시 데이터를 재구축하는데 사용할 수 있는 사전에 계산된 값

 

 

 

RAID 6
- 각 디스크에 두 개의 패리티(더블 패리티) 데이터를 기록한다.
- 디스크가 최대 2개까지 고장나도 데이터 손실이 발생하지 않는다.
- 더블 패리티 사용으로 인해 고장난 디스크와의 동기화가 RAID 5보다 느리다.
- 더블 패리티 사용으로 내부적인 쓰기 알고리즘이 복잡해져 성능 RAID5보다 조금 느리다.
- RAID 6 구성에는 최소 디스크 4개가 필요하다.
- 하드디스크 개수 - 2의 용량을 가진다.

 

RAID 1+0
- RAID1을 구성한 Disk가 양쪽에 1개씩 고장나도 데이터는 보존한다. (RAID1)
- 구성한 RAID 1을 스트라이핑 방식으로 데이터를 사용(RAID0)하여 높은 성능을 제공한다.
- 최소 4개의 Disk를 필요로 하며, 전체 용량의 50%만 사용이 가능하다.

RAID+Spare
- 디스크에 고장이 발생할 경우 데이터를 바로 동기화할 수 있는 "핫 스페어" 기능을 통해
  볼륨의 하드 디스크에 고장이 발생하면 데이터가 예비 디스크와 동기화한다.
- 예비 디스크가 있는 RAID 구성 대체 디스크 추가를 기다릴 필요가 없다    

 

 

 

 

***************************************************************************
5. serverless, endpoint 

 

서버리스 데이터베이스 – 알아야 할 모든 것

서버리스 데이터베이스는 예측할 수 없고 빠르게 변경될 수 있는 워크로드를 위해 특별히 설계되었습니다. 서버리스 데이터베이스에 대한 모든 것을 보려면 클릭하십시오.

 

 

서버리스 데이터베이스 – 알아야 할 모든 것

서버리스 기술의 생태계는 현대 적인 이벤트 기반 아키텍처를 구축하기 위해 많은 조직에서 서버리스 아키텍처를 채택함에 따라 서버리스 아키텍처 에 대한 찬성표를 목격 했습니다 .

이 블로그에서는 Amazon Aurora Serverless(잠시 후 설명)에 설명된 기능, 기능, 이점, 제한 사항, 사용 사례 및 공급업체 옵션과 같은 서버리스 데이터베이스를 자세히 살펴보겠습니다. 사용자 지정 서버리스 애플리케이션 에서 다양한 데이터베이스를 사용하는 방법을 이해하는 데 도움이 됩니다 .

Amazon Serverless Aurora가 무엇이고 블로그에서 이를 시연하는 이유에 대해 간략히 설명하기 전에 일반적인 비즈니스 문제에 대해 알려드리고자 합니다.

나는 우리 대부분이 소프트웨어 및 응용 프로그램, 특히 데이터베이스 테스트를 위한 테스트 환경의 중요성을 알고 있다고 확신합니다. 예측할 수 없는 부하가 있는 적은 시간 동안 드물게 사용됩니다.

그러나 우리 중 많은 사람들이 결국 데이터베이스 테스트에 많은 돈을 투자하게 됩니다. 저는 개인적으로 분기 테스트를 위해 환경 복제를 선호했기 때문에 한 달에 수천 달러의 데이터베이스 비용을 소모하는 많은 프로젝트를 인수했습니다 .

어쨌든, 2017년 AWS re: Invent 에서 발표되고 2018년 8월에 출시된 Amazon Aurora Serverless는 가장 큰 게임 체인저가 되었습니다.

서버리스 기술을 사용하여

#1. Firebase 실시간 DB

Firebase 실시간 데이터베이스를 사용하면 클라우드 호스팅 NoSQL 데이터베이스를 사용하여 실시간으로 사용자와 기기 간에 데이터를 저장하고 동기화할 수 있습니다. 업데이트된 데이터는 밀리초 단위로 연결된 장치 간에 동기화됩니다. 또한 앱이 오프라인 상태가 되더라도 데이터를 계속 사용할 수 있으므로 네트워크 연결에 관계없이 뛰어난 사용자 경험을 제공합니다.

#2. FaunaDB

FaunaDB 는 서버리스 앱의 요구 사항을 충족하기 위해 지상에 구축된 유일한 클라우드 데이터베이스입니다. FaunaDB는 서버를 관리하지 않는 경우에도 데이터베이스를 관리하지 않는다고 믿습니다. 프로비저닝 없음, 유틸리티 가격 및 기본 제공 보안은 FaunaDB를 서버리스 애플리케이션을 구축하는 팀에 이상적인 옵션으로 만드는 주요 기능 중 일부입니다.

#3. 아마존 오로라 서버리스

Aurora Serverless는 데이터베이스가 애플리케이션의 요구 사항에 따라 시작 및 종료되는 Aurora용 온디맨드 자동 확장 구성입니다. 데이터베이스 인스턴스 및 용량 관리에 복잡성이 없습니다. 동일한 내결함성, 분산 및 자가 치유 Aurora 스토리지에 구축되었으며 6방향 복제 기능이 있어 데이터 손실로부터 사용자를 보호합니다.

#4. 애저 코스모스DB

Azure CosmosDB는 글로벌 분산 및 수평적 확장성을 핵심 기능으로 하는 다중 모델 데이터베이스입니다. 사용자 지역에 따라 데이터를 투명하게 확장하고 복제하여 여러 Azure 지역에서 턴키 글로벌 배포를 제공합니다. 또한 CosmosDB는 전 세계 어디에서나 99번째 백분위수에서 한 자릿수 밀리초 지연 시간을 보장합니다.

결론 : 서버리스 데이터베이스, 특히 Amazon Aurora Serverless 의 미래는 유망해 보입니다. 이 최신 기술의 기능을 통해 실시간 액세스, 확장성, 보안 및 가용성과 같은 필수 요소에 집중할 수 있습니다.


6. 플레쉬백

플래시백 테이블

FLASHBACK TABLE 문은 인적 오류 또는 애플리케이션 오류 발생 시 테이블의 이전 상태를 복원합니다.

테이블을 플래시백할 수 있는 과거 시간은 시스템의 실행 취소 데이터 양에 따라 다릅니다.

또한 Oracle Database는 테이블 구조를 변경하는 DDL 작업에서 테이블을 이전 상태로 복원할 수 없습니다.

SQL> CREATE TABLE flashback_table_test (id NUMBER(10));

테이블이 생성되었습니다.

SQL> ALTER TABLE flashback_table_test ENABLE ROW MOVEMENT;

테이블이 변경되었습니다.




SQL> v$database에서 current_scn 선택;

CURRENT_SCN
-----------
    4993733

SQL> SELECT current_scn, TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD HH24:MI:SS') FROM v$database;

CURRENT_SCN TO_CHAR(SYSTIMESTAMP
----------- ----------
    4993746 2021-07-20 23:18:30

SQL> INSERT INTO flashback_table_test (id) VALUES (1);

행 1개가 생성되었습니다.

SQL> 커밋;

커밋이 완료되었습니다.

SQL> v$database에서 current_scn 선택;

CURRENT_SCN
-----------
    4993843

SQL>플래시백 테이블 flashback_table_test TO SCN 4993733;

플래시백 완료.

SQL> SELECT COUNT(*) FROM flashback_table_test;

  세다(*)
----------
      0

SQL> 플래시백 테이블 flashback_table_test TO SCN 4993843;
  
플래시백 완료.

SQL> SELECT COUNT(*) FROM flashback_table_test;

  세다(*)
----------
         1 

SQL> 플래시백 테이블 flashback_table_test TO TIMESTAMP 
TO_TIMESTAMP(' 2021-07-20 23:18:30', 'YYYY-MM-DD HH24:MI:SS');

플래시백 완료.

SQL> SELECT COUNT(*) FROM flashback_table_test;

  세다(*)
----------
     0

1,2,3,5,6,14,15,16은 모르는 부분입니다.


7. Grant  [아는부분]

8. alter [아는부분]
9. RDBMS VS Nosql 구별 [아는부분]
10. DML, DLL [아는부분]
11. [Oracle] 문자 처리 함수(Function)의 모든것 아는대로 예를들면 initcap , upper 등..[아는부분]
12. ORA-메세지 주로 겪어본 번호 [아는부분]
13. redo log file, undo log file , control [아는부분]


14. ASM

Oracle 자동 스토리지 관리(ASM)

Oracle Database의 기능인 ASM(Automatic Storage Management)은 Oracle 고객에게 모든 서버 및 스토리지 플랫폼에서 일관적인 간소화된 스토리지 관리 기능을 제공합니다. ASM을 사용하면 스토리지가 ASM 디스크 그룹이라는 소수의 스토리지 풀로 관리됩니다. 데이터베이스 관련 파일은 ASM 디스크 그룹에 할당되고 ASM은 레이아웃 및 데이터 조직을 관리하여 최적의 성능을 보장하고 스토리지 하드웨어 장애로부터 보호합니다. ASM 디스크 그룹은 스토리지를 통합하고 이전에 DBA 및 시스템 관리자에게 필요했던 관리 작업을 단순화하기 위한 편리하고 쉬운 수단을 제공합니다. ASM은 데이터베이스 외부의 데이터에 대한 중앙 집중식 스토리지를 제공하는 ASM 클러스터 파일 시스템(ACFS)에 대한 기본 스토리지 관리를 제공합니다.

ASM 아키텍처

Oracle ASM 아키텍처에는 다음 구성 요소가 있습니다.
A. Oracle ASM 인스턴스
B. Oracle ASM 디스크 그룹
C. Oracle ASM 실패 그룹
D. Oracle ASM 디스크
E. Oracle ASM 파일

A. Oracle ASM Instance : Oracle ASM Instance는 Oracle Database와 유사한 SGA(System Global Area) 및 백그라운드 프로세스를 갖는다. Oracle ASM SGA는 데이터베이스 SGA보다 훨씬 작습니다. Oracle ASM은 서버 성능에 최소한의 영향을 미칩니다. Oracle ASM 인스턴스는 ASM 디스크 그룹을 마운트하여 데이터베이스 인스턴스에서 Oracle ASM 파일을 사용할 수 있도록 합니다. Oracle ASM 및 데이터베이스 인스턴스에는 디스크 그룹의 디스크에 대한 공유 액세스가 필요합니다. Oracle ASM 인스턴스는 디스크 그룹의 메타데이터를 관리하고 파일 레이아웃 정보를 데이터베이스 인스턴스에 제공합니다.

Oracle ASM 메타데이터에는 다음 정보가 포함됩니다.
1. 디스크 그룹에 속하는 디스크.
2. 디스크 그룹에서 사용 가능한 공간의 양.
3. 디스크 그룹에 있는 파일의 파일 이름.
4. 디스크 그룹 데이터 파일 범위의 위치.
5. 원자적으로 변경되는 메타데이터 블록에 대한 정보를 기록하는 리두 로그.
6. Oracle ADVM 볼륨 정보

각 클러스터 노드에 대해 하나의 Oracle ASM 인스턴스가 있습니다. 동일한 노드에 서로 다른 데이터베이스에 대한 여러 데이터베이스 인스턴스가 있는 경우 데이터베이스 인스턴스는 해당 노드에서 동일한 단일 Oracle ASM 인스턴스를 공유합니다. 노드의 Oracle ASM 인스턴스가 실패하면 해당 노드의 모든 데이터베이스 인스턴스도 실패합니다.

 

 

B. Oracle ASM 디스크 그룹 : 디스크 그룹은 여러 개의 ASM 디스크로 구성되며 디스크 그룹의 공간 관리에 필요한 메타 데이터를 포함합니다. 디스크 그룹 구성 요소는 ASM 디스크, ASM 파일 및 할당 단위입니다. 모든 Oracle ASM 파일은 단일 디스크 그룹 내에 완전히 포함됩니다. 그러나 디스크 그룹은 여러 데이터베이스에 속하는 파일을 포함할 수 있으며 단일 데이터베이스는 여러 디스크 그룹의 파일을 사용할 수 있습니다.

미러링은 여러 디스크에 데이터 복사본을 저장하여 데이터 무결성을 보호합니다. 디스크 그룹을 생성할 때 다음 세 가지 중복 수준 중 하나를 기반으로 Oracle ASM 디스크 그룹 유형을 지정합니다.

일반적인 중복성: Oracle ASM은 기본적으로 양방향 미러링을 제공합니다. 즉, 모든 파일이 미러링되어 모든 익스텐트에 두 개의 복사본이 있습니다. 하나의 Oracle ASM 디스크 손실은 허용됩니다.

높은 중복성: Oracle ASM은 기본적으로 삼중 미러링을 제공합니다. 즉, 모든 파일이 미러링되어 모든 익스텐트에 대해 3개의 복사본이 있습니다. 서로 다른 장애 그룹에 있는 두 개의 Oracle ASM 디스크 손실은 허용됩니다.

일반 중복 디스크 그룹에는 두 개 이상의 실패 그룹이 필요합니다. 높은 중복성 디스크 그룹에는 3개 이상의 장애 그룹이 필요합니다. 외부 중복성이 있는 디스크 그룹은 실패 그룹을 사용하지 않습니다.

 

 

C. Oracle ASM 장애 그룹 : 장애 그룹은 ASM 디스크 그룹에 있는 디스크의 하위 집합입니다. 실패 그룹은 데이터의 미러 사본을 저장하는 데 사용됩니다. Oracle ASM이 일반 중복 파일에 익스텐트를 할당할 때 Oracle ASM은 기본 복사본과 보조 복사본을 할당합니다. Oracle ASM은 기본 복사본과 다른 실패 그룹에 있도록 보조 복사본을 저장할 디스크를 선택합니다.
명시적으로 생성되지 않은 경우에도 항상 실패 그룹이 있습니다. 디스크에 대한 실패 그룹을 지정하지 않으면 Oracle은 Oracle Exadata 셀의 디스크를 포함하는 디스크 그룹을 제외하고 해당 디스크만 포함하는 새 실패 그룹을 자동으로 생성합니다.

 

 

D. Oracle ASM 디스크 : Oracle ASM 디스크는 Oracle ASM 디스크 그룹에 프로비저닝되는 스토리지 장치입니다. Oracle ASM은 파일을 디스크 그룹의 모든 디스크에 비례적으로 분산시킵니다. 이 할당 패턴은 모든 디스크를 동일한 용량 수준으로 유지하고 디스크 그룹의 모든 디스크가 동일한 I/O 로드를 갖도록 합니다.
Oracle ASM 파일은 하나 이상의 파일 익스텐트로 구성됩니다. 파일 범위는 하나 이상의 할당 단위로 구성됩니다. 따라서 모든 Oracle ASM 디스크는 ASM 디스크 그룹 내에서 할당 단위(AU)로 나뉩니다.
디스크 그룹을 생성할 때 AU_SIZE 디스크 그룹 속성으로 Oracle ASM 할당 단위 크기를 설정할 수 있습니다. 값은 특정 디스크 그룹 호환성 수준에 따라 1, 2, 4, 8, 16, 32 또는 64MB가 될 수 있습니다.

 

 

E. Oracle ASM 파일 : Oracle ASM 디스크 그룹에 저장된 파일을 Oracle ASM 파일이라고 합니다. 각 Oracle ASM 파일은 단일 Oracle ASM 디스크 그룹 내에 포함됩니다. Oracle Database는 파일 측면에서 Oracle ASM과 통신합니다.

다음은 ASM 디스크 그룹에 저장되는 파일입니다.
1. 제어 파일
2. 데이터 파일, 임시 데이터 파일 및 데이터 파일 사본
3. SPFILE
4. 온라인 리두 로그, 아카이브 로그 및 플래시백 로그
5. RMAN 백업
6. 재해 복구 구성
7. 변경 추적 비트맵
8. 데이터 펌프 덤프 세트

Oracle ASM은 파일 생성 및 테이블스페이스 생성의 일부로 Oracle ASM 파일 이름을 자동으로 생성합니다. Oracle ASM 파일 이름은 더하기 기호(+)로 시작하고 뒤에 디스크 그룹 이름이 옵니다.

Oracle ASM 파일의 내용은 세트로 디스크 그룹에 저장되거나 디스크 그룹 내의 개별 디스크에 저장되는 익스텐트 모음으로 저장됩니다. 각 익스텐트는 개별 디스크에 상주합니다. 범위는 하나 이상의 할당 단위(AU)로 구성됩니다.

익스텐트 크기는 항상 처음 20000개의 익스텐트 세트(0 – 19999)에 대한 디스크 그룹 AU 크기와 같습니다.
익스텐트 크기는 다음 20000 익스텐트 세트(20000 – 39999)에 대한 4*AU 크기와 같습니다.
익스텐트 크기는 다음 20000개 이상의 익스텐트 세트(40000+)에 대해 16*AU 크기와 같습니다.

백그라운드 프로세스:

1.ARBx: 재조정 활동을 수행하는 슬레이브 프로세스입니다.
2.RBAL: 검색의 일부로 모든 장치 파일을 열고 디스크 그룹에 대한 재조정 활동을 조정합니다.
3.ASMB: 데이터베이스 인스턴스 시작 시 ASMB는 포그라운드 프로세스로 ASM 인스턴스에 연결합니다. 데이터베이스와 ASM 인스턴스 간의 모든 통신은 이 브리지를 통해 수행됩니다. 여기에는 데이터 파일 생성 및 삭제와 같은 물리적 파일 변경이 포함됩니다. 이 연결을 통해 주기적인 메시지가 교환되어 통계를 업데이트하고 두 인스턴스가 정상인지 확인합니다
. 노드 모니터링.
5.PSP0: 이 프로세스 스포너 프로세스는 다른 Oracle 프로세스 생성 및 관리를 담당합니다.

ASM 주요 기능

  • 디스크 그룹이라고 하는 디스크 그룹을 관리합니다.
  • 디스크 그룹 내에서 디스크 중복성을 관리합니다.
  • 수동 조정 없이 최적에 가까운 I/O 균형을 제공합니다.
  • 마운트 지점과 파일 이름을 지정하지 않고 데이터베이스 개체를 관리할 수 있습니다.
  • 대용량 파일을 지원합니다.

ASM의 장점

  • 스토리지 관리 간소화 및 자동화
  • 스토리지 활용도 및 민첩성 향상
  • 예측 가능한 성능, 가용성 및 확장성을 제공합니다.
  • 서버 충돌 시 데이터베이스 오류를 지원합니다.
  • ACFS를 통한 통합 스토리지 관리


15. RAC

Oracle 12c RAC(Real Application Clusters) 이해

 

Oracle RAC(Real Application Clusters)는 가용성과 확장성이 뛰어난 데이터베이스 환경을 제공합니다. 클러스터의 서버에 장애가 발생하면 데이터베이스 인스턴스는 클러스터의 나머지 서버 또는 노드에서 계속 실행됩니다. Oracle Clusterware를 사용하면 새 클러스터 노드를 간단하게 구현할 수 있습니다. RAC는 단일 서버의 리소스 이상으로 애플리케이션을 확장할 수 있는 가능성을 제공합니다. 즉, 현재 필요한 것으로 환경을 시작한 다음 필요에 따라 서버를 추가할 수 있습니다. Oracle 9 i는 Oracle Real Application Clusters를 도입했습니다. 각 후속 릴리스에서 RAC의 관리 및 구현은 안정적인 환경과 성능 향상을 제공하는 새로운 기능을 통해 보다 간단해졌습니다. 오라클 12cRAC 환경에 추가적인 개선 사항을 제공하고 애플리케이션 연속성을 제공하는 더 많은 방법을 제공합니다.

Oracle 11 g 에서 Oracle은 RAC 환경을 위한 롤링 패치를 도입했습니다. 이전에는 패치 적용을 위해 다른 노드로 장애 조치하여 중단 시간을 최소화하는 방법을 제공할 수 있었지만 클러스터의 모든 노드에 대한 패치 적용을 완료하려면 여전히 중단이 필요했습니다. 이제 Oracle 12c와 함께, 패치를 적용할 수 있으므로 패치가 적용되지 않은 버전에서도 다른 서버가 계속 작동할 수 있습니다. Oracle Grid Infrastructure 홈에 적용된 후 다른 노드로 푸시될 수 있습니다. 연중무휴 24시간 운영되는 회사에서는 계획되었거나 계획되지 않은 중단을 줄이는 것이 핵심입니다. Oracle Clusterware는 새 서버 설정을 돕고 기존 ORACLE_HOME 및 데이터베이스 인스턴스를 복제할 수 있는 부분입니다. 또한 단일 노드 Oracle 데이터베이스를 여러 노드가 있는 RAC 환경으로 변환할 수 있습니다.

RAC 환경은 하나 이상의 서버 노드로 구성됩니다. 물론 단일 서버 클러스터는 장애 조치할 곳이 없기 때문에 고가용성을 제공하지 않습니다. 서버 또는 노드는 상호 연결 이라고도 하는 사설 네트워크를 통해 연결됩니다 . 노드는 동일한 디스크 집합을 공유하며 한 노드에 오류가 발생하면 클러스터의 다른 노드가 대신합니다.

일반적인 RAC 환경에는 모든 서버가 공유하는 디스크 세트가 있습니다. 각 서버에는 최소한 두 개의 네트워크 포트가 있습니다. 하나는 외부 연결용이고 다른 하나는 상호 연결 (노드와 클러스터 관리자 사이의 사설 네트워크)용입니다. 공유 디스크는 단순한 파일 시스템일 수 없습니다. Oracle Clusterware의 이유인 클러스터 인식이 필요하기 때문입니다. RAC는 여전히 타사 클러스터 관리자를 지원하지만 Oracle Clusterware는 새 노드 및 롤링 패치의 프로비저닝 또는 배포를 위한 새 기능에 대한 후크를 제공합니다. Oracle Clusterware는 이 장의 뒷부분에서 설명할 ASM(Automatic Storage Management)에도 필요합니다.

클러스터웨어의 공유 디스크는 디스크 구성원을 기록하기 위한 보팅 디스크와 클러스터 구성을 포함하는 OCR(Oracle Cluster Registry)의 두 가지 구성 요소로 구성됩니다. 투표 디스크는 공유되어야 하며 원시 장치, Oracle Cluster File System 파일, ASM 또는 NTFS 파티션일 수 있습니다. Oracle Clusterware는 모든 서버가 함께 작동할 수 있도록 하는 핵심 요소입니다.

상호 연결이 없으면 서버는 서로 통신할 방법이 없습니다. 클러스터된 디스크가 없으면 다른 노드에서 동일한 정보에 액세스할 방법이 없습니다. 그림 1은 이러한 주요 구성 요소가 포함된 기본 설정을 보여줍니다.


16. CRS

 

Clusters 개념

1. Symmetric multiprocessing (SMP)의 대안
2. 하나의 장비처럼 작동
3. 각각의 장비는 독자적으로 작동

 

CRS [Cluster Ready Services]

CRS의 구성 Components 는 크게 3개의 콤포넌트로 구성됨

CSS , EVM , CRS , 마지막의 CRS는 Oracle Cluster를 부를 때 사용하는 CRS와 구분이 되는 Process명으로써, CRS의 resource를 관리함

 

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

17. OCR 

[RAC] OCR(Oracle Configuration Repository), VOTING

1. OCR


1-1 OCR 이란? 

  • OCR은 RAC를 구성하는 정보를 저장하는 저장소라는 것이 있습니다.
  • 이러한 OCR정보는 RAC 환경에서 매우 중요한 관리 항목으로 주기적인 백업을 받아 두어야 합니다. 기본적으로 OCR 백업은 4시간 마다 자동으로 백업이 이루어 지며, 비상 상황을 대비하여 3벌의 백업을 자동으로 유지 관리 합니다.
  • OCR file은 root 소유로 되며 Oracle Cluster Repository의 약자로 말그대로 Cluster의 정보를 담고 있습니다.

1-2 OCR 수동 백업/복구 절차 
  • ocrconfig -backuploc <Directory>          // 백업 시작
  • ocrconfig -showbackup                        // 백업 현황 조회
  • ocrconfig -restore <FILE>                     // 복구(모든 NODE 중지 후 한 NODE씩 작업 진행)
  • ocrconfig -export                                 // export
  • ocrconfig -import                                 // import
1-3 CLUSTER를 중단시키고 OCR 정보를 Import 하는 방법 
  • CLUSTER상의 모든 Node를 Shutdown 한 후 Node  한대만을 single-usermode로 올립니다.
  • ocrconfig -import 명령을 사용하여 import를 수행 합니다.
  • CLUSTER상의 모든 Node를 Multi-usermode로 구동시킵니다. 
1-4 CLUSTER를 중단시키지 않고 OCR 정보를 Import 하는 방법 
  • 모든 Node의 initab 파일을 다른 이름으로 COPY 해놓은 후 모든 NODE 상의 initab entries를 Update 하고 CRS 관련 entry를 제거합니다.
  • 모든 Node에서 /etc/init.d/init.crsstop 명령을 사용하여 CRS를 중지 시킵니다.
  • CLUSTER상의 한 Node에서 ocrconfig -import 명령을 사용하여 OCR export를 수행합니다.
  • 모든 Node에서 originalinitab file을 복원 합니다.
  • 모든 Node에서 /etc/init.d/init.crsstart명령으로 CRS START
  • /etc/initq 명령을 실행 합니다.
 


2. Voting
2-1 Votiong 이란?

  • Oracle 소유로(오라클 설치시 UID) 되며 장애시 어떤 Node를 제거할지 검사하는 용도로 사용 합니다.

2-2 Votiong 현재 상태 확인
  • crsctl query css votedisk
댓글