Containers in a CDB [1] STUDY 요약 1. 컨테이너 : CDB 컨테이너, PDB도 컨테이너이며 CDB가 논리적으로 상위 개념입니다. 컨테이너는 여러 개의 데이터베이스를 하나의 인스턴스에서 관리할 수 있도록 해주는 독립적인 단위입니다. 이러한 컨테이너는 두 가지 주요 유형으로 나눌 수 있습니다: 1) CDB : Container Database : CDB는 여러 개의 플러그형 데이터베이스(PDB)를 포함할 수 있는 상위 컨테이너입니다. CDB 자체는 관리 및 설정 작업을 위한 메타데이터와 공통 시스템 데이터베이스를 포함합니다. 2) PDB : Pluggable Database ..
==== 목차 ==== [ 1 ] 아카이브 모드 설정방법 [ 2 ] 아카이브 파일 저장경로 설정방법 1. FRA (Fast Recovery Area) 관리 2. log_archive_dest 관리 ( 이중화 실습 ) 3. log_archive_dest_n 관리 ( 삼중화 실습 ) ※ 위 1, 2, 3번으로 아카이브 저장경로 1곳으로 설정가능하나, 사용방법 이해를 위해 최대한 다중으로 저장해보는 실습 [ 3 ] 백업 파일은 FRA 저장, 아카이브만 별도 경로 설정방법 [ 1 ] 아카이브 모드 설정 방법 1. 아카이브 모드 확인 : database 설치시에 Archive Mode를 설정하지 않아, No Archive Mode이다. sqlplus / as sysdba SQL> arc..
오라클 EOL(End of Life)는 오라클 제품이나 버전에 대한 공식적인 지원과 업데이트가 종료되는 시점입니다.EOL 시점 이후에는 오라클이 보안패치, 버그수정, 기술 지원등을 제공하지 않습니다. 아래 표를 보게 되면 현 프로젝트에서 오라클 사용하는 버전이 왜 19C로 선택했는지 알 수 있습니다. 버전출시일Premier Support 종료Extended Support 종료Sustaining Support 종료 23c (LTR)2023년 9월2032년 04월 30일사용 가능사용 가능 21c2021년 8월2025년 04월 30일사용 불가사용 가능 19c (LTR)2019년 4월2026년 04월 30일2027년 04월 30일사용 가능 18c2018년 7월2021년 06월 30일사용 불가사용 가능 ..
Linux 서버 계정 비밀번호 변경 [1] ROOT 계정으로 passwd "비밀번호 변경계정명" 기입하면되나, command not found 에러 발생함bash-4.2# idid=0(root) gid=0(root) groups=0(root)bash-4.2# passwd oraclebash: passwd: command not found 명령문 위치를 찾기, 없다고 나온다.bash-4.2# which passwdwhich: no passwd ~~ [2] PASSWD 패키지 설치 : Oracle Linux는 Red Hat Enterprise Linux (RHEL) 기반이기 때문에 root 계정으로 yum or dnf로 하여 passwd 패키지를 설치하면된다. Unbuntu, Demian은 apt-get..
TEST DB : ORACLE 21C PDB LIST : PDB1, PDB3 [1] 계정 생성 시도 : CDB에서는 일반적인 문자열로 계정이 생성되지 않습니다. CREATE USER PDB_ADMIN IDENTIFIED BY 1111; * Error : ORA-65096 INVALID COMMON USER OR ROLE NAME[2] 계정 생성 시도 ( C## = COMMON USER ) : CDB에서 C## prefix로 계정 생성은 됩니다. 하지만, CDB와 모든 PDB에 생성이 됩니다. 모든 DB에 생성되고 눈에 띄므로 특수 or 관리자 계정 용도가 적합합니다.CREATE USER C##PDB_ADMIN IDENTIFIED BY 1111;GRANT CREATE SESSI..
ORACLESELECT * FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME IN ( 'NLS_TERRITORY','NLS_LANGUAGE','NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');또는 SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER IN ( 'NLS_TERRITORY','NLS_LANGUAGE','NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET'); TIBERO 6SELECT NAME, VALUE FROM DATABASE_PROPERTIES WHERE NAME IN ( 'NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET')UNION..
오라클 데이터베이스에서 발생하는 "ORA-00023" 오류는 세션과 프로세스의 메모리 관리와 관련된 복잡한 문제를 나타냅니다. 이 오류는 세션을 분리하려고 할 때, 해당 세션이 여전히 프로세스의 개인 메모리를 참조하고 있기 때문에 발생합니다. 오류 설명"ORA-00023" 오류는 DBA가 데이터베이스 세션을 분리하거나 종료하려고 시도할 때, 해당 세션이 아직 프로세스의 개인 메모리(예: PGA, Program Global Area)를 사용 중일 때 발생합니다. 이러한 메모리는 프로세스가 소유하며, 세션 분리 전에 적절히 정리되어야 합니다. 시나리오DBA인 박태준 씨는 금융 회사의 오라클 데이터베이스 시스템을 관리하고 있습니다. 태준 씨는 데이터베이스의 성능 최적화를 위해 일부 세션을 분리하고 재할당하는 ..
오라클 데이터베이스 관리에서 "ORA-00022" 오류는 세션 식별과 접근 제어와 관련된 문제를 드러냅니다. 이 오류는 DBA가 데이터베이스 접근을 시도할 때 유효하지 않은 세션 ID를 사용하여 발생하는 문제입니다. 오류 설명"ORA-00022" 오류는 세션 ID가 유효하지 않을 때 발생하며, 일반적으로 사용자가 데이터베이스에 접근하려고 할 때 "접근이 거부됨"으로 표시됩니다. 이는 시스템 또는 네트워크 오류, 세션 ID의 부적절한 처리 또는 보안 위반 시도로 인해 발생할 수 있습니다. 시나리오DBA인 한지민 씨는 회사의 중앙 데이터베이스에서 유지보수 작업을 진행하고 있습니다. 지민 씨는 특정 세션에 대한 상세 정보를 추출하려고 했으나, 갑자기 네트워크 중단 후 시스템 재접속 시도 중 "ORA-00022..
Oracle or Tibero 데이터베이스에서 현재 접속한 계정의 이름을 확인하려면 USER라는 SQL 함수를 사용할 수 있습니다.이 함수는 현재 세션에서 로그인한 사용자의 이름을 반환합니다. 다음은 해당 정보를 조회하는 간단한 SQL 쿼리입니다 [1] 현재 접속 계정SELECT USER FROM DUAL;[2] 응용하기 - 파티션 테이블 확인SELECT * FROM DBA_PART_TABLES A WHERE ( A.OWNER, A.TABLE_NAME ) = ( (USER, '판매테이블') ) 여기서 USER는 현재 데이터베이스 세션에서 연결된 사용자 이름을 반환하는 함수이며, DUAL은 Oracle에서 제공하는 가상 테이블로, 단일 행만 포함하고 있어 간단한 계산이나 값의 반환에 사용됩니다. 이 ..
오라클 데이터베이스 환경에서 ORA-00021 오류는 세션 관리와 프로세스 동기화의 복잡성을 드러내는 사례입니다. 이 오류는 특정 세션이 다른 프로세스에 속해 있을 때 해당 세션을 다른 프로세스로 전환하려고 할 때 발생합니다. 이 블로그 글에서는 오류의 상세 설명, 실제 발생 시나리오, 문제의 발생, 원인 분석, 해결 방법, 요약까지 자세히 다루겠습니다. 오류 설명"ORA-00021" 오류는 사용자가 현재 다른 프로세스에 이미 연결된 세션을 새로운 프로세스로 전환하려고 할 때 발생합니다. 이는 보통 오라클 데이터베이스의 분산 환경에서 자주 발생하는 문제로, 세션과 프로세스 간의 일관성을 유지하기 위한 오라클의 메커니즘에서 기인합니다. 시나리오현장에서 오랜 경험을 가진 DBA인 최민수 씨는 회사의 주요 데..
오라클 데이터베이스 관리에 있어 프로세스 한계를 초과하는 문제는 DBA에게 중요한 도전입니다. "ORA-00020" 오류는 시스템에서 허용하는 프로세스 수를 초과했을 때 발생합니다. 오류 설명"ORA-00020" 오류는 Oracle 데이터베이스의 설정된 PROCESSES 파라미터 값을 초과하여 더 이상 새로운 프로세스를 생성할 수 없을 때 발생합니다. 이 파라미터는 동시에 활성화할 수 있는 프로세스의 최대 수를 정의합니다. 시나리오한 중견 기업의 DBA로 근무 중인 김철수 씨는 회사의 금융 시스템을 운영 중입니다. 최근 시스템에 신규 애플리케이션을 통합하면서 사용자와 트랜잭션이 급격히 증가했습니다. 어느 날, 시스템 모니터링 도중 김철수 씨는 여러 사용자가 동시에 시스템에 접속하지 못하고 "ORA-000..
Oracle 데이터베이스 관리에 있어서 라이선스 관련 에러는 DBA에게 많은 도전을 제공합니다. 특히 "ORA-00019" 오류는 세션 라이선스의 최대 허용치를 초과했을 때 발생하며, 이는 특히 성능과 접근성 측면에서 중대한 문제를 일으킬 수 있습니다. 이 블로그 글에서는 이 오류의 설명부터 시작하여 실제 시나리오, 문제의 발생, 원인 분석, 해결 방법 및 요약까지 자세히 다루겠습니다.오류 설명"ORA-00019" 오류는 Oracle 데이터베이스에서 세션 라이선스 수가 설정된 최대값을 초과했을 때 발생합니다. 이는 일반적으로 많은 사용자가 동시에 데이터베이스에 접속을 시도할 때 발생하며, 라이선스 계약의 제한을 넘어서는 사용이 이루어졌음을 나타냅니다. 시나리오DBA인 지현은 대규모 ERP 시스템을 관리하..
오류 설명ORA-00017: session requested to set trace event는 데이터베이스 사용자가 세션 수준에서 추적 이벤트를 설정하려 할 때 적절한 권한이 없거나 설정이 허용되지 않는 경우에 발생합니다. 이 오류는 세션의 SQL 추적을 활성화하거나 특정 디버깅 모드를 설정하려고 할 때 흔히 나타납니다. 시나리오개발자인 "철수"는 성능 문제를 진단하기 위해 프로덕션 데이터베이스에서 세션의 SQL 추적을 활성화하려 합니다. "철수" 는 다음과 같은 SQL 명령을 실행합니다.ALTER SESSION SET EVENTS '10046 trace name context forever, level 12'; 이 명령은 데이터베이스에서 수행되는 "철수"의 모든 SQL 쿼리와 이에 대한 상세한 실행 ..
에러 코드: ORA-00003에러 메시지: "redo log read error block %s count %s" 설명ORA-00003 에러는 리두 로그 파일을 읽는 과정에서 에러가 발생했을 때 나타납니다. 리두 로그 파일은 데이터베이스가 트랜잭션을 수행하면서 발생하는 모든 변경사항을 기록하는 로그 파일입니다. 이 파일은 시스템이 예기치 않게 다운되었을 경우, 데이터베이스가 이전 상태로 복구하는 데 필수적입니다. 따라서 리두 로그 파일의 읽기 에러는 매우 심각한 문제를 일으킬 수 있습니다. 발생 원인물리적 손상: 리두 로그 파일이 저장된 디스크의 물리적 손상으로 인해 파일의 일부 블록을 읽을 수 없는 경우.시스템 오류: 파일 시스템 오류 또는 데이터베이스 시스템 오류로 인해 리두 로그 파일의 일부가 손상..
설명: 이 오류 코드는 SQL 커서가 올바른 순서로 데이터를 가져오지 않았을 때 발생합니다. 일반적으로, 트랜잭션 처리 중에 커서의 순차적인 로직이 깨졌을 때 나타납니다. 발생 원인ORA-00002 에러는 주로 PL/SQL 또는 다른 스크립트 내에서 커서를 사용할 때 잘못된 순서로 데이터를 요청하거나 이미 닫힌 커서에서 데이터를 가져오려고 시도할 때 발생합니다. 예를 들어, 커서를 열고 데이터를 가져온 후, 트랜잭션을 롤백하고 같은 커서를 사용하여 데이터를 다시 가져오려고 할 때 이 오류가 발생할 수 있습니다. 예제다음은 ORA-00002 오류를 일으킬 수 있는 PL/SQL 프로시저의 예입니다DECLARE CURSOR emp_cursor IS SELECT * FROM employees;..