πŸ“˜ Programming/DB

[Oracle] ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ (Tablespace) κ°œλ…, μœ ν˜•, μΉ΄νƒˆλ‘œκ·Έ λ·° 쑰회 방법

ν•œμ½”λ”© 2023. 8. 25. 18:05
728x90
728x90

Oracle ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ (Tablespaces)

νšŒμ‚¬μ—μ„œ κΈ°μ‘΄ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ—λ§Œ ν…Œμ΄λΈ”μ„ μƒμ„±ν•˜λ‹€κ°€ λ‹€λ₯Έ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ— μƒμ„±ν•˜λ €λ‹ˆ νŠΉμ§•μ΄ 달라 κ°œλ…μ΄ ν˜Όλ™λ˜λŠ” 게 λ§Žμ•„μ„œ μ •λ¦¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€.
 

 

Oracle의 ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€λž€ ?

처음 Oracle μ“Έ λ•ŒλŠ” ν…Œμ΄λΈ”κ³Ό ν—·κ°ˆλ ΈμŠ΅λ‹ˆλ‹€! Oracleμ—λ§Œ μžˆλŠ” κ°œλ…μ΄λ‹€ λ³΄λ‹ˆ λŒ€ν•™ μ‹œμ ˆμ— μ“°λ˜ MySQLκ³ΌλŠ” 사뭇 λ‹¬λžμŠ΅λ‹ˆλ‹€. ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€λΌλŠ” κ°œλ…μ€ 그리 어렡지 μ•ŠμŠ΅λ‹ˆλ‹€.
 

 

ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ (Tablespace)

  • DBμ—μ„œ 데이터와 인덱슀λ₯Ό μ €μž₯ν•˜λŠ” 논리적인 μ €μž₯ μ˜μ—­
  • 1 DB → N ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ / 1 ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ → N 데이터 파일 (ν…Œμ΄λΈ”, 인덱슀 λ“±)
  • ν…Œμ΄λΈ”κ³Ό 인덱슀 λ“± λ°μ΄ν„°λ² μ΄μŠ€ κ°μ²΄λŠ” νŠΉμ • ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ— μ €μž₯되며, ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€λŠ” μ΄λŸ¬ν•œ κ°μ²΄λ“€μ˜ 물리적인 μ €μž₯ μž₯μ†Œλ₯Ό μ •μ˜
  • DB 관리 및 쑰정에 μ‚¬μš©λ˜λŠ” λ‹¨μœ„λ‘œ, DB의 곡간 ν• λ‹Ή 및 관리λ₯Ό μ‘°μ •

 

ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ μœ ν˜•

  1. 영ꡬ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ (Permanent Tablespace)
    • 영ꡬ적인 데이터(ν…Œμ΄λΈ”, 인덱슀 λ“±)λ₯Ό μ €μž₯
    • 주둜 μ‚¬μš©μž 데이터 μ €μž₯
  2. μ‹€ν–‰ μ·¨μ†Œ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ (Undo Tablespace)
    • 읽기 일관성을 μœ μ§€ν•˜κΈ° μœ„ν•΄ μ‚¬μš©
    • Rollbackν•˜κ²Œ λ˜λŠ” 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ DML μž‘μ—…μ΄ λ°œμƒν–ˆμ„ λ•Œ μˆ˜μ • μ΄μ „μ˜ 값에 λŒ€ν•œ 정보λ₯Ό UNDO Segment에 μ €μž₯λ˜λŠ”λ°, 이 Segmentsλ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©
  3. μž„μ‹œ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ (Temporary Tablespace)
    • μ‚¬μš©μž 쿼리의 μš”μ²­μœΌλ‘œ μ •λ ¬, μž„μ‹œ ν…Œμ΄λΈ” 생성과 같은 μž„μ‹œμ μΈ μž‘μ—…μ— μ‚¬μš©

 

ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ 관리 방식

ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ 관리 λ°©μ‹μ—λŠ” 2가지가 μžˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬λŠ” ν•œ 가지 λ°©μ‹μœΌλ‘œ κ΄€λ¦¬ν•˜λŠ” 좔세이며 μ„±λŠ₯ 상에 이점이 λ§Žμ•„μ„œ μ‚¬μš©ν•œλ‹€κ³  ν•©λ‹ˆλ‹€.

  1. 지역 κ΄€λ¦¬ν˜• Locally Managed Tablespace
    • 각 ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ λ‚΄μ˜ μ„Έκ·Έλ¨ΌνŠΈ 관리λ₯Ό μœ„ν•΄ λΉ„νŠΈλ§΅ 방식을 μ‚¬μš©
  2. 사전 κ΄€λ¦¬ν˜• Dictionary Managed Tablespace
    • μ„Έκ·Έλ¨ΌνŠΈ 정보λ₯Ό 데이터 μ‚¬μ „μ—μ„œ κ΄€λ¦¬ν•˜λŠ” 방식 (ν˜„μž¬ μ‚¬μš© X)

 

ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ μš©λŸ‰ 및 ν™•μž₯ 관리

초기 λ° λ‹€μŒ ν™•μž₯ ν¬κΈ°, μ΅œλŒ€ ν¬κΈ°, μžλ™ ν™•μž₯ λ“±μ„ μ„€μ •ν•˜μ—¬ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ˜ μš©λŸ‰ λ° ν™•μž₯ κ΄€λ¦¬λ₯Ό κ΅¬μ„±ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ λ‚΄μ˜ λ°μ΄ν„° νŒŒμΌλ“€μ˜ μš©λŸ‰μ„ κ³ λ €ν•΄μ•Ό ν•˜λ©°, ν•„μš”ν•œ κ²½μš° νŒŒμΌμ„ μΆ”κ°€ν•˜κ±°λ‚˜ ν¬κΈ°λ₯Ό μ‘°μ ˆν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
 

ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ λ°±μ—… 및 볡ꡬ

ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€λŠ” 데이터 λ°±μ—… 및 볡ꡬ의 λ‹¨μœ„λ‘œ μ‚¬μš©λ©λ‹ˆλ‹€. ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€λ³„λ‘œ λ°±μ—… 및 볡ꡬ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ μ„±λŠ₯ 관리

ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ˜ μ„±λŠ₯을 μ΅œμ ν™”ν•˜κΈ° μœ„ν•΄ 데이터 파일의 μœ„μΉ˜ 및 μš©λŸ‰ 섀정을 κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. 특히 I/O μ„±λŠ₯에 영ν–₯을 λ―ΈμΉ˜λ―€λ‘œ μ£Όμ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€.
 

ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ κΆŒν•œ 관리

μ‚¬μš©μžμ— λŒ€ν•œ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ μ•‘μ„ΈμŠ€ κΆŒν•œμ„ κ΄€λ¦¬ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν•„μš”ν•œ κ²½μš° μ½κΈ°/μ“°κΈ° κΆŒν•œμ„ μ‘°μ ˆν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
 

ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ λͺ…λͺ… κ·œμΉ™

μΌκ΄€λœ λͺ…λͺ… κ·œμΉ™μ„ μ‚¬μš©ν•˜μ—¬ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€λ₯Ό μƒμ„±ν•˜λ©΄ λ°μ΄ν„°λ² μ΄μŠ€ 관리가 μš©μ΄ν•΄μ§‘λ‹ˆλ‹€.
ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€λŠ” λ°μ΄ν„°μ˜ μ €μž₯, κ΄€λ¦¬, λ°±μ—… λ° λ³΅κ΅¬ λ“±μ— μ€‘μš”ν•œ μ—­ν• μ„ ν•˜λ―€λ‘œ λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μž λ° κ°œλ°œμžλŠ” ν•΄λ‹Ή κ°œλ…κ³Ό κ΄€λ ¨ μ„€μ •μ„ μž˜ μ΄ν•΄ν•˜κ³  ν™œμš©ν•˜λŠ” κ²ƒμ΄ μ€‘μš”ν•©λ‹ˆλ‹€.
 
 

λ‚΄ DBμ—μ„œ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€λ₯Ό 탐색해 보기

Oracle DBμ—μ„œλŠ” ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ™€ κ΄€λ ¨λœ 정보λ₯Ό μ‘°νšŒν•  수 μžˆλŠ” λ‹€μ–‘ν•œ μ‹œμŠ€ν…œ μΉ΄νƒˆλ‘œκ·Έ λ·°κ°€ μ œκ³΅λ©λ‹ˆλ‹€. μ‹œμŠ€ν…œ μΉ΄νƒˆλ‘œκ·Έ 뷰에 λŒ€ν•œ μ •λ³΄λŠ” μ•„λž˜μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€!

1) DBA_TABLESPACES

  • DBA κ³„μ •μœΌλ‘œ 접속해야 ν•˜λ©°, λͺ¨λ“  ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ˜ 정보 쑰회 κ°€λŠ₯
  • ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ˜ 이름, 데이터 파일 개수, ν• λ‹Ήλœ μš©λŸ‰, μ‚¬μš© κ°€λŠ₯ν•œ μš©λŸ‰ λ“±

2) USER_TABLESPACES

  • ν˜„μž¬ μ‚¬μš©μžκ°€ μ†Œμœ ν•œ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ— κ΄€ν•œ 정보 제곡
  • ν˜„μž¬ μ‚¬μš©μžμ˜ μŠ€ν‚€λ§ˆ 내에 μžˆλŠ” ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ μ •λ³΄λ§Œ 쑰회 κ°€λŠ₯
  • ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ˜ 이름, 데이터 파일 개수, ν• λ‹Ήλœ μš©λŸ‰, μ‚¬μš© κ°€λŠ₯ν•œ μš©λŸ‰ λ“±

3) ALL_TABLESPACES

  • ν˜„μž¬ μ‚¬μš©μžμ—κ²Œ λ³΄μ΄λŠ” λͺ¨λ“  ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ— λŒ€ν•œ 정보 제곡
  • DBA와 일반 μ‚¬μš©μž λͺ¨λ‘ μ ‘κ·Όν•  수 있으며, ν˜„μž¬ μ‚¬μš©μžμ˜ κΆŒν•œμœΌλ‘œ λ³Ό 수 μžˆλŠ” ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ 정보 쑰회

4) DBA_FREE_SPACE

  • λͺ¨λ“  ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ— λŒ€ν•œ 빈 곡간 정보 제곡
  • 각 ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ˜ 빈 κ³΅κ°„μ˜ 크기와 μœ„μΉ˜λ₯Ό ν¬ν•¨ν•œ 정보 쑰회

5) DBA_SEGMENTS

  • λͺ¨λ“  μ„Έκ·Έλ¨ΌνŠΈμ— λŒ€ν•œ 정보 제곡
  • 각 μ„Έκ·Έλ¨ΌνŠΈμ˜ μœ ν˜•(ν…Œμ΄λΈ”, 인덱슀 λ“±), 크기, μ†Œμœ μž, ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ λ“±μ˜ 정보 쑰회 κ°€λŠ₯


ν˜„μž¬ μ œκ°€ 운영 쀑인 νšŒμ‚¬ μ‹œμŠ€ν…œμ˜ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€ κ΅¬μ‘°λŠ” 업무 λ³„λ‘œ λ°œμƒν•˜λŠ” 데이터λ₯Ό λΆ„λ¦¬ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš© μ€‘μž…λ‹ˆλ‹€. ν•œ μ—…λ¬΄μ˜ 데이터가 λ‹€λ₯Έ 업무듀보닀 데이터가 μ§‘μ€‘μ μœΌλ‘œ μŒ“μ΄λŠ” ν˜„μƒμ΄ λ°œκ²¬λ˜λŠ”λ°, ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ˜ 크기λ₯Ό λ³€κ²½ν•΄μ„œ μ„±λŠ₯ 상 이점을 λ°œκ²¬ν•  수 μžˆλŠ”μ§€ 뢄석해보고 λ‹€μŒ κΈ€ μž‘μ„±ν•˜κ² μŠ΅λ‹ˆλ‹€.

728x90
λ°˜μ‘ν˜•