欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      oracle表空間和數(shù)據(jù)文件的管理實(shí)驗(yàn)

      時(shí)間:2019-05-15 09:19:04下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《oracle表空間和數(shù)據(jù)文件的管理實(shí)驗(yàn)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《oracle表空間和數(shù)據(jù)文件的管理實(shí)驗(yàn)》。

      第一篇:oracle表空間和數(shù)據(jù)文件的管理實(shí)驗(yàn)

      表空間和數(shù)據(jù)文件的管理實(shí)驗(yàn)

      試驗(yàn)?zāi)康模喝嬲莆毡砜臻g和數(shù)據(jù)文件的創(chuàng)建、管理過程 試驗(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è)模式(用戶)的對象元數(shù)據(jù)。

      3)非系統(tǒng)表空間

      由DBA根據(jù)需要創(chuàng)建,存放用戶自己的數(shù)據(jù),也可以包含臨時(shí)數(shù)據(jù)以及UNDO數(shù)據(jù)。

      2、創(chuàng)建表空間

      1)創(chuàng)建表空間的語法

      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ù)文件名字、路徑、初始大小、自動擴(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)容類型,如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;

      //查詢創(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)改變表空間的讀寫狀態(tài)

      //將表空間設(shè)為只讀

      //這時(shí)表空間應(yīng)為online狀態(tài),表空間不能包含回滾段,不能是歸檔模式

      //查看數(shù)據(jù)庫日志模式

      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ī)離線、在線連接

      SQL>alter tablespace ts_test1 offline;

      SQL>alter tablespace ts_test1 online;

      //查看表空間狀態(tài)

      SQL>select tablespace_name,status from dba_tablespaces;3)修改表空間名稱 //查詢當(dā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;//查詢修改結(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表空間

      要刪除正在使用的undo表空間,首先切換undo表空間后在進(jìn)行刪除 例如刪除undost01 SQL>alter system set undo_tablespace=undost02;SQL>drop tablespace undost01;8)查詢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)刪除表空間中無數(shù)據(jù)的數(shù)據(jù)文件 第一種語法

      SQL>alter database datafile ‘c:disk1ts_test1.dbf’ offline;//數(shù)據(jù)文件脫機(jī) SQL>alter tablespace ts_test1 drop datafile ‘c:disk1ts_test111.dbf’;第二種語法:

      SQL>alter database datafile ‘mytb.dbf’ offline drop;3)數(shù)據(jù)文件自動擴(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;

      查詢重置數(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)移動數(shù)據(jù)文件

      有兩條語句可以實(shí)現(xiàn)對數(shù)據(jù)文件的移動:

      a、alter tablespace tablespace_name rename datafile ‘/path/file_name1’

      to ‘/path/file_name_new’;

      a這條語句主要適合用戶表空間,在執(zhí)行這條語句時(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’;

      這條語句使用于系統(tǒng)表空間及不能置為脫機(jī)的表空間中的數(shù)據(jù)文件。在使用該語句時(shí),數(shù)據(jù)庫必須在加載(mount)的狀態(tài)且目標(biāo)數(shù)據(jù)文件必須存在,因?yàn)樵撜Z句只是修改文件中指向數(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;查詢移動后的結(jié)果

      SQL>select file_name,tablespace_name from dba_data_files;

      第二篇:oracle 管理表空間和數(shù)據(jù)文件

      oracle 管理表空間和數(shù)據(jù)文件

      介紹ν

      表空間是數(shù)據(jù)庫的邏輯組成部分。從物理上講,數(shù)據(jù)庫數(shù)據(jù)存放在數(shù)據(jù)文件中;

      從邏輯上講,數(shù)據(jù)庫則是存放在表空間中,表空間由一個(gè)或多個(gè)數(shù)據(jù)文件組成。

      數(shù)據(jù)庫的邏輯結(jié)構(gòu)

      介紹ν

      oracle 中邏輯結(jié)構(gòu)包括表空間、段、區(qū)和塊。

      說明一下數(shù)據(jù)庫由表空間構(gòu)成,而表空間又是由段構(gòu)成,而段又是由區(qū)構(gòu)成,而

      區(qū)又是由 oracle塊構(gòu)成的這樣的一種結(jié)構(gòu),可以提高數(shù)據(jù)庫的效率。

      為了讓大家明白,我們畫圖說明邏輯關(guān)系:看圖:

      表空間

      介紹ν

      表空間用于從邏輯上組織數(shù)據(jù)庫的數(shù)據(jù)。數(shù)據(jù)庫邏輯上是由一個(gè)或是多個(gè)表空間

      組成的。通過表空間可以達(dá)到以下作用:

      1.控制數(shù)據(jù)庫占用的磁盤空間

      2.dba 可以將不同數(shù)據(jù)類型部署到不同的位置,這樣 利于提高 i/o性能,同

      時(shí)利于備份和恢復(fù)等管理操作。(可以把索引,觸發(fā)器單獨(dú)放一個(gè)表空間中)。

      建立表空間ν

      建立表空間是使用 crate tablespace 命令完成的,需要注意的是,一般情況下,建立表空間是特權(quán)用戶或是 dba 來執(zhí)行的,如果用其它用戶來創(chuàng)建表空間,則用

      戶必須要具 create tablespace 的系統(tǒng)權(quán)限。

      建立數(shù)據(jù)表空間ν

      在建立數(shù)據(jù)庫后,為便于管理表,最好建立 自己的表空間 create tablespace data01 datafile 'd:testdada01.dbf' size 20m uniform size 128k;

      說明:執(zhí)行完上述命令后,會建立名稱為 data01 的表空間,并為該表空間建立

      名稱為 data01.dbf 的數(shù)據(jù)文件,區(qū)的大小為 128k

      ν 使用數(shù)據(jù)表空間(把表關(guān)聯(lián)到表空間,如果沒指定表空間,則默認(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í)該表空間是可以訪問的,并且該表空間是可以讀寫的,即可以查詢該表空間的數(shù)據(jù),而且還可以在表

      空間執(zhí)行各種語句。但是在進(jìn)行系統(tǒng)維護(hù)或是數(shù)據(jù)維護(hù)時(shí),可能需要改變表空間的狀態(tài)。一般情況下,由特權(quán)用戶或是 dba 來操作。安全性考慮

      1.使表空間脫機(jī)

      alter tablespace 表空間名 offline;2.使表空間聯(lián)機(jī)

      alter tablespace 表空間名 online;3.只讀表空間

      當(dāng)建立表空間時(shí),表空間可以讀寫,如果不希望在該表空間上執(zhí)行update,delete,insert 操作,那么可以將表空間修改為只讀

      alter tablespace 表空間名 read only;

      (修改為可寫是 alter tablespace 表空間名 read write;)

      改變表空間的狀態(tài)ν

      我們給大家舉一個(gè)實(shí)例,說明只讀特性:

      1.知道表空間名,顯示該表空間包括的所有表

      select * from all_tables where tablespace_name=’表空間名’;

      2.知道表名,查看該表屬于那個(gè)表空間 select tablespace_name, table_name from user_tables where table_name=’emp’;

      通過 2.我們可以知道 scott.emp 是在 system 這個(gè)表空間上,現(xiàn)在我們可以將

      system 改為只讀的但是我們不會成功,因?yàn)?system 是系統(tǒng)表空間,如果是普通

      表空間,那么我們就可以將其設(shè)為只讀的,給大家做一個(gè)演示,可以加

      理解。

      3.4.使表空間可讀寫

      alter tablespace 表空間名 read write;

      ν 刪除表空間

      一般情況下,由特權(quán)用戶或是 dba 來操作,如果是其它用戶操作,那么要求用戶

      具 drop tablespace 系統(tǒng)權(quán)限。

      drop tablespace ‘表空間’ including contents and datafiles;

      說明:including contents 表示刪除表空間時(shí),刪除該空間的所有數(shù)據(jù)庫對象,而 datafiles 表示將數(shù)據(jù)庫文件也刪除。

      擴(kuò)展表空間ν

      表空間是由數(shù)據(jù)文件組成的,表空間的大小實(shí)際上就是數(shù)據(jù)文件相加后的大小。

      那么我們可以想象,假定表employee 存放到data01 表空間上,初始大小就是

      2M,當(dāng)數(shù)據(jù)滿 2M 空間后,如果在向 employee 表插入數(shù)據(jù),這樣就會顯示空間不

      足的錯(cuò)誤。

      案例說明:

      1.建立一個(gè)表空間 sp01

      2.在該表空間上建立一個(gè)普通表 mydment 其結(jié)構(gòu)和 dept 一樣

      3.向該表中加入數(shù)據(jù) insert into mydment select * from dept;4.當(dāng)一定時(shí)候就會出現(xiàn)無法擴(kuò)展的問題,怎么辦?

      5.就擴(kuò)展該表空間,為其增加更多的存儲空間。三種方法:

      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ù)文件的大小不要超過 500m。

      3.設(shè)置文件的自動增長。

      SQL> alter tablespace 表空間名 ‘d:testsp01.dbf’ autoextend on next

      10m maxsize 500m;

      移動數(shù)據(jù)文件ν

      有時(shí),如果你的數(shù)據(jù)文件所在的磁盤損壞時(shí),該數(shù)據(jù)文件將不能再使用,為了能

      夠重新使用,需要將這些文件的副本移動到其它的磁盤,然后恢復(fù)。

      下面以移動數(shù)據(jù)文件 sp01.dbf為例來說明:

      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.使用命令移動數(shù)據(jù)文件到指定的目標(biāo)位置

      host move d:testsp01.dbf c:testsp01.dbf 4.執(zhí)行 alter tablespace 命令

      在物理上移動了數(shù)據(jù)后,還必須執(zhí)行alter tablespace 命令對數(shù)據(jù)庫文件進(jìn)行

      邏輯修改: alter tablespace sp01 rename datafile ‘d:testsp01.dbf’ to

      ‘c:testsp01.dbf’;

      5.使得表空間聯(lián)機(jī)

      在移動了數(shù)據(jù)文件后,為了使用戶可以訪問該表空間,必須將其轉(zhuǎn)變?yōu)?online 狀態(tài)。

      alter tablespace sp01(表空間名)online;

      顯示表空間信息ν

      查詢數(shù)據(jù)字典視圖 dba_tablespaces,顯示表空間的信息:

      select tablespace_name from dba_tablespaces;

      顯示表空間所包含的數(shù)據(jù)文件ν

      查詢數(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.了解移動數(shù)據(jù)文件的原因,及使用alter tablespace 和 alter datatable 命令移動數(shù)據(jù)文件的方法。

      -----------------------Page 52-----------------------

      其它表空間ν

      除了最常用的數(shù)據(jù)表空間外,還有其它類型表空間:

      1.索引表空間 2.undo 表空間

      3.臨時(shí)表空間

      4.非標(biāo)準(zhǔn)塊的表空間

      這幾種表空間,大家伙可以自己參考書籍研究,這里我就不講。

      其它說明ν

      關(guān)于表空間的組成部分 段/區(qū)/塊,我們在后面給大家講解。

      第三篇:Oracle表空間和數(shù)據(jù)文件的關(guān)系

      數(shù)據(jù)庫的物理結(jié)構(gòu)是由數(shù)據(jù)庫的操作系統(tǒng)文件所決定,每一個(gè)Oracle數(shù)據(jù)庫是由三種類型的文件組成: 數(shù)據(jù)文件和控制文件。數(shù)據(jù)庫的文件為數(shù)據(jù)庫提供真正的物理存儲。

      每一個(gè)Oracle數(shù)據(jù)庫有一個(gè)或多個(gè)物理的數(shù)據(jù)文件(data file)。一個(gè)數(shù)據(jù)庫的數(shù)據(jù)文件包含全部數(shù)據(jù)庫數(shù)據(jù)。邏輯數(shù)據(jù)庫結(jié)構(gòu)(如表,索引等)的數(shù)據(jù)物理地存儲在數(shù)據(jù)庫地?cái)?shù)據(jù)文件中。數(shù)據(jù)文件通常為*.dbf格式,例如: userCIMS.dbf.數(shù)據(jù)文件有一下特征:①、一個(gè)數(shù)據(jù)文件僅與一個(gè)數(shù)據(jù)庫聯(lián)系;②、一旦建立, 數(shù)據(jù)文件只增不減;③、一個(gè)表空間(數(shù)據(jù)庫存儲地邏輯單位)由一個(gè)或多個(gè)數(shù)據(jù)文件組成。

      其次, 我們再來敘述一下Oracle的邏輯結(jié)構(gòu): Oracle的邏輯結(jié)構(gòu)包括表空間(tablespace), 段(segment), 數(shù)據(jù)塊(data block)以及模式對象(schema object)。

      Oracle數(shù)據(jù)庫在邏輯上是由多個(gè)表空間組成的, 表空間在物理上包含一個(gè)或者多個(gè)數(shù)據(jù)文件。而數(shù)據(jù)文件大小是塊大小的整數(shù)倍;表空間中存儲的對象叫段, 比如數(shù)據(jù)段, 索引段和回退段。段由區(qū)組成, 區(qū)是磁盤分配的最小單位。段的增大是通過增加區(qū)的個(gè)數(shù)來實(shí)現(xiàn)的。每個(gè)區(qū)的大小是數(shù)據(jù)塊大小的整數(shù)倍,取得大小可以不同;數(shù)據(jù)塊是數(shù)據(jù)庫中的最小的I/O單位,同時(shí)也是內(nèi)存數(shù)據(jù)緩沖區(qū)的單位,及數(shù)據(jù)文件存儲空間單位。塊的大小由參數(shù)DB_BLOCK_SIZE設(shè)置,其值影設(shè)置為操作系統(tǒng)塊大小的整數(shù)倍。

      ⑴ 表空間(TABLESPACE)表空間是數(shù)據(jù)庫中最大的邏輯單位,每一個(gè)表空間由一個(gè)或多個(gè)數(shù)據(jù)文件組成,一個(gè)數(shù)據(jù)文件只能與一個(gè)表空間相聯(lián)系。每一個(gè)數(shù)據(jù)庫都有一個(gè)SYSTEM表空間,該表空間是在數(shù)據(jù)庫創(chuàng)建或數(shù)據(jù)庫安裝時(shí)自動創(chuàng)建的,用于存儲系統(tǒng)的數(shù)據(jù)字典表,程序系統(tǒng)單元,過程函數(shù),包和觸發(fā)器等,也可用于存儲用戶數(shù)據(jù)表,索引對象。表空間具有在線(online)和離線(offline)屬性,可以將除SYSTEM以外的任何表空間置為離線。⑵ 段(SEGMENT)數(shù)據(jù)庫的段可以分為4類:數(shù)據(jù)段,索引段,回退段和臨時(shí)段。⑶ 區(qū)

      區(qū)是磁盤空間分配的最小單位。磁盤按區(qū)劃分,每次至少分配一個(gè)區(qū)。區(qū)存儲在段中,它由連續(xù)的數(shù)據(jù)塊組成。⑷ 數(shù)據(jù)塊

      數(shù)據(jù)塊是數(shù)據(jù)庫中最小的數(shù)據(jù)組織單位與管理單位,是數(shù)據(jù)庫文件磁盤存儲空間單位,也是數(shù)據(jù)庫I/O的最小單位,數(shù)據(jù)塊大小由DB_BLOCK_SIZE參數(shù)決定,不同的ORACLE版本BD_BLOCK_SIZE的默認(rèn)值是不同的。查詢DB_BLOCK_SIZE可以使用sql:

      select name, value from v$parameter where name = 'db_block_size';⑸ 模式對象

      模式對象是一種應(yīng)用,包括:表、聚簇、試圖、索引序列生成器、同義詞、哈希、程序單元、數(shù)據(jù)庫鏈的等。

      最后說一下ORACLE的用戶、表空間和數(shù)據(jù)文件的關(guān)系:

      一個(gè)用戶可以使用一個(gè)或多個(gè)表空間,一個(gè)表空間也可以提供多個(gè)用戶使用。用戶和表空間沒有隸屬關(guān)系,表空間是一個(gè)用來管理數(shù)據(jù)存儲的邏輯概念,表空間只是和數(shù)據(jù)文件發(fā)生關(guān)系,數(shù)據(jù)文件是物理的。一個(gè)表空間可以包含多個(gè)數(shù)據(jù)文件,而一個(gè)數(shù)據(jù)文件只能隸屬于一個(gè)表空間。

      總結(jié)一下:解釋數(shù)據(jù)庫、表空間、數(shù)據(jù)文件、表、數(shù)據(jù)的最好辦法就是想象一個(gè)裝滿東西的柜子。數(shù)據(jù)庫其實(shí)就是柜子,柜中的抽屜是表空間,抽屜中的文件夾是數(shù)據(jù)文件,數(shù)據(jù)夾中的紙是表,寫在紙上的信息就是數(shù)據(jù)。

      第四篇:oracle 數(shù)據(jù)文件、表空間、日志文件、控制文件數(shù)據(jù)庫管理

      實(shí)驗(yàn)四 oracle 數(shù)據(jù)庫管理

      一、試驗(yàn)?zāi)康?/p>

      掌握對數(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文件沒有該參數(shù),則可以用下面查詢語句從視圖中查到。如: 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)對一個(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í),可以將表空間說明為自動擴(kuò)展或固定大小。因而管理員的一項(xiàng)工作就是查看系統(tǒng)所有的表空間對應(yīng)的數(shù)據(jù)文件情況??词欠駷樽詣訑U(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ù)文件的自動擴(kuò)展與調(diào)整。重新調(diào)整數(shù)據(jù)文件大小的命令如下: ALTER DATABASE DATAFILE [datafile_name] RESIZE [new_size];

      當(dāng)我們發(fā)現(xiàn)數(shù)據(jù)文件過大而不可能用完時(shí),可以用上面命令將數(shù)據(jù)文件調(diào)小。對于設(shè)置數(shù)據(jù)文件的自動擴(kuò)展問題,可用下面命令來達(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)查詢是否存在表的擴(kuò)展超出表空間可用大小 一般在系統(tǒng)使用較長時(shí)間后,表空間的連續(xù)塊被多次的修改與刪除等操作后出現(xiàn)了許多的不連續(xù)的塊(叫碎片)。這樣就有可能出現(xiàn)表的擴(kuò)展所需要的連續(xù)塊不能滿足的情況。為了避免這樣的情況發(fā)生而導(dǎo)致擴(kuò)展失敗,管理員要經(jīng)常查詢系統(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)查詢表空間自由、最大及碎片

      其實(shí),平常管理最關(guān)系就是表空間的總量、最大字節(jié)、使用多少、碎片多少等。下面腳本可以查詢出所有表空間的自由空間、總空間數(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)日志查詢

      select group#,bytes from v$log;? select group#,bytes from v$logfile;

      (1)實(shí)現(xiàn)強(qiáng)行的日志切換 Alter system switch logfile;(2)檢測點(diǎn)(checkpoint)

      Oracle為了在出現(xiàn)故障后能退回去重演原來的信息,就需要一個(gè)叫開始點(diǎn)。在這個(gè)開始點(diǎn)時(shí)刻,數(shù)據(jù)和事務(wù)是已知的。這樣的開始點(diǎn)就叫檢測點(diǎn)。在Oracle里,只要檢查點(diǎn)一到(出現(xiàn))。Oracle就強(qiáng)行將當(dāng)前的SGA中的redo區(qū)的改動過的塊寫入重做日志文件中。這個(gè)步驟完成后,在重做日志文件中放入一個(gè)特殊的檢測點(diǎn)標(biāo)志記錄。如果在下一個(gè)檢測點(diǎn)完成前出現(xiàn)失敗,恢復(fù)操作進(jìn)程就會在日志文件和數(shù)據(jù)文件前一個(gè)檢測點(diǎn)同步(改回去)。檢測點(diǎn)檢查完成后,對數(shù)據(jù)塊的任何改動都記錄在其檢測點(diǎn)標(biāo)志后寫入重做日志項(xiàng)中。因此,恢復(fù)也就只能從最近的檢測點(diǎn)標(biāo)志記錄開始。

      Oracle在INITsid.ORA文件中給出LOG_CHECKPOINT_INTERVAL參數(shù)可以設(shè)置檢測點(diǎn)的數(shù)目。比如 日志文件大小為1000塊,而設(shè)置檢查點(diǎn)間隔LOG_CHECKPOINT_INTERVAL為250,則文件寫達(dá)到 1/

      4、2/

      4、3/4及4/4時(shí)產(chǎn)生檢測點(diǎn)(250塊、500塊、750塊和1000塊處)??捎孟旅婷顏聿槿罩疚募笮。?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í),可以不給出組號,有系統(tǒng)自動分配一個(gè)組號=== ALTER DATABASE ADD LOGFILE('H:/oracle/oradata/orcl/redo0501.log', 'H:/oracle/oradata/orcl/redo0502.log')size 10m;此時(shí)添加的組號為5

      (4)為日志組增加成員 ALTER DATABASE ADD LOGFILE MEMBER 'log22.log' TO GROUP 2;===添加成員時(shí),可以不給定成員的大小,因?yàn)閛racle要求組內(nèi)的所有成員的大小一律相等。

      (5)如果將一個(gè)日志成員從一個(gè)硬盤移到另一個(gè)硬盤,就需要重新命名日志成員名字。需要進(jìn)行下面步驟:

      1. 關(guān)閉數(shù)據(jù)庫,并進(jìn)行完全備份;

      2. 使用操作系統(tǒng)命令拷貝原來的日志文件到新的地方; 3. 用startup mount 啟動數(shù)據(jù)庫; 4. 用ALTER DATABASE RENAME FILE '' TO '';5. 用ALTER DATABASE OPEN 打開數(shù)據(jù)庫; 6. 備份控制文件。為文件更名

      ALTER DATABASE RENAME FILE 'filename1', 'filename2' TO 'filename3', 'filename4';

      (6)日志刪除

      a.刪除日志組成員:

      在下面情況下可能需要刪除重做日志文件,如日志文件個(gè)數(shù)太多(超出需要);日志文件的大小不一致等。這樣的情況可以刪除日志組成員。b.當(dāng)日志組損壞時(shí),就刪除日志組,但必須滿足:

      a)刪除一個(gè)日志組后,系統(tǒng)中至少還有兩個(gè)其它的日志組; b)被刪除的日志組必須是不需要存檔; c)不是正在使用的日志組。刪除日志文件的語法:

      ALTER DATABASE database_name DROP LOGFILE GROUP group_number | file_name |(file_name,file_name(,...))刪除日志成員的語法:

      ALTER DATABASE database_name DROP LOGFILE MEMBER file_name;c.聯(lián)機(jī)重做日志的緊急替換:

      當(dāng)一個(gè)重做日志組偶而被損壞使數(shù)據(jù)庫不能繼續(xù)使用時(shí),不能直接刪除它們,而是要用一個(gè)干凈的文件或一組成員去替代這個(gè)損壞的日志組。聯(lián)機(jī)重做日志的緊急替換命令語法如下: 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ù)庫的結(jié)構(gòu)信息,包括數(shù)據(jù)文件、日志文件??刂莆募且粋€(gè)二進(jìn)制文件,它是在數(shù)據(jù)庫建立時(shí)自動被建立。控制文件可以在當(dāng)你改變文件名或移動文件時(shí)而被更新。在任何時(shí)候,你都不能編輯控制文件??刂莆募膬?nèi)容包括:

      ? 數(shù)據(jù)庫名字(控制文件只能屬于一個(gè)數(shù)據(jù)庫)。? 數(shù)據(jù)庫建立時(shí)的郵戳。

      ? 數(shù)據(jù)文件-名字,位置及聯(lián)機(jī)/脫機(jī)。? 重做日志文件-名字及位置。? 表空間名字。? 當(dāng)前日志序列號。? 最近檢查點(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)查詢控制文件的信息

      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號

      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類似。NORESETLOGS 指定聯(lián)機(jī)的日志文件不要重新設(shè)置。2. 關(guān)閉數(shù)據(jù)庫。

      3. 用NOMOUNT選件啟動數(shù)據(jù)庫,記住,安裝數(shù)據(jù)庫,Oracle需要打開控制文件。4. 用類似上面建立新的控制文件。并在INITsid.ORA參數(shù)文件中指定。5. 使用ALTER DATABASE OPEN命令打開數(shù)據(jù)庫。6. 關(guān)閉數(shù)據(jù)庫并備份數(shù)據(jù)庫。

      提示:如果你的數(shù)據(jù)庫正常,則可以用ALTER DATABASE BACKUP CONTROLFILE TO TRACE 命令來產(chǎn)生一個(gè)CREATE CONTROLFILE 的命令。該命令產(chǎn)生后被寫到跟蹤文件中。請參考INITsid.OAR的USER_DUMP_DEST所指的目錄找到跟蹤文件,它就在跟蹤文件中。

      建立好控制文件后,就要確定如何來補(bǔ)救被丟失的數(shù)據(jù)文件,可以從V$DATAFILE視圖來查到丟失的數(shù)據(jù)文件,這些數(shù)據(jù)文件的名字為MISSINGnnnn。如果你建立的控制文件帶有RESETLOGS選件,則丟失的數(shù)據(jù)文件就不能加回?cái)?shù)據(jù)庫中。如果你建立的控制文件帶有NORESETLOGS選件,則丟失的數(shù)據(jù)文件可以由數(shù)據(jù)庫的介質(zhì)恢復(fù)被加回?cái)?shù)據(jù)庫中。當(dāng)數(shù)據(jù)庫啟動后可以 用下面命令進(jìn)行備份:

      ALTER DATABASE BACKUP CONTROL FILE TO '' REUSE;Oracle公司建議無論你是否改變數(shù)據(jù)庫結(jié)構(gòu)、或加數(shù)據(jù)文件、或重新命名文件或刪除重做日志文件,都要進(jìn)行備份。

      可以從視圖V$CONTROLFILE中查到控制文件的信息,status字段表示控制文件的狀態(tài),一般總是為空。如:

      SQL> select * from v$controlfile;另外V$CONTROLFILE_RECORD_SECTION 視圖存儲控制文件所記錄的信息。它的結(jié)構(gòu)如下:

      SQL> desc V$CONTROLFILE_RECORD_SECTION

      第五篇:oracle表空間管理及操作實(shí)用案例

      Oracle

      表空間管理及操作詳解(附帶案例)

      一:表空間概述

      表空間是數(shù)據(jù)庫的邏輯組成部分,從物理上講,數(shù)據(jù)庫數(shù)據(jù)存放在數(shù)據(jù)文件中;數(shù)據(jù)庫邏輯上講是由一個(gè)或者多個(gè)表空間組成,數(shù)據(jù)文件則是存放在表空間中,表空間有一個(gè)或者多個(gè)數(shù)據(jù)文件組成即表空間有數(shù)據(jù)文件構(gòu)成的。

      數(shù)據(jù)庫,表空間,段,區(qū),塊,按大小排列依次是:數(shù)據(jù)庫---》表空間-----》段-----》區(qū)----》塊。

      1.建立表空間的作用:

      (1.)控制數(shù)據(jù)庫占用的磁盤空間。(2).dba可以將不同的數(shù)據(jù)類型部署到不同的位置,這樣有利于提高i/o性能,同時(shí)有利與備份和恢復(fù)等管理操作。

      二:管理表空間和數(shù)據(jù)文件。

      (1)建立表空間create tablespace;一般情況下建立表空間是特權(quán)用戶或者dba來執(zhí)行的,如果其他用戶來創(chuàng)建表空間,則用戶建必須要具有create tablespace的系統(tǒng)權(quán)限。(2)建立數(shù)據(jù)表空間

      在建立數(shù)據(jù)庫后,為便于管理表,最好建立自己的表空間。

      create tablespace sp02 datafile 'd:testsp02.dbf' size 20m uniform size 128k 說明:執(zhí)行完上述命令后,會建立名稱為sp02的表空間,并為該表空間建立名稱為sp02.dbf的數(shù)據(jù)文件,區(qū)的大小為128k。(3.)在表空間建表

      create table tablesp02(ID number(5),name varchar2(20))tablespace sp02(4)顯示當(dāng)前用戶擁有哪些表。

      select * from tab;

      (5).知道表空間名,顯示該表空間包括的所有表。

      select * from all_tables where tablespace_name='表空間名'。

      注:擁有權(quán)限不同的用戶在進(jìn)行以上操作得到的結(jié)果可能不同。System可以查看得到某空間的所擁有表。(比如users表空間)(6)知道表名,查看該表屬于那個(gè)表空間。

      select TABLESPACE_NAME, TABLE_NAME from user_tables where TABLE_NAME='EMP';(7)知道表名,查看該表屬于那個(gè)表空間,屬于哪個(gè)用戶。

      select owner,TABLESPACE_NAME, TABLE_NAME from all_tables where TABLE_NAME='EMP';(8)改變表空間的狀態(tài) 使表空間可讀寫

      alter tablespace 表空間名 read write;

      刪除表空間,一般情況下由特權(quán)用戶或者dba來操作。具有drop tablespace系統(tǒng)權(quán)限。

      drop tablespace ‘表空間’includeing contens and datafiles;

      說明:includeing contens表示刪除表空間時(shí),刪除該空間的所有數(shù)據(jù)庫對象而datafiles表示將數(shù)據(jù)庫文件也刪除。(9)改變表空間的狀態(tài)(1)使用空間脫機(jī)

      alter tablespace 表空間名 offline(2)使用空間聯(lián)機(jī)

      alter tablespace表空間名online(3)只讀表空間

      建立表空間時(shí),表空間可以讀寫,如果不希望在表空間上執(zhí)行update,delete,insert操作。那么可以將表空間修改為只讀。alter talbespace sp01 read only;

      三:移動數(shù)據(jù)文件:

      (1)確定數(shù)據(jù)文件所在的表空間(知道表屬于哪個(gè)表空間)Select tablespace_name from dba_data_files where file_name='D:TEST