實驗三 Oracle數據庫邏輯存儲結構管理
一、實驗目的
(1)掌握Oracle數據表空間的管理。
(2)掌握數據表空間不同狀態時對數據操作的影響。
二、實驗環境
Oracle 11g
三、實驗內容
(1)為BOOKSALES數據庫創建一個名為BOOKTBS1的永久性表空間,區采用自動拓展方式,段采用自動管理方式。
SQL> create tablespace BOOKTBS1 data'空間地址' size 50M;
①PS:如何查詢自己的表空間信息(表空間絕對地址)輸入 select name from v$datafile; 即可。
(2)為BOOKSALES數據庫創建一個名為BOOKTBS2的永久性表空間,區采用定制分配,每次分配大小為1MB,段采用手動管理方式。
SQL> create tablespace BOOKTBS2 datafile'空間地址'size 10m extent management local uniform size 1m segment space management manual;
(3)為BOOKSALES數據庫創建一個臨時表空間TEMP02。
SQL> create temporary tablespace temp02 tempfile'空間地址'size 10m extent management local uniform size 5m;
(4)將BOOKSALES數據庫臨時表空間TEMP和TEMPO2都放入臨時表空間組TEMPGROUP中。
SQL> alter tablespace temp tablespace group tempgroup; SQL> alter tablespace temp02 tablespace group tempgroup;
(5)為BOOKSALES數據庫創建一個名為UNDO02的撤銷表空間,並設置當前數據庫的在線撤銷表空間。
SQL> create undo tablespace undo02 datafile'空間地址' size 20m;
(6)為BOOKSALES數據庫的表空間BOOKTBS1添加一個大小為50MB的數據文件,以改變該表空間的大小。
SQL> alter tablespace BOOKTBS1 add datafile '空間地址' size 50m;
(7)將BOOKSALES數據庫的表空間BOOKTBS2的數據文件修改為可以自動擴展,每次擴展5MB,最大容量為100MB。
SQL> create undo tablespace BOOKTBS2 datafile '空間地址' size 10m autoextend on next 5m maxsize 100m;
(8)創建一個名為test的表,存儲於BOOKTBS1表空間中,向表中插入一天記錄。
SQL> create table test(id number primary key,name char(20)) tablespace BOOKTBS1;
(9)將BOOKSALES數據庫的BOOKTBS1表空間設置為脫機狀態,測試該表空間是否可以使用。
SQL> alter tablespace BOOKTBS1 offline; SQL> insert into test values(2,'s row');
(10)將BOOKSALES數據庫的BOOKTBS1表空間設置為聯機狀態,測試該空間是否可以使用。
SQL> alter tablespace BOOKTBS1 online; SQL> insert into test values(2,'s row');
(11)將BOOKSALES數據庫的BOOKTBS1表空間設置為只讀狀態,測試該表空間是否可以進行數據的寫入操作。
SQL> alter tablespace BOOKTBS1 read only; SQL> insert into test values(3,'t row');
(12)將BOOKSALES數據庫的BOOKTBS1表空間設置為讀/寫狀態,測試該表空間是否可以進行數據的讀/寫操作。
SQL> alter tablespace BOOKTBS1 read write; SQL> insert into test values(3,'t row');
(13)將BOOKSALES數據庫的BOOKTBS1設置為數據默認表空間,將臨時表空間組TEMPGROUP設置為數據默認臨時表空間。
SQL> alter database default tablespace BOOKTBS1; SQL> alter database default temporary tablespace tempgroup;
(14)分別備份BOOKSALES數據庫的USERS和BOOKTBS1、BOOKTBS3三個表空間。
SQL> host copy users空間地址 其他的同上
②PS:如果輸入(alter tablespace users begin bacup;)回車出現 ORA-01123:無法啟動聯機備份;未啟用介質恢復。
解決辦法步驟如下:
(①)管理員身份登錄
SQL>conn / as sysdba
(②)關閉數據庫實例
SQL>shutdown immediate
(③)打開數據庫到mount階段
SQL>startup mount
(④)更改數據庫歸檔模式
SQL> alter database archivelog;
(⑤)啟動數據庫
SQL>alter databsae open;
(⑥)進行表空間備份
SQL> alter tablespace users begin backup;
(15)查詢BOOKSALES數據庫所有表空間及其狀態信息。
SQL> select tablespace_name,extent_management,allocation_type,contents from dba_tablespace;
(16)查詢BOOKSALES數據庫所有表空間及其數據文件信息。
SQL> select tablespace_name,file_name from dba_data_files;
(17)刪除BOOKSALES數據庫BOOKTBS2表空間及其所有內容,同時刪除操作系統上的數據文件。
SQL> drop tablespace BOOKTBS2 including contents and datafiles;