前言sql
正常生產環境下每每是經過應用服務器來與Oracle數據庫相鏈接,大多數使用Oracle的開發語言以Java爲主,針對於Java的中間件有不少,咱們這裏具體來看一下Oracle總體產品線的WLS產品數據庫
安裝Weblogic瀏覽器
執行上圖所示命令,啓動WLS安裝頁面緩存
在歡迎頁面中點擊下一步繼續安全
選擇中間件主目錄,點擊下一步繼續服務器
這裏根據實際狀況便可,點擊下一步繼續session
選擇典型安裝,點擊下一步繼續oracle
肯定WLS Server等安裝目錄,點擊下一步繼續app
肯定安裝所需空間,點擊下一步繼續ide
安裝完畢後,不勾選快速啓動,直接點擊完成按鈕退出便可
配置WLS域
安裝好WLS後,切換到上圖所示目錄,執行config.sh腳原本進行域的建立
選擇建立新的WLS域,點擊下一步繼續
按照默認便可(下面三項均無需勾選),點擊下一步繼續
域名能夠根據本身實際狀況便可,點擊下一步繼續
配置管理員的用戶名與密碼(PS:12C會舒適提示須要8位以上具備字母和數據的混合密碼),點擊下一步繼續
選擇生產模式(不然沒法部署發佈項目),點擊下一步繼續
單實例狀況下就不作特殊變動了,點擊下一步繼續
確認無誤後,點擊建立便可
建立完畢後,點擊完成退出頁面
啓動Weblogic
建立完域之後,能夠按上圖所示路徑,執行startWebLogic.sh腳原本啓動WLS(PS:會提示用戶名密碼,這個能夠寫在一個boot啓動腳本里,就能夠自動加載了)
打開瀏覽器鍵入地址(http://ip:7001/console) 鍵入用戶名與密碼進行登陸
出現上圖所示頁面,至此WLS 12C就徹底安裝建立完畢
Oracle的管理工具SQLPLUS
一、數據庫的啓動和關閉
二、數據庫的管理工做
靜態參數文件
Oracle9i之前,數據庫只是提供靜態參數文件
靜態參數文件的啓動順序
在sql> startup的時候,Oracle默認去哪尋找參數文件?
對於Linux或者Unix系統來講,默認尋找順序是$ORACLE_HOME\dbs
一、initSID.ora 二、init.ora
咱們能夠手工的指定參數文件的位置
SQL>startup pfile=/u01/app/oracle/11g/dbs/init.ora
靜態參數文件只是在數據庫啓動的時候讀取一次,而後釋放。
手工修改任何參數,都須要從新啓動數據庫才能生效。
對於Windows系統來講,默認目錄是%ORACLE_HOME%\database
動態參數文件
一、Oracle9i開始,Oracle引入了動態參數文件spfile
裏面的不少參數是能夠動態調整的,這區別於pfile
二、RMAN能夠自動的備份spfile
三、spfile是一個二進制的文件,可使用寫字板打開,可是不能修改,不然會破壞這個參數文件
四、Oracle 9i開始,參數文件的尋找順序以下
一、spfileSID.ora
二、spfile.ora
三、initSID.ora
四、init.ora
這個實例使用的是動態參數文件。
動態參數文件的創建
經過動態參數文件創建了一個靜態參數文件。咱們能夠認爲是作了一個動態參數文件的文本備份。
上面的pfile在默認的路徑下,默認的名字
上面的spfile在默認的路徑下,默認的名字
在另一個目錄創建了一個動態參數文件。
動態參數文件中參數的修改
只能使用ALTER SYSTEM SET命令進行修改
ALTER SYSTEM SET parameter_name=parameter_value
[comment=‘註釋’] scope=[memory|spfile|both] [sid=‘sid’|’*’]
默認是’*’,在RAC環境中有意義
只是修改內存|只是修改spfile|同時修改spfile和內存,默認是both
一個常見錯誤的解決流程
錯誤了的修改了spfile裏面的參數,數據庫啓動失敗,由於沒有辦法直接修改spfile,該怎麼辦?
一、sql>create pfile='/u01/app/oracle/11g/dbs/initbear.ora' from spfile
二、手工的在pfile裏面編輯和修改錯誤的參數
三、sql>create spfile from pfile='/u01/app/oracle/11g/dbs/initbear.ora'
四、sql>startup
使用spfile啓動時的位置問題
一、將spfile放在默認位置dbs或者database目錄下面
二、在pfile下面指定spfile的位置,而後使用starup pfile進行指定
實例的啓動和關閉
nomount階段
一、尋找參數文件
二、打開參數文件
三、打開告警日誌alterSID.log
四、在這個階段能夠重建控制文件
咱們要常常的關注這個文件(告警日誌)
mount階段
根據參數文件中控制文件的路徑和名字,打開全部的控制文件
若是有一個控制文件不能打開,那麼不能進入mount狀態
從控制文件中讀取數據文件、日誌文件的路徑和名字,不校驗這些文件的存在
再來看一下日誌
open階段
根據控制文件中對數據文件、日誌文件的記錄,打開全部的文件
有一個文件不能打開,就不能進入這個狀態
最後看一下日誌
實例的關閉
shutdown normal | transactional | immediate | abort
有四個選項能夠選擇,默認是normal
一、abort
模擬忽然掉電
內存被清空、內存中的數據沒有寫入數據文件
事務被當即中斷
沒有提交、沒有回滾
二、immediate
強制中斷當前正在運行的全部事務,回滾這些事務
回滾完畢,強制中斷全部的鏈接
將實例中的全部數據寫入數據文件
三、transactional
等待正在運行的事務,一直到他們提交或者回滾
全部事務主動結束之後(提交或者回滾),強行中斷鏈接
將實例裏面的數據寫入數據文件
清空緩存
若是有事務一直沒有提交或者回滾,實例沒法關閉
四、normal
等待事務的主動提交或者回滾
等待用戶主動斷開鏈接
若是有一個用戶沒有斷開鏈接,那麼數據庫沒法關閉
關閉時間快慢
abort——immedaite——transactional——normal,速度由快到慢
一、除了abort之外的關閉方式
觸發一個checkpoint,內存中數據寫入到數據文件中
一致性數據庫
二、abort關閉、忽然掉電、數據庫崩潰down、等
沒有觸發一個檢查點
髒數據庫
數據庫須要恢復
SMON負責數據庫的恢復
建議:採用shutdown immediate進行數據庫的關閉
EM管理工具:database control
一、dbca建立數據庫的時候,能夠選擇安裝db control
二、安裝完成數據庫之後,採用emca建立db control
刪除db control
一、emca –deconfig dbcontrol db
二、emca –repos drop
創建db control
一、emca –repos create
建立repository(建立了一些表),屬主是sysman
二、emca –config dbcontrol db
管理db control
一、emctl start dbconsole
二、emctl stop dbconsole
三、emctl status dbconcole
SQL*Plus工具
SQL*Plus是一個命令行工具,咱們能夠按交互方式或在批處理模式下使用該工具。
可使用SQL*Plus 的命令行界面來編寫SQL*Plus、SQL 和PL/SQL 命令,以便:
輸入、編輯、運行、存儲、檢索和保存SQL 命令和PL/SQL 塊
格式化、計算、存儲和打印查詢結果
列出任何表的列定義
向最終用戶發送消息或接受來自最終用戶的響應
執行數據庫管理
初始化參數文件
數據庫的引導須要初始化參數文件來控制,咱們如今來具體看一下
數據庫啓動後,咱們來看一下參數信息
經過上圖,咱們能夠看到,咱們目前使用的動態初始化參數文件spfileSID.ora
咱們來作一個實驗,刪除這個動態參數文件,看一下數據庫可否啓動
數據庫正常啓動,可是咱們能夠看到,目前使用的初始化參數文件已經不是動態的spfile文件,那麼如今使用的是哪一個初始化參數文件呢,咱們再來作一個實驗
此次,咱們把靜態初始化參數文件initSID.ora也刪除,再來看一下數據庫還可否啓動
咱們看到,數據庫沒法啓動,會報錯提示initSID.ora文件未找到,由這個簡單的實驗,咱們能夠得出結論,數據庫首先搜索的是動態初始化參數文件spfleSID.ora,若是沒有該文件,則搜索spfile.ora,若是也沒有默認的動態初始化參數文件,則搜索靜態初始化參數文件initSID.ora,若是也找不到,則返回錯誤。
從新更改回靜態初始化參數文件後,數據庫已經能夠啓動
靜態初始化參數文件(pfile)
靜態初始化參數文件,是咱們在使用手工建庫時候必須創建的,來引導數據庫啓動的一個重要的參數文件,一般的命名模式爲initSID.ora,存放路徑爲ORACLE_HOME/dbs目錄下
咱們能夠看到,使用靜態參數文件,不可以修改任何參數(不管動態與靜態),可是咱們能夠經過修改該文件自己,來實現咱們的目的
從新編譯initvfast.ora文件,在其中增長一行processes=200,從新啓動數據庫
咱們能夠看到,雖然仍是靜態初始化參數模式,可是進程數已經變爲了200
動態初始化參數文件(spfile)
從Oracle 9i開始,推出了動態初始化參數文件spfile,使得DBA能夠更方便的在線更改所需的參數,而無需從新啓動數據庫,咱們來看一下動態參數文件的建立方法。
咱們能夠看到,如今的數據庫已經由動態初始化參數文件啓動,如今來作一個小實驗看一下靜態初始化參數文件與動態初始化參數文件的區別。
從新啓動後,能夠看到進程已經變爲150。
進程參數屬於靜態參數,只可以用scope=spfile寫入到初始化參數文件中,當下次啓動後則更改完成,咱們再來看一下如何直接修改動態參數。
能夠看到,open_cursors參數屬於動態參數,可使用scope=both選項立刻更改過來,而session_cached_cursors參數屬於靜態參數,不能使用scope=both選項,只能使用scope=spfile選項寫入到spfile文件中,在下次啓動數據庫時會自動改成新的數值。
課後練習
瞭解初始化參數文件(pfile與spfile)
如何使用sqlplus修改spfile中的參數,若是區分參數是靜態的仍是動態的?
以實際的例子演示說明
描述常見的每一個參數的含義及其做用
數據字典
什麼叫數據字典?
數據字典指的是描述數據的數據。
舉個例子:
咱們在數據庫裏面建立了一個表
這個表位於哪一個數據文件
這個表有哪些列
這個表的每個列的數據類型
這個表的約束
。
。
。
這些信息都是描述這個表的,這些信息也存放在一些表中,這些表就是數據字典,數據字典中的數據描述的是整個數據庫的各類各樣的信息。
數據庫要可以訪問,數據字典必須可以被訪問。
數據字典
一、數據字典由兩部分組成
數據字典基本表、數據字典視圖
二、數據字典基本表
和普通的表沒有什麼區別,只不過裏面存放的是數據字典數據
create database的時候,調用了一個腳本sql.bsp,數據字典基本表的建立就是經過這個腳本實現的
這些數據字典基本表的全部者是sys
這些數據字典基本表存放在system表空間中
數據字典基本表中的信息很是難懂,並且很是的重要、一致性很是的複雜,所以千萬不要使用DML語句直接去操做數據字典基本表
經過這個腳本,咱們發現大多數的數據字典基本表是以$結尾的
數據字典視圖
一、列名含義清楚
二、視圖隱藏了基本表之間的複雜關係
三、數據字典視圖的全部者是sys
四、Oracle還爲全部的數據字典視圖創建了公共的同義詞,這樣用戶就能夠經過別名來訪問數據字典視圖
五、數據字典視圖和同義詞經過catalog.sql來創建
六、數據庫內建的存儲過程經過catproc.sql來創建
總結一句話,咱們最主要的工做就是經過數據字典視圖和同義詞來訪問數據字典
數據字典視圖分類
一、DBA_:包含整個數據庫範圍內的對象的信息,例如DBA_TABLES包括了數據庫範圍內全部表的信息,用戶具備必定的權限才能查看這個視圖
二、ALL_:當前登陸用戶有權限查看的對象的信息,例如ALL_TABLES包括了當前用戶有權限查看的全部表的信息
三、USER_:當前登陸用戶所擁有的對象的信息,例如USER_TABLES包括了當前用戶擁有的全部表的信息
數據字典視圖的查找
數據字典視圖很是的多,該怎麼樣去查找呢?
有一個視圖,經過這個視圖能夠查找全部的數據字典視圖,這個視圖就是dictionary,這個視圖的同義詞是dict
動態性能視圖
有一些數據,例如內存中的數據、控制文件中的數據,Oracle提供了一些訪問這些數據的方式:以表的方式展示這些數據。
這些數據並無存在實際的表中,只是以表的形式展示出來,所以是一些虛擬的表。
數據庫在運行、控制文件和內存中的數據在不斷地變化,那麼動態性能視圖中的數據也在不停的變化,數據庫從新啓動之後,動態性能視圖中的數據所有丟失。
全部的動態性能視圖的名稱都存放在v$fixed_table裏面。
動態性能視圖的名字都是以v_$開始的,屬主是sys。
Oracle爲每個動態性能視圖提供了一個同義詞,都以v$開頭,例如v$session
SCN淺析
咱們重點討論幾個SCN
控制文件中的SCN
一、系統檢查點SCN
當一個檢查點動做完成之後,Oracle就把系統檢查點的SCN存儲到控制文件中
二、數據文件檢查點SCN
當一個檢查點動做完成之後,Oracle就把每個數據文件的SCN單獨存放在控制文件中
一、爲了顯示,首先看一下DESC,肯定每個列的大小
二、設置linesize,保證一行中可以容納全部的列
固然也要考慮實際的大小
同時還能夠設置pagesize的大小
三、終止SCN
聯機讀寫模式下面的全部的數據文件的終止SCN爲空或者無限大
數據文件中的SCN
啓動SCN
數據文件的檢查點信息寫入到每個數據文件的頭部
一、數據庫正常運行期間,控制文件中的系統檢查點SCN、控制文件中數據文件檢查點信息、每一個數據文件頭部的數據文件檢查點SCN,都是相同的
二、控制文件中每一個數據文件的終止SCN都爲NULL
數據庫正常關閉,系統執行一個CHECKPOINT,將全部的數據文件的終止SCN(位於控制文件中)設置成數據文件頭部的啓動SCN
數據庫安全關閉之後,四個SCN應該是相同的
數據庫啓動
一、數據文件頭部的啓動SCN與控制文件中數據文件檢查點SCN比較
若是相同,繼續
二、數據文件頭部的啓動SCN與控制文件中數據文件終止SCN比較
若是相同,那麼表示正常關機,不須要恢復
三、數據庫打開,控制文件中數據文件終止SCN被設置爲NULL
數據庫被打開,而且正常使用