요약
* datapump로 메타데이터 추출 시 인덱스, 제약조건, 트리거, 권한, 코멘트가 추출됨(뷰/시노님/PLSQL은 안됨)
* 테이블 rename 시 인덱스, 제약조건, 권한, 코멘트는 기존 테이블을 그대로 따라감
* 인덱스, 제약조건은 필요 시 변경하면 됨
* 트리거는 rename 시 VALID로 활성화됨
* 뷰/시노님/PLSQL은 재컴파일 해야 VALID로 활성화됨
* 자식 FK는 재생성(DROP/ADD) 필요
# 테스트 환경 준비
```
-- DBA 권한 계정으로 접속
sqlplus / as sysdba
-- 테스트 유저 생성
CREATE USER test_swap IDENTIFIED BY test_swap
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON USERS;
GRANT CONNECT, RESOURCE, DBA TO test_swap;
GRANT EXECUTE ON UTL_RECOMP TO test_swap;
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO test_swap;
-- 권한 부여용 유저 2명 (권한 승계 검증용)
CREATE USER app_user IDENTIFIED BY app_user;
GRANT CREATE SESSION TO app_user;
CREATE USER read_user IDENTIFIED BY read_user;
GRANT CREATE SESSION TO read_user;
EXIT;
```
-- OS 레벨에서 DATA_PUMP_DIR 위치 확인
SELECT directory_path FROM dba_directories WHERE directory_name = 'DATA_PUMP_DIR';
DIRECTORY_PATH
--------------------------------------------------------------------------------
/oracle/app/oracle/admin/ORCL/dpdump/
# 테스트 테이블 A 생성
```
CONNECT test_swap/test_swap
-- 부모 테이블 A
CREATE TABLE A (
msg_id NUMBER CONSTRAINT pk_a PRIMARY KEY,
user_id VARCHAR2(50) NOT NULL,
msg_type VARCHAR2(10) CONSTRAINT ck_a_type CHECK (msg_type IN ('SMS','MMS','PUSH')),
msg_body CLOB,
status_cd VARCHAR2(2) DEFAULT 'N' NOT NULL,
send_dt DATE DEFAULT SYSDATE NOT NULL,
ext_key VARCHAR2(100) CONSTRAINT uk_a_extkey UNIQUE
)
LOB (msg_body) STORE AS SECUREFILE lob_a_msgbody (
ENABLE STORAGE IN ROW
CHUNK 8192
NOCOMPRESS
);
-- 보조 인덱스
CREATE INDEX idx_a_userid ON A(user_id);
CREATE INDEX idx_a_senddt ON A(send_dt);
-- 코멘트
COMMENT ON TABLE A IS 'UMS 발송 이력 테이블';
COMMENT ON COLUMN A.msg_id IS '메시지 ID (PK)';
COMMENT ON COLUMN A.user_id IS '사용자 ID';
COMMENT ON COLUMN A.msg_body IS '메시지 본문 (CLOB)';
COMMENT ON COLUMN A.status_cd IS '발송상태 N:대기, S:성공, F:실패';
-- 트리거
CREATE OR REPLACE TRIGGER trg_a_biu
BEFORE INSERT OR UPDATE ON A
FOR EACH ROW
BEGIN
IF INSERTING AND :NEW.send_dt IS NULL THEN
:NEW.send_dt := SYSDATE;
END IF;
IF UPDATING THEN
:NEW.status_cd := UPPER(:NEW.status_cd);
END IF;
END;
/
-- 권한 부여
GRANT SELECT, INSERT, UPDATE ON A TO app_user;
GRANT SELECT ON A TO read_user;
-- 자식 FK 테이블 (자식 FK 처리 검증용)
CREATE TABLE A_DETAIL (
detail_id NUMBER PRIMARY KEY,
msg_id NUMBER NOT NULL,
recv_dt DATE,
CONSTRAINT fk_adetail_msgid FOREIGN KEY (msg_id) REFERENCES A(msg_id)
);
-- 의존 객체 (뷰, 시노님)
CREATE OR REPLACE VIEW V_A_RECENT AS
SELECT msg_id, user_id, status_cd, send_dt
FROM A
WHERE send_dt >= SYSDATE - 30;
CREATE OR REPLACE SYNONYM syn_a FOR A;
-- 샘플 데이터 (1만 건, 그중 최근 30일치만 남길 예정)
BEGIN
FOR i IN 1..10000 LOOP
INSERT INTO A (msg_id, user_id, msg_type, msg_body, status_cd, send_dt, ext_key)
VALUES (
i,
'user_' || MOD(i,100),
CASE MOD(i,3) WHEN 0 THEN 'SMS' WHEN 1 THEN 'MMS' ELSE 'PUSH' END,
'message body ' || i,
CASE MOD(i,2) WHEN 0 THEN 'S' ELSE 'F' END,
SYSDATE - MOD(i, 365),
'ext_' || i
);
END LOOP;
COMMIT;
END;
/
-- 통계
EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'A');
```
-- 사전 상태 저장 (검증용 베이스라인)
SELECT COUNT(*) total_cnt FROM A;
SELECT COUNT(*) recent_cnt FROM A WHERE send_dt >= SYSDATE - 30;
SELECT COUNT(*) total_cnt FROM A;
TOTAL_CNT
----------
10000
SELECT COUNT(*) recent_cnt FROM A WHERE send_dt >= SYSDATE - 30;
RECENT_CNT
----------
839
-- 메타데이터 베이스라인 추출
SELECT object_name, object_type, status FROM user_objects
WHERE object_name LIKE '%A%' OR object_name LIKE '%TRG_A%' ORDER BY object_type, object_name;
OBJECT_NAME OBJECT_TYPE STATUS
------------------------------ ----------------------- -------
IDX_A_SENDDT INDEX VALID
IDX_A_USERID INDEX VALID
PK_A INDEX VALID
UK_A_EXTKEY INDEX VALID
LOB_A_MSGBODY LOB VALID
SYN_A SYNONYM VALID
A TABLE VALID
A_DETAIL TABLE VALID
TRG_A_BIU TRIGGER VALID
V_A_RECENT VIEW VALID
10 rows selected.
SELECT constraint_name, constraint_type, status, validated FROM user_constraints
WHERE table_name = 'A' ORDER BY constraint_name;
CONSTRAINT_NAME C STATUS VALIDATED
------------------------------ - -------- -------------
CK_A_TYPE C ENABLED VALIDATED
PK_A P ENABLED VALIDATED
SYS_C006376 C ENABLED VALIDATED
SYS_C006377 C ENABLED VALIDATED
SYS_C006378 C ENABLED VALIDATED
UK_A_EXTKEY U ENABLED VALIDATED
6 rows selected.
SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name = 'A';
INDEX_NAME UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063643C00004$$ UNIQUE VALID
PK_A UNIQUE VALID
UK_A_EXTKEY UNIQUE VALID
IDX_A_USERID NONUNIQUE VALID
IDX_A_SENDDT NONUNIQUE VALID
SELECT grantee, privilege FROM user_tab_privs WHERE table_name = 'A' ORDER BY grantee, privilege;
GRANTEE PRIVILEGE
------------------------------ ----------------------------------------
APP_USER INSERT
APP_USER SELECT
APP_USER UPDATE
READ_USER SELECT
# DataPump로 메타데이터 추출
expdp test_swap/test_swap \
TABLES=test_swap.A \
CONTENT=METADATA_ONLY \
DIRECTORY=DATA_PUMP_DIR \
DUMPFILE=A_meta.dmp \
LOGFILE=A_meta_exp.log \
REUSE_DUMPFILES=YES
# DDL을 SQL 파일로 추출 (실제 import는 안 함)
impdp test_swap/test_swap \
DIRECTORY=DATA_PUMP_DIR \
DUMPFILE=A_meta.dmp \
SQLFILE=A_meta.sql \
LOGFILE=A_meta_imp.log
-- NEW 테이블 생성
CONNECT test_swap/test_swap
CREATE TABLE NEW
LOB (msg_body) STORE AS SECUREFILE (ENABLE STORAGE IN ROW CHUNK 8192 NOCOMPRESS)
NOLOGGING
PARALLEL 4
AS
SELECT * FROM A
WHERE send_dt < TO_DATE('2026-06-16 14:30:00','YYYY-MM-DD HH24:MI:SS') - 30;
-- 적재량 확인
SELECT COUNT(*) FROM NEW;
COUNT(*)
----------
9161
--DDL 스크립트 수정
테이블명 A를 NEW로 수정
--DDL 실행
@A_meta.sql
-- 결과 확인
CONNECT test_swap/test_swap
set lines 300 pages 1000
col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='NEW';
CONSTRAINT_NAME C STATUS
------------------------------ - --------
SYS_C006407 C ENABLED
SYS_C006408 C ENABLED
SYS_C006409 C ENABLED
CK_NEW_TYPE C ENABLED
UK_NEW_EXTKEY U ENABLED
PK_NEW P ENABLED
col index_name for a30
SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name='NEW';
INDEX_NAME UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063788C00004$$ UNIQUE VALID
IDX_NEW_SENDDT NONUNIQUE VALID
IDX_NEW_USERID NONUNIQUE VALID
UK_NEW_EXTKEY UNIQUE VALID
PK_NEW UNIQUE VALID
col grantee for a30
SELECT grantee, privilege FROM user_tab_privs WHERE table_name='NEW' ORDER BY grantee;
GRANTEE PRIVILEGE
------------------------------ ----------------------------------------
APP_USER INSERT
APP_USER SELECT
APP_USER UPDATE
READ_USER SELECT
SELECT comments FROM user_tab_comments WHERE table_name='NEW';
COMMENTS
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
UMS ?????????????????? ?????????????????? ???????????????????????????
-- 최신 데이터 보강
INSERT /*+ APPEND PARALLEL(NEW, 4) */ INTO NEW
SELECT /*+ PARALLEL(A, 4) */ * FROM A
WHERE send_dt >= TO_DATE('2026-06-16 14:30:00','YYYY-MM-DD HH24:MI:SS') - 30;
839 rows created.
COMMIT;
SELECT COUNT(*) FROM NEW;
COUNT(*)
----------
10000
자식 FK DISABLE
A의 PK를 참조하는 FK는 OBJECT_ID 기반이므로 RENAME 후에도 A_OLD를 참조하게 됩니다. 스왑 전 DISABLE → 스왑 후 새 A 참조로 재정의해야 합니다.
SELECT constraint_name, status FROM user_constraints
WHERE constraint_type='R' AND r_constraint_name='PK_A';
CONSTRAINT_NAME STATUS
------------------------------ --------
FK_ADETAIL_MSGID ENABLED
ALTER TABLE A_DETAIL DISABLE CONSTRAINT fk_adetail_msgid;
SELECT constraint_name, status FROM user_constraints
WHERE constraint_type='R' AND r_constraint_name='PK_A';
CONSTRAINT_NAME STATUS
------------------------------ --------
FK_ADETAIL_MSGID DISABLED
## RENAME 시작
ALTER TABLE A RENAME TO BAK;
ALTER TABLE NEW RENAME TO A;
RENAME을 하게 되면 인덱스, 제약조건, 트리거, 권한, 코멘트는 자동으로 변경된 테이블명을 따라감
시노님과 뷰는 안 따라감
-- 메타데이터 베이스라인 추출
SELECT object_name, object_type, status FROM user_objects
WHERE object_name LIKE '%A%' OR object_name LIKE '%TRG_A%' ORDER BY object_type, object_name;
OBJECT_NAME OBJECT_TYPE STATUS
------------------------------ ----------------------- -------
IDX_BAK_SENDDT INDEX VALID
IDX_BAK_USERID INDEX VALID
PK_BAK INDEX VALID
UK_BAK_EXTKEY INDEX VALID
LOB_A_MSGBODY LOB VALID
SYN_A SYNONYM INVALID
A TABLE VALID
A_DETAIL TABLE VALID
BAK TABLE VALID
TRG_A_BIU TRIGGER INVALID
V_A_RECENT VIEW INVALID
11 rows selected.
--NEW 테이블을 조회하면 아무것도 안 뜸
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='NEW';
no rows selected
--A 테이블을 조회하면 NEW 인덱스가 조회됨
SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name = 'A';
INDEX_NAME UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063788C00004$$ UNIQUE VALID
IDX_NEW_SENDDT NONUNIQUE VALID
IDX_NEW_USERID NONUNIQUE VALID
UK_NEW_EXTKEY UNIQUE VALID
PK_NEW UNIQUE VALID
--BAK 테이블을 조회하면 A 테이블의 인덱스가 조회됨
COL INDEX_NAME FOR A30
SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name = 'BAK';
INDEX_NAME UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063643C00004$$ UNIQUE VALID
PK_A UNIQUE VALID
UK_A_EXTKEY UNIQUE VALID
IDX_A_USERID NONUNIQUE VALID
IDX_A_SENDDT NONUNIQUE VALID
col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='NEW';
no rows selected
col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='A';
CONSTRAINT_NAME C STATUS
------------------------------ - --------
SYS_C006407 C ENABLED
SYS_C006408 C ENABLED
SYS_C006409 C ENABLED
CK_NEW_TYPE C ENABLED
UK_NEW_EXTKEY U ENABLED
PK_NEW P ENABLED
col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='BAK';
CONSTRAINT_NAME C STATUS
---------------------------- - --------
SYS_C006376 C ENABLED
SYS_C006377 C ENABLED
SYS_C006378 C ENABLED
CK_A_TYPE C ENABLED
PK_A P ENABLED
UK_A_EXTKEY U ENABLED
col TRIGGER_NAME for a30
SELECT TRIGGER_NAME, TRIGGER_TYPE, status FROM user_triggers WHERE table_name='NEW';
no rows selected
col TRIGGER_NAME for a30
SELECT TRIGGER_NAME, TRIGGER_TYPE, status FROM user_triggers WHERE table_name='A';
TRIGGER_NAME TRIGGER_TYPE STATUS
------------------------------ ---------------- --------
TRG_NEW_BIU BEFORE EACH ROW ENABLED
col TRIGGER_NAME for a30
SELECT TRIGGER_NAME, TRIGGER_TYPE, status FROM user_triggers WHERE table_name='BAK';
TRIGGER_NAME TRIGGER_TYPE STATUS
------------------------------ ---------------- --------
TRG_A_BIU BEFORE EACH ROW ENABLED
col grantee for a30
SELECT grantee, privilege FROM user_tab_privs WHERE table_name='BAK' ORDER BY grantee;
SELECT comments FROM user_tab_comments WHERE table_name='BAK';
--A 테이블 메타데이터 변경
ALTER TABLE BAK RENAME CONSTRAINT CK_A_TYPE TO CK_BAK_TYPE;
ALTER TABLE BAK RENAME CONSTRAINT PK_A TO PK_BAK;
ALTER TABLE BAK RENAME CONSTRAINT UK_A_EXTKEY TO UK_BAK_EXTKEY;
col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='BAK';
CONSTRAINT_NAME C STATUS
------------------------------ - --------
SYS_C006376 C ENABLED
SYS_C006377 C ENABLED
SYS_C006378 C ENABLED
CK_BAK_TYPE C ENABLED
PK_BAK P ENABLED
UK_BAK_EXTKEY U ENABLED
ALTER INDEX PK_A RENAME TO PK_BAK;
ALTER INDEX UK_A_EXTKEY RENAME TO UK_BAK_EXTKEY;
ALTER INDEX IDX_A_USERID RENAME TO IDX_BAK_USERID;
ALTER INDEX IDX_A_SENDDT RENAME TO IDX_BAK_SENDDT;
COL INDEX_NAME FOR A30
SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name = 'BAK';
INDEX_NAME UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063643C00004$$ UNIQUE VALID
PK_BAK UNIQUE VALID
UK_BAK_EXTKEY UNIQUE VALID
IDX_BAK_USERID NONUNIQUE VALID
IDX_BAK_SENDDT NONUNIQUE VALID
ALTER TRIGGER trg_a_biu RENAME TO trg_bak_biu;
col TRIGGER_NAME for a30
SELECT TRIGGER_NAME, TRIGGER_TYPE, status FROM user_triggers WHERE table_name='BAK';
TRIGGER_NAME TRIGGER_TYPE STATUS
------------------------------ ---------------- --------
TRG_BAK_BIU BEFORE EACH ROW ENABLED
col grantee for a30
SELECT grantee, privilege FROM user_tab_privs WHERE table_name='BAK' ORDER BY grantee;
GRANTEE PRIVILEGE
------------------------------ ----------------------------------------
APP_USER INSERT
APP_USER SELECT
APP_USER UPDATE
READ_USER SELECT
SELECT comments FROM user_tab_comments WHERE table_name='BAK';
COMMENTS
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
UMS ?????? ?????? ?????????
--NEW 테이블 메타데이터 변경
-- 메타데이터 베이스라인 추출
SELECT object_name, object_type, status FROM user_objects
WHERE object_name LIKE '%A%' OR object_name LIKE '%TRG_A%' ORDER BY object_type, object_name;
OBJECT_NAME OBJECT_TYPE STATUS
------------------------------ ----------------------- -------
IDX_BAK_SENDDT INDEX VALID
IDX_BAK_USERID INDEX VALID
PK_BAK INDEX VALID
UK_BAK_EXTKEY INDEX VALID
LOB_A_MSGBODY LOB VALID
SYN_A SYNONYM INVALID
A TABLE VALID
A_DETAIL TABLE VALID
BAK TABLE VALID
TRG_A_BIU TRIGGER INVALID
V_A_RECENT VIEW INVALID
11 rows selected.
ALTER TABLE A RENAME CONSTRAINT CK_NEW_TYPE TO CK_A_TYPE;
ALTER TABLE A RENAME CONSTRAINT PK_NEW TO PK_A;
ALTER TABLE A RENAME CONSTRAINT UK_NEW_EXTKEY TO UK_A_EXTKEY;
col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='A';
CONSTRAINT_NAME C STATUS
------------------------------ - --------
SYS_C006407 C ENABLED
SYS_C006408 C ENABLED
SYS_C006409 C ENABLED
CK_A_TYPE C ENABLED
UK_A_EXTKEY U ENABLED
PK_A P ENABLED
6 rows selected.
ALTER INDEX PK_NEW RENAME TO PK_A;
ALTER INDEX UK_NEW_EXTKEY RENAME TO UK_A_EXTKEY;
ALTER INDEX IDX_NEW_USERID RENAME TO IDX_A_USERID;
ALTER INDEX IDX_NEW_SENDDT RENAME TO IDX_A_SENDDT;
COL INDEX_NAME FOR A30
SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name = 'A';
INDEX_NAME UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063788C00004$$ UNIQUE VALID
IDX_A_SENDDT NONUNIQUE VALID
IDX_A_USERID NONUNIQUE VALID
UK_A_EXTKEY UNIQUE VALID
PK_A UNIQUE VALID
ALTER TRIGGER trg_new_biu RENAME TO trg_a_biu;
col TRIGGER_NAME for a30
SELECT TRIGGER_NAME, TRIGGER_TYPE, status FROM user_triggers WHERE table_name='A';
TRIGGER_NAME TRIGGER_TYPE STATUS
------------------------------ ---------------- --------
TRG_A_BIU BEFORE EACH ROW ENABLED
col grantee for a30
SELECT grantee, privilege FROM user_tab_privs WHERE table_name='A' ORDER BY grantee;
GRANTEE PRIVILEGE
------------------------------ ----------------------------------------
APP_USER INSERT
APP_USER SELECT
APP_USER UPDATE
READ_USER SELECT
SELECT comments FROM user_tab_comments WHERE table_name='A';
COMMENTS
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
UMS ?????????????????? ?????????????????? ???????????????????????????
SELECT object_name, object_type, status FROM user_objects
WHERE object_name LIKE '%A%' OR object_name LIKE '%TRG_A%' ORDER BY object_type, object_name;
OBJECT_NAME OBJECT_TYPE STATUS
------------------------------ ----------------------- -------
IDX_A_SENDDT INDEX VALID
IDX_A_USERID INDEX VALID
IDX_BAK_SENDDT INDEX VALID
IDX_BAK_USERID INDEX VALID
PK_A INDEX VALID
PK_BAK INDEX VALID
UK_A_EXTKEY INDEX VALID
UK_BAK_EXTKEY INDEX VALID
LOB_A_MSGBODY LOB VALID
SYN_A SYNONYM INVALID
A TABLE VALID
A_DETAIL TABLE VALID
BAK TABLE VALID
TRG_A_BIU TRIGGER VALID
TRG_BAK_BIU TRIGGER VALID
V_A_RECENT VIEW INVALID
# 자식 FK 재정의 및 의존 객체 재컴파일
-- 자식 FK 재생성 (새 A를 참조하도록)
ALTER TABLE A_DETAIL DROP CONSTRAINT fk_adetail_msgid;
ALTER TABLE A_DETAIL ADD CONSTRAINT fk_adetail_msgid
FOREIGN KEY (msg_id) REFERENCES A(msg_id);
-- 뷰/시노님/PLSQL 재컴파일
ALTER VIEW V_A_RECENT COMPILE;
ALTER SYNONYM syn_a COMPILE;
--EXEC UTL_RECOMP.RECOMP_SERIAL('TEST_SWAP');
SELECT object_name, object_type, status FROM user_objects
WHERE object_name LIKE '%A%' OR object_name LIKE '%TRG_A%' ORDER BY object_type, object_name;
OBJECT_NAME OBJECT_TYPE STATUS
------------------------------ ----------------------- -------
IDX_A_SENDDT INDEX VALID
IDX_A_USERID INDEX VALID
IDX_BAK_SENDDT INDEX VALID
IDX_BAK_USERID INDEX VALID
PK_A INDEX VALID
PK_BAK INDEX VALID
UK_A_EXTKEY INDEX VALID
UK_BAK_EXTKEY INDEX VALID
LOB_A_MSGBODY LOB VALID
SYN_A SYNONYM VALID
A TABLE VALID
A_DETAIL TABLE VALID
BAK TABLE VALID
TRG_A_BIU TRIGGER VALID
TRG_BAK_BIU TRIGGER VALID
V_A_RECENT VIEW VALID
SELECT index_name, tablespace_name, logging, degree, status from dba_indexes
where table_owner='TEST_SWAP' and table_name='BAK';
ALTER TABLE TEST_SWAP.A LOGGING NOPARALLEL;
'📁 Database > Oracle' 카테고리의 다른 글
| [Oracle] Oracle GoldenGate(OGG) 동작 방식 / CDC 구성 예시 (0) | 2026.07.05 |
|---|---|
| [Oracle] sql 파일을 활용한 19c Single Non-CDB Timezone 버전 업그레이드 가이드(42 -> 44) (0) | 2026.03.07 |
| [Oracle] Non-CDB에서 Timezone 업그레이드 방법(DSTv43 -> 44) (0) | 2026.03.07 |
| [Oracle] Oracle Instant Client rpm 설치 가이드 (for Linux x86-64) (0) | 2026.02.25 |
| [Oracle] Huge Page 설정 스크립트 링크 (0) | 2026.02.13 |
