Oracl 12c (课本)
生活随笔
收集整理的這篇文章主要介紹了
Oracl 12c (课本)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
一、安裝和部署:https://www.cnblogs.com/-xuan/p/10211387.html
二、
(1)體系結(jié)構(gòu)
- Oracle體系結(jié)構(gòu)
- 實例:實例是后臺進程和內(nèi)存的集合
- 數(shù)據(jù)庫:數(shù)據(jù)庫是數(shù)據(jù)的集合,物理上是指存儲數(shù)據(jù)庫的信息的一組操作文件,每個數(shù)據(jù)庫有一個邏輯結(jié)構(gòu)和一個物理結(jié)構(gòu)。
- 可插拔數(shù)據(jù)庫:從oracle12c版本開始,oracle引入了可插拔數(shù)據(jù)庫的概念,可插拔是為云計算而生
- 可插拔數(shù)據(jù)庫的結(jié)構(gòu)由一個容器數(shù)據(jù)庫(Continer Database,CDB)和若干個可組裝數(shù)據(jù)庫(Pluggable Database,PDB)組成,每個PDB對外個充當一個獨立的數(shù)據(jù)庫供應(yīng)用程序使用
- Oracle服務(wù)器:
- Oracle 服務(wù)器是由實例和數(shù)據(jù)庫組成,也就是我們常說的數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)
- Oracle 服務(wù)器除了維護實例外,還在用戶建立與服務(wù)器的連接時啟動服務(wù)期進程并分配PGA(Program Global Area,程序全局區(qū));
- Oracle存儲結(jié)構(gòu):物理結(jié)構(gòu),邏輯結(jié)構(gòu)
- 物理結(jié)構(gòu)
- 主要文件:
- 數(shù)據(jù)文件:數(shù)據(jù)文件(Data File)的擴展名是*.dbf,,是物理Oracle數(shù)據(jù)庫文件
- 特點
- 每個數(shù)據(jù)文件只有與一個數(shù)據(jù)庫相聯(lián)系
- 一個表空間可包含一個或多個數(shù)據(jù)文件
- 一個數(shù)據(jù)文件只能屬于一個表空間
- 重做日志文件(Redo Log File):擴展名為*.log,它記錄了對數(shù)據(jù)所有的更改信息,并提供了一種數(shù)據(jù)恢復(fù)機制,確定在系統(tǒng)崩潰或者其他意外出現(xiàn)后恢復(fù)數(shù)據(jù)庫
- 控制文件(Control File):擴展名是*.ctl,是一個二進制文件
- 存儲的信息很多,其中包括數(shù)據(jù)文件和重做日志文件的名稱和位置
- 控制文件是數(shù)據(jù)庫啟動及運行必需的文件;當Oracle 讀取數(shù)據(jù)時,要根據(jù)控制文件的信息查找數(shù)據(jù)文件
- 包括了一下關(guān)鍵信息
1 數(shù)據(jù)文件的位置及大小 2 重做日志文件的位置及大小 3 數(shù)據(jù)庫名稱及創(chuàng)建時間 4 日志序列號
- 主要文件:
- Oracle邏輯機構(gòu)
- 表空間:每個數(shù)據(jù)庫都是由若干個表空間組成用戶在數(shù)據(jù)中建立的所有內(nèi)容都被存儲到表空間;一個表空間可以有多個數(shù)據(jù)文件,一個數(shù)據(jù)文件只能有一個表空間
- 創(chuàng)建表空間的目的
- 對不同用戶分配不同的表空間,對不同模式的用戶分配不同的表空間,方便對用戶的操作和對模式的對象的管理
- 可以將不同的數(shù)據(jù)文件放在不同的磁盤上,有利于磁盤管理,提高I/O性能、備份和恢復(fù)等
- 永久性表空間:一般保持基表、視圖、過程、索引等的數(shù)據(jù)
- 臨時性表空間:只用于保存系統(tǒng)中短期活動的數(shù)據(jù)
- 撤銷表空間:用于幫助回退未提交的事物數(shù)據(jù),已提交的數(shù)據(jù)在這里是無法恢復(fù)的
- Oracle自動建立的四個表空間system、sysaux、users、temp
- system表空間:用于存放Oracle系統(tǒng)內(nèi)部表和數(shù)據(jù)字典的數(shù)據(jù),如表名、列名、用戶名等
- sysaux表空間:作為system的輔助表空間,用于存放各種數(shù)據(jù)庫工具用到的數(shù)據(jù);還用于存放個數(shù)對象數(shù)據(jù)如智能代理DBSNMP等
- users表空間:通常作為用戶使用的表空間,可以再這個表空間上創(chuàng)建各種對象
- temp表空間:Oracle用戶用于存放臨時數(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ù)文件,當有多個時用逗號隔開 9 filename:是表空間中數(shù)據(jù)文件的路徑和名稱,以dbf為擴展名 10 autoextend:啟用或禁用數(shù)據(jù)文件的自動擴展
- 例子
1 ceate tablespace tab_work1 2 datafile '/u01/app/oracle/oradata/orcl/work1.dbf' 3 size 10M 4 aotoextend on;
- 當創(chuàng)建表空間時未指定自動擴展,并且文件已經(jīng)滿了的時候,有兩種方法
- 修改文件的大小
alter database datafile '/u01/app/oracle/orcl/work1.dbf' rexize 80M
- 再向表空間添加一個數(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)建表空間的目的
- 段:存在于表空間中,是一種指定類型的存儲結(jié)構(gòu),段由一組區(qū)組成
- 區(qū):是磁盤空間分配的最小單位。磁盤按區(qū)劃分,每次至少分配一個區(qū),區(qū)由連續(xù)的塊組成
- 數(shù)據(jù)塊:是數(shù)據(jù)庫最小的數(shù)據(jù)組織單位與管理單元
- 模式:是數(shù)據(jù)庫對象(又稱模式對象)的集合。模式對象包括表、視圖、索引、同義詞、序列、過程和程序包等
- 表空間:每個數(shù)據(jù)庫都是由若干個表空間組成用戶在數(shù)據(jù)中建立的所有內(nèi)容都被存儲到表空間;一個表空間可以有多個數(shù)據(jù)文件,一個數(shù)據(jù)文件只能有一個表空間
- 物理結(jié)構(gòu)
- Oracle 內(nèi)存結(jié)構(gòu):內(nèi)存結(jié)構(gòu)作為oracle 數(shù)據(jù)體系中最為重要的一部分,內(nèi)存也是影響數(shù)據(jù)的第一要素
- SGA:所有用戶都可以訪問的實例的共享內(nèi)存區(qū)域
- 共享池
- 數(shù)據(jù)緩沖區(qū)
- 重做日志緩沖區(qū)
- 大池
- Java池
- PGA:一類非共享的內(nèi)存、專用于特定的服務(wù)器進程
- 不是實例的一部分,它包含單個服務(wù)器進程或單個后臺進程所需的數(shù)據(jù)控制信息
- UGA:為用戶進程存儲回話狀態(tài)的內(nèi)存區(qū)域,UGA可以作為SGA或者PGA的一部分
- SGA:所有用戶都可以訪問的實例的共享內(nèi)存區(qū)域
- Oracle的進程結(jié)構(gòu)
- PMON:在用戶連接意外中斷后執(zhí)行資源清理工作
- SMON:在實例啟動時進行實例恢復(fù),三個恢復(fù)步驟
- 前滾以恢復(fù)未寫入文件但已記入聯(lián)機日志文件的數(shù)據(jù)
- 打開數(shù)據(jù)庫,以便用戶能登陸
- 回滾未提交的事物處理
- DBWR進程
- 管理數(shù)據(jù)緩沖區(qū)
- 將所有修改后的緩沖區(qū)寫入數(shù)據(jù)文件
- 使用LUR(Least Recently Used,最近最少使用)算法將最近使用過的數(shù)據(jù)保存在內(nèi)存中
- 通過延遲寫來優(yōu)化磁盤的I/O讀寫
- LGWR進程:負責(zé)將重做日志緩沖區(qū)中的日志寫人日志文件組
- CKPT進程:確保數(shù)據(jù)緩沖區(qū)中所有修改過的數(shù)據(jù)塊都寫入數(shù)據(jù)文件的機制,當檢查點玩成后,CKPT進程負責(zé)更新數(shù)據(jù)文件頭和控制文件
- ARCn進程:歸檔日志進程,是一個可選進程,只有打開日志歸檔時才有這個進程
(2)CDB與PDB的基本操作
1 show con_name # 查看當前所在容器 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ù)庫,其實連接到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 第二種進入方法需要在'/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:時oracle的一個超級用戶,主要用戶維護系統(tǒng)信息和管理實例
- system:Oracle數(shù)據(jù)庫的默認管理員,他擁有dba權(quán)限;通常用于管理用戶、權(quán)限、存儲等,不建議在system中創(chuàng)建表或視圖
- 自定義用戶
- 公用用戶:存在CDB中,名字必須以c##開頭
- 本地用戶:存在PDB中
- 創(chuàng)建用戶的語法,和修改
- 創(chuàng)建用戶
create user 名字 identified by 密碼 下邊這些都是可有可無的 default tablespace work1 # 默認表空間為work1 temporary tablespace temp # 臨時表空間為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ù)定義的三個角色
- 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
藍奏: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 模块与包 程序开发规
- 下一篇: lol赵信皮肤是绞肉机好看还是特战先锋好