第一篇:oracle 數(shù)據(jù)文件、表空間、日志文件、控制文件數(shù)據(jù)庫(kù)管理
實(shí)驗(yàn)四 oracle 數(shù)據(jù)庫(kù)管理
一、試驗(yàn)?zāi)康?/p>
掌握對(duì)數(shù)據(jù)文件、表空間、日志文件、控制文件的常用命令,作為DBA的必要準(zhǔn)備。
二、實(shí)驗(yàn)內(nèi)容
2.1 數(shù)據(jù)文件的管理
(1)在安裝完畢之后,在INITsid.ORA參數(shù)文件有一個(gè)DB_FILES 參數(shù),用于設(shè)置當(dāng)前實(shí)例的數(shù)據(jù)外文件的個(gè)數(shù)。如: db_files = 80 如果在INITsid.ORA文件沒(méi)有該參數(shù),則可以用下面查詢(xún)語(yǔ)句從視圖中查到。如: SQL> col name for a20 SQL> col value for a50 SQL> set lin 100 SQL> select name,value from v$parameter where name = 'db_files';NAME VALUE---------------------------------------db_files 1024(2)行命令建立表空間:
例1 CREATE TABLESPACE user_stu DATAFILE 'h:/oracle/oradata/orcl/user_stu.dat' SIZE 20M DEFAULT STORAGE(INITIAL 10K NEXT 50K MINEXTENTS 1 MAXEXTENTS 99 PCTINCREASE 10)ONLINE;例2:建立一個(gè)新的表空間,具有兩個(gè)數(shù)據(jù)文件: CREATE TABLESPACE CRM_TAB
DATAFILE 'h:/oracle/oradata/orcl/crm01.dbf' size 10 MB,'h:/oracle/oradata/orcl/crm02.dbf' size 10 MB;(3)對(duì)一個(gè)已存在的表空間追加新數(shù)據(jù)文件: 例1 ALTER TABLESPACE user_stu
Add datafile 'H:/oracle/oradata/orcl/user_stu01.dbf' size 30M;例2 為表空間增加數(shù)據(jù)文件 ALTER TABLESPACE users ADD DATAFILE 'userora1.dbf ' SIZE 10M;(4)數(shù)據(jù)文件更名
ALTER TABLESPACE users RENAME DATAFILE? 'filename1', 'filename2' TO 'filename3', 'filename4';(5)變更數(shù)據(jù)文件大小 在創(chuàng)建表空間時(shí),可以將表空間說(shuō)明為自動(dòng)擴(kuò)展或固定大小。因而管理員的一項(xiàng)工作就是查看系統(tǒng)所有的表空間對(duì)應(yīng)的數(shù)據(jù)文件情況。看是否為自動(dòng)擴(kuò)展。如: SQL> col tablespace_name for a12 SQL> col file_name for a48 SQL> select tablespace_name,file_name,AUTOEXTENSIBLE ,bytes from dba_data_files
(6)數(shù)據(jù)文件的自動(dòng)擴(kuò)展與調(diào)整。重新調(diào)整數(shù)據(jù)文件大小的命令如下: ALTER DATABASE DATAFILE [datafile_name] RESIZE [new_size];
當(dāng)我們發(fā)現(xiàn)數(shù)據(jù)文件過(guò)大而不可能用完時(shí),可以用上面命令將數(shù)據(jù)文件調(diào)小。對(duì)于設(shè)置數(shù)據(jù)文件的自動(dòng)擴(kuò)展問(wèn)題,可用下面命令來(lái)達(dá)到: ALTER DATABASE DATAFILE [ file_spec ] AUTOEXTEND ON NEXT [increment_size] MAXSIZE [max_size,UNLIMITED]; 如:
ALTER DATABASE DATAFILE 'H:ORACLEORADATAORCLUSER_STU01.DBF' AUTOEXTEND ON NEXT 10m MAXSIZE 60M;(7)行命令修改表空間:
ALTER TABLESPACE USER_STU ONLINE;(8)ALTER TABLESPACE accounting OFFLINE NORMAL;(9)行命令刪除表空間:
DROP TABLESPACE 表空間名 INCLUDING CONTENTS CASCADE CONSTRAINTS(10)、與數(shù)據(jù)文件有關(guān)的視圖
select file_name from dba_data_files;select * from v$datafile;DBA_DATA_FILES DBA_EXTENTS DBA_FREE_SPACE V$DATAFILE V$DATAFILE_HEADER(11)、為了保證表空間的可用,除了掌握表空間的創(chuàng)建外,還應(yīng)該查看dba_free_space中表空間的信息,以確保系統(tǒng)正常運(yùn)行。一般管理員應(yīng)該關(guān)心的內(nèi)容有:表空間共有多少個(gè);總共有多少自由空間;最大的自由空間是什么;下面例子是一個(gè)經(jīng)常使用的腳本,可以查出數(shù)據(jù)文件和表空間的可用情況。clear buffer clear columns clear breaks column a1 heading 'Tablespace' format a15 column a2 heading 'data File' format a45 column a3 heading 'Total|Space' format 999,999.99 column a4 heading 'Free|Space' format 999,999.99 column a5 heading 'Free|perc' format 999,999.99 break on a1 on report compute sum of a3 on a1 compute sum of a4 on a1 compute sum of a3 on report compute sum of a4 on report set linesize 120 select a.tablespace_name a1, a.file_name a2, a.avail a3, nvl(b.free,0)a4, nvl(round(((free/avail)*100),2),0)a5 from(select tablespace_name, substr(file_name,1,45)file_name, file_id, round(sum(bytes/(1024*1024)),3)avail from sys.dba_data_files group by tablespace_name, substr(file_name,1,45), file_id)a,(select tablespace_name, file_id, round(sum(bytes/(1024*1024)),3)free from sys.dba_free_space group by tablespace_name, file_id)b where a.file_id = b.file_id(+)order by 1, 2;(12)查詢(xún)是否存在表的擴(kuò)展超出表空間可用大小 一般在系統(tǒng)使用較長(zhǎng)時(shí)間后,表空間的連續(xù)塊被多次的修改與刪除等操作后出現(xiàn)了許多的不連續(xù)的塊(叫碎片)。這樣就有可能出現(xiàn)表的擴(kuò)展所需要的連續(xù)塊不能滿(mǎn)足的情況。為了避免這樣的情況發(fā)生而導(dǎo)致擴(kuò)展失敗,管理員要經(jīng)常查詢(xún)系統(tǒng)的表空間情況。下面就是這樣的一個(gè)腳本:
Col segment_name for a20 Select segment_name, segment_type, owner, a.tablespace_name tablespace, Initial_extent, next_extent, pct_increase,b.bytes max_bytes From dba_segments a,(select tablespace_name, max(bytes)bytes from dba_free_space group by tablespace_name)b where a.tablespace_name=b.tablespace_name and next_extent > b.bytes;(13)查詢(xún)表空間自由、最大及碎片
其實(shí),平常管理最關(guān)系就是表空間的總量、最大字節(jié)、使用多少、碎片多少等。下面腳本可以查詢(xún)出所有表空間的自由空間、總空間數(shù)、已用空間、自由百分比及最大塊的字節(jié)數(shù)。set pau off
col free heading 'Free(Mb)' format 99999.9 col total heading 'Total(Mb)' format 999999.9 col used heading 'Used(Mb)' format 99999.9 col pct_free heading 'Pct|Free' format 99999.9 col largest heading 'Largest(Mb)' format 99999.9 compute sum of total on report compute sum of free on report compute sum of used on report break on report select substr(a.tablespace_name,1,13)tablespace, round(sum(a.total1)/1024/1024, 1)Total, round(sum(a.total1)/1024/1024, 1)-round(sum(a.sum1)/1024/1024, 1)used, round(sum(a.sum1)/1024/1024, 1)free, round(sum(a.sum1)/1024/1024, 1)*100/round(sum(a.total1)/1024/1024, 1)pct_free, round(sum(a.maxb)/1024/1024, 1)largest, max(a.cnt)fragment from(select tablespace_name, 0 total1, sum(bytes)sum1, max(bytes)MAXB, count(bytes)cnt from dba_free_space group by tablespace_name union select tablespace_name, sum(bytes)total1, 0, 0, 0 from dba_data_files group by tablespace_name)a group by a.tablespace_name 2.2 日志文件的管理
(0)日志查詢(xún)
select group#,bytes from v$log;? select group#,bytes from v$logfile;
(1)實(shí)現(xiàn)強(qiáng)行的日志切換 Alter system switch logfile;(2)檢測(cè)點(diǎn)(checkpoint)
Oracle為了在出現(xiàn)故障后能退回去重演原來(lái)的信息,就需要一個(gè)叫開(kāi)始點(diǎn)。在這個(gè)開(kāi)始點(diǎn)時(shí)刻,數(shù)據(jù)和事務(wù)是已知的。這樣的開(kāi)始點(diǎn)就叫檢測(cè)點(diǎn)。在Oracle里,只要檢查點(diǎn)一到(出現(xiàn))。Oracle就強(qiáng)行將當(dāng)前的SGA中的redo區(qū)的改動(dòng)過(guò)的塊寫(xiě)入重做日志文件中。這個(gè)步驟完成后,在重做日志文件中放入一個(gè)特殊的檢測(cè)點(diǎn)標(biāo)志記錄。如果在下一個(gè)檢測(cè)點(diǎn)完成前出現(xiàn)失敗,恢復(fù)操作進(jìn)程就會(huì)在日志文件和數(shù)據(jù)文件前一個(gè)檢測(cè)點(diǎn)同步(改回去)。檢測(cè)點(diǎn)檢查完成后,對(duì)數(shù)據(jù)塊的任何改動(dòng)都記錄在其檢測(cè)點(diǎn)標(biāo)志后寫(xiě)入重做日志項(xiàng)中。因此,恢復(fù)也就只能從最近的檢測(cè)點(diǎn)標(biāo)志記錄開(kāi)始。
Oracle在INITsid.ORA文件中給出LOG_CHECKPOINT_INTERVAL參數(shù)可以設(shè)置檢測(cè)點(diǎn)的數(shù)目。比如 日志文件大小為1000塊,而設(shè)置檢查點(diǎn)間隔LOG_CHECKPOINT_INTERVAL為250,則文件寫(xiě)達(dá)到 1/
4、2/
4、3/4及4/4時(shí)產(chǎn)生檢測(cè)點(diǎn)(250塊、500塊、750塊和1000塊處)。可用下面命令來(lái)查日志文件大小: SQL> select group#,bytes from v$log;show parameter log_checkpoint_interval(3)添加日志組
建立一個(gè)新組4,組內(nèi)有兩個(gè)成員 ALTER DATABASE ADD LOGFILE GROUP 4('H:/oracle/oradata/orcl/redo0401.log', 'H:/oracle/oradata/orcl/redo0402.log')size 10m;===當(dāng)添加一個(gè)日志組時(shí),可以不給出組號(hào),有系統(tǒng)自動(dòng)分配一個(gè)組號(hào)=== ALTER DATABASE ADD LOGFILE('H:/oracle/oradata/orcl/redo0501.log', 'H:/oracle/oradata/orcl/redo0502.log')size 10m;此時(shí)添加的組號(hào)為5
(4)為日志組增加成員 ALTER DATABASE ADD LOGFILE MEMBER 'log22.log' TO GROUP 2;===添加成員時(shí),可以不給定成員的大小,因?yàn)閛racle要求組內(nèi)的所有成員的大小一律相等。
(5)如果將一個(gè)日志成員從一個(gè)硬盤(pán)移到另一個(gè)硬盤(pán),就需要重新命名日志成員名字。需要進(jìn)行下面步驟:
1. 關(guān)閉數(shù)據(jù)庫(kù),并進(jìn)行完全備份;
2. 使用操作系統(tǒng)命令拷貝原來(lái)的日志文件到新的地方; 3. 用startup mount 啟動(dòng)數(shù)據(jù)庫(kù); 4. 用ALTER DATABASE RENAME FILE '
ALTER DATABASE RENAME FILE 'filename1', 'filename2' TO 'filename3', 'filename4';
(6)日志刪除
a.刪除日志組成員:
在下面情況下可能需要?jiǎng)h除重做日志文件,如日志文件個(gè)數(shù)太多(超出需要);日志文件的大小不一致等。這樣的情況可以刪除日志組成員。b.當(dāng)日志組損壞時(shí),就刪除日志組,但必須滿(mǎn)足:
a)刪除一個(gè)日志組后,系統(tǒng)中至少還有兩個(gè)其它的日志組; b)被刪除的日志組必須是不需要存檔; c)不是正在使用的日志組。刪除日志文件的語(yǔ)法:
ALTER DATABASE database_name DROP LOGFILE GROUP group_number | file_name |(file_name,file_name(,...))刪除日志成員的語(yǔ)法:
ALTER DATABASE database_name DROP LOGFILE MEMBER file_name;c.聯(lián)機(jī)重做日志的緊急替換:
當(dāng)一個(gè)重做日志組偶而被損壞使數(shù)據(jù)庫(kù)不能繼續(xù)使用時(shí),不能直接刪除它們,而是要用一個(gè)干凈的文件或一組成員去替代這個(gè)損壞的日志組。聯(lián)機(jī)重做日志的緊急替換命令語(yǔ)法如下: ALTER DATABASE database_name CLEAR[UNARCHIVED] LOGFILE group_identifier [UNRECOVERABLE DATAFILE] 如果該文件正在等待存檔(歸檔模式),就需要UNARCHIVED。
如果需要脫機(jī)恢復(fù)一個(gè)數(shù)據(jù)文件,就用UNRECOVERABLE DATAFILE。d.了解重做日志的當(dāng)前狀態(tài): V$LOGFILE V$LOG V$THREAD V$LOG_HISTORY e.例子:
刪除一個(gè)組3:
ALTER DATABASE DROP LOGFILE GROUP 3;刪除一個(gè)成員:
ALTER DATABASE DROP? LOGFILE MEMBER '/orant/oradata'mydb02'redo02.log';4.了解重做日志的當(dāng)前狀態(tài)的視圖主要有: V$LOGFILE V$LOG V$THREAD V$LOG_HISTORY 5.例子:
察看是否歸檔
ARCHIVE? LOG? LIST 日志歸檔
alter database noarchivelog;
3、控制文件的管理(1)關(guān)于控制文件
控制文件存放有數(shù)據(jù)庫(kù)的結(jié)構(gòu)信息,包括數(shù)據(jù)文件、日志文件。控制文件是一個(gè)二進(jìn)制文件,它是在數(shù)據(jù)庫(kù)建立時(shí)自動(dòng)被建立。控制文件可以在當(dāng)你改變文件名或移動(dòng)文件時(shí)而被更新。在任何時(shí)候,你都不能編輯控制文件。控制文件的內(nèi)容包括:
? 數(shù)據(jù)庫(kù)名字(控制文件只能屬于一個(gè)數(shù)據(jù)庫(kù))。? 數(shù)據(jù)庫(kù)建立時(shí)的郵戳。
? 數(shù)據(jù)文件-名字,位置及聯(lián)機(jī)/脫機(jī)。? 重做日志文件-名字及位置。? 表空間名字。? 當(dāng)前日志序列號(hào)。? 最近檢查點(diǎn)信息。
? 恢復(fù)管理器信息(RMAN)。(2)控制文件信息
在spfile.ora的配置文件中 有:
control_files =(“/home/oracle/app/oracle/oradata/s450/control01.ctl”, “/home/oracle/app/oracle/oradata/s450/control02.ctl”, “/home/oracle/app/oracle/oradata/s450/control03.ctl”)(3)查詢(xún)控制文件的信息
show parameters;select * from v$controlfile;desc V$CONTROLFILE_RECORD_SECTION v$datafile db_data_files v$logfile v$log v$controlfile show parameter control_files
其中,RECORD_SIZE NUMBER 記錄字節(jié)大小 RECORDS_TOTAL NUMBER 段的記錄數(shù)
RECORDS_USED NUMBER 段中已使用的記錄數(shù) FIRST_INDEX NUMBER 第一個(gè)記錄索引位置 LAST_INDEX NUMBER 最后一個(gè)記錄索引位置 LAST_RECID NUMBER 最后一個(gè)記錄ID號(hào)
select * from V$CONTROLFILE_RECORD_SECTION;7.6.4 控制文件信息的更改
需要在spfile.ora中做出相應(yīng)的更改。建立控制文件的步驟 1.建立控制文件準(zhǔn)備。
必須有數(shù)據(jù)文件(查DBA_DATA_FILES數(shù)據(jù)字典)、日志文件(查V$LOGFILE數(shù)據(jù)字典)的詳細(xì)列表。下面是創(chuàng)建控制文件的命令:
CREATE CONTROLFILE SET DATABASE “ORACLE” NORESETLOGS NOARACHIVELOG MAXLOGFILES 32 MAXLOGMEMBERS 2 MAXDATAFILES 32 MAXINSTANCES 1 MAXLOGHISTORY 1630 LOGFILE GROUP 1 'C:ORACLEDATABASELOG1ORCL.LOG' SIZE 200K, GROUP 2 'C:ORACLEDATABASELOG2ORCL.LOG' SIZE 200K, DATAFILE 'C:ORACLEDATABASESYS1ORCL.ORA', 'C:ORACLEDATABASEUSER1ORCL.ORA', 'C:ORACLEDATABASERBS1ORCL.ORA', 'C:ORACLEDATABASETMP1ORCL.ORA', 'C:ORACLEDATABASEAPPDATA1.ORA', 'C:ORACLEDATABASEAPPINDX1.ORA',;在例子中,參數(shù)選件與 CREATE DATABASE類(lèi)似。NORESETLOGS 指定聯(lián)機(jī)的日志文件不要重新設(shè)置。2. 關(guān)閉數(shù)據(jù)庫(kù)。
3. 用NOMOUNT選件啟動(dòng)數(shù)據(jù)庫(kù),記住,安裝數(shù)據(jù)庫(kù),Oracle需要打開(kāi)控制文件。4. 用類(lèi)似上面建立新的控制文件。并在INITsid.ORA參數(shù)文件中指定。5. 使用ALTER DATABASE OPEN命令打開(kāi)數(shù)據(jù)庫(kù)。6. 關(guān)閉數(shù)據(jù)庫(kù)并備份數(shù)據(jù)庫(kù)。
提示:如果你的數(shù)據(jù)庫(kù)正常,則可以用ALTER DATABASE BACKUP CONTROLFILE TO TRACE 命令來(lái)產(chǎn)生一個(gè)CREATE CONTROLFILE 的命令。該命令產(chǎn)生后被寫(xiě)到跟蹤文件中。請(qǐng)參考INITsid.OAR的USER_DUMP_DEST所指的目錄找到跟蹤文件,它就在跟蹤文件中。
建立好控制文件后,就要確定如何來(lái)補(bǔ)救被丟失的數(shù)據(jù)文件,可以從V$DATAFILE視圖來(lái)查到丟失的數(shù)據(jù)文件,這些數(shù)據(jù)文件的名字為MISSINGnnnn。如果你建立的控制文件帶有RESETLOGS選件,則丟失的數(shù)據(jù)文件就不能加回?cái)?shù)據(jù)庫(kù)中。如果你建立的控制文件帶有NORESETLOGS選件,則丟失的數(shù)據(jù)文件可以由數(shù)據(jù)庫(kù)的介質(zhì)恢復(fù)被加回?cái)?shù)據(jù)庫(kù)中。當(dāng)數(shù)據(jù)庫(kù)啟動(dòng)后可以 用下面命令進(jìn)行備份:
ALTER DATABASE BACKUP CONTROL FILE TO '
可以從視圖V$CONTROLFILE中查到控制文件的信息,status字段表示控制文件的狀態(tài),一般總是為空。如:
SQL> select * from v$controlfile;另外V$CONTROLFILE_RECORD_SECTION 視圖存儲(chǔ)控制文件所記錄的信息。它的結(jié)構(gòu)如下:
SQL> desc V$CONTROLFILE_RECORD_SECTION
第二篇:Oracle大型數(shù)據(jù)庫(kù) 實(shí)驗(yàn)五 重做日志文件、表空間管理操作
集美大學(xué)計(jì)算機(jī)工程學(xué)院實(shí)驗(yàn)報(bào)告
課程名稱(chēng):大型數(shù)據(jù)庫(kù)技術(shù) 指導(dǎo)教師:楊艷華
班級(jí):計(jì)算12 姓名:
實(shí)驗(yàn)成績(jī):
上機(jī)實(shí)踐日期:2014.12 上機(jī)實(shí)踐時(shí)間:2學(xué)時(shí) 實(shí)驗(yàn)項(xiàng)目名稱(chēng):重做日志文件、表空間管理操作 學(xué)號(hào):20 實(shí)驗(yàn)項(xiàng)目編號(hào):實(shí)驗(yàn)五 組號(hào):
一、實(shí)驗(yàn)?zāi)康?/p>
1、理解重做日志文件的基本概念;
2、掌握重做日志文件組及其成員的添加、移動(dòng)、刪除等操作;
3、掌握歸檔重做日志的設(shè)置;
4、理解表空間的基本概念和分類(lèi);
5、掌握永久表空間的創(chuàng)建和管理操作;
6、掌握還原表空間的管理。
二、實(shí)驗(yàn)要求
1、完成重做日志文件組及其成員文件的管理操作;
2、完成歸檔重做日志的設(shè)置;
3、完成永久表空間和臨時(shí)表空間的管理操作;
4、完成還原表空間的管理。
三、實(shí)驗(yàn)內(nèi)容
(1)查看數(shù)據(jù)庫(kù)當(dāng)前重做日志文件組及成員的設(shè)置情況,然后,為數(shù)據(jù)庫(kù)添加一組重做日志,組內(nèi)包含兩個(gè)成員文件,分別為redo4a.log和redo4b.log,大小分別為5MB。
1(2)為上面新添加的那組重做添加一個(gè)日志成員,命名為“redo4c-姓名簡(jiǎn)拼.log”,實(shí)現(xiàn)重做日志的多路存儲(chǔ)。
(3)把數(shù)據(jù)庫(kù)從非歸檔模式修改為歸檔模式,之后創(chuàng)造條件讓數(shù)據(jù)庫(kù)立即歸檔,并檢查歸檔是否成功
(4)創(chuàng)建永久表空間
? 創(chuàng)建一個(gè)表空間名為“TB+學(xué)號(hào)后三位+姓名簡(jiǎn)拼” ? 空間的大小為50M ? 表空間包括兩個(gè)數(shù)據(jù)文件:表空間名_01.dbf(30M)和表空間名_02.dbf(20M),大小均不能自動(dòng)擴(kuò)展 ? 數(shù)據(jù)文件均存放在Oracle的安裝根目錄
(5)改變上述永久表空間的可用性
? 先將表空間脫機(jī) ? 再進(jìn)行聯(lián)機(jī)
(6)創(chuàng)建一個(gè)4K的非標(biāo)準(zhǔn)塊表空間,命名為“tbf+學(xué)號(hào)后三位+姓名簡(jiǎn)拼”,數(shù)據(jù)文件存儲(chǔ)在”
(7)創(chuàng)建一個(gè)臨時(shí)表空間
? 名為“TTB+學(xué)號(hào)后三位+姓名簡(jiǎn)拼”
? 包含一個(gè)數(shù)據(jù)文件:表空間名_01.dbf,大小為(學(xué)號(hào)后三位*2)M,存儲(chǔ)在”
(8)查看數(shù)據(jù)庫(kù)內(nèi)各個(gè)表空間及其類(lèi)型,以及區(qū)管理方式、分配類(lèi)型和段空間管理方法、表空間的狀態(tài)。
(9)刪除前面創(chuàng)建的非標(biāo)準(zhǔn)塊表空間,同時(shí)刪除表空間的內(nèi)容和對(duì)應(yīng)的操作系統(tǒng)文件。
(10)創(chuàng)建一個(gè)還原表空間,命名為“UNDO+學(xué)號(hào)后三位+姓名簡(jiǎn)拼”,其中包含一個(gè)數(shù)據(jù)文件(存儲(chǔ)在”
(11)為前面創(chuàng)建的永久表空間添加一個(gè)數(shù)據(jù)文件,命名為“表空間名_03.dbf”,該文件初始大小為50M,允許自動(dòng)擴(kuò)展,存儲(chǔ)在”
(12)將永久表空間中初始的兩個(gè)文件移動(dòng)到”
(13)同時(shí)將前面創(chuàng)建的永久表空間和UNDO表空間內(nèi)的文件進(jìn)行重命名,把文件名中的“_”去掉。
三、實(shí)驗(yàn)小結(jié)
1、通過(guò)本次實(shí)驗(yàn),我對(duì)重做日志文件組及其成員的添加、移動(dòng)、刪除等操作、歸檔重做日志的設(shè)置、表空間的基本概念和分類(lèi)、永久表空間的創(chuàng)建和管理操作、還原表空間的管理都有了更為深入的了解和掌握;
2、切換數(shù)據(jù)庫(kù)狀態(tài)前,必須關(guān)閉數(shù)據(jù)庫(kù),由于沒(méi)有關(guān)閉數(shù)據(jù)庫(kù),導(dǎo)致在數(shù)據(jù)庫(kù)狀態(tài)切換過(guò)程中遇到了很多問(wèn)題;
3、通過(guò)本次實(shí)驗(yàn),我能夠完成重做日志文件組及其成員文件的管理操作、完成歸檔重做日志的設(shè)置、完成永久表空間和臨時(shí)表空間的管理操作。
第三篇:oracle 管理表空間和數(shù)據(jù)文件
oracle 管理表空間和數(shù)據(jù)文件
介紹ν
表空間是數(shù)據(jù)庫(kù)的邏輯組成部分。從物理上講,數(shù)據(jù)庫(kù)數(shù)據(jù)存放在數(shù)據(jù)文件中;
從邏輯上講,數(shù)據(jù)庫(kù)則是存放在表空間中,表空間由一個(gè)或多個(gè)數(shù)據(jù)文件組成。
數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)
介紹ν
oracle 中邏輯結(jié)構(gòu)包括表空間、段、區(qū)和塊。
說(shuō)明一下數(shù)據(jù)庫(kù)由表空間構(gòu)成,而表空間又是由段構(gòu)成,而段又是由區(qū)構(gòu)成,而
區(qū)又是由 oracle塊構(gòu)成的這樣的一種結(jié)構(gòu),可以提高數(shù)據(jù)庫(kù)的效率。
為了讓大家明白,我們畫(huà)圖說(shuō)明邏輯關(guān)系:看圖:
表空間
介紹ν
表空間用于從邏輯上組織數(shù)據(jù)庫(kù)的數(shù)據(jù)。數(shù)據(jù)庫(kù)邏輯上是由一個(gè)或是多個(gè)表空間
組成的。通過(guò)表空間可以達(dá)到以下作用:
1.控制數(shù)據(jù)庫(kù)占用的磁盤(pán)空間
2.dba 可以將不同數(shù)據(jù)類(lèi)型部署到不同的位置,這樣 利于提高 i/o性能,同
時(shí)利于備份和恢復(fù)等管理操作。(可以把索引,觸發(fā)器單獨(dú)放一個(gè)表空間中)。
建立表空間ν
建立表空間是使用 crate tablespace 命令完成的,需要注意的是,一般情況下,建立表空間是特權(quán)用戶(hù)或是 dba 來(lái)執(zhí)行的,如果用其它用戶(hù)來(lái)創(chuàng)建表空間,則用
戶(hù)必須要具 create tablespace 的系統(tǒng)權(quán)限。
建立數(shù)據(jù)表空間ν
在建立數(shù)據(jù)庫(kù)后,為便于管理表,最好建立 自己的表空間 create tablespace data01 datafile 'd:testdada01.dbf' size 20m uniform size 128k;
說(shuō)明:執(zhí)行完上述命令后,會(huì)建立名稱(chēng)為 data01 的表空間,并為該表空間建立
名稱(chēng)為 data01.dbf 的數(shù)據(jù)文件,區(qū)的大小為 128k
ν 使用數(shù)據(jù)表空間(把表關(guān)聯(lián)到表空間,如果沒(méi)指定表空間,則默認(rèn)在sys表空間里)create table mypart(deptno number(4), dname varchar2(14), loc varchar2(13))tablespace data01;
改變表空間的狀態(tài)ν
當(dāng)建立表空間時(shí),表空間處于聯(lián)機(jī)的(online)狀態(tài),此時(shí)該表空間是可以訪(fǎng)問(wèn)的,并且該表空間是可以讀寫(xiě)的,即可以查詢(xún)?cè)摫砜臻g的數(shù)據(jù),而且還可以在表
空間執(zhí)行各種語(yǔ)句。但是在進(jìn)行系統(tǒng)維護(hù)或是數(shù)據(jù)維護(hù)時(shí),可能需要改變表空間的狀態(tài)。一般情況下,由特權(quán)用戶(hù)或是 dba 來(lái)操作。安全性考慮
1.使表空間脫機(jī)
alter tablespace 表空間名 offline;2.使表空間聯(lián)機(jī)
alter tablespace 表空間名 online;3.只讀表空間
當(dāng)建立表空間時(shí),表空間可以讀寫(xiě),如果不希望在該表空間上執(zhí)行update,delete,insert 操作,那么可以將表空間修改為只讀
alter tablespace 表空間名 read only;
(修改為可寫(xiě)是 alter tablespace 表空間名 read write;)
改變表空間的狀態(tài)ν
我們給大家舉一個(gè)實(shí)例,說(shuō)明只讀特性:
1.知道表空間名,顯示該表空間包括的所有表
select * from all_tables where tablespace_name=’表空間名’;
2.知道表名,查看該表屬于那個(gè)表空間 select tablespace_name, table_name from user_tables where table_name=’emp’;
通過(guò) 2.我們可以知道 scott.emp 是在 system 這個(gè)表空間上,現(xiàn)在我們可以將
system 改為只讀的但是我們不會(huì)成功,因?yàn)?system 是系統(tǒng)表空間,如果是普通
表空間,那么我們就可以將其設(shè)為只讀的,給大家做一個(gè)演示,可以加
理解。
3.4.使表空間可讀寫(xiě)
alter tablespace 表空間名 read write;
ν 刪除表空間
一般情況下,由特權(quán)用戶(hù)或是 dba 來(lái)操作,如果是其它用戶(hù)操作,那么要求用戶(hù)
具 drop tablespace 系統(tǒng)權(quán)限。
drop tablespace ‘表空間’ including contents and datafiles;
說(shuō)明:including contents 表示刪除表空間時(shí),刪除該空間的所有數(shù)據(jù)庫(kù)對(duì)象,而 datafiles 表示將數(shù)據(jù)庫(kù)文件也刪除。
擴(kuò)展表空間ν
表空間是由數(shù)據(jù)文件組成的,表空間的大小實(shí)際上就是數(shù)據(jù)文件相加后的大小。
那么我們可以想象,假定表employee 存放到data01 表空間上,初始大小就是
2M,當(dāng)數(shù)據(jù)滿(mǎn) 2M 空間后,如果在向 employee 表插入數(shù)據(jù),這樣就會(huì)顯示空間不
足的錯(cuò)誤。
案例說(shuō)明:
1.建立一個(gè)表空間 sp01
2.在該表空間上建立一個(gè)普通表 mydment 其結(jié)構(gòu)和 dept 一樣
3.向該表中加入數(shù)據(jù) insert into mydment select * from dept;4.當(dāng)一定時(shí)候就會(huì)出現(xiàn)無(wú)法擴(kuò)展的問(wèn)題,怎么辦?
5.就擴(kuò)展該表空間,為其增加更多的存儲(chǔ)空間。三種方法:
1.增加數(shù)據(jù)文件
SQL> alter tablespace sp01 add datafile ‘d:testsp01.dbf’ size 20m;
-----------------------Page 51-----------------------2.增加數(shù)據(jù)文件的大小
SQL> alter tablespace 表空間名 ‘d:testsp01.dbf’ resize 20m;
這里需要注意的是數(shù)據(jù)文件的大小不要超過(guò) 500m。
3.設(shè)置文件的自動(dòng)增長(zhǎng)。
SQL> alter tablespace 表空間名 ‘d:testsp01.dbf’ autoextend on next
10m maxsize 500m;
移動(dòng)數(shù)據(jù)文件ν
有時(shí),如果你的數(shù)據(jù)文件所在的磁盤(pán)損壞時(shí),該數(shù)據(jù)文件將不能再使用,為了能
夠重新使用,需要將這些文件的副本移動(dòng)到其它的磁盤(pán),然后恢復(fù)。
下面以移動(dòng)數(shù)據(jù)文件 sp01.dbf為例來(lái)說(shuō)明:
1.確定數(shù)據(jù)文件所在的表空間
select tablespace_name from dba_data_files where file_name=’d:testsp01.dbf’;
2.使表空間脫機(jī)
確保數(shù)據(jù)文件的一致性,將表空間轉(zhuǎn)變?yōu)?offline 的狀態(tài)。
alter tablespace sp01(表空間名)offline;3.使用命令移動(dòng)數(shù)據(jù)文件到指定的目標(biāo)位置
host move d:testsp01.dbf c:testsp01.dbf 4.執(zhí)行 alter tablespace 命令
在物理上移動(dòng)了數(shù)據(jù)后,還必須執(zhí)行alter tablespace 命令對(duì)數(shù)據(jù)庫(kù)文件進(jìn)行
邏輯修改: alter tablespace sp01 rename datafile ‘d:testsp01.dbf’ to
‘c:testsp01.dbf’;
5.使得表空間聯(lián)機(jī)
在移動(dòng)了數(shù)據(jù)文件后,為了使用戶(hù)可以訪(fǎng)問(wèn)該表空間,必須將其轉(zhuǎn)變?yōu)?online 狀態(tài)。
alter tablespace sp01(表空間名)online;
顯示表空間信息ν
查詢(xún)數(shù)據(jù)字典視圖 dba_tablespaces,顯示表空間的信息:
select tablespace_name from dba_tablespaces;
顯示表空間所包含的數(shù)據(jù)文件ν
查詢(xún)數(shù)據(jù)字典視圖 dba_data_files,可顯示表空間所包含的數(shù)據(jù)文件,如下:
select file_name, bytes from dba_data_files where tablespce_name=’表
空間’;
表空間小結(jié)ν
1.了解表空間和數(shù)據(jù)文件的作用
2.掌握常用表空間,undo 表空間和臨時(shí)表空間的建立方法
3.了解表空間的各個(gè)狀態(tài)(online, offline, read write, read only)的作用,及如何改變表空間的狀態(tài)的方法。
4.了解移動(dòng)數(shù)據(jù)文件的原因,及使用alter tablespace 和 alter datatable 命令移動(dòng)數(shù)據(jù)文件的方法。
-----------------------Page 52-----------------------
其它表空間ν
除了最常用的數(shù)據(jù)表空間外,還有其它類(lèi)型表空間:
1.索引表空間 2.undo 表空間
3.臨時(shí)表空間
4.非標(biāo)準(zhǔn)塊的表空間
這幾種表空間,大家伙可以自己參考書(shū)籍研究,這里我就不講。
其它說(shuō)明ν
關(guān)于表空間的組成部分 段/區(qū)/塊,我們?cè)诤竺娼o大家講解。
第四篇:oracle表空間和數(shù)據(jù)文件的管理實(shí)驗(yàn)
表空間和數(shù)據(jù)文件的管理實(shí)驗(yàn)
試驗(yàn)?zāi)康模喝嬲莆毡砜臻g和數(shù)據(jù)文件的創(chuàng)建、管理過(guò)程 試驗(yàn)內(nèi)容:
1、創(chuàng)建表空間、增加數(shù)據(jù)文件
2、管理表空間和數(shù)據(jù)文件的的各種操作 試驗(yàn)步驟:
1、掌握表空間和數(shù)據(jù)文件相關(guān)的概念
1)oracle默認(rèn)的表空間
系統(tǒng)默認(rèn)的表空間:SYSTEM、SYSAUX、UNDOTBS1、EMP、EXAMPLE、USERS 2)系統(tǒng)表空間
SYSTEM、SYSAUX是系統(tǒng)表空間,SYSTEM用于存放oracle數(shù)據(jù)字典的結(jié)構(gòu)和內(nèi)部元數(shù)據(jù)。
SYSAUX是SYSTEM的輔助表空間用于存放個(gè)模式(用戶(hù))的對(duì)象元數(shù)據(jù)。
3)非系統(tǒng)表空間
由DBA根據(jù)需要?jiǎng)?chuàng)建,存放用戶(hù)自己的數(shù)據(jù),也可以包含臨時(shí)數(shù)據(jù)以及UNDO數(shù)據(jù)。
2、創(chuàng)建表空間
1)創(chuàng)建表空間的語(yǔ)法
CREATE [smallfile|bigfile] TABLESPACE tablespace_name DATAFILE ‘/path/filename’ SIZE [k|m] REUSE
[‘/path/filename’ SIZE [k|m] REUSE]
[AUTOEXTEND [ON|OFF] NEXT [k|m] MAXSIZE [UNLIMITED|[K|M]]] [ONLINE|OFFLINE] [LOGGING|NOLOGGING] [PERMANENT|TEMPORARY] [DICTIONARY|LOCAL]
2)定義表空間名字及屬性
創(chuàng)建兩個(gè)表空間ts_test1、ts_test2,本地化管理(Local,默認(rèn))、永久表空間(permantent,默認(rèn))
3)定義數(shù)據(jù)文件名字、路徑、初始大小、自動(dòng)擴(kuò)展等屬性
數(shù)據(jù)文件data_test1、data_test2 路徑:c:disk1data_test1.dbf c:disk2data_test2
4)創(chuàng)建腳本:
a、創(chuàng)建本地永久表空間
//創(chuàng)建本地永久表空間ts_test1和ts_test2,默認(rèn)為永久和本地
SQL>create tablespace ts_test1 datafile ‘c:disk1data_file1.dbf’ size=50m reuse autoextend on next 10m;
SQL>create tablespace ts_test2 datafile ‘c:disk2data_file2.dbf’ size=50m reuse autoextend on next 10m maxsize unlimited;查看一下創(chuàng)建完成的結(jié)果
//查看dba_tablespaces結(jié)構(gòu)
SQL>desc dba_tablespaces;
//查看字典中的所有表空間情況,extent_management值為local時(shí)為本地表空間 SQL>select tablespace_name,status,extent_management,content from dba_tablespaces;//查看創(chuàng)建表空間時(shí)創(chuàng)建的數(shù)據(jù)文件,首先查看dba_data_files字典結(jié)構(gòu) SQL>desc dba_data_files;//查看數(shù)據(jù)文件情況 SQL>set linesize 120 SQL>col file_name for a20 SQL>col file_id for a20 SQL>col tablespace_name a30 SQL>col online_status for a20 SQL>select file_name,file_id,tablespace_name,online_status from dba_data_files;
b、創(chuàng)建還原表空間和臨時(shí)表空間
//創(chuàng)建還原表空間
SQL>create undo tablespace test_undo datafile ‘c:disk3test_undo’ size 20m;
//查看創(chuàng)建結(jié)果,contents為表空間內(nèi)容類(lèi)型,如undo
SQL>select tablespace_name,contents from dba_tablespaces;
c、創(chuàng)建臨時(shí)表空間
//創(chuàng)建臨時(shí)表空間
SQL>create temporary tablespace test_temp
tempfile ‘c:disk4test_temp.dbf’ size 20m extent management local;
//查詢(xún)創(chuàng)建結(jié)果
SQL>select tablespace_name,extent_management,contents from dba_tablespaces;d、增加數(shù)據(jù)文件
//增加數(shù)據(jù)文件
SQL>alter tablespace ts_test1 add datafile ‘c:disk1ts_test11.dbf’ size 10m;
//查看增加數(shù)據(jù)文件的結(jié)果
SQL>col file_name for a30
SQL>col tablespace_name for a30 SQL>select file_name,tablespace_name from dba_data_files;
3、管理表空間的各種操作
1)改變表空間的讀寫(xiě)狀態(tài)
//將表空間設(shè)為只讀
//這時(shí)表空間應(yīng)為online狀態(tài),表空間不能包含回滾段,不能是歸檔模式
//查看數(shù)據(jù)庫(kù)日志模式
SQL>archive log list;//查看表空間contents
SQL>select tablespace_name,contents from dba_tablespaces where tablespace_name like‘TS_%’;
//修改為只讀
SQL>alter tablespace ts_test1 read only;2)表空間脫機(jī)離線(xiàn)、在線(xiàn)連接
SQL>alter tablespace ts_test1 offline;
SQL>alter tablespace ts_test1 online;
//查看表空間狀態(tài)
SQL>select tablespace_name,status from dba_tablespaces;3)修改表空間名稱(chēng) //查詢(xún)當(dāng)前表空間名稱(chēng)和所包含的數(shù)據(jù)文件
SQL>select file_name,tablespace_name from dba_data_files;//確認(rèn)表空間處在online狀態(tài)
SQL>select tablespace_name,status from dba_tablespaces;//表空間改名
SQL>alter tablespace ts_test2 rename to ts_test22;//查詢(xún)修改結(jié)果
SQL>Col file_name for a30;SQL>col tablespace_name for a30;SQL>select file_name,tablespace_name from dba_data_files;4)設(shè)置默認(rèn)表空間
SQL>alter database default tablespace users //設(shè)置默認(rèn)臨時(shí)表空間
SQL>alter database default temporary tablespace temp;5)刪除表空間
SQL>drop tablespace ts_test2;//僅刪除表空間信息不刪除表空間數(shù)據(jù)文件 SQL>drop tablespace ts_test2 includng contents;//包括數(shù)據(jù)文件全部刪除 查看刪除后的結(jié)果情況
SQL>select file_name,tablespace_name from dba_data_files;6)切換undo表空間
SQL>alter system set undo_tablespace =undotbs02;7)刪除undo表空間
要?jiǎng)h除正在使用的undo表空間,首先切換undo表空間后在進(jìn)行刪除 例如刪除undost01 SQL>alter system set undo_tablespace=undost02;SQL>drop tablespace undost01;8)查詢(xún)undo表空間信息
SQL>show parameter undo_tablespace;
4、管理數(shù)據(jù)文件的各種操作 1)在表空間中新增一個(gè)數(shù)據(jù)文件
SQL>alter tablespace ts_test1 add datafile ‘c:dsk1ta_test111.dbf’ size 50m;2)刪除表空間中無(wú)數(shù)據(jù)的數(shù)據(jù)文件 第一種語(yǔ)法
SQL>alter database datafile ‘c:disk1ts_test1.dbf’ offline;//數(shù)據(jù)文件脫機(jī) SQL>alter tablespace ts_test1 drop datafile ‘c:disk1ts_test111.dbf’;第二種語(yǔ)法:
SQL>alter database datafile ‘mytb.dbf’ offline drop;3)數(shù)據(jù)文件自動(dòng)擴(kuò)展設(shè)置
SQL>alter tablespace ts_test1 datafile ‘c:disk1ts_test1.dbf’ autoextend on next 10m maxsize 500m;4)重置數(shù)據(jù)文件大小,收回或擴(kuò)數(shù)據(jù)文件空間
SQL>alter tablespace ts_test1 datafile ‘c:disk1ts_test1.dbf’ resize 45m;
查詢(xún)重置數(shù)據(jù)文件大小后的結(jié)果
SQL>col file_name for a30;
SQL>col tablespace_name for a30;
SQL>select file_name,tablespace_name,bytes/(1024*1024)from dba_data_files;5)移動(dòng)數(shù)據(jù)文件
有兩條語(yǔ)句可以實(shí)現(xiàn)對(duì)數(shù)據(jù)文件的移動(dòng):
a、alter tablespace tablespace_name rename datafile ‘/path/file_name1’
to ‘/path/file_name_new’;
a這條語(yǔ)句主要適合用戶(hù)表空間,在執(zhí)行這條語(yǔ)句時(shí)表空間必須脫機(jī)才能執(zhí)行。SQL>alter tablesapace ts_test2 offline;//使表空間ts_test2脫機(jī)
SQL>host copy c:disk2ts_test2.dbf c:disk1 //將數(shù)據(jù)文件拷貝到新的位置
SQL>alter tablespace rename datafile ‘c:disk2ts_test2.dbf’ to ‘c:disk1ts_test1.dbf’;b、alter database db_name rename file ‘/path/file_name1’ to ‘/path/file_name_new’;
這條語(yǔ)句使用于系統(tǒng)表空間及不能置為脫機(jī)的表空間中的數(shù)據(jù)文件。在使用該語(yǔ)句時(shí),數(shù)據(jù)庫(kù)必須在加載(mount)的狀態(tài)且目標(biāo)數(shù)據(jù)文件必須存在,因?yàn)樵撜Z(yǔ)句只是修改文件中指向數(shù)據(jù)文件的指針(地址)。SQL>shutdown immediate;SQL>host copy c:oracleproduct10.2.0oradatasystem01.dbf c:disk1 SQL>startup mount;SQL>alter database rename file ‘c:oracleproduct10.2.0oradataorclsystem01.dbf’ to ‘c:disk1system01.dbf’;SQL>alter database open;查詢(xún)移動(dòng)后的結(jié)果
SQL>select file_name,tablespace_name from dba_data_files;
第五篇:Oracle表空間和數(shù)據(jù)文件的關(guān)系
數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)是由數(shù)據(jù)庫(kù)的操作系統(tǒng)文件所決定,每一個(gè)Oracle數(shù)據(jù)庫(kù)是由三種類(lèi)型的文件組成: 數(shù)據(jù)文件和控制文件。數(shù)據(jù)庫(kù)的文件為數(shù)據(jù)庫(kù)提供真正的物理存儲(chǔ)。
每一個(gè)Oracle數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)物理的數(shù)據(jù)文件(data file)。一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件包含全部數(shù)據(jù)庫(kù)數(shù)據(jù)。邏輯數(shù)據(jù)庫(kù)結(jié)構(gòu)(如表,索引等)的數(shù)據(jù)物理地存儲(chǔ)在數(shù)據(jù)庫(kù)地?cái)?shù)據(jù)文件中。數(shù)據(jù)文件通常為*.dbf格式,例如: userCIMS.dbf.數(shù)據(jù)文件有一下特征:①、一個(gè)數(shù)據(jù)文件僅與一個(gè)數(shù)據(jù)庫(kù)聯(lián)系;②、一旦建立, 數(shù)據(jù)文件只增不減;③、一個(gè)表空間(數(shù)據(jù)庫(kù)存儲(chǔ)地邏輯單位)由一個(gè)或多個(gè)數(shù)據(jù)文件組成。
其次, 我們?cè)賮?lái)敘述一下Oracle的邏輯結(jié)構(gòu): Oracle的邏輯結(jié)構(gòu)包括表空間(tablespace), 段(segment), 數(shù)據(jù)塊(data block)以及模式對(duì)象(schema object)。
Oracle數(shù)據(jù)庫(kù)在邏輯上是由多個(gè)表空間組成的, 表空間在物理上包含一個(gè)或者多個(gè)數(shù)據(jù)文件。而數(shù)據(jù)文件大小是塊大小的整數(shù)倍;表空間中存儲(chǔ)的對(duì)象叫段, 比如數(shù)據(jù)段, 索引段和回退段。段由區(qū)組成, 區(qū)是磁盤(pán)分配的最小單位。段的增大是通過(guò)增加區(qū)的個(gè)數(shù)來(lái)實(shí)現(xiàn)的。每個(gè)區(qū)的大小是數(shù)據(jù)塊大小的整數(shù)倍,取得大小可以不同;數(shù)據(jù)塊是數(shù)據(jù)庫(kù)中的最小的I/O單位,同時(shí)也是內(nèi)存數(shù)據(jù)緩沖區(qū)的單位,及數(shù)據(jù)文件存儲(chǔ)空間單位。塊的大小由參數(shù)DB_BLOCK_SIZE設(shè)置,其值影設(shè)置為操作系統(tǒng)塊大小的整數(shù)倍。
⑴ 表空間(TABLESPACE)表空間是數(shù)據(jù)庫(kù)中最大的邏輯單位,每一個(gè)表空間由一個(gè)或多個(gè)數(shù)據(jù)文件組成,一個(gè)數(shù)據(jù)文件只能與一個(gè)表空間相聯(lián)系。每一個(gè)數(shù)據(jù)庫(kù)都有一個(gè)SYSTEM表空間,該表空間是在數(shù)據(jù)庫(kù)創(chuàng)建或數(shù)據(jù)庫(kù)安裝時(shí)自動(dòng)創(chuàng)建的,用于存儲(chǔ)系統(tǒng)的數(shù)據(jù)字典表,程序系統(tǒng)單元,過(guò)程函數(shù),包和觸發(fā)器等,也可用于存儲(chǔ)用戶(hù)數(shù)據(jù)表,索引對(duì)象。表空間具有在線(xiàn)(online)和離線(xiàn)(offline)屬性,可以將除SYSTEM以外的任何表空間置為離線(xiàn)。⑵ 段(SEGMENT)數(shù)據(jù)庫(kù)的段可以分為4類(lèi):數(shù)據(jù)段,索引段,回退段和臨時(shí)段。⑶ 區(qū)
區(qū)是磁盤(pán)空間分配的最小單位。磁盤(pán)按區(qū)劃分,每次至少分配一個(gè)區(qū)。區(qū)存儲(chǔ)在段中,它由連續(xù)的數(shù)據(jù)塊組成。⑷ 數(shù)據(jù)塊
數(shù)據(jù)塊是數(shù)據(jù)庫(kù)中最小的數(shù)據(jù)組織單位與管理單位,是數(shù)據(jù)庫(kù)文件磁盤(pán)存儲(chǔ)空間單位,也是數(shù)據(jù)庫(kù)I/O的最小單位,數(shù)據(jù)塊大小由DB_BLOCK_SIZE參數(shù)決定,不同的ORACLE版本BD_BLOCK_SIZE的默認(rèn)值是不同的。查詢(xún)DB_BLOCK_SIZE可以使用sql:
select name, value from v$parameter where name = 'db_block_size';⑸ 模式對(duì)象
模式對(duì)象是一種應(yīng)用,包括:表、聚簇、試圖、索引序列生成器、同義詞、哈希、程序單元、數(shù)據(jù)庫(kù)鏈的等。
最后說(shuō)一下ORACLE的用戶(hù)、表空間和數(shù)據(jù)文件的關(guān)系:
一個(gè)用戶(hù)可以使用一個(gè)或多個(gè)表空間,一個(gè)表空間也可以提供多個(gè)用戶(hù)使用。用戶(hù)和表空間沒(méi)有隸屬關(guān)系,表空間是一個(gè)用來(lái)管理數(shù)據(jù)存儲(chǔ)的邏輯概念,表空間只是和數(shù)據(jù)文件發(fā)生關(guān)系,數(shù)據(jù)文件是物理的。一個(gè)表空間可以包含多個(gè)數(shù)據(jù)文件,而一個(gè)數(shù)據(jù)文件只能隸屬于一個(gè)表空間。
總結(jié)一下:解釋數(shù)據(jù)庫(kù)、表空間、數(shù)據(jù)文件、表、數(shù)據(jù)的最好辦法就是想象一個(gè)裝滿(mǎn)東西的柜子。數(shù)據(jù)庫(kù)其實(shí)就是柜子,柜中的抽屜是表空間,抽屜中的文件夾是數(shù)據(jù)文件,數(shù)據(jù)夾中的紙是表,寫(xiě)在紙上的信息就是數(shù)據(jù)。