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的一切,對它抱以最大的熱情,你一定能學好它!