Oracle學習——掃盲篇,oracle掃盲

來源:互聯網
上載者:User

Oracle學習——掃盲篇,oracle掃盲


前言

 

最近這幾天一直在與Oracle資料庫打交道,由於之前對Oracle的學習並不深入,只是把Oracle當成一個資料來源去使用,很多東西瞭解的不是很深,比如,資料庫、資料庫執行個體、資料表空間、使用者、表,它們是如何建立的,它們之間又有什麼關係,所以這次就一塊來學習下。

 

 

 

1資料庫

 

一個完整的Oracle資料庫通常由兩部分組成,分別是Oracle資料庫和Oracle資料庫執行個體,第一個Oralce資料庫是指Oracle類型的關係型資料庫管理系統,包含物理資料、資料庫管理系統,也就是物理資料、記憶體、作業系統進程的組合體;而後面提到的Oracle資料庫是指一系列物理檔案的資料集合,這些集合包括資料檔案、控制檔案、聯機日誌、參數檔案等。

 

下面這張圖是建立資料庫的一個步驟:



 

第一個要填寫的是全域資料庫名,第二個要填寫的是資料庫執行個體SID(下文會介紹)。


全域資料庫名:就是一個資料庫的標識,簡單來說就是名字,這個一般在建立的時候一定要想好。以後一般是不修改的,不過也可以修改,只不過修改起來比較麻煩,因為資料庫安裝好以後,資料庫的這個標識名字就會寫入控制檔案、資料庫表等很多地方。

 

關於資料庫的命令:

 

查看當前的資料庫的名字:

 

select name from v$database;
 

2資料庫執行個體


 

官方說Oracle執行個體是訪問Oracle資料庫所需的一部分電腦記憶體和輔助處理後台進程,是由進程和這些進程所使用的記憶體(SGA)所構成一個集合。

 

我們在寫代碼過程中需求調用對象的方法時,需要new出來一個執行個體,這個new出來的執行個體也是放在記憶體中的;我們的oracle執行個體跟這個new出來的對象差不多,也是當需要訪問oracle資料庫時就在記憶體中建立出一塊進程,它也是只存在與記憶體中的。

 

 

我們訪問oracle其實就是訪問oracle的執行個體,訪問oracle執行個體的時候,有時候需要先開啟執行個體,我的執行個體名為orcltest:

 

startup open orcltest;


執行個體名與SID

 

執行個體名(instance_name)指的是用於響應某個資料庫操作的資料庫管理系統的名字;提到Oralce執行個體名就不能不提Oracle_SID,SID其實Oracle執行個體的一個標識。

 

但兩者是有區別的,instance_name是oracle資料庫參數。而Oracle_SID是作業系統的環境變數。Oracle_SID用於與作業系統互動,也就是說,從作業系統的角度訪問執行個體名,必須通過Oracle_SID。並且Oracle_SID必須與instance_name的值一致,否則,你將會收到一個錯誤,在unix平台,是“ORACLEnot available”,在windows平台,是“TNS:協議適配器錯誤”。

 

資料庫執行個體名除了與作業系統互動外,還用於網路連接的oracle伺服器標識。當你配置oracle主機串連串的時候,就需要指定執行個體名如下:

 

jdbc:oracle:thin:@localhost:1521:orcltest(orcltest就為資料庫執行個體名)

查詢當前資料庫執行個體名:

 

select instance_name from v$instance;<span style="font-size: 16pt; font-family: SimSun; "> </span>


查看當前資料庫執行個體的資訊:

 

Show parameter instance_name;

注意:一個資料庫可以有多個執行個體,在作資料庫服務叢集的時候可以用到,或者不同的項目用不同的資料庫執行個體也可以,這塊內容後續會繼續說明。

 

3資料表空間

 

Oracle資料庫是通過資料表空間來儲存物理表的,資料表空間(tablespace)是資料庫的邏輯劃分,它是隸屬與Oracle資料庫執行個體下面的,一個資料庫執行個體可以有N個資料表空間,一個資料表空間下可以有N張表。

 

所以有了資料庫執行個體就可以建立資料表空間了。

 

 

建立資料表空間:

 

create tablespace OracleTest logging datafile 'C:\oracle\product\10.2.0\oradata\ORCLTEST\OracleTest.dbf' size 32m autoextend on next 32m maxsize2048m extent management local;


其中的建立的資料表空間名字為OracleTest ,建立資料表空間的位置是:C:\oracle\product\10.2.0\oradata\ORCLTEST\OracleTest.dbf,大小是32M,空間可以自動擴充,每次擴充32M,最大資料表空間為2048M。

 

查詢資料表空間名字:

 

select tablespace_name from dba_data_files group by tablespace_name;


查詢資料表空間的大小:

 

select tablespace_name,count(*),sum(blocks),sum(bytes)/1024/1024 from dba_data_filesgroup by tablespace_name;


查看錶空間是否自動擴充:

 

select file_name,autoextensible,increment_by from dba_data_files;


如果資料表空間中有表的話,可以查看:


Select tablespace_name,table_name from dba_tables where tablespace_name='ORACLETEST'; 


4使用者

 

關於Oracle的使用者,一個Oracle資料庫裝好後,建立了Oracle執行個體,建立了資料表空間,為使用者指定資料表空間,最後才是建立物理表。

 

上面我們已經建立好資料庫執行個體和資料表空間了,現在就是建立使用者為指定的資料表空間:

 

Create user testuser identified by test default tablespace OracleTest;

建立了一個testuser的使用者,密碼是test,資料表空間是OracleTest.

在這裡要說一點的是,同一資料表空間是可以授予多個使用者的,並且可以給不同的使用者指派對錶空間的不同等級的操作許可權。

 

給testuser使用者授予許可權,有三種:

 

grant connect to testuser; grant resource to testuser; grant dba to testuser;

我給testuser使用者授予的是第三種dba管理員權限。

 

當我們通過我們建立好的使用者登陸後可以查到目前使用者:

 

show user;

查看當前資料庫的所有使用者:

 

select  * from dba_users;
  

5表

 

資料庫執行個體、資料表空間、使用者這些都有了以後,就可以在自己的使用者所屬的資料表空間下建立表了,關於表這塊我們大家經常用,這裡就不多說了。看下常用命令就可以了:

 

查看錶所屬資料表空間


Select table_name,tablespace_name from all_tables where table_name='t_student';

查看錶結構


desc t_student;


總結

 

關於Oracle的使用,首先安裝oracle資料庫軟體、然後建立資料庫執行個體、接下來建立資料表空間、再往下給資料表空間建立使用者並分配許可權、然後建立表、最後測試,其中建立資料表空間和建立使用者這兩個順序可以顛倒的。這幾天這些東西來回搗鼓了好幾遍,關於Oracle的這些操作,如果不去自己一步步實踐,你永遠都不知道自己到底有多生,你也不會知道它到底會出哪些讓你抓狂的錯誤。

 


oracle學習方法 技巧

學習Oracle是一個漫長艱辛的過程。如果沒有興趣,只是被迫學習,那麼是很難學好的。學習到一定程度的時候,要想進一步提高,就不得不接觸很多Oracle之外的東西,如Unix,如網路、儲存等。因此,要真的決心學習好Oracle,就一定要有興趣。有了興趣,就會一切變得簡單快樂起來。簡單總結一下,那就是:興趣、學習、實踐。推薦報培訓班學習,因為學習環境,氛圍好,進度也會很快。找家oracle wdp機構,像CUUG這樣的。
 
oracle怎學習

興趣是最好的老師!
關注關於Oracle的一切,對它抱以最大的熱情,你一定能學好它!
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.