오라클 공식 Document 리스트 에서는 20C 는 나타나지 않고 있습니다.
문서 링크는 아직 남아 있으며 공식 릴리즈 문서등에서는 19c 에서 21c 버전을 정식으로 사용 하는것으로 확인됩니다.

21c 는 2020년 12월 8일 부터  일부리전에서  ( Ashburn (IAD), Phoenix (PHX), Frankfurt (FRA) and London (LHR) regions) 에서 Free tier 클라우드에서 사용가능 하다고 하네요. (2021-01-05 내용추가)

- Oracle Blog 참조

blogs.oracle.com/database/introducing-oracle-database-21c


- Oracle 21c 의 공식문서 link -
docs.oracle.com/en/database/oracle/oracle-database/21/whats-new.html

 

오라클 20c 의 공식 문서가 OPEN 되었네요.
일단 문서를 보면 빅데이터 관련 내용이 먼저 순서를 차지 하고 있습니다.


Oracle Database Release 20c New Features

  1. Big Data and Data Warehousing Solutions
  2. Security Solutions
  3. Performance and High-Availability Options
  4. Tools and Languages
  5. Database Upgrade and Utilities

 

Interactive Architecture Diagram

아래 링크에서는 변경된 아키텍처에 관해서 살펴 볼수 있습니다.

https://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/20/database-technical-architecture.html

 

Oracle Database Technical Architecture

This interactive diagram shows the Oracle Database 20c technical architecture. Show PDF    |   Show Instructions To step through the slide show, click the Previous and Next buttons. To return to the first slide, click the First button. The breadcrumb below

www.oracle.com

 

 개인적으로 다른것보다 20c 공식적으로 JSON 데이터 타입이 추가 되었다는 내용이 보입니다.
이전에 JSON Document 형태의 활용에 관한 포스팅을 하면서 언급했던 반쪽 짜리 JSON 기능이  20c 부터 어느정도 구체화되었다고 생각 할 수 있을것 같습니다.

 테이블의 칼럼 자체를 JSON TYPE 으로 생성 할 수 있게 하고, SQL 과 PLSQL function을 사용 할 수 있게 되었습니다만
안타깝게도 파라메터 initialization parameter compatible 20 이하에서는 사용할수 없다고 합니다.
결국 새로운 서비스를 하는 신규 DB 에서만 활용이 가능하겠네요..


JSON 관련 Oracle Document :

https://docs.oracle.com/en/database/oracle/oracle-database/20/newft/new-json-data-type.html

 

Database New Features Guide

 

docs.oracle.com

 


JSON  관련 ORACLE blog :

https://blogs.oracle.com/sql/how-to-store-query-and-create-json-documents-in-oracle-database

 

How to Store, Query, and Create JSON Documents in Oracle Database

JavaScript Object Notation (JSON) is a lightweight data transfer format. It's the de facto standard for document exchange. So it's likely you'll want to send and receive JSON documents from and to your database. And store them in your tables. Oracle Databa

blogs.oracle.com

 

현재는 구체적인 설명없이 링크를 나열했지만, 나중에 다시 정리 하게 된다면 그때는 API 안에서의 구체적인 사례에 대해서 공유 할 수 있기를 스스로에게 기대 해보겠습니다.

(Oracle Cloud와 On-Premise에서 Oracle APEX 관련 문서도 마무리 못하고 묵혀놓은지가 몇개월 되가네요.)

추가 : 
오라클 블로그에서 20c 에 대한 글이 포스팅되어 있는데  Blockchain Table에 대한 내용도 확인이 가능하다고 합니다.
Heap Table 과 비슷하게 작동하지만 가장 주목할만한 변화는 변경 불가능한 암호화된 Hash 값이 입력이 된다고 하네요

https://blogs.oracle.com/database/oracle-database-20c-preview



Oracle Blog 참조 링크
https://blogs.oracle.com/database/oracle-database-20c-preview

 




최근 조금씩 짬을내서 이것 저것 테스트 하고 있습니다. 

오라클 Database 가 12c, 18c 에 이어서 19c 가 2019년에 릴리즈 되었습니다. 


2019년 1월 16일 오라클 부사장이쓴 오라클블로그에서 http://LiveSQL.oracle.com 에서 테스트가 가능함을 알려주었고, 2월 13일에는 엑사 데이터에서 사용하다는 내용도 올라와 있습니다.  2019년 3월 15일 기준으로 정확한 일자가 있는 부분은 Exadata  (2019년2월 13일) 과 Supercluster (2019년2월 22일) 두 시스템뿐이고 이외에는 2019년 1쿼터(Q1CY19)와 2쿼터(Q2CY19)에 예정으로 표시되어 있습니다.


■ Release Schedule of Current Database Releases

기타 릴리즈 스케쥴은 MOS 문서 ID 742060.1 에서 확인이 가능합니다.


 ▶ 릴리즈 관련 블로그

oracle-database-19c-now-available-on-livesql

oracle-database-19c-now-available-on-oracle-exadata


그리고 이번 포스팅의 목적은 예전 아키텍쳐는 외워서 그릴수 있었지만, 개인적으로 아키텍처 리마인드를 하기 위해서 자료를 찾아 보던중 정리 하기로 했습니다. 


▶ 하기 Quick Reference Guide 는 아키텍쳐 뿐아니라 DBA View 및 Background Process 등의 정보도 확인 할수 있습니다. 


Oracle Database 11g Interactive Quick Reference Guide

https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/11g/Poster/11g_interactive.html


Oracle Database 12c: Interactive Quick Reference

https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/poster/OUTPUT_poster/poster.html



참고: 오라클은  12.2.0.1 까지 12버전이고 12.2.0.2 는 18로 발표 되었고, 12.2.0.3 은 19 버전이기 때문에12C 이후 아키텍처는 크게 변동이 없어서인지 모르겠지만, 추가기능들이 있기 때문에 별도의 페이지(Interactive Architecture Diagram)에서 확인이 가능합니다.

■ 참고: 릴리즈버전의 넘버링 변화 

Release Version Numbering Changes

Beginning in 2018, a new numbering schema for the database software is implemented. Instead of a legacy nomenclature such as 12.2.0.2, a three (3) field format consisting of: Year.Update.Revision is used, such as 18.1.0. This allows clear indication of:

  • the feature release designation of the database software (the first field)
  • the quarterly Update (the second field)
  • the quarterly Revision (the third field)


Interactive Architecture Diagram

아키텍처의 구조를 살표 보고 싶으면 하기의 ORACLE 버전별 문서를 찾아 보시면 됩니다.


Version :
▶ 12c Interactive Architecture Diagram
▶ 18c Interactive Architecture Diagram
▶ 19c Interactive Architecture Diagram 

18c 와 19c 의 아키텍처를 비교해서 살펴보니 신기능들의 처리에 대한 부분이 추가 되어있는것들을 확인 할 수있습니다.


♣ LRU 관리 및 체크포인트 큐가 18버전에서는 Shared Pool 에 속해서 나타나고 있었는데 19에서는 Data Buffer Cache 안에 표시 되어 있습니다만 어떤 의미가 있는지는 조금더 확인을 해봐야 겠습니다.
♣ 11gR2 부터 지원하는 Flashback Data Archive(FDA) 의 아키텍쳐도 조금 변경된듯 합니다. 데이터를 커밋하기전에  FBDA가 버퍼캐시(UNDO block)에 데이터파일 (UNDO Segment) 를 추가로 확인하는것으로 보여집니다.


FDA를 활용 해보려고 했지만, 현재 운영 환경에서 추가적인 리소스및 IO 발생 염려와 레퍼런스를 찾지 못했고  나중에 기회가 되면 따로 정리를 할 계획입니다.

NEW feature 를 먼저 보고 구동방식에 대해서 관심을 가지는게 순서인데 어쩌다 보니 아키텍처를 먼저보려니 알수 없는부분이 많은게 사실입니다. 

그리고, 버전별로 New feature 검색을 통해서 블로그에 들어오시는분들이 있습니다만, 각각 버전별 문서에 잘 정리 되어 있고 게으름때문에 별도의 정리는 하지 않고 있습니다. 


언제가는 할겁니다......





R12 기준으로 확인 했을때 보통 툴이나  Dba_Constraints 를 찾아 보게 될건데 오라클 ERP 는 

어떻게 된놈인지 테이블이 2만개가 넘는데 제약 조건이 없다!!  

 

어떻게 된 일일까? 

 

 

 

 

 

그러면 표준테이블 어디서 어떻게 Key 를 찾아서 Extension 개발을 하지?

SQL 조인을 해서 데이터를 뽑던, VIEW 를 만들던 조인이 되야 할꺼 아닌가.

Database 를 공부하다가 보면 제약 조건에 대한 내용은 배우는 거라서 테이블에 웬만하면 다하는줄 알았는데.;;

어느 DB 커뮤니티에 PK FK 가 설정안된 곳이 많이 있냐고 올라온 글을 보고서 뻘 답글을 남긴적이 있다

그러면 어디서 어떻게 찾아야 할까....

 

현 MOS(My Oracle Support) 구 metalink (구 양배추 현 조세호 도 아니고;;) 에 방대한 문서들도 있고.

Technical Reference Manual 이 잘 되어 있다.  

 

E-TRM 에서 해당 버전별 OBJECT 를 조회 하면 각 칼럼들의 설명과 더불어 대빵큰(?) 모듈별 ERD 에서

논리적 연결고리를 확인할 수 있다.

http://etrm.oracle.com/pls/etrm/etrm_search.search

 

▶ ERD는 어느정도 익숙한 모듈이다 싶으면 800%확대해도 간신히 글자가 보이고, 1600% 확대 해야 알아 먹을수 있는 PDF;;

 

이외에 Database 직접 접근이 가능할 경우  해당 테이블의 Index 중에 Unique Index 를 찾아 테이블의 Key 를 찾아서 

조인해서 사용을 할것이다. 대부분이 그렇지 않을까; (처음 배울때 누가 알려주는 사람이 없어서 이렇게 맨땅에 헤딩경험한 1인)

 

한가지 더 소개 하자면, application developer 권한의 Database 라는 메뉴를 사용해서 확인이 가능하다.

 

 

 

 

 

 

TABLE Function 을 참고로 해서 보면 툴에서 많이 보던 내용이 나타난다.

각 아이템별 설명은 대부분 아실거라 생각 하고 패쓰 하고.생소한 아이템들에 대해서는 별도로 개인정리하기로 혼자 정함;;

 

 

Oracle ERP Primary Key 조회

SELECT ft.table_id,        ft.table_name,        ft.table_type,        fpk.primary_key_id,        fpk.primary_key_name,        fpk.description,        fpk.enabled_flag,        fpkc.column_id,        fc.column_sequence,        fc.column_name,        fc.column_type   FROM fnd_tables              ft,        fnd_columns             fc,        fnd_primary_keys        fpk,        fnd_primary_key_columns fpkc  WHERE 1 = 1    AND ft.application_id = fc.application_id    AND ft.table_id = fc.table_id             AND ft.application_id = fpk.application_id    AND ft.table_id = fpk.table_id          AND fpk.application_id = fpkc.application_id    AND fpk.table_id = fpkc.table_id          AND fpkc.column_id = fc.column_id          AND ft.table_name LIKE '<TABLE_NAME>';

 

 테이블/칼럼

fnd_tables

fnd_columns

 

▶ Primary Key/Column

 fnd_primary_keys

 fnd_primary_key_columns

 

 Foreign Key/Column

 fnd_foreign_keys

 fnd_foreign_key_columns

 

▶ Index/Column

 fnd_indexes;

 fnd_index_columns

 

DB OBJECT 아이디와 별개로 각각의 고유한 Table ID 를 가지고 있다.

 

결국은 제약 조건을 테이블에 직접 걸지 않고, 별도의 테이블로 관리를 하고 있었다는거다. 

 

Surrogate Key 사용은 쿼리가 복잡해진다는 단점이 있지만, 데이터 변경에 대한 영향을 적게 받을수 있기 때문에 운영상의 이점이 있다는 점이 

작용을 한것으로 보인다.

 

 

아래의 Wiki 문서 내용을 참조 

 

  • Applications cannot lose their reference to a row in the database (since the identifier never changes).
  • The primary or natural key data can always be modified, even with databases that do not support cascading updates across related foreign keys.

 

 

https://en.wikipedia.org/wiki/Surrogate_key#Advantages

 

추가. Table Column 제약조건 찾기 (2014.11.03)

 

SELECT dcc.owner,        dcc.table_name,        dcc.constraint_name,        dcc.column_name,        decode(dc.constraint_type, 'P', 'PRIMARY KEY', 'U', 'UNIQUE KEY', 'C', 'CHECK OR NOT NULL', 'R', 'FOREIGN KEY') constraint_type   FROM dba_cons_columns dcc,        dba_constraints  dc  WHERE 1 = 1    AND dcc.table_name = dc.table_name    AND dcc.constraint_name = dc.constraint_name    AND dcc.owner = nvl(upper('&USERNAME'), dcc.owner)    AND dcc.table_name = nvl(upper('&TABLENAME'), dcc.table_name)  ORDER BY 1,           2,           3,           4;

 

 

 

'Developer > Tip' 카테고리의 다른 글

몇가지 고려사항 [Oracle ERP Developer guide]  (0) 2009.06.29
ITEM 조건에 따른 LOV 변경  (0) 2009.06.23
VIEW 를 이용한 DML 작업  (0) 2009.06.19

2014. 4. 1DIAGNOSTIC TOOLS



RDA Getting Started

RDA Documentation Links
Getting Started
You are here

In This Document



Overview

Remote Diagnostic Agent (RDA) is a command-line diagnostic tool that is executed by an engine written in the Perl programming language. RDA provides a unified package of support diagnostics tools and preventive solutions. The data captured provides Oracle Support with a comprehensive picture of the customer's environment which aids in problem diagnosis.


Oracle Support encourages the use of RDA because it greatly reduces service request resolution time by minimizing the number of requests from Oracle Support for more information. RDA is designed to be as unobtrusive as possible; it does not modify systems in any way. It collects useful data for Oracle Support only and a security filter is provided if required.


This guide provides users with an overview of RDA, the download instructions, and general steps about how to execute RDA within a UNIX, Windows, and Mac OS X environment.


▶ 이 가이드는 RDA의 개요, 다운로드 지침 및 UNIX, Windows 및 맥 OS X 환경에서 RDA를 실행하는 방법에 대한 일반적인 단계를 사용자에게 제공합니다.



RDA 를 사용함으로써 문제에 대해서 해결시간을 크게 줄일수 있으며, 시스템에 대한 변경을 가하지 않다고 명시 되어 있네요.

그러나 개인적으로 가장큰 이점으로 생각하는 부분은 오라클 제품들에 대한 사전 설치 작업에 대해서 체크를 할수 있다는 것입니다.



▶ 상세 내역은 하기 문서를 통해서 확인 할 수 있습니다.


◈  RDA - Health Check / Validation Engine Guide (문서 ID 250262.1)


ORACLE E-BUSINESS SUITE, ORACLE DATABASE등등 제품들에 대한 OS 별 사전 설치 환경 검토를 할수 있습니다.

- 해당 Product 의 OS 인증정보,ORACLE_HOME 체크, 자바, HW 정보, OS 각종 설정 대한 내용등을  Rule Group 라는 항목으로  코드화하여 나타내고 있습니다.




▶ 추가적으로 오라클 Database 설치시 필요한 사전 패키지들에 대해서 버젼별로 하나하나 설치 하던 방식에서 벗어나 한번에 설치 가능하도록 하고 있습니다.      오라클 공식 사이트 참조링크.



♣ 리눅스에서 Database 설치를 위한 사전 패치셋 설치 예


Linux OS Installation with Reduced Set of Packages for Running Oracle Database Server (문서 ID 728346.1)


Installation

For OL4/RHEL4 and OL5/RHEl5, either one of below will install all packages required for running Oracle software and resolve all dependencies:

  • yum:
    # yum install oracle-validated
  • up2date: up2date needs a repository, so the oracle-validated package needs to be added to an existing repository or a new repository needs to be created then added to the up2date configuration:
    # up2date --nox --update oracle-validated

Check Document 1152174.1 in case you encounter errors of missing kernel-header rpm package.

For Oracle database 11gR2 running on  OL6/RHEL6, use command below to install all packages required for running Oracle software and resolve all dependencies .

# yum install oracle-rdbms-server-11gR2-preinstall

For Oracle database 12cR1 running on  OL6/RHEL6,use command below to install all packages required for running Oracle software and resolve all dependencies.

yum install   oracle-rdbms-server-12cR1-preinstall


NULL 관련 함수

-- NULLIF (exp1,expr2)

NULLIF  expr1  expr2 를 비교합니다. 같은 경우는 NULL을 리턴합니다. 다르면 expr1 을 리턴합니다. expr1 은 리터럴 NULL 을 지정할 수 없습니다.

동일문장

CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END

 

-- COALESCE(expr1,expr2,expr3,)

COALESCE 는 식의 목록의 첫 번째 NULL이 아닌 expr 을 반환합니다. 2 개 이상의 식을 지정할 필요가 있습니다. 모든 expr 이 NULL로 계산되는 경우,이 함수는 NULL을 리턴합니다.

동일문장

CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END

통계관련 함수

-- CORR (exp1,expr2)

CORR 숫자 쌍의 집합에 대한 상관 계수를 반환합니다. 이것은 집계 함수 또는 분석 함수로 사용할 수 있습니다.

이 함수는 인수로서 임의의 수치 데이터형 또는 암묵적으로 수치 데이터 형으로 변환 가능한 숫자가 아닌 데이터 형식을 취합니다. Oracle 숫자의 우선 순위가 가장 높은 인수를 판단하여 나머지 인수를 데이터 형식으로 암시적으로 변환하여 데이터 형식을 반환합니다.

동일문장

COVAR_POP (expr1, expr2) / (STDDEV_POP (expr1) * STDDEV_POP (expr2))

참고 :

CORR 함수는 피어슨 상관 계수를 계산합니다. 이 계산하려면 수식을 인수로 지정해야합니다. Oracle은 비모수 또는 순위 상관을 지원하는 CORR_S (스피 어맨 로우 계수) 및
CORR_K (켄달의 타우 b 계수) 기능도 제공합니다.

 

 

무료 MongoDB 호스팅 (무료 240M, 더 많은 공간을 선택 사용 할경우 유료)

https://mongolab.com/home

전 위의 사이트와는 전혀 상관없는 사람입니다.

1. 가입 및 Database 생성

Database명 :mongolab

User 명 :mongolab

- 생성후 정보 확인

Shell 접속이 가능한지 아직 미확인이지만 사용시 아래와 같은 방법으로 접속

 

 

2. Toad for Cloud Database 에서 접속

Data source name : Cloud_MongoDB  (임의로 생성)

위에서 생성한 Database 명,Port, 사용자 정보 입력

 

- 가상환경 원격 디비에서 접속시와 동일한절차(내용추가는 언제쯤이나;;;)