Oracle 表空間足删、用戶、Schema

目錄:

表空間目錄.png

表空間

什么是表空間:Oracle中的用戶都有屬于自己的默認的表空間肚邢,在一段內(nèi)存空間中存儲的大部分是表壹堰,所以稱為表空間拭卿。

用戶的表空間

1,系統(tǒng)用戶的表空間

2,普通用戶的表空間

為什么要給普通用戶創(chuàng)建屬于自己的表空間那?

項目中很可能與其他項目使用同一個數(shù)據(jù)庫贱纠,

多個用戶在使用同一個數(shù)據(jù)庫的時候有可能訪問同一個數(shù)據(jù)庫文件峻厚,

就會造成資源爭用問題,給不同的用戶指定不同的表空間谆焊,就可以讓他們

使用不同的數(shù)據(jù)文件惠桃,解決爭用問題。

用戶有一個缺省的表空間辖试,但是該用戶還可以使用其他的表空間辜王,如果我們在創(chuàng)建對象時不指定表空間,則對象存儲在缺省表空間中罐孝,要想讓對象存儲在其他表空間中呐馆,我們需要在創(chuàng)建對象時指定該對象的表空間

一、創(chuàng)建表空間語法及給用戶表空間

表空間分類圖

前提打開cmd輸入,進入sqlplus和連接數(shù)據(jù)庫及登錄sys莲兢。

登錄sys:

sqlplus sys/123456@ZhengJiaAo:1521/ORCL as sysdba

0.查看管理員用戶使用的表空間名稱列表

status狀態(tài)(只讀READ ONLY / 讀寫ONLINE)

SQL> select tablespace_name,status from dba_tablespaces;
SYSTEM                         ONLINE #系統(tǒng)表空間汹来,是永久系統(tǒng)表空間,用于存儲SYS用戶的表改艇、視圖收班、存儲過程對象。
SYSAUX                         ONLINE #作為EXAMPLE的輔助表空間
UNDOTBS1                       ONLINE #存儲撤銷信息的undo表空間
TEMP                           ONLINE #臨時表空間谒兄,用戶存儲SQL語句處理的表示索引信息
USERS                          ONLINE #永久表空間摔桦,存儲數(shù)據(jù)庫用戶創(chuàng)建的數(shù)據(jù)庫對象
EXAMPLE                        ONLINE #安裝Oracle數(shù)據(jù)庫示例的表空間

1.創(chuàng)建臨時表空間: duke_temp

先創(chuàng)建好路徑 I:\Orcl\tablespace

CREATE TEMPORARY TABLESPACE duke_temp         /* 臨時表空間名稱:duke_temp */
tempfile 'I:\Orcl\tablespace\duke_temp.dbf' /* 臨時表空間路徑 *//*--oracle文件路徑*/
size 50m                                      /* 空間初始大小:50M*/
autoextend ON                                 /* 開啟自動擴展 */
NEXT 50m                                      /* 空間滿了一次擴展50M*/
maxsize 6G                                    /* 空間最終大小6G,可設為 unlimited 大小不受限制*/
extent management local;

表空間已創(chuàng)建承疲。

SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE 
SYSAUX                         ONLINE 
UNDOTBS1                       ONLINE 
TEMP                           ONLINE 
USERS                          ONLINE
EXAMPLE                        ONLINE 
EBANK_TEMP                     ONLINE
ECIF_DATA                      ONLINE
ECIF_INDEX                     ONLINE
EIP_DATA                       ONLINE
YANG                           ONLINE

TABLESPACE_NAME                STATUS
------------------------------ ---------
DUKE_TEMP                      ONLINE /*新創(chuàng)建的臨時表空間*/

已選擇12行邻耕。

2.創(chuàng)建數(shù)據(jù)表空間: duke_data

CREATE TABLESPACE duke_data                   /* 數(shù)據(jù)表空間名稱:duke_data */
datafile 'I:\Orcl\tablespace\duke_data.dbf' /* 數(shù)據(jù)表空間路徑 */
size 50m                                      /* 表空間初始大小:50M */
autoextend ON                                 /* 開啟自動擴展*/
NEXT 50m                                      /* 表空間滿了后一次擴展50M */
maxsize 10G                                   /* 空間最終大小10G,可設為 unlimited 大小不受限制*/
logging extent management local;

表空間已創(chuàng)建纪隙。

SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE
SYSAUX                         ONLINE
UNDOTBS1                       ONLINE
TEMP                           ONLINE
USERS                          ONLINE
EXAMPLE                        ONLINE
EBANK_TEMP                     ONLINE
ECIF_DATA                      ONLINE
ECIF_INDEX                     ONLINE
EIP_DATA                       ONLINE
YANG                           ONLINE

TABLESPACE_NAME                STATUS
------------------------------ ---------
DUKE_TEMP                      ONLINE /*新創(chuàng)建的臨時表空間*/
DUKE_DATA                      ONLINE /*新創(chuàng)建的數(shù)據(jù)表空間*/

已選擇13行赊豌。

3.創(chuàng)建用戶并指定表空間

CREATE USER duke                    /* 用戶名 */
IDENTIFIED BY duke                  /* 密碼 */  
DEFAULT TABLESPACE duke_data        /* 表空間 */ /*給用戶指定默認表空間*/   
TEMPORARY TABLESPACE duke_temp      /* 臨時表空間 */ /*默認臨時表空間*/
;

用戶已創(chuàng)建。

4.修改用戶默認和臨時表空間

為了方便以后數(shù)據(jù)的備份和恢復绵咱,僅僅將有價值的數(shù)據(jù)做備份可以提高效率和節(jié)省空間碘饼。

修改用戶默認表空間:

ALTER USER duke DEFAULT TABLESPACE USERS; /*duke 用戶名,USERS 默認(DEFAULT)表空間*/
用戶已更改悲伶。

修改用戶臨時表空間:

ALTER USER duke temporary TABLESPACE TEMP; /*修改臨時(temporary)表空間*/

注意:普通用戶沒有修改默認表空間的權限艾恼,但是可以通過授權來實現(xiàn)普通用戶也能夠修改默認表空間。

SQL> show user;
USER 為 "SYS"
SQL> select DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where username='SYSTEM';
DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
------------------------------ ------------------------------
SYSTEM                         TEMP

5.刪除空間表

----刪除非空表空間麸锉,包含物理文件

DROP TABLESPACE duke_data INCLUDING CONTENTS AND DATAFILES;
表空間已經(jīng)刪除钠绍。

刪除表空間后,原先指向該表空間的用戶仍然默認的空間位置花沉,
需要通過alter user 命令將用戶的表空間指向一個有效的表空間柳爽。

刪除表空間方法總結:

--刪除空的表空間媳握,但是不包含物理文件
drop tablespace duke_temp
 --刪除非空表空間,但是不包含物理文件
drop tablespace duke_temp including contents;
--刪除空表空間磷脯,包含物理文件
drop tablespace duke_temp including datafiles;
--刪除非空表空間蛾找,包含物理文件
DROP TABLESPACE duke_data INCLUDING CONTENTS AND DATAFILES;
--如果其他表空間中的表有外鍵等約束關聯(lián)到了本表空間中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace duke_temp including contents and datafiles CASCADE CONSTRAINTS;

--說明: 刪除了duke赵誓,只是刪除了該duke下的schema objects打毛,是不會刪除相應的表空間(tablespace)的。
drop user duke cascade俩功;  --duke用戶

6.給用戶授權登錄和撤銷權限

新創(chuàng)建的用戶是不能登錄的幻枉,需授權才能登錄oracle數(shù)據(jù)庫,授予兩個系統(tǒng)內(nèi)置角色權限诡蜓,connect和resource熬甫。

conncet角色使用戶可以登錄; resource角色使得用戶可以程序開發(fā),如創(chuàng)建表蔓罚,觸發(fā)器等罗珍。

授權命令:

GRANT CONNECT,RESOURCE TO duke;  /* duke用戶名 --授權為登錄oracle權限,具有創(chuàng)建脚粟,修改等基本權限*/
grant dba to duke;   /*授權dba最高權限*/
登錄用戶dike
SQL> connect duke/duke
SQL> show user;
USER is "DUKE"
SQL>

7.查看表空間使用情況

SELECT UPPER(F.TABLESPACE_NAME) AS "表空間名稱", 
        ROUND(D.AVAILB_BYTES ,2) AS "表空間大小(G)", 
        ROUND(D.MAX_BYTES,2) AS "最終表空間大小(G)", 
        ROUND((D.AVAILB_BYTES - F.USED_BYTES),2) AS "已使用空間(G)", 
        TO_CHAR(ROUND((D.AVAILB_BYTES - F.USED_BYTES) / D.AVAILB_BYTES * 100, 
            2), '999.99') AS "使用比", 
        ROUND(F.USED_BYTES, 6) AS "空閑空間(G)", 
        F.MAX_BYTES AS "最大塊(M)" 
 FROM (
        SELECT TABLESPACE_NAME, 
                ROUND(SUM(BYTES) / (1024 * 1024 * 1024), 6) USED_BYTES, 
                ROUND(MAX(BYTES) / (1024 * 1024 * 1024), 6) MAX_BYTES 
        FROM SYS.DBA_FREE_SPACE 
        GROUP BY TABLESPACE_NAME) F, 
      (SELECT DD.TABLESPACE_NAME, 
                ROUND(SUM(DD.BYTES) / (1024 * 1024 * 1024), 6) AVAILB_BYTES, 
            ROUND(SUM(DECODE(DD.MAXBYTES, 0, DD.BYTES, DD.MAXBYTES))/(1024*1024*1024),6) MAX_BYTES 
       FROM SYS.DBA_DATA_FILES DD 
       GROUP BY DD.TABLESPACE_NAME) D 
        WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME 
ORDER BY 4 DESC

8.查看普通用戶屬于哪個表空間

SQL> select username,default_tablespace from dba_users where username='SCOTT'; /*用戶名*/

USERNAME                       DEFAULT_TABLESPACE
------------------------------ ------------------------------
SCOTT                       USERS

9.查看所有表空間

SQL> select * from v$tablespace; /*包含從控制文件中獲取的表空間名稱和編號信息*/

       TS# NAME                           INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
         0 SYSTEM                         YES NO  YES
         1 SYSAUX                         YES NO  YES
         2 UNDOTBS1                       YES NO  YES
         4 USERS                          YES NO  YES
         3 TEMP                           NO  NO  YES
         6 EXAMPLE                        YES NO  YES
         8 EBANK_TEMP                     NO  NO  YES
         9 ECIF_DATA                      YES NO  YES
        10 ECIF_INDEX                     YES NO  YES
        11 EIP_DATA                       YES NO  YES
        13 YANG                           YES NO  YES

       TS# NAME                           INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
        14 DUKE_TEMP                      NO  NO  YES
        15 DUKE_DATA                      YES NO  YES

已選擇13行。

10.查看表空間下所有用戶

SQL> select distinct s.owner from dba_segments s where s.tablespace_name ='USERS'; /*USERS表空間下所有用戶*/

OWNER
------------------------------
SCOTT
SYSTEM
OE

11.查看當前用戶的表屬于哪個表空間

SQL> select table_name,tablespace_name from user_all_tables; /*查看當前用戶的表屬于哪些表空間*/

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
MLOG$                          SYSTEM
SLOG$                          SYSTEM
RGROUP$                        SYSTEM
RGCHILD$                       SYSTEM
SYS_IOT_OVER_5140              SYSAUX
RULE_SET_PR$
SYS_IOT_OVER_5146              SYSAUX
RULE_SET_IOT$
SYS_IOT_OVER_5150              SYSAUX
RULE_SET_ROP$
SYS_IOT_OVER_5387              SYSAUX

12.查看用戶的默認表空間和臨時表空間

查看SYSTEM用戶的默認表空間和臨時表空間
SQL> select DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where username='SYSTEM';

DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
------------------------------ ------------------------------
SYSTEM                         TEMP

默認表空間

用戶在登陸后創(chuàng)建數(shù)據(jù)庫對象時蘸朋,如果沒有指定表空間核无,那么這些數(shù)據(jù)就會存儲到默認表空間。

13.系統(tǒng)表空間dba_tablespaces和用戶表空間user_tablespaces

普通用戶不能查看系統(tǒng)表空間dba_tablespaces藕坯,只能查看用戶表空間user_tablespaces

SQL> connect duke/duke
已連接团南。
SQL> show user;
USER 為 "DUKE"
SQL> select tablespace_name from dba_tablespaces;
select tablespace_name from dba_tablespaces
                            *
第 1 行出現(xiàn)錯誤:
ORA-00942: 表或視圖不存在

SQL> select tablespace_name from user_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
EXAMPLE
EBANK_TEMP
ECIF_DATA
ECIF_INDEX
EIP_DATA
YANG

TABLESPACE_NAME
------------------------------
DUKE_TEMP
DUKE_DATA

已選擇13行。

14.查看表空間數(shù)據(jù)文件的存放路徑

表空間數(shù)據(jù)文件都存放在永久性表空間中

SQL> desc dba_data_files; /*數(shù)據(jù)字典dba_data_file用于存放數(shù)據(jù)文件的屬性炼彪。*/
 名稱                                      是否為空? 類型
 ----------------------------------------- -------- ----------------------------
 FILE_NAME                                          VARCHAR2(513)
 FILE_ID                                            NUMBER
 TABLESPACE_NAME                                    VARCHAR2(30)
 BYTES                                              NUMBER
 BLOCKS                                             NUMBER
 STATUS                                             VARCHAR2(9)
 RELATIVE_FNO                                       NUMBER
 AUTOEXTENSIBLE                                     VARCHAR2(3)
 MAXBYTES                                           NUMBER
 MAXBLOCKS                                          NUMBER
 INCREMENT_BY                                       NUMBER
 USER_BYTES                                         NUMBER
 USER_BLOCKS                                        NUMBER
 ONLINE_STATUS                                      VARCHAR2(7)

SQL> select file_name from dba_data_files where tablespace_name='DUKE_DATA';

FILE_NAME
--------------------------------------------------------------------------------
I:\ORCL\TABLESPACE\DUKE_DATA.DBF   /*文件存放的位置*/

15.修改表空間的狀態(tài)(聯(lián)機/脫機吐根、只讀/讀寫)

設置表空間的聯(lián)機ONLINE或脫機狀態(tài)OFFLINE:表空間的默認狀態(tài)是聯(lián)機狀態(tài),如果表空間是脫機狀態(tài)辐马,不能夠使用這個表空間拷橘。

ALTER TABLESPACE tablespace_name ONLINE|OFFLINE;

例如:DUKE_DATA表空間脫機,查看表空間狀態(tài)

SQL> ALTER TABLESPACE duke_data OFFLINE; /*DUKE_DATA表空間脫機,需要使用大些字母*/

表空間已更改喜爷。
SQL> select STATUS from dba_tablespaces where tablespace_name='DUKE_DATA'; /*查看表空間狀態(tài)*/

STATUS
---------
OFFLINE

設置表空間的只讀|可讀寫狀態(tài):表空間默認為可讀寫狀態(tài)read write

ALTER TABLESPACE duke_data read only|read write;

注意:如果表空間狀態(tài)中擁有可read冗疮,那么表空間就必須是聯(lián)機狀態(tài)ONLINE的。

SQL> ALTER TABLESPACE duke_data read only;
ALTER TABLESPACE duke_data read only
*
第 1 行出現(xiàn)錯誤:
ORA-01539: 表空間 'DUKE_DATA' 未聯(lián)機

表空間聯(lián)機后更改狀態(tài)為只讀

SQL>  ALTER TABLESPACE duke_data ONLINE;

表空間已更改檩帐。

SQL>  select STATUS from dba_tablespaces where tablespace_name='DUKE_DATA';/*查案狀態(tài)*/

STATUS
---------
ONLINE

SQL>  ALTER TABLESPACE duke_data read only;

表空間已更改术幔。

select tablespace_name,status from dba_tablespaces where tablespace_name='DUKE_DATA';  /*查看DUKE_DATA表空間狀態(tài),讀寫(ONLINE),DUKE_DATA要大寫*/

16.修改表空間的數(shù)據(jù)文件

注意:如果表空間添加數(shù)據(jù)文件湃密,那么表空間就必須是聯(lián)機狀態(tài)ONLINE的诅挑。

增加表空間中的數(shù)據(jù)文件 xx.dbf

SQL> select STATUS from dba_tablespaces where tablespace_name='DUKE_DATA'; /*查看狀態(tài)是否聯(lián)機*/

STATUS
---------
ONLINE

SQL> ALTER TABLESPACE duke_data ADD DATAFILE'I:\Orcl\tablespace\duke_data2.dbf' SIZE 50m; /*增加數(shù)據(jù)文件*/

表空間已更改四敞。

SQL> select file_name from dba_data_fileS where tablespace_name='DUKE_DATA';
/*查看數(shù)據(jù)文件及文件位置*/
FILE_NAME
--------------------------------------------------------------------------------
I:\ORCL\TABLESPACE\DUKE_DATA.DBF
I:\ORCL\TABLESPACE\DUKE_DATA2.DBF

注意:如果發(fā)現(xiàn)某個表空間存儲空間不足時,可以為表空間添加新的數(shù)據(jù)文件拔妥,擴展表空間大小

SQL> ALTER TABLESPACE DUKE_DATA ADD DATAFILE 'I:\ORCL\TABLESPACE\DUKE_DATA03.dbf' SIZE 2G AUTOEXTEND OFF;  /*方法一:增加新的大數(shù)據(jù)文件忿危,達到增大表空間的目的*/

表空間已更改。

SQL> ALTER TABLESPACE DUKE_DATA   /*方法二:增加數(shù)據(jù)文件*/
  2  ADD DATAFILE 'I:\ORCL\TABLESPACE\DUKE_DATA04.dbf'
  3  SIZE 100M
  4  AUTOEXTEND ON
  5  NEXT 10M
  6  MAXSIZE 20480M;

表空間已更改毒嫡。

注意:在添加新的數(shù)據(jù)文件時癌蚁,如果同名的操作系統(tǒng)已經(jīng)存在,ALTER TABLESPACE語句將失敗兜畸。如果要覆蓋同名的操作系統(tǒng)文件時努释,則必須在后面顯示的指定REUSE子句。

  • 調(diào)整數(shù)據(jù)文件的大小
SQL> ALTER DATABASE DATAFILE 'I:\ORCL\TABLESPACE\DUKE_DATA04.dbf' RESIZE 500M;

數(shù)據(jù)庫已更改咬摇。
  • 刪除數(shù)據(jù)文件

注意:不能夠刪除表空間中的第一個數(shù)據(jù)文件伐蒂,如果將第一個數(shù)據(jù)文件刪除的話,相當于刪除了整個表空間肛鹏。

SQL> ALTER TABLESPACE DUKE_DATA DROP DATAFILE'I:\ORCL\TABLESPACE\DUKE_DATA04.dbf';
/*刪除方式一*/
表空間已更改逸邦。
數(shù)據(jù)文件圖
SQL> alter tablespace DUKE_DATA  drop datafile 'I:\ORCL\TABLESPACE\DUKE_DATA03.dbf';
/*刪除方式二*/
表空間已更改。

查看刪除文件后在扰,duke_data表空間的數(shù)據(jù)文件

SQL> select file_name from dba_data_fileS where tablespace_name='DUKE_DATA';

FILE_NAME
--------------------------------------------------------------------------------
I:\ORCL\TABLESPACE\DUKE_DATA.DBF
I:\ORCL\TABLESPACE\DUKE_DATA2.DBF

17.刪除表空間

基本語法:

DROP TABLESPAC tablespace_name [INCLUDING CONTENTS];

注意:如果你希望在刪除表空間的同時將表空間中的數(shù)據(jù)文件一同刪除時陷揪,需要加上[INCLUDING CONTENTS]

 drop tablespace DUKE_DATA including contents;
/*刪除表空間*/
 表空間已更改。
 select file_name from dba_data_fileS where tablespace_name='DUKE_DATA';
/*查看表空間*/
 沒有此DUKE_DATA表空間容燕。

18.用戶表空間限額

表空間存儲限制是用戶在某一個表空間中可以使用的存儲空間總數(shù)拄轻。
在創(chuàng)建或修改用戶時,可以由參數(shù)quota指出皱卓。若用戶在向表空間存儲數(shù)據(jù)時裹芝,超出了此限額,則會產(chǎn)生錯誤娜汁。

錯誤信息:ORA-01536:space quota exceeded for tablespace tablespacename..’嫂易。
可以通過查詢字典dba_ts_quotas查看表空間限額信息。

查看用戶的表空間配額

查看所有的用戶表空間配額情況
SQL> SELECT * FROM DBA_TS_QUOTAS
  2  ;

TABLESPACE_NAME                USERNAME                            BYTES
------------------------------ ------------------------------ ----------
 MAX_BYTES     BLOCKS MAX_BLOCKS DRO
---------- ---------- ---------- ---
SYSAUX                         APPQOSSYS                               0
        -1          0         -1 NO

SYSAUX                         FLOWS_FILES                             0
        -1          0         -1 NO

SYSAUX                         SYSMAN                          160038912
        -1      19536         -1 NO


TABLESPACE_NAME                USERNAME                            BYTES
------------------------------ ------------------------------ ----------
 MAX_BYTES     BLOCKS MAX_BLOCKS DRO
---------- ---------- ---------- ---
SYSAUX                         OLAPSYS                           4718592
        -1        576         -1 NO

查看當前用戶表空間的配額情況

#查看當前用戶表空間的配額情況   
SELECT * FROM USER_TS_QUOTAS;

SQL> DESC DBA_TS_QUOTAS;
 名稱                                      是否為空? 類型
 ----------------------------------------- -------- ----------------------------
 TABLESPACE_NAME                           NOT NULL VARCHAR2(30)
 USERNAME                                  NOT NULL VARCHAR2(30)
 BYTES                                              NUMBER
 MAX_BYTES                                          NUMBER
 BLOCKS                                             NUMBER
 MAX_BLOCKS                                         NUMBER
 DROPPED                                            VARCHAR2(3)

注意:若MAX_BYTES=-1表示沒有配額限制

三掐禁、oralce 數(shù)據(jù)庫設置表空間的只讀/讀寫模式

意義:主要是為了確保數(shù)據(jù)完整性怜械。

如:數(shù)據(jù)備份與還原操作、歷史數(shù)據(jù)的完整性保護傅事」可以將表空間設置只讀模式。

只讀:是表空間中不能進行INSERT(插入)享完、UPDATE(修改)灼芭、DELETE(刪除)等操作。

需要dba權限的用戶登錄才可以進行一下操作:

1.打開cmd輸入,進入sqlplus和連接數(shù)據(jù)庫及登錄sys般又。

sqlplus sys/123456@ZhengJiaAo:1521/ORCL as sysdba
SQL> select tablespace_name,status from dba_tablespaces;  //查看所有表空間狀態(tài)彼绷,讀寫(ONLINE)

TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE
SYSAUX                         ONLINE
UNDOTBS1                       ONLINE
TEMP                           ONLINE
USERS                          ONLINE
EXAMPLE                        ONLINE
EBANK_TEMP                     ONLINE
ECIF_DATA                      ONLINE
ECIF_INDEX                     ONLINE
EIP_DATA                       ONLINE
YANG                           ONLINE

已選擇11行巍佑。

2.更改表空間狀態(tài):只讀(READ ONLY)。

SQL> alter tablespace users read only;

表空間已更改寄悯。

SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE
SYSAUX                         ONLINE
UNDOTBS1                       ONLINE
TEMP                           ONLINE
USERS                          READ ONLY
EXAMPLE                        ONLINE
EBANK_TEMP                     ONLINE
ECIF_DATA                      ONLINE
ECIF_INDEX                     ONLINE
EIP_DATA                       ONLINE
YANG                           ONLINE

已選擇11行萤衰。

3.更改表空間狀態(tài)為:讀寫(ONLINE)。

SQL> alter tablespace users read write;

表空間已更改猜旬。

SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE
SYSAUX                         ONLINE
UNDOTBS1                       ONLINE
TEMP                           ONLINE
USERS                          ONLINE
EXAMPLE                        ONLINE
EBANK_TEMP                     ONLINE
ECIF_DATA                      ONLINE
ECIF_INDEX                     ONLINE
EIP_DATA                       ONLINE
YANG                           ONLINE

已選擇11行脆栋。

四、Schema和用戶

Oracle的方案(Schema)和用戶(User)的區(qū)別

Schema定義:

A schema is a collection of database objects (used by a user).
Schema objects are the logical structures that directly refer to the database’s data.
A user is a name defined in the database that can connect to and access objects洒擦。
Schemas and users help database administrators manage database security

模式是數(shù)據(jù)庫對象(由用戶使用)的集合椿争。

Schema對象是直接引用數(shù)據(jù)庫數(shù)據(jù)的邏輯結構。

用戶是數(shù)據(jù)庫中定義的可以連接和訪問對象的名稱熟嫩。

模式和用戶幫助數(shù)據(jù)庫管理員管理數(shù)據(jù)庫安全性

從定義中我們可以看出schema為數(shù)據(jù)庫對象的集合秦踪,為了區(qū)分各個集合,我們需要給這個集合起個名字掸茅,這些名字就是我們在企業(yè)管理器的方案下看到的許多類似用戶名的節(jié)點椅邓,這些類似用戶名的節(jié)點其實就是一個schema,schema里面包含了各種對象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links.

1.一個用戶一般對應一個schema:

一個用戶一般對應一個schema昧狮,該用戶的schema名等于用戶名景馁,并作為該用戶缺省schema。這也就是在企業(yè)管理器的方案下看到schema名都為數(shù)據(jù)庫用戶名的原因逗鸣。

數(shù)據(jù)庫Schema有兩種含義:一種是概念上的Schema裁僧,指的是一組DDL語句集,該語句集完整地描述了數(shù)據(jù)庫的結構慕购。還有一種是物理上的 Schema,指的是數(shù)據(jù)庫中的一個名字空間茬底,它包含一組表沪悲、視圖和存儲過程等命名對象。物理Schema可以通過標準SQL語句來創(chuàng)建阱表、更新和修改殿如。例 如以下SQL語句創(chuàng)建了兩個物理Schema:

create schema SCHEMA_A;
create table SCHEMA_A.CUSTOMERS(ID int not null,……);
create schema SCHEMA_B;
create table SCHEMA_B.CUSTOMERS(ID int not null,……);

簡單的說:就是一個數(shù)據(jù)庫用戶所擁有的數(shù)據(jù)庫的對象。
比如scott用戶建立了表最爬,索引涉馁,視圖,存儲過程等對象爱致,那么這些對象就構成了schema scott

Oracle數(shù)據(jù)庫中不能新創(chuàng)建一個schema烤送,要想創(chuàng)建一個schema,只能通過創(chuàng)建一個用戶的方法解決(Oracle中雖然有create schema語句糠悯,但是它并不是用來創(chuàng)建一個schema的)帮坚,在創(chuàng)建一個用戶的同時為這個用戶創(chuàng)建一個與用戶名同名的schem并作為該用戶的缺省shcema.

即schema的個數(shù)同user的個數(shù)相同妻往,而且schema名字同user名字一一對應并且相同,所有我們可以稱schema為user的別名试和,雖然這樣說并不準確讯泣,但是更容易理解一些。

2.一個用戶還可以使用其他的schema:

訪問一個表時阅悍,沒有指明該表屬于哪一個schema中的好渠,系統(tǒng)就會自動給我們在表上加上缺省的sheman名.
訪問scott用戶下的emp表,通過select * from emp; 其實节视,這sql語句的完整寫法為select * from scott.emp;
在數(shù)據(jù)庫中一個對象的完整名稱為schema.object拳锚,而不屬user.object.

3.oracle中的schema就是指一個用戶下所有對象的集合:

schema本身不能理解成一個對象,oracle并沒有提供創(chuàng)建schema的語法肴茄,schema也并不是在創(chuàng)建user時就創(chuàng)建晌畅,而是在該用戶下創(chuàng)建第一個對象之后schema也隨之產(chǎn)生,只要user下存在對象寡痰,schema就一定存在抗楔,user下如果不存在對象,schema也不存在拦坠;這一點類似于temp tablespace group连躏,另外也可以通過oem來觀察,如果創(chuàng)建一個新用戶贞滨,該用戶下如果沒有對象則schema不存在入热,如果創(chuàng)建一個對象則和用戶同名的schema也隨之產(chǎn)生。

Schema和用戶的關系圖
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晓铆,一起剝皮案震驚了整個濱河市勺良,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌骄噪,老刑警劉巖尚困,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異链蕊,居然都是意外死亡事甜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門滔韵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逻谦,“玉大人,你說我怎么就攤上這事陪蜻“盥恚” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長勇婴。 經(jīng)常有香客問我忱嘹,道長,這世上最難降的妖魔是什么耕渴? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任拘悦,我火速辦了婚禮,結果婚禮上橱脸,老公的妹妹穿的比我還像新娘础米。我一直安慰自己,他們只是感情好添诉,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布屁桑。 她就那樣靜靜地躺著,像睡著了一般栏赴。 火紅的嫁衣襯著肌膚如雪蘑斧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天须眷,我揣著相機與錄音竖瘾,去河邊找鬼。 笑死花颗,一個胖子當著我的面吹牛捕传,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扩劝,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼庸论,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了棒呛?” 一聲冷哼從身側響起聂示,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎簇秒,沒想到半個月后鱼喉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡宰睡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了气筋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拆内。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宠默,靈堂內(nèi)的尸體忽然破棺而出麸恍,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布抹沪,位于F島的核電站刻肄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏融欧。R本人自食惡果不足惜敏弃,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望噪馏。 院中可真熱鬧麦到,春花似錦、人聲如沸欠肾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刺桃。三九已至粹淋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瑟慈,已是汗流浹背桃移。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留封豪,地道東北人谴轮。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像吹埠,于是被迫代替她去往敵國和親第步。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時缘琅,會觸發(fā)此異常粘都。 O...
    我想起個好名字閱讀 5,317評論 0 9
  • 關于Mongodb的全面總結 MongoDB的內(nèi)部構造《MongoDB The Definitive Guide》...
    中v中閱讀 31,934評論 2 89
  • 表空間(TABLESPACE)是ORACLE數(shù)據(jù)庫中最大的邏輯結構。ORACLE數(shù)據(jù)庫是由一個或多個表空間組成的刷袍。...
    紀同學說閱讀 8,163評論 0 4
  • 今天學習了用定時器PWM輸出 配置定時器 void TIME5_config(void) { TIM_TimeBa...
    陶雪婷a閱讀 377評論 0 0