Bigfile tablespace гэдэг нь маш том хэмжээ бүхий цорын ганц файл агуулсан tablespace юм.
Уламжлалт tablespace нь smallfile tablespace бөгөөд олон жижиг файлуудыг агуулдаг.
Oracle Database-ийн хувьд дараах шинж чанаруудтай:
- Oracle database smallfile tablespace болон bigfile tablespace аль алийг нь мөн зэрэг агуулах боломжтой
- Системийн үндсэн тохиргоо нь smallfile tablespace байна
- SYSTEM,SYSAUX tablespace үүд нь smallfile tablespace төрлөөр үүссэн байдаг
- Bigfile tablespace нь зөвхөн automatic segment-space management идэвхжүүлсэн local managed tablespace -ийг дэмжинэ
Bigfile tablespace -ийг Automated Storage Management (ASM) дээр хадгалах нь тохиромжтой бөгөөд мэдээж ASM -гүйгээр ашигласан ч болно. Local filesystem дээр хадгалж болно гэсэн үг.
##Ашиг тус
- Том баазад илүү цөөхөн датафайл ашиглахад
- Датафайлын тоог цөөрүүлснээр дахин дахин датафайл нэмэх шаардлагыг багасгана
- 8 exabyte хүртэлх хэмжээ бүхий tablespace үүсгэх боломжийг олгоно
- Нэг датафайл агуулах учраас tablespace болон датафайлын тоо ижил байна
##Хамгийн ихдээ байж болох баазын хэмжээ
Bigfile tablespace нь баазын болон tablespace -ийн хэмжээг өргөтгөхөд ашиглагдана. Дараах томъёог харъя.
Bigfile -ийн хамгийн их байж болох хэмжээ нь :
Maximum datafile size = db_block_size * maximum number of blocks
Хамгийн ихдээ байж болох баазын мэдээлэл:
Maximum database size = maximum datafile size * maximum number of datafile
Oracle 9i, Oracle 10g Database -ийн хувьд хамгийн ихдээ 65,536 датафайл байх боломжтой. Oracle9i-д нэг датафайлд байж болох хамгийн их блокын тоо 4,194,304 (4 сая) байсан бол Oracle 10g Database -ийн хувьд нэг датафайлд байж болох блогийн тоо 4,294,967,296 (4 тэрбум) болж ихэссэн.
Oracle9i баазын байж болох хамгийн том хэмжээ
Oracle 10g Database-н байж болох хамгийн их хэмжээ
Дээрхи хүснэгтнээс харахад хэр ялгаатай нь харагдаж байна.
Бүх tablespace үүдийг харах
SQL> select name, bigfile from v$tablespace;
NAME BIGFILE
------------------------------ -------
SYSTEM NO
UNDOTBS01 NO
SYSAUX NO
TEMP NO
EXAMPLE NO
USERS NO
BIG_TBS YES
SQL> select tablespace_name,bigfile from dba_tablespaces;
TABLESPACE_NAME BIGFILE
------------------------------ ---------
SYSTEM SMALLFILE
UNDOTBS01 SMALLFILE
SYSAUX SMALLFILE
TEMP SMALLFILE|
EXAMPLE SMALLFILE
USERS SMALLFILE
BIG_TBS01 BIGFILE
Жишээнүүд:
Жишээ 1: Create a database with default bigfile tablespace.
CREATE DATABASE GRID
SET DEFAULT BIGFILE TABLESPACE
DATAFILE '/u01/app/oracle/oradata/DB11G/system01.dbf' SIZE 500 M,
SYSAUX DATA FILE '/u01/app/oracle/oradata/DB11G/sysaux01.dbf' SIZE 500 M
DEFAULT TEMPORARY TABLESPACE tbs01
TEMPFILE '/u01/app/oracle/oradata/DB11G/temp01.dbf' SIZE 1024 M
UNDO TABLESPACE undo01
DATAFILE '/u01/app/oracle/oradata/DB11G/' SIZE 1024 M;
Жишээ 2: Moving data between smallfile and bigfile tablespaces.
# хүснэгтний файлсистем дээрх замыг өөрчлөх. Өөр bigfile tablespace рүү зөөж байна.
ALTER TABLE employee MOVE TABLESPACE bigfile_tbs;
Example 3: Create a bigfile tablespace and change its size.
CREATE BIGFILE TABLESPACE user_tbs
DATAFILE '/u01/app/oracle/oradata/DB11G/user_tbs01.dbf' SIZE 1024 M;
# tablespace-ийн хэмжээг өөрчлөх
ALTER TABLESPACE user_tbs RESIZE 10G;
Дээрхи жишээ дээрээс хэмжээг өөрчилөхдөө G ашигласныг анхаарсан байх. Түүнчлэн Т буюу терабайт хэмжигдэхүүнийг ашиглаж болно.
Жишээ 4: Коммандын мөрнөөс DBV комманд ашиглаж датафайлыг шалгаж болно. Үүний тулд эхлэх блокыг зааж өгөх бөгөөд төгсгөлийн блокыг мөн тохируулан өгч шалгаж болно.
$dbv FILE=bigfile01.dbf START=1 END=10000
$dbv FILE=bigfile01.dbf START=10001
Жич: START = Start Block; END = End Block