<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    教你使用Linux系統的Shell腳本維護Oracle

      系統管理員與 DBA 之間在職責方面存在差別。但實際上,這種差別通常并不明顯。許多 IT 部門雇傭一些可解決數據庫級以及操作系統級問題的員工。當然,Oracle 數據庫本身使用操作系統資源,并能與其環境緊密交互。

      此外,許多系統管理員和DBA 發現將其工作相關的任務自動化很有必要或比較方便。軟件安裝、系統資源監視以及系統管理涉及一些重復和容易出錯的任務,而自動過程可以比手動過程更好地完成這些任務。

      將這些任務自動化的方法之一是shell 腳本。 Shell 腳本自 Linux 系統安裝之初就起著重要作用。啟動和關閉系統時就會調用各種腳本。 Oracle 和其他第三方供應商的實用程序也是通過 shell 腳本可調用的。由于這些腳本可以快速開發,因此歷來就用它們構建應用程序原型。系統管理員已利用通過 shell 腳本實現的功能提供針對其監視的系統的特定要求和特征定制的解決方案了。

      在本文中,我將介紹 “bash”shell 腳本可以實現的、與在 Linux 平臺上安裝、運行和維護 Oracle 數據庫相關的功能。注意,本文適用于 Linux 腳本初學者或對 Linux 相對陌生的 DBA ;對大多數經驗豐富的 Linux 系統管理員則不適用。

      ◆Shell 腳本是什么?

      shell 腳本是一個包含命令序列的文本文件。當運行文件(或腳本)時,將執行該文件中包含的命令。術語 shell 僅指與 Linux 內核通信所使用的特定命令行用戶界面。目前有多個不同的 shell ,其中包括 C shell (csh) 、 Korn shell (ksh) 、 Bourne shell (sh) 和 Bourne-Again shell (bash) 。 shell 本身就是一個從文件或終端讀取命令、解釋這些命令并通常執行其他命令的命令。 Bourne-Again shell 合并了上述其他 shell 的特性,本文就使用該腳本進行演示。

      腳本文件中的第一行可用于指定使用哪個 shell 來運行該腳本。以下是所有腳本示例中包含的第一行的含義:

      #!/bin/bash

      ◆為什么使用 Shell 腳本?

      由于 shell 腳本與 DBA 的工作相關,因此您可能不會馬上看到 shell 腳本的價值,這跟您的工作經歷有關。如果您以前從未使用過 UNIX 或類似 UNIX 的系統,那么可能會對大量含義晦澀的命令感到一愁莫展。此外,除了作為關系數據庫外, Oracle 10 g 還提供了一個用于處理數據庫數據的強健平臺以及幾個用于在數據庫外部與操作系統交互的方法。

      但您會發現幾個探究 shell 腳本領域的原因,其中包括:

      ● 必須支持已經存在的腳本。

      ● 需要在安裝 Oracle 軟件前自動設置系統。例如,您可以編寫一個腳本來檢查 OS 的初始狀態并報告安裝軟件前必須滿足的任何前提條件。該腳本還可以創建相關的 OS 用戶和組并為用戶設置環境變量。

      ● 可以使用正在運行的 Oracle 數據庫來執行手動或計劃的任務。但在數據庫 未 運行時需要運行某些任務。可以使用腳本停止或啟動數據庫(以及偵聽器或相關的數據庫進程)。無法從數據庫內部啟動此類動作。

      ● 您需要一種監視數據庫狀態(例如,是否正在運行并可進行進程查詢)的機制。這樣的腳本還可以監視非特定于 Oracle 的其他進程和資源,從而提供系統當前運行情況的更詳細信息。

      ● 需要將備份自動化。 Oracle Recovery Manager (RMAN) 是一個用于開發可以在任何平臺上運行的備份腳本的實用程序。可以從 shell 腳本中調用 Oracle Recovery Manager 并使用它執行各種備份和恢復活動。

      ● 您可能有一個并非特定于某個數據庫的要求。您可能在一臺計算機上安裝了多個數據庫。建議您不要使用單個數據庫滿足此要求,因為那樣會引發潛在的安全性問題。在這些情況下, shell 腳本提供了一種既可以滿足此要求又不會將進程與單個數據庫關聯的方法。

      ◆什么情況下不使用 Shell 腳本?

      Oracle 數據庫包含了超出 RDBMS 傳統定義的功能。與軟件的任何其他部分一樣,它使用操作系統提供的資源,但它所“ 看到” 并“ 更改” 其環境的程度遠遠超過了其他軟件。SQL 和 Oracle 的固定視圖從數據庫內部提供了系統視圖,而shell 腳本從數據庫外部提供了系統視圖。Shell 腳本并不是適用于所有問題的解決方案。

      必須意識到,操作系統的許多方面可以從數據庫內部進行監視和修改。可以使用Oracle 的固定視圖(帶 v$ 前綴的視圖)確定計算機的主機名 (v$instance) 或數據庫正在其中運行的平臺的名稱 (v$database) 。還可以通過這種方式確定與數據庫相關的文件的位置和其他屬性。可以直接從數據庫中查詢數據文件(v$datafile 、 dba_data_files )、臨時文件(v$tempfile 、 dba_temp_files )、重做日志 (v$logfile) 、存檔日志 (v$archived_log) 和控制文件 (v$controlfile) 的位置和其他屬性。可以通過該視圖以及通過查看某些 init.ora 參數(db_recovery_file_dest 、 db_recovery_file_dest_size )確定有關閃回恢復區 ($recovery_file_dest) 的信息。還可以查詢進程 (v$process) 和內存(v$sga 、 v$sgastat 等)的狀態。有各種內置的 PL/SQL 程序包,并能夠創建允許對底層 OS 進行其他訪問的Java 和C 數據庫對象。

      如果您正在考慮為一個需要大量數據庫訪問的任務編寫腳本,則腳本可能并不是最佳選擇。本文的稍后部分將介紹如何使用SQL*Plus 訪問數據庫,但在很多情況下,使用其他語言可以更好地解決此問題。

    posted on 2011-12-16 15:16 順其自然EVO 閱讀(167) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    <2011年12月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: jzzijzzij在线观看亚洲熟妇| 亚洲av无码一区二区三区观看| 特级毛片aaaa免费观看| 男人的好看免费观看在线视频| 亚洲综合久久成人69| 久久精品私人影院免费看| 亚洲国产精品嫩草影院在线观看| a在线观看免费网址大全| 亚洲日韩精品A∨片无码| 国产一级黄片儿免费看| 亚洲AV无码一区东京热| 6080午夜一级毛片免费看6080夜福利| 亚洲天天做日日做天天看 | 亚洲日韩在线观看免费视频| 色屁屁在线观看视频免费| 亚洲国产成人久久综合区| 4hu四虎免费影院www| 精品亚洲综合在线第一区| 嫩草影院在线播放www免费观看| 亚洲小视频在线观看| 91黑丝国产线观看免费 | 色偷偷亚洲第一综合网| 亚洲Av无码乱码在线znlu| 中文字幕在线免费观看视频| 久久精品国产亚洲AV麻豆不卡| 1000部拍拍拍18勿入免费视频下载| 亚洲香蕉久久一区二区三区四区| 最近免费中文字幕4| 羞羞视频在线观看免费| 亚洲V无码一区二区三区四区观看| 24小时免费看片| 亚洲爆乳少妇无码激情| 亚洲日韩人妻第一页| 69视频在线观看高清免费| 亚洲大尺度无码无码专线一区| 亚洲精品老司机在线观看| 在线美女免费观看网站h| 亚洲国产av玩弄放荡人妇| 国产精品亚洲片在线| 99视频全部免费精品全部四虎| 黄网站在线播放视频免费观看|