oracle體系結構

2022-08-30 14:36:15 字數 4615 閱讀 2803

資料庫:指的是以一定方式儲存在一起、能為多個使用者共享、具有盡可能小的冗餘度、與應用程式彼此獨立的資料集合。(官方)

資料庫 = dbms+硬體。 dbms:資料庫管理系統。軟體。

例項(在oracle裡就是資料庫:instance。資料庫執行時的軟體體現。關閉服務或斷電時,例項就不存在了,但資料還在。

例項分為:記憶體+程序。

oracle記憶體分為:

sga:系統級記憶體。

pga:程序級記憶體。

uga:使用者級記憶體。

oracle程序分為:應用程序(bin下面)及服務程序(3個必須執行的服務)。

使用plsql 登入時第三行其實就是例項!

第一行和第二行指的是使用者和密碼

第四行是「身份」,身份是角色的集合。

乙個例項可以擁有多個使用者和多有表空間,乙個表空間可以有多個使用者,但乙個使用者只能屬於乙個表空間。

從圖中我們可以看出「表空間」其實更類似與mysql裡頭的資料庫。表空間下面才是表,不同表空間下的表相互之間沒有關係。

一些結論:

1、乙個使用者只能屬於乙個表空間

2、同乙個資料庫用例中,使用者名稱是不能重複的

3、不同使用者中可以建立同名的表

4、表空間建立後需要建立使用者後才能使用,因為任何資料庫物件都需要建立在乙個資料使用者上

5、連線dba許可權的使用者可以直接訪問其他使用者的資料庫物件,否則需要相關使用者授權

6、訪問其他使用者的資料庫物件時需要加上物件所屬使用者的使用者名稱。

物理結構:oracle執行時所需的檔案。

分成3大類:

資料檔案---儲存所有的邏輯物件,比如表。以及表之間的關係。

select * from dba_data_files;

日誌檔案---記錄資料庫的「變化」。需要在mount模式下啟用。作用:恢復。

select * from v$logfile;

控制檔案----資料檔案及日誌檔案之間的「橋梁」。

select * from v$controlfile;

邏輯結構:資料庫在某個層級的邏輯隔離。按從大到小分為:

1、表空間(不同表空間下的物件,在邏輯上完全無關) >

2、!!邏輯物件(表,檢視,索引,序列,儲存過程,函式,觸發器,包,使用者,角色....) >

3、段(資料段,臨時段,回滾段,索引段) >

4、區間(最小的操作單位) >

5、塊(oracle的儲存單位,1個快相當於固定的位元組數).

--資料檔案--儲存所有邏輯物件,比如表以及表和表之間的關係

select * from dba_data_files;

--日誌檔案--記錄資料庫的變化,需要在 mount模式下執行,作用:恢復

select * from v$logfile;

--控制檔案--資料檔案和日誌檔案之間的橋梁

select * from v$controlfile;

--檢視全部表空間

select * from dba_tablespaces;

--檢視表

select * from all_tables; --當前使用者許可權內可操作的所有表

select * from user_tables; --當前使用者擁有的所有表

--檢視使用者擁有的角色

select * from user_role_privs;

select * from dba_role_privs where grantee='zhangsan';

--檢視角色擁有的許可權

select * from dba_sys_privs where grantee='connect';

select * from dba_sys_privs where grantee='resource';

--建立使用者 --ddl dml dcl

create user zhangsan identified by oracle;

grant connect to zhangsan;

grant resource to zhangsan;

create table test(id number primary key, name varchar2(20) not null);

select *from v$session;

select * from v$instance;

select username,default_tablespace from dba_users;

select * from dba_tablespaces;

-- 建立表空間

create tablespace classes12

datafile 'd:\oracle\tablespacelocation\classes12.dbf' size 5m

--autoextend on next 5m naxsize 128m

create user lisi identified by oracle;

--修改表空間

alter user lisi default tablespace classes12;

--修改密碼

alter user lisi identified by etc123;

--授權

grant connect,resource to lisi;

--使用者鎖定與解鎖

alter user lisi account unlock; --lock

--刪除使用者

drop user lisi cascade; --cascade 級聯刪除,刪除該使用者下所有物件

--刪除表空間

drop tablespace classes12 including contents and datafiles; --刪除表空間的同時清楚內容以及資料檔案

--當前使用者的角色

select * from user_role_privs;

select * from dba_role_privs where grantee='zhangsan';

--檢視角色對應的許可權

select * from role_sys_privs where role='resource';

--檢視當前使用者給別的使用者賦予的許可權

select * from dba_tab_privs where grantee='zhangsan';

--檢視當前使用者所擁有的表

select * from user_tables;

select * from test;

insert into test values(1,'張三');

update test set name='李四' where id=1;

select * from test for update;

--把test表的部分許可權賦予scott,然後才能對test進行操作

grant select,insert on zhangsan.test to scott;

select * from zhangsan.test;

sdelete from zhangsan.test;

--收回許可權

revoke select on zhangsan.test from scott;

create user lisi identified by oracle;

grant connect,resource to lisi;

grant select,insert on zhangsan.test to public;--public指代所有使用者

revoke select,insert on zhangsan.test from public;--public指代所有使用者

--許可權傳遞

grant select,insert on zhangsan.test to scott with grant option;--同時同意scott把改許可權可以賦予給別人

grant select,insert on zhangsan.test to lisi;

select * from zhangsan.test;

revoke select,insert on zhangsan.test from scott;

--許可權給角色

create role myrole;

grant select on zhangsan.test to myrole;

--角色給使用者

grant myrole to lisi;

oracle體系結構

oracle由例項和資料庫組成 例項是由sga system global area 和一系列後台程序組成的,其中sga最主要劃分為共享池 shared pool 資料緩衝區 db cache 和日誌緩衝區 log buffer 後台程序包括pmon smon lckn reco ckpt dbwr...

oracle體系結構

一.oracle資料庫的後台程序 dbwr 資料庫寫程序,負責將更改的資料從資料庫緩衝區寫入資料檔案 smon 系統監控,檢查資料庫的狀態,恢復資料庫的例項 pmon 程序監控,負責oracle程序失敗時資源清理釋放 chpt 檢查點程序,每當緩衝區資料寫入檔案時,更新控制檔案的資料庫狀態資訊 ar...

oracle體系結構

oracle體系結構圖 1.1 為什麼oracle資料庫管理系統要引進非常複雜的體系結構 更高效的使用記憶體,保證資料庫不丟失任何資料 1.2 常用術語 1.2.1 程序 一段記憶體正在執行的程式 1.2.2 後台程序 可以有多個後台程序 1.2.3 緩衝區 臨時儲存資料的記憶體區 1.3 orac...