管理Oracle實例

前言

正常生產環境下往往是通過應用服務器來與Oracle數據庫相連接,大多數使用Oracle的開發語言以Java爲主,針對於Java的中間件有很多,我們這裏具體來看一下Oracle整體產品線的WLS產品

安裝Weblogic

clip_image001

執行上圖所示命令,啓動WLS安裝頁面

clip_image002

在歡迎頁面中點擊下一步繼續

clip_image003

選擇中間件主目錄,點擊下一步繼續

clip_image004

這裏根據實際情況即可,點擊下一步繼續

clip_image005

選擇典型安裝,點擊下一步繼續

clip_image006

確定WLS Server等安裝目錄,點擊下一步繼續

clip_image007

確定安裝所需空間,點擊下一步繼續

clip_image008

安裝完畢後,不勾選快速啓動,直接點擊完成按鈕退出即可

配置WLS域

clip_image009

安裝好WLS後,切換到上圖所示目錄,執行config.sh腳本來進行域的創建

clip_image010

選擇創建新的WLS域,點擊下一步繼續

clip_image011

按照默認即可(下面三項均無需勾選),點擊下一步繼續

clip_image012

域名可以根據自己實際情況即可,點擊下一步繼續

clip_image013

配置管理員的用戶名與密碼(PS:12C會溫馨提示需要8位以上具有字母和數據的混合密碼),點擊下一步繼續

clip_image014

選擇生產模式(否則無法部署發佈項目),點擊下一步繼續

clip_image015

單實例情況下就不做特殊變更了,點擊下一步繼續

clip_image016

確認無誤後,點擊創建即可

clip_image017

創建完畢後,點擊完成退出頁面

啓動Weblogic

clip_image018

創建完域以後,可以按上圖所示路徑,執行startWebLogic.sh腳本來啓動WLS(PS:會提示用戶名密碼,這個可以寫在一個boot啓動腳本里,就可以自動加載了)

clip_image019

打開瀏覽器鍵入地址(http://ip:7001/console) 鍵入用戶名與密碼進行登錄

clip_image020

出現上圖所示頁面,至此WLS 12C就完全安裝創建完畢

Oracle的管理工具SQLPLUS

1、數據庫的啓動和關閉

2、數據庫的管理工作

clip_image021

靜態參數文件

Oracle9i以前,數據庫只是提供靜態參數文件

靜態參數文件的啓動順序

在sql> startup的時候,Oracle默認去哪尋找參數文件?

clip_image022

對於Linux或者Unix系統來說,默認尋找順序是$ORACLE_HOME\dbs

1、initSID.ora        2、init.ora

我們可以手工的指定參數文件的位置

SQL>startup pfile=/u01/app/oracle/11g/dbs/init.ora

靜態參數文件只是在數據庫啓動的時候讀取一次,然後釋放。

手工修改任何參數,都需要重新啓動數據庫才能生效。

對於Windows系統來說,默認目錄是%ORACLE_HOME%\database

動態參數文件

1、Oracle9i開始,Oracle引入了動態參數文件spfile

裏面的很多參數是可以動態調整的,這區別於pfile

2、RMAN可以自動的備份spfile

3、spfile是一個二進制的文件,可以使用寫字板打開,但是不能修改,否則會破壞這個參數文件

4、Oracle 9i開始,參數文件的尋找順序如下

1、spfileSID.ora

2、spfile.ora

3、initSID.ora

4、init.ora

clip_image023

這個實例使用的是動態參數文件。

動態參數文件的建立

clip_image024

通過動態參數文件建立了一個靜態參數文件。我們可以認爲是做了一個動態參數文件的文本備份。

上面的pfile在默認的路徑下,默認的名字

上面的spfile在默認的路徑下,默認的名字

clip_image025

在另外一個目錄建立了一個動態參數文件。

動態參數文件中參數的修改

只能使用ALTER SYSTEM SET命令進行修改

clip_image026

ALTER SYSTEM SET parameter_name=parameter_value

[comment=‘註釋’] scope=[memory|spfile|both] [sid=‘sid’|’*’]

clip_image027

默認是’*’,在RAC環境中有意義

只是修改內存|只是修改spfile|同時修改spfile和內存,默認是both

clip_image028

一個常見錯誤的解決流程

錯誤了的修改了spfile裏面的參數,數據庫啓動失敗,因爲沒有辦法直接修改spfile,該怎麼辦?

1、sql>create pfile='/u01/app/oracle/11g/dbs/initbear.ora' from spfile

2、手工的在pfile裏面編輯和修改錯誤的參數

3、sql>create spfile from pfile='/u01/app/oracle/11g/dbs/initbear.ora'

4、sql>startup

使用spfile啓動時的位置問題

1、將spfile放在默認位置dbs或者database目錄下面

2、在pfile下面指定spfile的位置,然後使用starup pfile進行指定

clip_image029

實例的啓動和關閉

nomount階段

1、尋找參數文件

2、打開參數文件

3、打開告警日誌alterSID.log

4、在這個階段可以重建控制文件

clip_image030

我們要經常的關注這個文件(告警日誌)

clip_image031

mount階段

根據參數文件中控制文件的路徑和名字,打開所有的控制文件

如果有一個控制文件不能打開,那麼不能進入mount狀態

從控制文件中讀取數據文件、日誌文件的路徑和名字,不校驗這些文件的存在

clip_image032

再來看一下日誌

clip_image033

open階段

根據控制文件中對數據文件、日誌文件的記錄,打開所有的文件

有一個文件不能打開,就不能進入這個狀態

clip_image034

最後看一下日誌

clip_image035

實例的關閉

shutdown normal | transactional | immediate | abort

有四個選項可以選擇,默認是normal

1、abort

模擬突然掉電

內存被清空、內存中的數據沒有寫入數據文件

事務被立即中斷

沒有提交、沒有回滾

2、immediate

強制中斷當前正在運行的所有事務,回滾這些事務

回滾完畢,強制中斷所有的連接

將實例中的所有數據寫入數據文件

3、transactional

等待正在運行的事務,一直到他們提交或者回滾

所有事務主動結束以後(提交或者回滾),強行中斷連接

將實例裏面的數據寫入數據文件

清空緩存

如果有事務一直沒有提交或者回滾,實例無法關閉

4、normal

等待事務的主動提交或者回滾

等待用戶主動斷開連接

如果有一個用戶沒有斷開連接,那麼數據庫無法關閉

關閉時間快慢

abort——immedaite——transactional——normal,速度由快到慢

1、除了abort以外的關閉方式

觸發一個checkpoint,內存中數據寫入到數據文件中

一致性數據庫

2、abort關閉、突然掉電、數據庫崩潰down、等

沒有觸發一個檢查點

髒數據庫

數據庫需要恢復

SMON負責數據庫的恢復

建議:採用shutdown immediate進行數據庫的關閉

EM管理工具:database control

1、dbca創建數據庫的時候,可以選擇安裝db control

2、安裝完成數據庫以後,採用emca創建db control

刪除db control

1、emca –deconfig dbcontrol db

2、emca –repos drop

建立db control

1、emca –repos create

創建repository(創建了一些表),屬主是sysman

2、emca –config dbcontrol db

管理db control

1、emctl start dbconsole

2、emctl stop dbconsole

3、emctl status dbconcole

SQL*Plus工具

SQL*Plus是一個命令行工具,我們可以按交互方式或在批處理模式下使用該工具。

clip_image036

可以使用SQL*Plus 的命令行界面來編寫SQL*Plus、SQL 和PL/SQL 命令,以便:

輸入、編輯、運行、存儲、檢索和保存SQL 命令和PL/SQL 塊

格式化、計算、存儲和打印查詢結果

列出任何表的列定義

向最終用戶發送消息或接受來自最終用戶的響應

執行數據庫管理

初始化參數文件

數據庫的引導需要初始化參數文件來控制,我們現在來具體看一下

clip_image037

數據庫啓動後,我們來看一下參數信息

clip_image038

通過上圖,我們可以看到,我們目前使用的動態初始化參數文件spfileSID.ora

clip_image039

我們來做一個實驗,刪除這個動態參數文件,看一下數據庫能否啓動

clip_image040

數據庫正常啓動,但是我們可以看到,目前使用的初始化參數文件已經不是動態的spfile文件,那麼現在使用的是哪個初始化參數文件呢,我們再來做一個實驗

clip_image041

這次,我們把靜態初始化參數文件initSID.ora也刪除,再來看一下數據庫還能否啓動

clip_image042

我們看到,數據庫無法啓動,會報錯提示initSID.ora文件未找到,由這個簡單的實驗,我們可以得出結論,數據庫首先搜索的是動態初始化參數文件spfleSID.ora,如果沒有該文件,則搜索spfile.ora,如果也沒有默認的動態初始化參數文件,則搜索靜態初始化參數文件initSID.ora,如果也找不到,則返回錯誤。

重新更改回靜態初始化參數文件後,數據庫已經可以啓動

clip_image043

靜態初始化參數文件(pfile)

靜態初始化參數文件,是我們在使用手工建庫時候必須建立的,來引導數據庫啓動的一個重要的參數文件,通常的命名模式爲initSID.ora,存放路徑爲ORACLE_HOME/dbs目錄下

clip_image044

我們可以看到,使用靜態參數文件,不能夠修改任何參數(無論動態與靜態),但是我們可以通過修改該文件本身,來實現我們的目的

重新編譯initvfast.ora文件,在其中增加一行processes=200,重新啓動數據庫

clip_image045

我們可以看到,雖然還是靜態初始化參數模式,但是進程數已經變爲了200

動態初始化參數文件(spfile)

從Oracle 9i開始,推出了動態初始化參數文件spfile,使得DBA可以更方便的在線更改所需的參數,而無需重新啓動數據庫,我們來看一下動態參數文件的創建方法。

clip_image046

我們可以看到,現在的數據庫已經由動態初始化參數文件啓動,現在來做一個小實驗看一下靜態初始化參數文件與動態初始化參數文件的區別。

clip_image047

重新啓動後,可以看到進程已經變爲150。

進程參數屬於靜態參數,只能夠用scope=spfile寫入到初始化參數文件中,當下次啓動後則更改完成,我們再來看一下如何直接修改動態參數。

clip_image048

可以看到,open_cursors參數屬於動態參數,可以使用scope=both選項馬上更改過來,而session_cached_cursors參數屬於靜態參數,不能使用scope=both選項,只能使用scope=spfile選項寫入到spfile文件中,在下次啓動數據庫時會自動改爲新的數值。

課後練習

瞭解初始化參數文件(pfile與spfile)

如何使用sqlplus修改spfile中的參數,如果區分參數是靜態的還是動態的?

以實際的例子演示說明

描述常見的每個參數的含義及其作用

數據字典

什麼叫數據字典?

數據字典指的是描述數據的數據。

舉個例子:

我們在數據庫裏面創建了一個表

這個表位於哪個數據文件

這個表有哪些列

這個表的每一個列的數據類型

這個表的約束

這些信息都是描述這個表的,這些信息也存放在一些表中,這些表就是數據字典,數據字典中的數據描述的是整個數據庫的各種各樣的信息。

數據庫要能夠訪問,數據字典必須能夠被訪問。

數據字典

1、數據字典由兩部分組成

數據字典基本表、數據字典視圖

2、數據字典基本表

和普通的表沒有什麼區別,只不過裏面存放的是數據字典數據

create database的時候,調用了一個腳本sql.bsp,數據字典基本表的創建就是通過這個腳本實現的

這些數據字典基本表的所有者是sys

這些數據字典基本表存放在system表空間中

數據字典基本表中的信息非常難懂,而且非常的重要、一致性非常的複雜,因此千萬不要使用DML語句直接去操作數據字典基本表

clip_image049

通過這個腳本,我們發現大多數的數據字典基本表是以$結尾的

數據字典視圖

1、列名含義清楚

2、視圖隱藏了基本表之間的複雜關係

3、數據字典視圖的所有者是sys

4、Oracle還爲所有的數據字典視圖建立了公共的同義詞,這樣用戶就可以通過別名來訪問數據字典視圖

5、數據字典視圖和同義詞通過catalog.sql來建立

6、數據庫內建的存儲過程通過catproc.sql來建立

clip_image050

總結一句話,我們最主要的工作就是通過數據字典視圖和同義詞來訪問數據字典

數據字典視圖分類

1、DBA_:包含整個數據庫範圍內的對象的信息,例如DBA_TABLES包括了數據庫範圍內所有表的信息,用戶具有一定的權限才能查看這個視圖

2、ALL_:當前登錄用戶有權限查看的對象的信息,例如ALL_TABLES包括了當前用戶有權限查看的所有表的信息

3、USER_:當前登錄用戶所擁有的對象的信息,例如USER_TABLES包括了當前用戶擁有的所有表的信息

clip_image051

數據字典視圖的查找

數據字典視圖非常的多,該怎麼樣去查找呢?

有一個視圖,通過這個視圖可以查找所有的數據字典視圖,這個視圖就是dictionary,這個視圖的同義詞是dict

clip_image052

動態性能視圖

有一些數據,例如內存中的數據、控制文件中的數據,Oracle提供了一些訪問這些數據的方式:以表的方式展現這些數據。

這些數據並沒有存在實際的表中,只是以表的形式展現出來,因此是一些虛擬的表。

數據庫在運行、控制文件和內存中的數據在不斷地變化,那麼動態性能視圖中的數據也在不停的變化,數據庫重新啓動以後,動態性能視圖中的數據全部丟失。

所有的動態性能視圖的名稱都存放在v$fixed_table裏面。

動態性能視圖的名字都是以v_$開始的,屬主是sys。

Oracle爲每一個動態性能視圖提供了一個同義詞,都以v$開頭,例如v$session

SCN淺析

我們重點討論幾個SCN

控制文件中的SCN

1、系統檢查點SCN

當一個檢查點動作完成以後,Oracle就把系統檢查點的SCN存儲到控制文件中

clip_image053

2、數據文件檢查點SCN

當一個檢查點動作完成以後,Oracle就把每一個數據文件的SCN單獨存放在控制文件中

clip_image054

1、爲了顯示,首先看一下DESC,確定每一個列的大小

2、設置linesize,保證一行中能夠容納所有的列

當然也要考慮實際的大小

同時還可以設置pagesize的大小

3、終止SCN

聯機讀寫模式下面的所有的數據文件的終止SCN爲空或者無限大

clip_image055

數據文件中的SCN

啓動SCN

clip_image056

數據文件的檢查點信息寫入到每一個數據文件的頭部

1、數據庫正常運行期間,控制文件中的系統檢查點SCN、控制文件中數據文件檢查點信息、每個數據文件頭部的數據文件檢查點SCN,都是相同的

2、控制文件中每個數據文件的終止SCN都爲NULL

數據庫正常關閉,系統執行一個CHECKPOINT,將所有的數據文件的終止SCN(位於控制文件中)設置成數據文件頭部的啓動SCN

數據庫安全關閉以後,四個SCN應該是相同的

數據庫啓動

1、數據文件頭部的啓動SCN與控制文件中數據文件檢查點SCN比較

如果相同,繼續

2、數據文件頭部的啓動SCN與控制文件中數據文件終止SCN比較

如果相同,那麼表示正常關機,不需要恢復

3、數據庫打開,控制文件中數據文件終止SCN被設置爲NULL

數據庫被打開,並且正常使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章