如必須以受限制的模式啟動數據庫。數據庫正常啟動時默認情況下不適受限制模式。如果要把System表空間模式轉換為本地托管模式
表空間有數據字典和本地托國兩種管理模式。如果采用數據字典來維護的話,發生在數據庫的段上并關系到盤區分配的操作(如擴展一個表),將會導致對數據字典的操作。如果有很多帶有盤區的表被操作時,數據字典將會成這些操作的瓶頸資源。可見,如果采用數據字典來維護表空間的話,那么數據庫要花的代價就會很大。
為了解決這個問題,改善表空間的管理性能,Oracle數據庫又推出了一種全新的表空間管理模式,即本地托管的管理模式。如果把表空間設置為本地托管,則這些盤區管理操作都回被重新分配到數據文件的位圖塊上。如此的話,數據庫的每個標空間都只包含自己的盤區信息,可以使用快速散列進程訪問技術來訪問相關系悉尼,而不是使用比較慢的、基于表的查詢訪問。最關鍵的是,此時如果有很多帶有很多盤區的表被操作時,數據字典將不會成為其性能的瓶頸。可見,在同等條件下,本地托管的性能要比數據字典維護模式的性能要高。
一、本地托管模式的兩個特性。
本地托管模式除了在管理上跟數據字典模式有一定的差異外,還提供了兩個比較有特色的選項,分別為自動分配與統一分配選項。這連個選項主要用來控制將盤區分配到段中的視線方式。如把這個方式設置為自動分配的話,Oracle數據庫系統會采用一個內部的算法(這個算法數據庫管理員不用了解),在段的大小發生調整時(如段大小增大時)自動增加盤區的大小。也就是說,使用自動分配選項的話,當表空間中的段增大時,數據庫系統會根據一定的規則來確定合適的下一個盤區的尺寸。這個算法的主要原理就是以盤區數量和擴展比例來作為系數并結合其他的一些參數來進行模擬計算。自動分配盤區大小的優勢是很明顯的。因為在剛開始部署數據庫系統的時候,由于各方面原因的限制,要設置一個合理的盤區大小具有一定的困難。而現在采用了自動分配的話,如果剛開始盤區尺寸設置的太小,則數據庫會隨著后續需求的表換,而自動增加表的下一盤區尺寸,從而可以減少表具有的全部盤區數量。這在很大程度上可以提高數據庫的性能。另外,采用自動分配選項的話,還可以保證段的數量不會超出其可以控制的范圍,因為數據庫會自動根據實際情況來進行調整。
而如果采用統一的盤區管理策略,則表空間中的所有盤區都使用在創建表空間時指定的相等大小進行分配,而不會考慮到其他因素,如不會考慮在段創建語句中設定的存儲子句。也不會隨著一些應用情況的改變而調整盤區尺寸的大小。顯然,如果采用統一分配策略的話,那么在表空間規劃的時候,就需要為其設置一個合理的盤區尺寸。
那么有人會說,既然統一分配這么麻煩,不會自動調節,那就都用自動分配策略好了。其實不能夠這么絕對。可以說兩個管理選項各有各的優點。自動分配的有點就是即時在表空間建立時沒有設置合理的盤區尺寸,那么在后續數據庫也會根據一定的規則進行自我調整。而采用統一分配的好處就是以后若移動或者刪除段時可以更好的重用表空間中的空閑盤區,由此產生碎片會很少,因為他們都是采用統一的大小。筆者的建議是,如果一開始根據數據庫管理的經驗,可以確定合適的表空間盤區尺寸的,那么最好采用統一的盤區管理策略。相反如果不能夠確定的同時刪除段的情況也發生不多時,則可以采用自動分配選項,以提高數據庫的性能。
二、將表空間從字典托管模式升級為本地托管模式。
如果原有的表空間是字典托管模式的,那么可以在不重新建立表空間的情況下,升級到本地托管模式。這也就意味著原有表空間中的數據不會丟失。如對于SYSTEM系統表空間,,數據庫系統提供了一個表空間管理模式轉換的應用程序(TableSpace_Migrate_TO_Local).通過這個應用程序可以在不格式化System表空間的情況下將表空間的管理模式從數據字典托管模式升級到本地托管模式。
不過像上面這種托管模式的轉換方式其具有一定的局限性。如采用這種轉換模式時,盤曲映射參數就會移入到表空間的數據文件中,必須為表空間中的每個段制定相關的存儲子句。此時本地管理模式的兩個管理特性(自動分配策略與盤區尺寸管理策略)就無法使用,從而也就無法有效的減少磁盤碎片,提高數據庫的性能。所以采取這種升級模式的話,企業不會從升級中獲得策略方面的改善,而且數據庫性能的改善效果也會打折扣。
為此筆者推薦的方法是采取比徹底的升級方式。即先把需要轉換的表空間中的段導出來進行備份;然后刪除原先的表空間并重新建立(此時把表空間的托管方式設置為本地托管);最后再把原先的段導進去。這雖然需要刪除原先大表空間,在操作上具有一定的風險。但是這種轉換方式卻可以帶來比較高的性能。另外為了讓這個方法萬無一失,數據庫管理員在進行操作時,最好能夠先檢查一下這個段的大小。這有利于在后續的操作中減少錯誤的發生。另外雖然可以通過種種方式把表空間的管理模式從數據字典托管方式升級到本地托管模式。但是最好還是在開始部署數據庫系統的時候,就決定好要采用哪種托管模式。畢竟在后續進行調整,會增加一定的工作量與操作風險。而且也會增加數據碎片,影響數據庫的性能。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com