日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

实例讲解Oracle数据库设置默认表空间问题

發(fā)布時間:2025/3/20 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实例讲解Oracle数据库设置默认表空间问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?????? DBA們經(jīng)常會遇到一個這樣令人頭疼的問題:不知道誰在Oracle上創(chuàng)建了一個用戶,創(chuàng)建時,沒有給這個用戶指定默認表空間,所以這個用戶就會采用默認的表空間——system表空間。導(dǎo)致系統(tǒng)表空間迅速被用戶數(shù)據(jù)占滿,直至宕機。

??????? 在10G中,DBA有辦法避免這種問題了——在線指定系統(tǒng)默認表空間:
ALTER DATABASE DEFAULT TABLESPACE ;

  通過執(zhí)行以上命令,可以設(shè)定系統(tǒng)的默認表空間。這樣的話,在創(chuàng)建新用戶時,如果不指定他的默認表空間,就會采用上面指定的系統(tǒng)默認表空間作為這個用的默認表空間。

  SQL>conn /as sysdba

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

  用戶已創(chuàng)建。

  SQL> alter database default tablespace ring;

  數(shù)據(jù)庫已更改。

  SQL> create user test identified by test;

  用戶已創(chuàng)建。

  SQL> select username, default_tablespace defspace from dba_users where
  username=’TEST’;
  USERNAME DEFSPACE
  ————– —————-
  TEST RING

  但是要注意的是,一旦將系統(tǒng)默認表空間修改了以后,原有的所有普通用戶的默認表空間都會被指定為這個表空間,如上例中test1,創(chuàng)建時指定了他的默認表空間為ringidx,執(zhí)行了’alter database default tablespace ring’后,他的默認表空間也被改為了ring。

  SQL> select username, default_tablespace defspace from dba_users where
  username=’TEST1′;
  USERNAME DEFSPACE
  ————– —————-
  TEST1 RING

為非核心的系統(tǒng)用戶指定一個特殊的默認表空間

  在創(chuàng)建Oracle實例時,除了創(chuàng)建了如sys、system等系統(tǒng)核心的用戶外,還會創(chuàng)建一些諸如dbsnmp、odm、perfstat等非核心的用戶。這些用戶在9i中都是以system作為他們的默認表空間。這些用戶一旦被使用,也會產(chǎn)生較大的數(shù)據(jù)量占用system表空間。

  在Oracle10G當(dāng)中,使用了一個新的表空間SYSAUX作為這些用戶的默認表空間。這個表空間在實例創(chuàng)建是就創(chuàng)建了,除了他的數(shù)據(jù)文件名可以被修改外,其他都不允許被修改。

  Oracle的這一改變可以使當(dāng)system表空間損壞時對數(shù)據(jù)庫做全庫恢復(fù)。在sysaux中的對象可以恢復(fù)成普通對象,而數(shù)據(jù)庫能保持正常運行。

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

  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,當(dāng)前它占用了5568kb的表空間。

  為表空間改名

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

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

  ALTER TABLESPACE RENAME TO ;

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

  有DBA可能會擔(dān)心,一旦一個表空間的名字改變了,而且它已經(jīng)被使用了很長時間了,會不會引起系統(tǒng)的混亂?這個不用擔(dān)心,執(zhí)行了上面的語句后,Oracle會將系統(tǒng)中所有相關(guān)的數(shù)據(jù)字典的內(nèi)容全部更新:

  SQL> alter tablespace ring rename to ring1;

  表空間已更改。

  SQL> select username, default_tablespace defspace from dba_users where username=’TEST’;
  USERNAME DEFSPACE
  ————– —————-
  TEST RING1

轉(zhuǎn)載于:https://www.cnblogs.com/storymedia/archive/2009/03/06/4436231.html

總結(jié)

以上是生活随笔為你收集整理的实例讲解Oracle数据库设置默认表空间问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。