no image
[DB] Oracle에서 다양한 방법으로 테이블 백업하기
Oracle에서 기존 테이블을 백업 테이블로 만들 때, CREATE TABLE과 AS SELECT 문을 사용하여 테이블의 구조와 데이터를 쉽게 복사할 수 있다. 본 글에서는 테이블 백업을 위한 여러 가지 방법을 소개하고, 각 방법을 상황에 맞게 선택할 수 있도록 설명한다.1. A 테이블을 그대로 백업 테이블로 복사하기- 테이블o, 데이터o, 인덱스x, 제약조건xCREATE TABLE A_backup ASSELECT *FROM A; 이 방법은 A 테이블의 모든 데이터와 구조를 그대로 A_backup 테이블에 복사한다.테이블의 모든 컬럼과 데이터가 포함되며, 인덱스나 제약 조건은 복사되지 않는다.2. A 테이블의 구조만 백업하고 데이터는 복사하지 않기- 테이블o, 데이터x, 인덱스x, 제약조건xCREATE ..
2024.11.21
no image
[DB] Oracle DB에 HTML 엔티티로 데이터 입력하기
오라클 데이터베이스에 데이터를 저장할 때, 특정 문자가 정상적으로 입력되지 않거나 깨지는 경우가 발생할 수 있다.특히, 중국어(난 중국어가 밉다........하)와 같은 다국어 문자를 저장할 때 데이터베이스와 애플리케이션 간 문자 인코딩이 맞지 않으면 문제가 생길 수 있다.이를 해결하기 위해 HTML 엔티티 형식으로 데이터를 변환하여 입력하는 방법을 사용한다.HMTL 엔티티란?HTML 엔티티는 HTML에서 특정 문자를 표현하기 위해 사용하는 코드이다.각 문자를 &#유니코드값; 형태로 변환하여 저장하며, 이를 통해 데이터가 깨지지 않고 안전하게 입력될 수 있다.예를 들어, 社会는 HTML 엔티티로 社会와 같이 변환된다.1. 의존성 설정Apache Commons Text 라이브러리를..
2024.11.20
no image
[DB] Character set 'utf8mb3' is not supported by .Net Framework.
개요Toad for MySQL에서 10버전인 Maria DB 연결 설정 시, [Character set 'utf8mb3' is not supported by .Net Framework.] 이런 오류가 발생한다.내가 접속 정보를 잘못 입력했나 확인해봤지만 접속 정보 문제가 아니라 charset(문자) 때문에 발생한 것으로 확인했다.왜냐면 DBeaver에서는 정상적으로 접속이 되기 때문이다. DBeaver로 사용해도 되지만 왜 문제인지 궁금하다.확인해보자. 원인utf8mb3 관련 오류는 MySQL과 MariaDB의 문자 집합(charset) 변경으로 인해 발생할 수 있다고 한다.이 오류는 MariaDB와 MySQL이 서로 호환되지 않는 문자 집합을 사용할 때 발생하며, 특히 utf8mb3와 utf8mb4의 ..
2024.11.18
no image
[DB] ORA-12505 에러 원인 및 해결 방법
에러 원인1. 잘못된 SID 입력: 클라이언트가 연결하려는 데이터베이스의 SID가 잘못 기입2. 리스너 설정 문제: 리스너가 해당 SID를 인식하지 못하거나 데이터베이스 인스턴스가 리스너에 등록되지 않았을 경우3. 리스너 비활성화: Oracle Listener가 실행 여부 확인4. 네트워크 문제: 클라이언트와 서버 간의 네트워크가 불안정하거나 방화벽 설정이 문제 해결 방법1) SID 확인- tnsnames.ora 파일을 열어 설정된 SID가 정확한지 확인SELECT instance_name FROM v$instance; 2) 리스터 상태 확인# 리스너 실행 여부 확인lsnrctl status#리스너 실행lsnrctl start 3) 리스너에 SID 등록 여부 확인- 리스너가 데이터베이스 인스턴스를 인식하..
2024.11.10
no image
[DB] 오라클 DBA_TAB_PRIVS 테이블 계정 권한 조회하기
A 업체에게 GRANT 명령으로 부여된 권한이 있는 지 확인이 필요한 경우가 있다.DBA_TAB_PRIVS 테이블은 Oracle 데이터베이스에서 특정 계정이나 역할에 부여된 테이블 및 뷰 권한을 확인할 수 있는 뷰다.DBA, 개발자, 데이터베이스 관리자들이 특정 사용자가 어떤 테이블에 접근할 수 있는지 조회할 때 자주 사용되며, 보안 관리와 권한 설정을 효과적으로 관리할 수 있게 도와준다. 주요 컬럼 설명컬럼명데이터 타입설명GRANTEEVARCHAR2권한을 부여받은 사용자 또는 역할의 이름OWNERVARCHAR2테이블 또는 뷰의 소유자 (소유 계정 이름)TABLE_NAMEVARCHAR2권한이 부여된 테이블 또는 뷰의 이름GRANTORVARCHAR2권한을 부여한 사용자의 이름PRIVILEGEVARCHAR2..
2024.11.07
no image
[ORACLE] Function과 Procedure의 효율적인 사용 방법
최근 데이터 이관 작업을 진행하면서 예외 처리에 대해 Function을 사용하여 효율적으로 트러블 슈팅을 진행했다.트러블 슈팅 진행 과정에서 한가지 의문점이 생겼다.Function(함수)과 Procedure(프로시저) 둘 다 비슷한 구조를 가졌지만 어떤 시점에서 어떤 객체를 사용해야지 더 적절한 선택인지에 대한 의문이 생겼다.그에 따라서 Function과 Procedure의 차이점, 각 장단점, 그리고 적절한 상황 판별에 대해서 써본다. 1. Function과 Procedure의 기본 개념Function (함수)정의: Function은 특정 작업을 수행한 후 반드시 하나의 값을 반환하는 SQL 객체다.주용도: 주로 값을 계산하거나 데이터를 변환하는데 사용된다. 이를 통해 반환값을 다른 SQL문 또는 PL..
2024.09.08
no image
[DB] Oracle AWR 스냅샷을 활용한 SQL 성능 분석
Oracle 데이터베이스의 성능을 분석하는 데 있어 AWR(Automatic Workload Repository) 스냅샷은 매우 중요한 역할을 한다. AWR 스냅샷은 특정 시점의 데이터베이스 성능 데이터를 캡처하여 저장하며, 이를 통해 데이터베이스 성능 문제를 진단하고 최적화하는 데 유용한 정보를 제공한다.AWR 스냅샷을 활용하여 특정 시간대의 SQL 성능을 분석하는 SQL 쿼리에 대해 확인해보자. 1. 스냅샷(Snapshot) ID 추출하기먼저, 특정 시간대에 해당하는 AWR 스냅샷의 SNAP_ID를 추출한다.DBA_HIST_SNAPSHOT 뷰에는 각 스냅샷의 시작 시간(BEGIN_INTERVAL_TIME)과 끝 시간(END_INTERVAL_TIME)이 저장되어 있다.SELECT SNAP_ID FROM..
2024.08.20
no image
[ORACLE] 오라클 쿼리 로그 확인하기
금일 오전에 테스트 서버 권한관리 테이블에 데이터가 싹 사라져 있었다..사용자 권한에 따라서 페이지 메뉴 탭이 구분되어 보이는데, 관리자를 제외한 모든 사용자가 메뉴 탭을 확인하지 못하는 상황이 발생되었다. 테스트 서버라서 다행이다.자, 이제 누가 권한관리 테이블을 언제, 어떤 계정으로, 어떤 쿼리를 통해 삭제했는지 확인해보자. Oracle versionDBMSOracle 10gToad for Oracle 1. V$SQL 뷰를 통해 쿼리 로그 확인V$SQL 뷰는 현재 메모리에 있는 SQL 문에 대한 정보를 제공한다.이 뷰를 사용하면 최근 실행된 SQL 문을 확인할 수 있다.SELECT sql_id, sql_textFROM v$sqlWHERE sql_text LIKE '%검색하고자 하는 내용%';--실행한..
2024.08.13
no image
[DB] SQL에서 순차적인 번호 부여하기: ROW_NUMBER() 함수 사용법
데이터베이스를 다루다 보면 특정 조건에 따라 순차적인 번호를 부여해야 할 때가 있다.이번 포스팅에서는 SQL의 ROW_NUMBER() 함수를 사용하여 각 그룹 내에서 순차적인 번호를 부여하는 방법에 대해 알아보자. 예시 상황다음과 같은 [구매내역] 테이블이 있다고 가정하자.구매번호아이템코드구매일자물품명단가수량1001A0012024-01-01노트북100021001A0022024-01-01마우스5011001A0012024-01-01노트북100011002A0032024-01-02키보드7011002A0042024-01-02모니터20021002A0032024-01-03키보드702 각 [구매번호]와 [아이템코드]내에서 순차적인 [항목번호]를 부여하고 싶다면, ROW_NUMBER() 함수를 사용하여 다음과 같이 쿼리..
2024.07.17