Oracle數據庫創建表空間及用戶

摘要:
/* create tablespace systemv
datafile '/opt/oracle/oradata/ibm/systemv01.dbf' size 10m
autoextend on; */

/* drop tablespace systemv
including contents and datafiles; */

create user "SYSTEMV"
identified by "123456" default tablespace "SYSTEMV"
account unlock;

grant create any directory, unlimited tablespace, connect, resource to "SYSTEMV";

/* drop user systemv cascade; */

/* connect systemv/[email protected]/ibm */

正文:
步驟一:刪除用戶及其所有對象 
drop user "aaaa" cascade

步驟二:創建表空間,並設置相關屬性,先查詢出一般的數據庫文件都存放在哪裏。
SQL> select * from v$dbfile;

FILE#        NAME
--------------------------------------------------------------------------------
4                /mc/oracle/oradata/mc/users01.dbf


--創建表空間,並指定數據文件的位置(必須去除多餘空格才能執行)

CREATE TABLESPACE AAAA 
DATAFILE '/mc/oracle/oradata/mc/AAAA.dbf' SIZE 50M
extent management local autoallocate

--更改數據文件增長方式爲自動增長
alter database 
DATAFILE '/mc/oracle/oradata/mc/AAAA.dbf'
autoextend on

注意:上面的粗體字部分必須全部爲大寫;否則sqlplus將無法登陸,導數據也會出問題;如果這裏大寫了,將來登錄用戶名小寫也是沒問題的!
$ sqlplus "aaaa/aaaa";$ sqlplus "AAAA/aaaa" 以上兩個都可以登錄!


步驟四:授予用戶適當權限 
GRANT CREATE ANY DIRECTORY TO "AAAA"
GRANT UNLIMITED TABLESPACE TO "AAAA"
GRANT "CONNECT" TO "AAAA"
GRANT "RESOURCE" TO "AAAA"

或者
GRANT CREATE ANY DIRECTORY, UNLIMITED TABLESPACE, CONNECT, RESOURCE TO "AAAA"

查看創建好的用戶
select * from dba_users
select * from dba_tablespaces


-------------------------------------------------------------------華麗的分割線----------------------------------------------------------------------

創建臨時表空間【tempfile參數必須有】
create temporary tablespace zfmi_temp 
tempfile 'D:\oracle\oradata\zfmi\zfmi_temp.dbf' 
size 32m 
autoextend on 
next 32m maxsize 2048m 
extent management local; 

//創建數據表空間【datafile參數必須有 】 
create tablespace zfmi 
logging 
datafile 'D:\oracle\oradata\zfmi\zfmi.dbf' 
size 100m 
autoextend on 
next 32m maxsize 2048m 
extent management local; 

//刪除用戶以及用戶所有的對象 
drop user zfmi cascade; 
//cascade參數是級聯刪除該用戶所有對象,經常遇到如用戶有對象而未加此參數則用戶刪不了的問題,所以習慣性的加此參數 

//刪除表空間 
前提:刪除表空間之前要確認該表空間沒有被其他用戶使用之後再做刪除 
drop tablespace zfmi including contents and datafiles cascade onstraints; 

//including contents 刪除表空間中的內容,如果刪除表空間之前表空間中有內容,而未加此參數,表空間刪不掉,所以習慣性的加此參數 
//including datafiles 刪除表空間中的數據文件 
//cascade constraints 同時刪除tablespace中表的外鍵參照 

//如果在清除表空間之前,先刪除了表空間對應的數據文件,會造成數據庫無法正常啓動和關閉。 可使用如下方法恢復(此方法已經在oracle9i中驗證通過): 
下面的過程中,filename是已經被刪除的數據文件,如果有多個,則需要多次執行;tablespace_name是相應的表空間的名稱。 
$ sqlplus /nolog 
SQL> conn / as sysdba; 
如果數據庫已經啓動,則需要先執行下面這行: 
SQL> shutdown abort 
SQL> startup mount 
SQL> alter database datafile 'filename' offline drop; 
SQL> alter database open; 
SQL> drop tablespace tablespace_name including contents; 

//創建用戶並指定表空間【identified by 參數必須有】
create user zfmi identified by zfmi 
default tablespace zfmi temporary tablespace zfmi_temp;  

//授予message用戶DBA角色的所有權限 
GRANT DBA TO zfmi; 

//給用戶授予權限 
grant connect,resource to zfmi; (db2:指定所有權限) 


-------------------------------------------------------------------華麗的分割線----------------------------------------------------------------------

--理解 recover datafile,表空間offline如果有immediate參數(此時將髒數據保存在system的延遲迴退段中),那麼下次online前必須recover。
alter tablespace zbb offline immediate
SQL> recover datafile 13;
alter tablespace zbb online
=========================================
--給表空間增加新的數據文件
alter tablespace zbtbs
add datafile '/disk2/oracle/oradata/zbtbs02.dbf' size 10M reuse
=========================================
--重新指定數據文件的大小
alter database
datafile '/disk2/oracle/oradata/zbtbs02.dbf'
resize 100M
=========================================
查看錶空間的online或offline情況
select * from v$datafile

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