작성자: haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

[NEWS] 8년 끈 세기의 ‘자바 전쟁’, 구글이 오라클에 패하다…안드로이드 생태계 흔들

세기의 ‘자바 전쟁’에서 구글이 오라클에 패했다. [AP=연합뉴스] 8년을 끈 구글과 오라클의 자바(JAVA) 저작권 전쟁이 오라클의 승리로 막을 내렸다. 구글이 구축한 안드로이드 생태계엔 충격적인 결과다. 월스트리트저널(WSJ)과 블룸버그통신 등에 따르면 27일(현지시간) 미국…

[NEWS] 오라클, 자바10 공개

자바 스탠더드에디션(SE)의 10번째 버전이 공개됐다. ​ 자바 버전 업그레이드 주기를 6개월로 단축한 후 처음 나온 버전이다. ​ 지난 20일 오라클은 자바SE 10(JDK 10) 플랫폼 명세서를 공개했다.[오라클 자바10 릴리스 노트] ​…

ORACLE RECOVERY

Recovery Database에 이상이 생겨 Error를 Return할 경우 Instance에 발생한 모든 Error는 Trace file로 받히고 Alert에 기록되므로 이상이 발견되면 제일 먼저 Trace file을 Check하여 Error를 확인하고 원인을 파악한다. Recovery 작업은 발생한…

ORACLE EXP , IMP

Export & Import EXPORT 는 DATA를 ORACLE DATABASE로부터 ORACLE Binary 형태의 OS FILE로 만들고 IMPORT를 이용하여 DATABASE로 LOADING 한다. Export ORACLE DATABASE를 OS file로 만드는 작업이다. 이 작업은 DATABASE가 OPEN…

ORACLE DB 기동 / 중지

Oracle Data Base Startup Oracle Startup은 내부적으로 3개의 과정으로 나누어 실행된다. 각각의 과정에서 작업되는 내용 및 사용되는 file은 Backup이나 Recovery시 꼭 필요한 부분이라고 할 수 있다. SQL> startup     Oracle instance…

Dynamic SQL

Dynamic SQL, 동적 SQL은 상황에 따라 가변적으로 사용되는 SQL을 의미한다. Dynamic SQL의 기본적 개념 및 사용법을 다루도록 하겠다.   Dynamic SQL? 대부분의 데이타베이스 응용프로그램은 특정한 일을 한다. 예를 들면, 단순한…

ORA 600 정리

ORA-600 [1113]    State object being moved to freelist already free ORA-600[1113][] kss – Kernel Service State object manager. Problem Description: This error occurs when removing a state object to the free…

[NEWS] 하나금융-오라클, 글로벌 연구소 설립…블록체인 기반 디지털자산 거래 플랫폼 만든다

하나금융지주가 세계적인 소프트웨어 업체인 오라클과 손잡고 글로벌 연구소(Lab)를 공동으로 설립한다. 양사는 온라인 상에서 각국 금융소비자들의 디지털자산을 실시간으로 교환하고 유통, 결정할 수 있는 블록체인 기반의 플랫폼 사업을 함께 추진할 계획이다. 웰스파고…

[TIP] 테이블 스페이스 모니터링

Oracle Database 10g 부터 테이블스페이스의 디스크 공간 사용을 사전적으로 관리할 수 있도록 하는 기능을 제공한다. 데이터베이스 alert를 통하여 DBA로 하여금 공간 부족 오류가 발생하기 전에 미리 필요한 조치를 취할 수…

Bigfile Tablespace

Bigfile tablespace(BFT)는 아주 큰 크기의 datafile을 가질 수 있는 tablespace이다. Oracle Database 10g의 새로운 addressing 기법에 의해, 하나의 datafile이 40억개의 block을 가질 수 있게 되었다. 그래서, 최대 datafile 크기는 block의…

SYSAUX 테이블 스페이스

SYSAUX Tablespace SYSAUX Tablespace는 Oracle Database 10g 부터 제시되는 tablespace 개념이다. 많은 데이터베이스 구성 요소들의 Default 저장소로써 SYSAUX tablespace가 사용된다. 즉, SYSAUX tablespace를 사용하는 것이 선택적인 사항이 아니다. SYSTEM tablespace에…

[TIP]Oracle 12c 의 spfile 예 …

Z 사 Case 공유 …. HW —————————– AIX P8 8XX CPU 11 core (각노드별) Physical Memory 220G SGA —————————– SGA_TARGET 0 SGA_MAX_SIZE 67584M DB_CACHE_SIZE 47308M SHARED_POOL_SIZE 10240M LARGE_POOL_SIZE 2048M JAVA_POOL_SIZE…

LOB SEGMENT 생성 GUIDE

Lob 데이타 타입은 대용량 크기를 지원해야 하기 때문에 어떤 데이타 타입 보다도 storage 특성을 잘 이해해야 할 필요성이 있다. 각종 parameter에 대한 적절한 설정은 좋은 performance를 내는 데 중요한 요인이 된다.   다음은 LOB 컬럼을 갖는 table을 생성하는 SQL문이다. 다양한 option을 사용하였는데, 이들 parameter에 대한 자세한 이해를 통해 효과적인 lob segment를 생성할 수 있다. 참고로 lob에 대한 자세한 정보를 보려면  dba/all/user_lobs를 조회하면 알 수 있다.   [crayon-67438ad6843a1039940923/]   1) TABLESPACE 와  storage parameter   – lob, lob index에 대한 tablespace를 지정하지 않는 경우, 해당  table이 저장되는 tablespace 에 같이 저장되게 된다. lob 컬럼, lob…

DDL Wait 기능 (oracle 11g)

DDL Wait   DDL wait 기능은 데이터베이스 object에 DDL문장을 수행할 때, 필요한 Exclusive Lock을 얻지 못하는 경우 정해진 시간만큼 대기하는 기능이다. 예를들어, 테이블에 column을 추가할 경우   일반 업무 시간에는…

Oracle Table 압축

지난 10 년 동안 기업에서 다루어지는 고객데이터와 영업활동 및 거래로부터 발생한 데이터는 기하급수적으로 증가해왔다. 최근에는 기업 데이터의 영역이 기존의 정형 데이터에서 비정형 데이터로까지 확대되고 있어서 그 증가의 속도는 더욱 빨라지고…

JDBC를 통한 데이터베이스 STARTUP / SHUTDOWN

11g에서부터 oracle.jdbc.OracleConnection 클래스에서 startup() 및 shutdown()이라는 새로운 JDBC 메소드를 제공한다. 이 두 메소드는 SQL*Plus에서처럼 데이터베이스를 애플리케이션에서 직접 start up하고 shut down할 수 있는 인터페이스이다. startup()과 shutdown() 메소드를 사용하기 위해서는 커넥션을…

새로운 통계정보 수집 방식 (oracle 11g)

정확한 통계정보 수집은 Optimal Plan을 생성하기 위한 필수 요건이다. 오라클 DBMS에서는 Cost-Based Opmizer 의 완벽한 기능을 위해 다양한 통계정보 수집방법을 구사할 수 있다. 대표적인 예가 Histogram으로 Skew된 Data에 대한 정확한 통계수집이 가능하다. 10g에서는 통계정보 수집을 자동화 framework을 제공하여 DBA들에게 편의성을 제공하기도 했다. Oracle Database 11g에서는 새로운 통계정보 수집방식을 추가하여 고객의 다향한 Data 특성을 반영하게 되었고 보다 정확한 통계정보를 기반으로 보다 정확한 Optimal Plan의 생성이 가능하게 되었다.   새롭게 추가된 통계정보 수집방식은 “Extended Statistics” 와 “Function-Based Statistics” 이다.   Extended Statistics: 한 테이블 내의 여러 column을 하나의 group으로 묶어 통계정보를 수집하되 column의 상호 연관성까지 파악하여 수집한다. Function-Based Statistics: 특정 column에 적용된 함수를 적용한 결과에 대한 통계정보를 수집한다.   이 장에서는 11g 의 향상된 통계수집 방법을 설명하고 optimizer가 이러한 통계정보를 어떻게 활용하는지를 테스트를 통하여 확인해 보도록 한다.  …

Oracle TDE , ASO (Oracle 11g)

  Oracle Advanced Security의 Transparent Data Encryption (TDE)은 운영체제의 해킹 또는 하드웨어, 백업 미디어의 도난으로 인한 데이터 유출을 방지하기 위한 강력한 암호화 솔루션이다. TDE를 이용하여 주민등록번호, 신용카드번호와 같은 민감한 개인…

Oracle TDE ( oracle 10g )

  Transparent Data Encryption 투명한 데이터 암호화  단 한 줄의 코드도 작성하지 않고 기밀 데이터를 투명하게 암호화합니다.  누군가가 데이터베이스 백업 테이프를 훔쳐가는 것은 조직에게는 최악의 악몽입니다. 물론 보안 시스템을 구축하고 매우 중요한 기밀 자산은 암호화하고 데이터베이스 서버에 방화벽을 설치했습니다. 그러나 침입자가 쉽게 접근했습니다. 침입자는 백업 테이프를 가져가서 틀림 없이 다른 서버에서 데이터베이스를 복원하여 데이터베이스를 시작하고 느긋하게 데이터를 보고 있습니다. 그러한 침입자로부터 데이터베이스 데이터를 보호하는 것은 훌륭한 업무방식이 아닙니다. 그것은 대부분의 법률, 규정, 지침을 준수하기 위한 요구 사항입니다. 이러한 취약성으로부터 데이터베이스를 어떻게 보호할 수 있겠습니까? 한 해결책은 데이터베이스의 기밀 데이터를 암호화하고 별도의 위치에 암호화 키를 저장하는 것입니다. 암호화 키 없이 훔쳐간 데이터는 쓸모가 없습니다. 그러나 두 상반된 개념 간의 균형을 유지해야 합니다. 그 개념이란 애플리케이션이 암호화 키에 액세스할 수 있는 편리성과 키 절도를 방지하는데 필요한 보안성입니다. 그리고 회사와 연방 정부 규정을 준수하기 위해 복잡한 코딩 없이 즉시 솔루션이 필요합니다.  Oracle Database 10g Release 2의 새로운 기능을 사용하여 그렇게 할 수 있습니다. 단 한 줄의 코드도 작성하지 않고 열을 암호화됨으로 선언할 수 있습니다. 사용자가 데이터를 삽입할 때 데이터베이스가 투명하게 데이터를 암호화하여 그 열에 저장합니다. 마찬가지로 사용자가 열을 선택할 때 데이터베이스가 데이터를 자동으로 해독합니다. 이러한 모든 프로세스가 투명하게 애플리케이션의 코드를 변경하지 않고 수행되기 때문에 이 기능에는 이에 잘 어울리는 TDE(투명한 데이터 암호화)라는 이름이 붙여졌습니다. …

한글 SUBSTR 함수

오라클 DB에 예를들어 ‘가나다’와 같이 입력된 자료를  1 부터 5까지 substrb 하고자 할 경우 ‘가나’ 만  return 하는 함수   [crayon-67438ad68a972686439850/]      

한글 RTRIM 함수

오라클 DB에 예를들어 ‘가나ㄷ’과 같이 한글입력도중 잘린자료가   들어갔을 경우 ‘가나’와 같이 잘라주는 함수   [crayon-67438ad68abba163566218/]

db backup guide

Backup   Database Backup의 중요성   Database Recovery가 가능한 운용 관계형 데이타베이스를 사용하는데 있어 가장 큰 장점 중의 하나는 데이타베이스에 이상 발생시 언제든지 Database Recovery를 수행하여 현재의 상황으로 복구가 가능하다는 점이다. 이러한 복구가 가능하기 위해서는 Database 관리자는 복구가 가능한 상태로 데이타베이스를 운용하여야만 합니다. 예를 들어 사용자가 NO ARCHIVE MODE상태로 운용시는 불행히도 Database를 처음 생성한 시점이나 전체 BACKUP 받은 시점으로 만이 복구가 가능합니다. 또한 BACKUP을 받는다고 할 경우에도 BACKUP을 받는 방법에 따라 현재의 시점까지의 복구가 가능하기도 하지만 그렇지 못한 경우 BACKUP을 받은 시점으로 밖에 복구가 안되는 경우도 있습니다. 일반적인 경우 BACKUP 정책없이 무작정 과다한 양의 BACKUP을 받을 경우 일정 기간이 경과하면 BACKUP에 의미가 희미해 지게 되고 정상적인 작업을 수행하지 않을때,  Backup File이 꼭 필요한 경우 작업 할 수 없는 경우가 발생 할 수도 있습니다. DATABASE 관리자는 BACKUP에 대한 정책을 수립하여 꼭 필요한 DATA를 최소의 양으로 BACKUP을 받고 최소의 시간을 소비 하면서도 항시 복구가 가능한 상태를 유지해야 합니다. DATABASE 관리자는 BACKUP의 중요성을 확실히 인식하고 필요한 시기에 꼭 정해진 방법으로 BACKUP 작업을 수행하여 언제라도 복구가 가능한 시스템의 운용이 필요하겠습니다.     BACKUP의 효율성과 안전성 데이타베이스는 기존의 FILE SYSTEM과는 달리 전체 사용자 OBJECT를 하나의 TABLESPACE로 관리하므로 BACKUP…

oracle sql , pl/sql 설명

  1. 데이터베이스로부터 자료 검색 2. 단일 행에 대한 함수들 3. 복수 테이블로부터 데이터 조회 4. Group 함수 5. Subqueries 6. SQL*Plus 명령어 7. 변수 사용 8. 테이블 생성 9. Oracle Data Dictionary 10. 데이터 조작(DML) 11. 테이블과 제약조건 변경 12. Sequence 생성…

obfuscation toolkit 공짜 암호화 의 활용

* DES 소개 Data의 보안을 위한 encryption과 decryption의 방법론이 여러가지 소개 되었다. data가 처리해야 하는 프로세스는 data를 생성 또는 획득하여 이를 저장하거나 전송하는 과정에서의 보안을 위해 이를 Encryption하고, 저장된 data를 읽거나 전송을 받는 프로세스가 이를…

2018 게임체인저는 AI·블록체인

김형래 한국오라클 사장 새로운 기술은 점점 더 많아지고 기존 기술의 발전 속도 역시 더욱 빨라지고 있다. 비즈니스 환경은 더 복잡하고 불확실해지고 경쟁은 훨씬 치열해졌다. 새로운 기술을 잘 활용하는 기업은 시장을…

Block Recovery 를 위한 Corruption Block 찾아내기

  1. datafile 에 block corruption이 일어 났을 경우 dbv file=’/nas1/backup/oradata1/system01.dbf’ blocksize=8192 dbv file=’/nas1/backup/oradata1/undotbs01.dbf’ blocksize=8192 dbv file=’/restore/oradata/ora8i/system01.dbf’ blocksize=8192 dbv file=’/restore/home3/home3/cti_ts1.dbf’ blocksize=8192 dbv file=’/home1/app/oracle/product/8.1.7/oradata/ora8i/rbs01.dbf’ blocksize=8192 dbv file=’/dbf/hotbackup/backup2/control.19092007065048′ blocksize=8192 dbv file=’/dbf/hotbackup/backup2/datafile01.dbf’ blocksize=8192…

DB 모델 작도 표준

논리 모델과 물리 모델의 개념 ER-Win 구조 TABLE(물리 모델)/ENTITY(논리 모델) 유형과 분류 COLUMN(물리 모델)/ATTRIBUTE(논리 모델) 유형과 분류 RELATION SHIP의 종류와 유형 SUBTYPE SUBTYPE + TABLE RELATION SHIP 하나의 TABLE 내의…

한글이 ??? 로 DISPLAY 되는 경우

ORACLE TOOLS(SQLPLUS,등)을 이용하여 한글DATA를 조회할 때 ???로 출력는데 해결 방법 ====================================================================================== DATABASE는 SQL COMMAND ‘CREATE DATABASE’를 포함하는 STATEMENT를 수행할 때 만들어지는데 우리가 그STATEMENT를 수행하기 앞서 고려해야 사항중의 하나가 DB CHARACTERSET…

WINDOWS PERFORMANCE TUNING

WINDOWS 386 확장모드에서 설치후 PERFORMANCE 향상을 최대화하기 위한 방안을 다음과 같이 제시한다. (WINDOWS는 386확장모드에서 가상메모리를사용할 수 있다.) 이러한 제시 사항들은 표준 모드와 실제모드에 적용할 수 있으며 잘 작동한다. 물론 표준모드에서…

TWO-PHASE COMMIT

1. Two-Phase Commit 이란? (1) Two-Phase Commit은 Application Programmer가 별도의 Program없이 Global Database의 Integrity를 보장하는 기법이다. (2) Two-Phase Commit 은 분산 환경 Database (DB link)를 사용하는 경우에 사용된다. 이는 Oracle…

TABLE 크기 추정 방법

TABLE(NON-CLUSTED TABLE)의 초기 사용량을 추정하는 방법을 살펴보자.   여기서는ORACLE7 SERVER를 기준으로 하여 설명 하기 하며, TABLE의 초기 사용량을 계산하는 단계를 다음과 같이 나눌수 있다.   STEP 1 – 총 블럭…

ORA-1555 조치방법

ORA-1555 Snapshot Too Old 에러가 발생하는 원인은 여러가지가 있을 수 있다. 이를 이해하기 위해서 오라클의 내부 메카니즘에 대해서 알아볼 필요가 있다. 오라클은 항상 Statement-Level Read Consistency를 유지한다. 즉, 하나의 Query…

LOCK 문제 확인과 해결 방법

– 응용프로그램들의 기능이 복잡해져가면서 Lock 문제가 빈번하게 발생함에 따라 이를 해결하는 것이 매우 중요한 일이 되었다. 도대체 어떠한 프로그램이 Lock을 발생시켜 데이타베이스를 Hangup 상태에 이르게 하는가를 알아내는 것은 쉬운 일이…

DATA BLOCK CORRUPTION : ORA-1578 해결방법

모든 오라클 데이타 블럭은sequence   번호(seq)와incarnation 번호(inc)를 갖고 있다. ORA-1578 에러는seq=0 이고inc<>0(새로운 블럭이 아님)일 때 발생한다. ORA-1578 에러는ORA-600[3339] 에러와 함께 발생하곤 한다.   ORA-1578 에러가 발생하면 corruption   발생한 화일번호와 블럭번호를…

오라클 비트맵 인덱스 BITMAPPED INDEX

Datawarehousing환경 과End-User-Computing환경등에서 필요한RDBMS의 첨단Indexing Access기법으로 경쟁사에서는Bitwised Index를 발표하고 있습니다. 이 기법은Oracle Server V7.3에서도Bitmapped Index라는 이름으로 발표될 예정이므로 이에 대한 정확한 이해를 위해 다음사항을 기술해 보았습니다.   Bitmapped Index란 ? RDBMS의Table로부터…

Invisible Index

1. Invisible Index란 Invisible Index기능은 Optimizer가 Execution Plan을 생성 시에 Invisible Index인 Index들을 무시 하게 되는 기능입니다. Session이나 System별로 OPTIMIZER_USE_INVISIBLE_INDEXES Parameter를 True로 설정하게 되면 Optimizer가 Invisible Index라고 할지라도 무시하지 않고…

시스템 성능에 큰 영향을 미치는 상위 8개 INIT.ORA 파라미터

다음에 열거된 파리미터는 각각 데이터베이스 튜닝에 영향을 미치는 것들이다. DB_BLOCK_BUFFERSSHARED_POOL_SIZESORT_AREA_SIZEDBWR_IO_SLAVESROLLBACK_SEGMENTSSORT_AREA_RETAINED_SIZEDB_BLOCK_LRU_EXTENDED_STATISTICSSHARED_POOL_RESERVE_SIZE 1. DB_BLOCK_BUFFERS이 파라미터는 모든 버젼의 오라클에서 사용되며, Oracle block 크기를 단위로 지정하게 된다. 이 값은 사용자가 요청하는 데이터를, 메모리 영역에…