Oracl 12c (课本)
生活随笔
收集整理的這篇文章主要介紹了
Oracl 12c (课本)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
一、安裝和部署:https://www.cnblogs.com/-xuan/p/10211387.html
二、
(1)體系結(jié)構(gòu)
- Oracle體系結(jié)構(gòu)
- 實(shí)例:實(shí)例是后臺(tái)進(jìn)程和內(nèi)存的集合
- 數(shù)據(jù)庫:數(shù)據(jù)庫是數(shù)據(jù)的集合,物理上是指存儲(chǔ)數(shù)據(jù)庫的信息的一組操作文件,每個(gè)數(shù)據(jù)庫有一個(gè)邏輯結(jié)構(gòu)和一個(gè)物理結(jié)構(gòu)。
- 可插拔數(shù)據(jù)庫:從oracle12c版本開始,oracle引入了可插拔數(shù)據(jù)庫的概念,可插拔是為云計(jì)算而生
- 可插拔數(shù)據(jù)庫的結(jié)構(gòu)由一個(gè)容器數(shù)據(jù)庫(Continer Database,CDB)和若干個(gè)可組裝數(shù)據(jù)庫(Pluggable Database,PDB)組成,每個(gè)PDB對(duì)外個(gè)充當(dāng)一個(gè)獨(dú)立的數(shù)據(jù)庫供應(yīng)用程序使用
- Oracle服務(wù)器:
- Oracle 服務(wù)器是由實(shí)例和數(shù)據(jù)庫組成,也就是我們常說的數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)
- Oracle 服務(wù)器除了維護(hù)實(shí)例外,還在用戶建立與服務(wù)器的連接時(shí)啟動(dòng)服務(wù)期進(jìn)程并分配PGA(Program Global Area,程序全局區(qū));
- Oracle存儲(chǔ)結(jié)構(gòu):物理結(jié)構(gòu),邏輯結(jié)構(gòu)
- 物理結(jié)構(gòu)
- 主要文件:
- 數(shù)據(jù)文件:數(shù)據(jù)文件(Data File)的擴(kuò)展名是*.dbf,,是物理Oracle數(shù)據(jù)庫文件
- 特點(diǎn)
- 每個(gè)數(shù)據(jù)文件只有與一個(gè)數(shù)據(jù)庫相聯(lián)系
- 一個(gè)表空間可包含一個(gè)或多個(gè)數(shù)據(jù)文件
- 一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間
- 重做日志文件(Redo Log File):擴(kuò)展名為*.log,它記錄了對(duì)數(shù)據(jù)所有的更改信息,并提供了一種數(shù)據(jù)恢復(fù)機(jī)制,確定在系統(tǒng)崩潰或者其他意外出現(xiàn)后恢復(fù)數(shù)據(jù)庫
- 控制文件(Control File):擴(kuò)展名是*.ctl,是一個(gè)二進(jìn)制文件
- 存儲(chǔ)的信息很多,其中包括數(shù)據(jù)文件和重做日志文件的名稱和位置
- 控制文件是數(shù)據(jù)庫啟動(dòng)及運(yùn)行必需的文件;當(dāng)Oracle 讀取數(shù)據(jù)時(shí),要根據(jù)控制文件的信息查找數(shù)據(jù)文件
- 包括了一下關(guān)鍵信息
1 數(shù)據(jù)文件的位置及大小 2 重做日志文件的位置及大小 3 數(shù)據(jù)庫名稱及創(chuàng)建時(shí)間 4 日志序列號(hào)
- 主要文件:
- Oracle邏輯機(jī)構(gòu)
- 表空間:每個(gè)數(shù)據(jù)庫都是由若干個(gè)表空間組成用戶在數(shù)據(jù)中建立的所有內(nèi)容都被存儲(chǔ)到表空間;一個(gè)表空間可以有多個(gè)數(shù)據(jù)文件,一個(gè)數(shù)據(jù)文件只能有一個(gè)表空間
- 創(chuàng)建表空間的目的
- 對(duì)不同用戶分配不同的表空間,對(duì)不同模式的用戶分配不同的表空間,方便對(duì)用戶的操作和對(duì)模式的對(duì)象的管理
- 可以將不同的數(shù)據(jù)文件放在不同的磁盤上,有利于磁盤管理,提高I/O性能、備份和恢復(fù)等
- 永久性表空間:一般保持基表、視圖、過程、索引等的數(shù)據(jù)
- 臨時(shí)性表空間:只用于保存系統(tǒng)中短期活動(dòng)的數(shù)據(jù)
- 撤銷表空間:用于幫助回退未提交的事物數(shù)據(jù),已提交的數(shù)據(jù)在這里是無法恢復(fù)的
- Oracle自動(dòng)建立的四個(gè)表空間system、sysaux、users、temp
- system表空間:用于存放Oracle系統(tǒng)內(nèi)部表和數(shù)據(jù)字典的數(shù)據(jù),如表名、列名、用戶名等
- sysaux表空間:作為system的輔助表空間,用于存放各種數(shù)據(jù)庫工具用到的數(shù)據(jù);還用于存放個(gè)數(shù)對(duì)象數(shù)據(jù)如智能代理DBSNMP等
- users表空間:通常作為用戶使用的表空間,可以再這個(gè)表空間上創(chuàng)建各種對(duì)象
- temp表空間:Oracle用戶用于存放臨時(shí)數(shù)據(jù)的特殊表空間
- 創(chuàng)建表空間格式、修改表空間
- 格式
1 create tablespace tablespacename 2 datafile ‘filename.dbf’ 3 [size integer [ K | M ]] 4 [autoextend [off | on ] ] 5 6 7 tablespacename:是表空間的名字 8 datefile:制定組成表空間的數(shù)據(jù)文件,當(dāng)有多個(gè)時(shí)用逗號(hào)隔開 9 filename:是表空間中數(shù)據(jù)文件的路徑和名稱,以dbf為擴(kuò)展名 10 autoextend:啟用或禁用數(shù)據(jù)文件的自動(dòng)擴(kuò)展
- 例子
1 ceate tablespace tab_work1 2 datafile '/u01/app/oracle/oradata/orcl/work1.dbf' 3 size 10M 4 aotoextend on;
- 當(dāng)創(chuàng)建表空間時(shí)未指定自動(dòng)擴(kuò)展,并且文件已經(jīng)滿了的時(shí)候,有兩種方法
- 修改文件的大小
alter database datafile '/u01/app/oracle/orcl/work1.dbf' rexize 80M
- 再向表空間添加一個(gè)數(shù)據(jù)文件
alter tablespace tab_work1add adtafile'/u01/app/oracle/oradata/orcl/work2.dbg'size 20Mautoextend on;
- 修改文件的大小
- 改變表空間的讀寫狀態(tài)
1 alter tablespace 表空間名 read write; 2 alter tablespace 表空間名 read read only;
- 刪除表空間
1 drop tablespace 表空間名 [including contents]
- 格式
- 創(chuàng)建表空間的目的
- 段:存在于表空間中,是一種指定類型的存儲(chǔ)結(jié)構(gòu),段由一組區(qū)組成
- 區(qū):是磁盤空間分配的最小單位。磁盤按區(qū)劃分,每次至少分配一個(gè)區(qū),區(qū)由連續(xù)的塊組成
- 數(shù)據(jù)塊:是數(shù)據(jù)庫最小的數(shù)據(jù)組織單位與管理單元
- 模式:是數(shù)據(jù)庫對(duì)象(又稱模式對(duì)象)的集合。模式對(duì)象包括表、視圖、索引、同義詞、序列、過程和程序包等
- 表空間:每個(gè)數(shù)據(jù)庫都是由若干個(gè)表空間組成用戶在數(shù)據(jù)中建立的所有內(nèi)容都被存儲(chǔ)到表空間;一個(gè)表空間可以有多個(gè)數(shù)據(jù)文件,一個(gè)數(shù)據(jù)文件只能有一個(gè)表空間
- 物理結(jié)構(gòu)
- Oracle 內(nèi)存結(jié)構(gòu):內(nèi)存結(jié)構(gòu)作為oracle 數(shù)據(jù)體系中最為重要的一部分,內(nèi)存也是影響數(shù)據(jù)的第一要素
- SGA:所有用戶都可以訪問的實(shí)例的共享內(nèi)存區(qū)域
- 共享池
- 數(shù)據(jù)緩沖區(qū)
- 重做日志緩沖區(qū)
- 大池
- Java池
- PGA:一類非共享的內(nèi)存、專用于特定的服務(wù)器進(jìn)程
- 不是實(shí)例的一部分,它包含單個(gè)服務(wù)器進(jìn)程或單個(gè)后臺(tái)進(jìn)程所需的數(shù)據(jù)控制信息
- UGA:為用戶進(jìn)程存儲(chǔ)回話狀態(tài)的內(nèi)存區(qū)域,UGA可以作為SGA或者PGA的一部分
- SGA:所有用戶都可以訪問的實(shí)例的共享內(nèi)存區(qū)域
- Oracle的進(jìn)程結(jié)構(gòu)
- PMON:在用戶連接意外中斷后執(zhí)行資源清理工作
- SMON:在實(shí)例啟動(dòng)時(shí)進(jìn)行實(shí)例恢復(fù),三個(gè)恢復(fù)步驟
- 前滾以恢復(fù)未寫入文件但已記入聯(lián)機(jī)日志文件的數(shù)據(jù)
- 打開數(shù)據(jù)庫,以便用戶能登陸
- 回滾未提交的事物處理
- DBWR進(jìn)程
- 管理數(shù)據(jù)緩沖區(qū)
- 將所有修改后的緩沖區(qū)寫入數(shù)據(jù)文件
- 使用LUR(Least Recently Used,最近最少使用)算法將最近使用過的數(shù)據(jù)保存在內(nèi)存中
- 通過延遲寫來優(yōu)化磁盤的I/O讀寫
- LGWR進(jìn)程:負(fù)責(zé)將重做日志緩沖區(qū)中的日志寫人日志文件組
- CKPT進(jìn)程:確保數(shù)據(jù)緩沖區(qū)中所有修改過的數(shù)據(jù)塊都寫入數(shù)據(jù)文件的機(jī)制,當(dāng)檢查點(diǎn)玩成后,CKPT進(jìn)程負(fù)責(zé)更新數(shù)據(jù)文件頭和控制文件
- ARCn進(jìn)程:歸檔日志進(jìn)程,是一個(gè)可選進(jìn)程,只有打開日志歸檔時(shí)才有這個(gè)進(jìn)程
(2)CDB與PDB的基本操作
1 show con_name # 查看當(dāng)前所在容器 2 show pdbs # 查詢數(shù)據(jù)庫所有容器 3 alter pluggable database orclpdb open; # CDB模式下修改orclpdb為打開狀態(tài) 4 alter session set container=orclpdb # CDB回話切換到PDB(orclpdb)回話中 5 6 7 以上是在SQL里邊的切換PDB數(shù)據(jù)庫,其實(shí)連接到PDB數(shù)據(jù)庫的方法有兩種 8 1、 sqlplus sys/sys as sysdba 9 alter session set conainer=orclpdb 10 11 2、sqlplus sys/sys@orclpdb as sysdba 12 13 第二種進(jìn)入方法需要在'/u01/app/oracle/product/12.2.0/dbhome_1/network/adsmin/tnanames.ora'文件中添加一下內(nèi)容 14 15 ORCLPDB = 16 (DESCRIPTION = 17 (ADDRESS = (PROTOCOL = TCP) (host= Oracle) (Port=1521)) 18 (CONNECT_DATA = 19 (SERVER = DEDICATED) 20 (SERVICE_NAME=orclpdb))
?
(3)用戶管理
- sys:時(shí)oracle的一個(gè)超級(jí)用戶,主要用戶維護(hù)系統(tǒng)信息和管理實(shí)例
- system:Oracle數(shù)據(jù)庫的默認(rèn)管理員,他擁有dba權(quán)限;通常用于管理用戶、權(quán)限、存儲(chǔ)等,不建議在system中創(chuàng)建表或視圖
- 自定義用戶
- 公用用戶:存在CDB中,名字必須以c##開頭
- 本地用戶:存在PDB中
- 創(chuàng)建用戶的語法,和修改
- 創(chuàng)建用戶
create user 名字 identified by 密碼 下邊這些都是可有可無的 default tablespace work1 # 默認(rèn)表空間為work1 temporary tablespace temp # 臨時(shí)表空間為temp quota unlimited on work1 # work1不限制配額 quota 10M on work2 # work2限額為10M password expire # 用戶第一次登陸必須修改密碼
- 修改密碼:alter user 張三 identified by 123456; 將正三的密碼修改為123456
- 刪除用戶:drop user 張三 ;? ?刪除張三,如果張三創(chuàng)建的有數(shù)據(jù),需要在后邊加上cascade
- 創(chuàng)建用戶
(4)權(quán)限管理
- 預(yù)定義的三個(gè)角色
- sonnect:擁有連接數(shù)據(jù)庫的權(quán)限
- resource:擁有創(chuàng)建表,觸發(fā)器,過程等權(quán)限
- dba:數(shù)據(jù)庫管理員角色
- 授予權(quán)限
- grane connect to 張三;? ?授予張三連接數(shù)據(jù)庫的權(quán)限
- 撤銷權(quán)限
- revoke connect from 張三; 撤銷張三的連接權(quán)限
(5)導(dǎo)入數(shù)據(jù)測試
- 測試文件
百度云:https://pan.baidu.com/s/1cKT4qVEqzyCz60isnMFwEg
藍(lán)奏:https://www.lanzous.com/i2rp0yd - 連接數(shù)據(jù)庫后執(zhí)行代碼:@ 測試文件位置
?
轉(zhuǎn)載于:https://www.cnblogs.com/-xuan/p/10211856.html
總結(jié)
以上是生活随笔為你收集整理的Oracl 12c (课本)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python笔记6 模块与包 程序开发规
- 下一篇: 测试心得:微图书销售小程序