oracle創建表空間.創建用戶.創建表

SQL*Plus中:(1)如何添加刪除數據庫?(2)數據庫就是表嗎??(3)如何創建表空間?(4)如何創建用戶?(5)是不是一個表空間只能創建一個用戶?(6)怎樣從客戶端訪問數據庫服務器的配置?
  
  回答:
  1、何添加刪除數據庫?沒這種概念,不懂。
  2、數據庫=所有的oracle的數據文件+控制文件+日誌文件+參數文件,數據庫不是表
  3create tablespace ... 語句
  eg:CREATE TABLESPACE tabspace_2
  DATAFILE ’diska:tabspace_file2.dat’ SIZE 
20M
  DEFAULT STORAGE (INITIAL 10K NEXT 
50K
  MINEXTENTS 1 MAXEXTENTS 
999)
  
ONLINE;
  4create user...語句

  eg:
  CREATE USER 
sidney
  IDENTIFIED BY 
welcome
  DEFAULT TABLESPACE 
cases_ts
  QUOTA 10M ON 
cases_ts
  TEMPORARY TABLESPACE 
temp_ts
  QUOTA 5M ON 
system
  PROFILE 
engineer
  PASSWORD 
EXPIRE;
  5、表空間與用戶沒太大的關係

  6、使用net8 configration assistant配置一下。
  
  你在用SQL server的觀念學習Oracle,這是不對的。
  
  Oracle的數據庫一般是不能刪除的。我認爲SQLserver中的數據庫有點向Oracle的表空間,不太確切。
  
////////////////////////////////////////////////////////////////////////////////////////////

 因此,在創建對象之前,首先要分配存儲空間.

  分配存儲,就要創建表空間:
  創建表空間示例如下:
CREATE TABLESPACE "SAMPLE"
    LOGGING
    DATAFILE 'D:/ORACLE/ORADATA/ORA92/LUNTAN.ora' SIZE 5M

EXTENT    MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO  

上面的語句分以下幾部分:

第一: CREATE TABLESPACE "SAMPLE"  創建一個名爲 "SAMPLE" 的表空間.
    對錶空間的命名,遵守Oracle 的命名規範就可了.
   ORACLE可以創建的表空間有三種類型:
(1)TEMPORARY: 臨時表空間,用於臨時數據的存放;
創建臨時表空間的語法如下:
CREATE TEMPORARY TABLESPACE "SAMPLE"......
   (2)UNDO : 還原表空間. 用於存入重做日誌文件.
創建還原表空間的語法如下:
CREATE UNDO TABLESPACE "SAMPLE"......
(3)用戶表空間: 最重要,也是用於存放用戶數據表空間
    可以直接寫成: CREATE TABLESPACE "SAMPLE"
TEMPORARY 和 UNDO 表空間是ORACLE 管理的特殊的表空間.只用於存放系統相關數據.
第二:   LOGGING
有 NOLOGGING 和 LOGGING 兩個選項,
      NOLOGGING: 創建表空間時,不創建重做日誌.
     LOGGING 和NOLOGGING正好相反, 就是在創建表空間時生成重做日誌.

用NOLOGGING時,好處在於創建時不用生成日誌,這樣表空間的創建較快,但是沒能日誌,數據丟失後,不能恢復,但是一般我們在創建表空間時,是沒有數據的,按通常的做法,是建完表空間,並導入數據後,是要對數據做備份的,所以通常不需要表空間的創建日誌,因此,在創建表空間時,選擇 NOLOGGING,以加快表空間的創建速度.

第三: DATAFILE 用於指定數據文件的具體位置和大小.
如: DATAFILE 'D:/ORACLE/ORADATA/ORA92/LUNTAN.ora' SIZE 5M
說明文件的存放位置是 'D:/ORACLE/ORADATA/ORA92/LUNTAN.ora' , 文件的大小爲5M.
如果有多個文件,可以用逗號隔開:
DATAFILE 'D:/ORACLE/ORADATA/ORA92/LUNTAN.ora' SIZE 5M,
    'D:/ORACLE/ORADATA/ORA92/dd.ora' SIZE 5M
但是每個文件都需要指明大小.單位以指定的單位爲準如 5M 或 500K.
對具體的文件,可以根據不同的需要,存放大不同的介質上,如磁盤陣列,以減少IO竟爭.

指定文件名時,必須爲絕對地址,不能使用相對地址.

第四: EXTENT MANAGEMENT LOCAL 存儲區管理方法
在Oracle 8i以前,可以有兩種選擇,一種是在字典中管理(DICTIONARY),另一種是本地管理(LOCAL ),從9I開始,只能是本地管理方式.因爲LOCAL 管理方式有很多優點.
在字典中管理(DICTIONARY): 將數據文件中的每一個存儲單元做爲一條記錄,所以在做DM操作時,就會產生大量的對這個管理表的Delete和Update操作.做大量數據管理時,將會產生很多的DM操作,嚴得的影響性能,同時,長時間對錶數據的操作,會產生很多的磁盤碎片,這就是爲什麼要做磁盤整理的原因.

本地管理(LOCAL): 用二進制的方式管理磁盤,有很高的效率,同進能最大限度的使用磁盤. 同時能夠自動跟蹤記錄臨近空閒空間的情況,避免進行空閒區的合併操作。

第五: SEGMENT SPACE MANAGEMENT  
磁盤擴展管理方法:
SEGMENT SPACE MANAGEMENT: 使用該選項時區大小由系統自動確定。由於 Oracle 可確定各區的最佳大小,所以區大小是可變的。

UNIFORM SEGMENT SPACE MANAGEMENT:指定區大小,也可使用默認值 (1 MB)。

第六: 段空間的管理方式:
AUTO: 只能使用在本地管理的表空間中. 使用LOCAL管理表空間時,數據塊中的空閒空間增加或減少後,其新狀態都會在位圖中反映出來。位圖使 Oracle 管理空閒空間的行爲更加自動化,併爲管理空閒空間提供了更好的性,但對含有LOB字段的表不能自動管理.
MANUAL: 目前已不用,主要是爲向後兼容.
第七: 指定塊大小. 可以具體指定表空間數據塊的大小.
創建例子如下:
1 CREATE TABLESPACE "SAMPLE"
2      LOGGING
3      DATAFILE 'D:/ORACLE/ORADATA/ORA92/SAMPLE.ora' SIZE 5M,
4      'D:/ORACLE/ORADATA/ORA92/dd.ora' SIZE 5M
5      EXTENT MANAGEMENT LOCAL
6      UNIFORM SEGMENT SPACE MANAGEMENT
7*     AUTO
SQL> /
表空間已創建。
要刪除表空間進,可以
SQL> DROP TABLESPACE SAMPLE;
表空間已丟棄。

如何給0racle數據庫表空間做規劃

 創建Oracle用戶時,數據庫管理員最容易犯的錯誤,就是忘記給用戶分配磁盤限額,導致對象創建失敗。利用表空間的用戶磁盤配額,可以實現很多功能。
      1表空間用戶磁盤配額管理
      1.1 利用用戶磁盤配額,管理用戶創建數據庫對象的能力
      我們都知道,若用戶想要在某個表空間中創建方案對象的話,必須同時滿足兩個對象。一是用戶具有數據庫系統中CREATE    TABLE等相關的權限;二是在這個方案對象使用的表空間中具有配額。因爲這兩個條件必須同時滿足,用戶才能夠成功的建立對象。所以,若我們可以不給用戶某個表空間的配額,這樣的話,就可以限制用戶的相關操作。
1.2 利用磁盤配額來對用戶進行數據大小的限制
    有時候,在Oracle數據庫服務器中,可能運行的不止一個服務。除了數據庫服務器外,可能還有其他應用系統服務器。爲此,就需要先對Oracle數據庫的磁盤空間作個規劃,否則,當多個應用程序服務所佔用的磁盤空間都無限增加時,最後可能導致各個服務都因爲硬盤空間的耗竭而停止。所以,在同一臺服務器上使用多個應用程序服務,我們往往需要先給他們進行磁盤空間的規劃和分配。各個服務都不能夠超過我們分配給他的最大限額,或者超過後及時的提醒我們。只有這樣,才能夠避免因爲磁盤空間的耗竭而導致各種應用服務的崩潰。
2如何給用戶分配表空間
在Oracltj數據庫中,對於用戶的磁盤配額是通過表空間來實現的。給某個用戶分配了多少的表空間,這個用戶就有多少的磁盤配額。所以,對於用戶進行磁盤配額的管理,就是對用戶進行表空間的限制。
    在創建用戶的時候,若沒有關聯表空間,則其一般情況下,就屬於默認的表空間。而其擁有表空間的大小.則是根據其所屬角色的不同而有所區別。如其屬於resource組的話,則其表空間是沒有大小限制的。
    一般情況下,若數據庫管理員需要對錶空間進行磁盤配額管理的話,筆者建議,在創建用戶時。爲用戶指定表空間,並設置表空間的大小。如我們可以利用如下這條命令配置用戶的磁盤空間配額:ALTER USER user_name Qu0TA ** ON tablespace。其中參數User_Name表示用戶名,而參數Tablespace表示用戶所屬的表空間。若我們參數設置爲UNLIMTED的話,表示這個用戶的表空間沒有限制,直到所有的空間用完爲止。
    在一般情況下,這兩種情形下的用戶具有無限制的磁盤配額:一是這個用戶屬於resource這個角色。因爲這個角色默認情況下,其是沒有磁盤限額限制的。二是在用戶建立的時候,手工利用UNLIMITED指定該用戶不具有磁盤限額。不過,爲了提高Oracle數據庫的安全性與靈活性,還是要對用戶進行磁盤配額管理。
3如何拓展用戶的表空間
    若對用戶進行磁盤限額之後.有時候數據庫管理員會發現用戶的磁盤空間不足了,需要進行拓展。此時該如何處理呢?
    若採用自動分配表空間大小的話,則Oracle數據庫會自動調整表空間的大小,以滿足用戶的需要。但是,現在由於採用了磁盤配額管理,所以數據庫管理員不得不進行手工的調整。不過在談這個話題之前,數據庫管理員有必要了解一下表空間區的分配方式。
  若數據庫管理員能夠預測到表空間中存放的大部分對象都需要使用相同大小的區的話,那麼就可以採用Uinform區的分配方式。採取這種方式的話,Oracle數據庫將爲這個表空間中的所有數據庫對象分配數據庫管理員指定大小的區。這種方式的優點是不會產生磁盤碎片,可以提高磁盤空間的利用率與數據庫的性能。
    若數據庫管理員能夠預測到表空間中存放的大部分對象需要使用的區的大小是不同的話(往往都是不同的),則需要採用Autoallocate的區分配方式。這種分配方式下,將由Oracle數據庫自動爲表空間的對象分配一定大小的區,而不是由用戶指定。這種方式的優點就是可以節省數據庫管理員的工作量。缺點是會產生比較多的磁盤碎片。不過比起數據庫管理員的工作量來說,這點磁盤碎片還是容易接受的。
    故在拓展表空間的時候,其採用的是原先表空間的分配方式。也就是說,原先表空間採用的是什麼區分配方式,則拓展空間也採用原先的分配方式,這是拓展表空間時必須要注意的問題。
    當表空間不足,需要進行拓展的時候,筆者常用的方法是通過增加數據文件的方式來實現的。表空間是其相關數據文件大小的總和。所以。爲表空間增加新的數據文件,是最常用的增加表空間的方式。
    如當數據庫管理員發現TESTl表空間大小不足的時候,我們可以利用命令ALTER TABLESPACE TESTl ADD DATEFILE‘數據文件存放路徑’SIZE 500M。我們可以利用這個命令增加表空間的大小.然後再增加用戶的磁盤配額。如此,就可以對用戶的表空間進行拓展。
在oracle上創建表空間和用戶以及給用戶分配權限

1 創建表空間

CREATE TABLESPACE mingyangnet DATAFILE 'C:/TABLESPACE/mingyangnet.dbf' SIZE 1
00M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

2 創建用戶

CREATE USER mingyangnetIDENTIFIED BY mingyangnet DEFAULT TABLESPACE mingyangnet;

3 給用戶分配權限

grant connect,resource to mingyangnet;

發佈了45 篇原創文章 · 獲贊 6 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章