| 導購 | 订阅 | 在线投稿
分享
 
 
當前位置: 王朝網路 >> oracle >> 實例講解Oracle數據庫設置默認表空間問題
 

實例講解Oracle數據庫設置默認表空間問題

2008-08-05 07:04:59  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  DBA們經常會遇到一個這樣令人頭疼的問題:不知道誰在Oracle上創建了一個用戶,創建時,沒有給這個用戶指定默認表空間,所以這個用戶就會采用默認的表空間——system表空間。導致系統表空間迅速被用戶數據占滿,直至宕機。

  在10G中,DBA有辦法避免這種問題了——在線指定系統默認表空間:

  ALTER DATABASE DEFAULT TABLESPACE ;

  通過執行以上命令,可以設定系統的默認表空間。這樣的話,在創建新用戶時,如果不指定他的默認表空間,就會采用上面指定的系統默認表空間作爲這個用的默認表空間。

  SQL>conn /as sysdba

  SQL> create user test1 identified by test1 default tablespace ringidx;

  用戶已創建。

  SQL> alter database default tablespace ring;

  數據庫已更改。

  SQL> create user test identified by test;

  用戶已創建。

  SQL> select username, default_tablespace defspace from dba_users where

  username=』TEST』;

  USERNAME DEFSPACE

  ————– —————-

  TEST RING

  但是要注意的是,一旦將系統默認表空間修改了以後,原有的所有普通用戶的默認表空間都會被指定爲這個表空間,如上例中test1,創建時指定了他的默認表空間爲ringidx,執行了』alter database default tablespace ring』後,他的默認表空間也被改爲了ring。

  SQL> select username, default_tablespace defspace from dba_users where

  username=』TEST1′;

  USERNAME DEFSPACE

  ————– —————-

  TEST1 RING

  爲非核心的系統用戶指定一個特殊的默認表空間

  在創建Oracle實例時,除了創建了如sys、system等系統核心的用戶外,還會創建一些諸如dbsnmp、odm、perfstat等非核心的用戶。這些用戶在9i中都是以system作爲他們的默認表空間。這些用戶一旦被使用,也會産生較大的數據量占用system表空間。

  在Oracle10G當中,使用了一個新的表空間SYSAUX作爲這些用戶的默認表空間。這個表空間在實例創建是就創建了,除了他的數據文件名可以被修改外,其他都不允許被修改。

  Oracle的這一改變可以使當system表空間損壞時對數據庫做全庫恢複。在sysaux中的對象可以恢複成普通對象,而數據庫能保持正常運行。

  如果DBA想要將sysaux表空間中的用戶轉移到其他表空間去該如何做呢。在10G中,專門爲此提供一個視圖V$SYSAUX_OCCUPANTS來描述如何轉移這些用戶的表空間。

  select * from V$SYSAUX_OCCUPANTS where OCCUPANT_NAME = 『ODM』

  OCCUPANT_NAME OCCUPANT_DESC SCHEMA_NAME MOVE_PROCEDURE MOVE_PROCEDURE_DESC SPACE_USAGE_KBYTES

  ————- ————- ———– ————– ——————- ——————

  ODM Oracle Data Mining DMSYS MOVE_ODM Move Procedure for Oracle Data Mining 5568

  1 rows selected

  如上,如果要將改變ODM的表空間,可以使用存儲過程MOVE_ODM,當前它占用了5568kb的表空間。

  爲表空間改名

  這Oracle10G表空間增強中一個令人心動的改變。

  這項功能允許改變數據庫中除system和sysaux外任意一個表空間的名字。

  ALTER TABLESPACE RENAME TO ;

  有了這項功能,將會讓很多事情變得非常簡單。

  有DBA可能會擔心,一旦一個表空間的名字改變了,而且它已經被使用了很長時間了,會不會引起系統的混亂?這個不用擔心,執行了上面的語句後,Oracle會將系統中所有相關的數據字典的內容全部更新:

  SQL> alter tablespace ring rename to ring1;

  表空間已更改。

  SQL> select username, default_tablespace defspace from dba_users where username=』TEST』;

  USERNAME DEFSPACE

  ————– —————-

  TEST RING1
 
 
 
上一篇《經驗分享:Informix和Oracle存儲過程的異同》
下一篇《Oracle數據庫定時Jobs作業的使用方法》
 
 
 
日版寵物情人插曲《Winding Road》歌詞

日版寵物情人2017的插曲,很帶節奏感,日語的,女生唱的。 最後聽見是在第8集的時候女主手割傷了,然後男主用嘴幫她吸了一下,插曲就出來了。 歌手:Def...

兄弟共妻,我成了他們夜裏的美食

老鍾家的兩個兒子很特別,就是跟其他的人不太一樣,魔一般的執著。兄弟倆都到了要結婚的年齡了,不管自家老爹怎麽磨破嘴皮子,兄弟倆說不娶就不娶,老父母爲兄弟兩操碎了心...

如何磨出破洞牛仔褲?牛仔褲怎麽剪破洞?

把牛仔褲磨出有線的破洞 1、具體工具就是磨腳石,下面墊一個硬物,然後用磨腳石一直磨一直磨,到把那塊磨薄了,用手撕開就好了。出來的洞啊很自然的。需要貓須的話調幾...

我就是掃描下圖得到了敬業福和愛國福

先來看下敬業福和愛國福 今年春節,支付寶再次推出了“五福紅包”活動,表示要“把欠大家的敬業福都還給大家”。 今天該活動正式啓動,和去年一樣,需要收集“五福”...

冰箱異味産生的原因和臭味去除的方法

有時候我們打開冰箱就會聞到一股異味,冰箱裏的這種異味是因爲一些物質發出的氣味的混合體,聞起來讓人惡心。 産生這些異味的主要原因有以下幾點。 1、很多人有這種習...

《極品家丁》1-31集大結局分集劇情介紹

簡介 《極品家丁》講述了現代白領林晚榮無意回到古代金陵,並追隨蕭二小姐化名“林三”進入蕭府,不料卻陰差陽錯上演了一出低級家丁拼搏上位的“林三升職記”。...

李溪芮《極品家丁》片尾曲《你就是我最愛的寶寶》歌詞

你就是我最愛的寶寶 - 李溪芮 (電視劇《極品家丁》片尾曲) 作詞:常馨內 作曲:常馨內 你的眉 又鬼馬的挑 你的嘴 又壞壞的笑 上一秒吵鬧 下...

烏梅的功效與作用以及烏梅的食用禁忌有哪些?

烏梅,又稱春梅,中醫認爲,烏梅味酸,性溫,無毒,具有安心、除熱、下氣、祛痰、止渴調中、殺蟲的功效,治肢體痛、肺痨病。烏梅泡水喝能治傷寒煩熱、止吐瀉,與幹姜一起制...

什麽是脂肪粒?如何消除臉部脂肪粒?

什麽是脂肪粒 在我們的臉上總會長一個個像脂肪的小顆粒,弄也弄不掉,而且顔色還是白白的。它既不是粉刺也不是其他的任何痘痘,它就是脂肪粒。 脂肪粒雖然也是由油脂...

網絡安全治理:國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰受害者

來源:中國青年報 新的攻擊方法不斷湧現,黑客幾乎永遠占據網絡攻擊的上風,我們不可能通過技術手段杜絕網絡攻擊。國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰...

 
 
 
DBA們經常會遇到一個這樣令人頭疼的問題:不知道誰在Oracle上創建了一個用戶,創建時,沒有給這個用戶指定默認表空間,所以這個用戶就會采用默認的表空間——system表空間。導致系統表空間迅速被用戶數據占滿,直至宕機。 在10G中,DBA有辦法避免這種問題了——在線指定系統默認表空間: ALTER DATABASE DEFAULT TABLESPACE ; 通過執行以上命令,可以設定系統的默認表空間。這樣的話,在創建新用戶時,如果不指定他的默認表空間,就會采用上面指定的系統默認表空間作爲這個用的默認表空間。 SQL>conn /as sysdba SQL> create user test1 identified by test1 default tablespace ringidx; 用戶已創建。 SQL> alter database default tablespace ring; 數據庫已更改。 SQL> create user test identified by test; 用戶已創建。 SQL> select username, default_tablespace defspace from dba_users where username=』TEST』; USERNAME DEFSPACE ————– —————- TEST RING 但是要注意的是,一旦將系統默認表空間修改了以後,原有的所有普通用戶的默認表空間都會被指定爲這個表空間,如上例中test1,創建時指定了他的默認表空間爲ringidx,執行了』alter database default tablespace ring』後,他的默認表空間也被改爲了ring。 SQL> select username, default_tablespace defspace from dba_users where username=』TEST1′; USERNAME DEFSPACE ————– —————- TEST1 RING 爲非核心的系統用戶指定一個特殊的默認表空間 在創建Oracle實例時,除了創建了如sys、system等系統核心的用戶外,還會創建一些諸如dbsnmp、odm、perfstat等非核心的用戶。這些用戶在9i中都是以system作爲他們的默認表空間。這些用戶一旦被使用,也會産生較大的數據量占用system表空間。 在Oracle10G當中,使用了一個新的表空間SYSAUX作爲這些用戶的默認表空間。這個表空間在實例創建是就創建了,除了他的數據文件名可以被修改外,其他都不允許被修改。 Oracle的這一改變可以使當system表空間損壞時對數據庫做全庫恢複。在sysaux中的對象可以恢複成普通對象,而數據庫能保持正常運行。 如果DBA想要將sysaux表空間中的用戶轉移到其他表空間去該如何做呢。在10G中,專門爲此提供一個視圖V$SYSAUX_OCCUPANTS來描述如何轉移這些用戶的表空間。 select * from V$SYSAUX_OCCUPANTS where OCCUPANT_NAME = 『ODM』 OCCUPANT_NAME OCCUPANT_DESC SCHEMA_NAME MOVE_PROCEDURE MOVE_PROCEDURE_DESC SPACE_USAGE_KBYTES ————- ————- ———– ————– ——————- —————— ODM Oracle Data Mining DMSYS MOVE_ODM Move Procedure for Oracle Data Mining 5568 1 rows selected 如上,如果要將改變ODM的表空間,可以使用存儲過程MOVE_ODM,當前它占用了5568kb的表空間。 爲表空間改名 這Oracle10G表空間增強中一個令人心動的改變。 這項功能允許改變數據庫中除system和sysaux外任意一個表空間的名字。 ALTER TABLESPACE RENAME TO ; 有了這項功能,將會讓很多事情變得非常簡單。 有DBA可能會擔心,一旦一個表空間的名字改變了,而且它已經被使用了很長時間了,會不會引起系統的混亂?這個不用擔心,執行了上面的語句後,Oracle會將系統中所有相關的數據字典的內容全部更新: SQL> alter tablespace ring rename to ring1; 表空間已更改。 SQL> select username, default_tablespace defspace from dba_users where username=』TEST』; USERNAME DEFSPACE ————– —————- TEST RING1
󰈣󰈤
 
 
 
  免責聲明:本文僅代表作者個人觀點,與王朝網路無關。王朝網路登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
 
竹林裏的甜美養眼美女
MM尖尖的下巴
靓麗的草根美女
超靓迷人的大眼睛美女
海南(二)
霧繞三清山
Oldtime
美麗婺源
 
>>返回首頁<<
 
 熱帖排行
 
 
 
 
© 2005- 王朝網路 版權所有