728x90

예전 카페에서 폐지 공지가 와서 자료를 옮겨 놓습니다.

 

1.Use Select any Dictionary , Select_catalog_role, 07_dictionary_accessibility 
- select any dictionary new 9i system privileage 
- select_catalog_role role 
- 07_dictionary_accessibility init.ora parameter 
CASE1) 
======================================== 
07_DICTIONARY_ACCESSIBILITY= false 
SELECT ANY TABLE system privilege granted 
SELECT ANY DICTIONARY system privilege not granted 
======================================== 
- 9i data dictionary protection is enabled by default by the init.ora parameter O7_DICTIONARY_ACCESSIBILITY set to false. 
- SELECT ANY TABLE system privilege provides access to non-SYS schema objects only. 
SQL> grant connect, SELECT ANY TABLE to developer; 
SQL> select * from dba_users; 
--> 조회 불가 
SQL> select empno from scott.emp; 
--> 다른 user table 조회 가능. 

CASE2) 
======================================== 
07_DICTIONARY_ACCESSIBILITY= false 
SELECT ANY TABLE system privilege not granted 
SELECT ANY DICTIONARY system privilege granted 
======================================== 
SQL> grant select any dictionary to developer; 
--> sys 유저가 grant 
SQL> revoke select any table from developer; 
SQL> select * from dba_users; --> 조회가능 
SQL> select * from scott.emp; --> 조회 불가 

CASE3) 
======================================== 
07_DICTIONARY_ACCESSIBILITY= false 
SELECT ANY TABLE system privilege granted 
SELECT ANY DICTIONARY system privilege granted 
======================================== 
SQL> grant select any dictionary to developer; 
--> sys 유저가 grant 
SQL> grant select any table from developer; 
SQL> select * from dba_users; --> 조회가능 
SQL> select * from scott.emp; --> 조회 가능 

CASE4) 
======================================== 
07_DICTIONARY_ACCESSIBILITY= true 
SELECT ANY TABLE system privilege granted 
======================================== 
- SELECT ANY TABLE provides access to all SYS and non-SYS objects. The privilege is no more so restrictive. 

CASE5) 
======================================== 
07_DICTIONARY_ACCESSIBILITY= false 
SELECT ANY TABLE system privilege not granted 
SELECT ANY DICTIONARY system privilege not granted 
SELECT ANY CATALOG_ROLE role_granted 
======================================== 
SQL> select * from dba_users ; --> 조회가능 
SQL> select * from sys.obj$; --> 조회 불가
  

728x90
728x90

예전 카페에서 폐지 공지가 와서 자료를 옮겨 놓습니다.

 

CREATE INDEX t1_no_idx
ON t1(no) REVERSE
-- PCTFREE 30
-- INITRANS 10
-- TABLESPACE ts01
-- STORAGE(INITIAL 10m NEXT 10m PCTINCREASE 0 MAXEXTENTS UNLIMITED) 

 

정상적인 인덱스를 역으로 접근하는 법( item_index = item_cd + category )

select /*+ INDEX_DESC(PRODUCT item_index) */ *

from product

where item_cd like 'AB%'

  and category like 'C%'

 

ex) 동일한 결과 쿼리 

select * from product

where item_cd like 'AB%'

  and category like 'C%'

order by item_cd desc

 

728x90

'database > oracle' 카테고리의 다른 글

DB LINK (10.04.14 )  (0) 2025.05.19
권한설정관련 (10.04.03 )  (0) 2025.05.19
Schema Mode Export/import (10.03.22 )  (0) 2025.05.19
nls 파라메터 변경 (10.01.28)  (0) 2025.05.19
오라클 기본 연습 상태 만들기 (10.01.03 )  (0) 2025.05.19
728x90

예전 카페에서 폐지 공지가 와서 자료를 옮겨 놓습니다.

 

1. 10G이전 명령 사용

   1.1. EXP

$ EXP hr/hr OWNER=hr rows=y FILE=EXPDAT.DMP 

 

   1.2. IMP

$ imp userA/pw touser=userA rows=y file=expdat.dmp

imp userA/pw@sid fromuser=userA touser=userA file=expORA10K_20100815.dmp  BUFFER=204800

 

2. 10G 명령 사용

   2.1. 파라미터 파일

exportSchema.par

--------------------------------------------------------

DUMPFILE=EXPORT_SCHEMA.DMP

LOGFILE=EXPORT_SCHEMA.LOG

INCLUDE=TABLE,INDEX,VIEW

 

   2.2. 실행

C:\EXPDP hr/hr dmpfile=exportSchema.dmp

 

   2.3. IMPORT

- 생성한 system 사용자로 로그인하여 데이터 펌프를 실행한다. TEST 사용자 소유로 스키마가 생성된다.

C:\impdp USERID=system SCHEMAS=hr REMAP_SCHEMA=hr  INCLUDE=TABLE DUMPFILE=exportSchema.DMP

 

 

더보기

✅ Oracle Data Pump 스키마 모드 기본 사용법

1. 스키마 단위 Export (expdp)

bash
복사편집
expdp system/password@DB schemas=SCOTT directory=DATA_PUMP_DIR dumpfile=scott.dmp logfile=scott_exp.log
  • schemas: 내보낼 스키마 이름
  • directory: 서버에 생성된 Oracle Directory 객체
  • dumpfile: 생성될 덤프 파일 이름
  • logfile: 로그 파일 이름

2. 스키마 단위 Import (impdp)

bash
복사편집
impdp system/password@DB schemas=SCOTT directory=DATA_PUMP_DIR dumpfile=scott.dmp logfile=scott_imp.log
  • 대상 DB에 동일한 스키마가 존재해야 하며, 필요 시 remap_schema 옵션을 사용하여 다른 스키마로 매핑할 수 있습니다.

🔄 버전별 마이그레이션 시 주의사항

1. 상위 버전으로의 마이그레이션 (예: 11g → 19c)

  • 일반적으로 VERSION 파라미터를 지정하지 않아도 됩니다.
  • 그러나 특정 메타데이터 호환성을 위해 VERSION을 명시하는 것이 좋습니다.Oracle Support

2. 하위 버전으로의 마이그레이션 (예: 19c → 11g)

  • VERSION 파라미터를 반드시 지정해야 합니다.
  • 예시:
  • bash
    복사편집
    expdp system/password@DB schemas=SCOTT directory=DATA_PUMP_DIR dumpfile=scott.dmp logfile=scott_exp.log version=11.2
  • VERSION 값은 대상 DB의 버전과 같거나 낮아야 합니다.ittutorial.org

⚠️ 스키마 모드 Import 시 주의사항

  • schemas 옵션을 사용할 경우, 다음과 같은 객체는 가져오지 않습니다:
    • PUBLIC SYNONYM
    • ROLE, PROFILE, PUBLIC DATABASE LINK 
  • 전체 DB를 이관하려면 full=y 옵션을 사용하는 것이 좋습니다.Oracle Docs+3내맘대로긍정+3오라클+3

🆕 버전별 주요 기능 변화

Oracle 12c

  • 멀티테넌트 아키텍처(PDB/CDB) 지원
  • remap_tablespace, remap_schema 등의 리맵 기능 강화오라클

Oracle 18c / 19c

  • parallel 옵션을 통한 병렬 처리 성능 향상
  • transportable tablespace 기능 개선
  • network_link를 이용한 원격 Import 지원Oracle Support+1sultandba.com+1
728x90

'database > oracle' 카테고리의 다른 글

권한설정관련 (10.04.03 )  (0) 2025.05.19
역 인덱스 (10.03.28)  (0) 2025.05.19
nls 파라메터 변경 (10.01.28)  (0) 2025.05.19
오라클 기본 연습 상태 만들기 (10.01.03 )  (0) 2025.05.19
function base index (09.11.07 )  (0) 2025.05.19
728x90

 

nls 기본언어 설정

 

update sys.props$ set value$='AL16UTF16' where name='NLS_NCHAR_CHARACTERSET'

 

더보기

NLS 주요 개념

  1. NLS_LANGUAGE
    • 기본 언어 설정 (에러 메시지, 요일명, 월 이름 등)
    • 예시: AMERICAN, KOREAN, JAPANESE
  2. NLS_TERRITORY
    • 지역별 숫자, 날짜, 통화 형식 지정
    • 예시: KOREA, AMERICA, JAPAN
  3. NLS_DATE_FORMAT
    • 날짜 형식을 정의 (기본: DD-MON-RR)
    • 예시: YYYY-MM-DD HH24:MI:SS
  4. NLS_NUMERIC_CHARACTERS
    • 숫자 형식에서 소수점과 천 단위 구분자 설정
    • 예시: ".,", ",."
  5. NLS_CHARACTERSET
    • 데이터베이스의 문자 집합 설정
    • 예시: AL32UTF8, WE8MSWIN1252
  6. NLS_SORT
    • 정렬 방식 정의
    • 예시: BINARY, KOREAN_M, GENERIC_M

🔹 NLS 설정 확인 방법

-- 현재 세션의 NLS 설정 확인
SELECT * FROM NLS_SESSION_PARAMETERS;

-- 데이터베이스 기본 NLS 설정 확인
SELECT * FROM NLS_DATABASE_PARAMETERS;

🔹 NLS 설정 변경 방법

  1. Session Level (현재 세션에서만 유효)
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

2. Database Level (DB 전체 설정 변경, 재시작 필요)

ALTER SYSTEM SET NLS_LANGUAGE = 'KOREAN' SCOPE=SPFILE;

 

728x90

+ Recent posts