表空間和啓動關閉DB詳解

上課內容:
表空間之增刪改(重點:修改數據文件爲自動增長)
打開和關閉數據庫的模式

上課準備/參考:
一、表空間之增刪改(重點:如何修改數據文件爲自動增長)
表空間分類:
系統表空間與非系統表空間
臨時表空間與永久表空間

表空間管理:
區管理(默認爲本地自動管理)(推薦“本地自動管理”)
          ——本地管理(local):支持 oracle 8i, oracle 9i,oracle 10g
                 <本地管理可細分爲:自動分配(默認)和統一分配>
          ——數據字典管理(dictionary):支持 oracle 7,oracle 8,oracle 8i,oracle 9.0.1  
段管理
         自動(默認)(推薦)
         手動
創建表空間
create tablespace                      ——創建(永久)表空間
create temporary tablespace   ——創建臨時表空間
create undo tablespace            ——創建撤消表空間
注意:在撤銷表空間上不能建立永久方案對象(如表、索引等)
示例:
create tablespace myts01
datafile '路徑/myts01_1.dbf' size 2m
( 文件的大小不可省,擴展名必須是dbf;臨時表空間用 tempfile )
extent management local | dictionary      ——區管理《默認爲本地,學生了解》
[uniform size 128k | autoallocate]             ——區的分配方式《默認爲自動,學生了解》
segment space management auto           ——段管理《默認爲手動,學生掌握》

刪除表空間(除了系統表空間,任何表空間都可以被刪除)
強烈建議:在刪除表空間前,對數據庫做一次完整備份,以便出錯時恢復
drop tablespace myts01 including contents
——只從數據字典中刪除表空間信息,而不刪除硬盤上的文件
drop tablespace myts01 including contents and datafiles
——連同數據字典中的表空間信息和硬盤上的文件一起刪除

修改表空間
1、修改表空間的名稱(10G特有的)
      alter tablespace myts01 rename to myts01_new
2、修改表空間中數據文件的“位置和”名稱
      步驟:表空間脫機----在OS中重命名數據文件----使用下面的RENAME語句,在“數據庫內部”重命名數據文件               
       alter tablespace myts01
       rename  datafile
       '路徑/myts01_1.dbf', '路徑/myts01_2.dbf'       --------必須來自於同一個表空間
       to
       '路徑/myts01_01.dbf', '路徑/myts01_02.dbf';
 
       alter database
       rename file
       '路徑/myts01_01.dbf', '路徑/myts01_02.dbf'   --------可以來自於不同的表空間
       to
       '路徑/myts01_1.dbf', '路徑/myts01_2.dbf';

2、使表空間只讀 | 可讀寫
     alter tablespace myts01 read only | read write
3、使表空間脫機 | 聯機--------改變數據文件的可用性,處於脫機狀態的數據文件不可用(不能讀、也不能寫)
     ----改變表空間的可用性(表空間+所有數據文件):
     alter tablespace myts01 offline [ normal ] | online
     ----改變表空間“所有數據文件”的可用性, 但是“表空間本身”的可用性不受影響《不講》
         <** 此時必須處於“歸檔日誌模式(archivelog)”下 **>
     alter tablespace myts01 datafile offline [ normal ] | online
     ----單獨改變某個數據文件的可用性《不講》
         <** 此時必須處於“歸檔日誌模式(archivelog)”下 **>
     alter database datafile '路徑/文件名'   offline [ normal ] | online;
     注意:脫機的方式有四種;
               不能使“系統表空間”中的數據文件脫機
4、擴展表空間<重要>--------增加新的, 改變舊的    
     4.1   添加數據文件
             alter tablespace myts01
             add   datafile '路徑/myts01_2.dbf'  size 3m; <注意:size參數不可省>
             autoextend on  next 3m maxsize 50m;
             注:若myts01是臨時表空間,則datafile應改爲tempfile
             思考:能否alter database來增加數據文件?<提示:可在OEM中觀察>
     ***  除了向表空間“添加新的數據文件”以外, 另一種“增加表空間的存儲空間”的方法是:
     ***  改變該表空間已有數據文件的大小------- 1、設置數據文件爲自動增長  2、手工改變數據文件的大小
     4.2   手工改變數據文件大小
             alter database datafile  '路徑/myts01_2.dbf'  
             resize 4m;
             注意:也可利用RESIZE子句來縮小數據文件,不過必須保證縮小後的數據文件足夠容納其中已有的數據
     4.3   使數據文件自動增長<重要>
             ----創建表空間時將數據文件設置爲自動增長 
                 <互動>
             ----增加新的數據文件時設置爲自動增長
                 <互動>
             ----把已有數據文件設置爲自動增長
             alter database datafile  '路徑/myts01_2.dbf'  
             autoextend on  next 1m maxsize  20m;
             禁止數據文件自動增長
             alter database datafile  '路徑/myts01_2.dbf'  
             autoextend off;

5、當有多個臨時表空間時,默認臨時表空間爲TEMP 《不講》
      修改數據庫默認“臨時”表空間(9.2版本 不能修改數據庫“默認表空間”)
      alter database default  temporary  tablespace  mytmpts01;

6、查詢表空間信息
6.1 使用dba_tablespaces視圖查詢表空間的基本信息
      select * from dba_tablespaces;
6.2 查詢數據庫的數據文件及其所屬的表空間
      select tablespace_name,file_name,blocks  from  dba_data_files;
     
二、打開和關閉數據庫的模式
回顧:
例   程-----內存中的部分
數據庫-----硬盤中的部分

啓動和關閉數據庫都是按三大步驟進行的, 每完成一個步驟,就進入一個模式

啓動數據庫的三大步驟:
1、創建並啓動例程    讀取初始化參數文件
                                (內存結構和服務進程得到分配、初始化和啓動)     
2、裝載數據庫          由參數文件(參數control_files)找到並讀取控制文件
                               (讀取:數據庫名稱、數據文件的位置和名稱等關於數據庫物理結構的信息
                                            此時,數據文件和日誌文件將處於聯機狀態)  
3、打開數據庫          打開所有處於聯機狀態的數據文件和日誌文件
重要:
      在啓動數據庫的過程中,文件的使用順序是:參數文件、控制文件、數據文件和日誌文件
      只有這些文件都被正常讀取和使用後,數據庫才能正常啓動    
                  
關閉數據庫的三大步驟:
1、關閉數據庫
2、卸載數據庫
3、終止例程

啓動模式
startup  nomount         完成啓動步驟的第1步(啓動) <適用:創建新庫、重建控制文件>
startup  mount             完成啓動步驟的第1步和第2步(啓動、裝載)
                                       <適用:重命名數據庫文件、完全恢復、改變歸檔模式>
startup [open]  默認      完成啓動步驟的第1步、第2步和第3步(啓動、裝載、打開)
startup pfile=路徑/參數文件名

轉換啓動模式
startup  nomount         (注意:nomount模式不能直接切換到open模式)
alter database mount (切換) 
alter database open   (切換) 

啓動的FORCE選項
------若正常方式不能啓動,可以採用FORCE強制啓動
------原理: 首先異常關閉數據庫,然後重新啓動
------優點: 無論數據庫處於什麼模式,都可以使用該選項;不需要事先用SHUTDOWN語句關閉數據庫

啓動的PFILE選項
startup  [force]      pfile='e:/pfile*.ora'
create pfile='...'     from spfile='...'
create spfile='...'   from pfile='...'
注意:服務器初始化參數文件(spfile*.ora)是二進制文件
         文本初始化參數文件(pfile*.ora或init.ora)是文本文件
         2者在格式上是不同的
重要:
例程在啓動時,必須讀取一個初始化參數文件         
執行startup時,如果沒有指定pfile選項,
oracle會首先讀取“默認位置的spfile”,如果沒有找到,
oracle將繼續讀取“默認位置的pfile”,如果沒有找到,
啓動就會失敗


關閉數據庫
——爲了執行脫機備份(即“冷備份”)或執行數據庫升級,DBA需要關閉數據庫
關閉數據庫的三大步驟:
1、關閉數據庫——將日誌緩存中的內容寫入日誌文件,將數據緩存中的“髒數據”寫入數據文件,
                            再關閉所有的數據文件和日誌文件,但是控制文件依然打開
2、卸載數據庫——控制文件被關閉,但例程依然存在
3、終止例程——終止所有的服務進程和後臺進程,回收SGA

關閉選項
shutdown normal(默認)——特點:阻止新的連接,“等待”用戶主動斷開現有連接
       (因爲被動等待,所以耗時可能很長,關閉所耗時間完全取決於用戶主動斷開連接的時間)
shutdown transactional——特點:阻止新的連接和新的事務,“等待”所有未提交的活動事務提交
                              (可保證用戶不會丟失當前工作的信息)                
shutdown immediate——特點:阻止新的連接和新的事務,立即回滾未提交的事務(“不用等待”)   
       (脫機備份、電力即將中斷、數據庫異常但無法通知用戶)   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章