本書適用于Oracle數據庫管理人員、使用PL/SQL 進行應用程序開發的人員、對軟件開發有興趣的學生 及愛好者。另外,本書對于網絡管理員、企業IT運維 人員也具有很強的指導作用。
超值、大容量DVD光盤
13.6小時配套教學視頻
7.8小時PL/SQL教學視頻(贈送)
本書源文件
第2章 創建和連接Oracle數據庫
創建數據庫是DBA在安裝好一個Oracle系統之后要面對的第一項工作。數據庫必須要經過規劃和設計,Oracle提供了DBCA可視化工具,它可以幫助用戶創建一個全新的數據庫,也可以手動使用SQL腳本的方式創建數據庫,不過這要求DBA對Oracle的數據庫結構具有較深刻的理解。本章除介紹數據庫創建外,還將討論各種Oracle客戶端工具及Oracle服務的管理。
2.1 創建Oracle數據庫
類似于OUI(Oracle通用安裝管理器),Oracle也提供了一個圖形化的數據庫創建工具DBCA,DBCA提供了完全自動化的方式來創建數據庫。DBA也可以通過CREATE DATABASE這個SQL語句來創建數據庫,使用這個SQL語句可以讓DBA全方位地控制數據庫的創建過程。
2.1.1 使用DBCA創建數據庫
數據庫配置助手DBCA是創建數據庫的一個非常便利的方法,它提供了窗口向導的方式,引導創建者一步一步地指定數據庫的創建,當DBCA創建完成時,數據庫就可以立即使用了。DBCA可以在安裝Oracle數據庫軟件時由Oracle通用安裝管理器OUI來啟動,也可以通過在Windows平臺上使用“開始”菜單來啟動、創建數據庫。
使用DBCA創建數據庫有如下兩種方式:
交互式數據庫創建,這種方式提供了圖形界面引導讀者一步一步地創建和配置一個數據庫。
靜默方式,允許指定命令行參數或一個配置的文件讓DBCA在命令行模式下進行安裝。
交互式方式的圖形化界面對于不了解Oracle的體系結構但是又迫切需要創建數據庫的用戶來說非常有用,而靜默方式可以根據現有的數據庫創建預備腳本來創建一個新的數 據庫。
注意:在Oracle安裝時,會提示是否創建一個數據庫,如果選擇創建數據庫,Oracle安裝管理器將自動開啟Oracle數據庫配置助手向導DBCA來開始一個數據庫的配置。如果在安裝數據庫軟件時沒有創建數據庫,那么在創建后可以使用DBCA來創建一個新的數據庫。
無論是手工使用DBCA或者是在安裝期間由OUI啟動的方式創建了數據庫,一般情況下,不建議在同一臺服務器上同時創建多個數據庫,這與SQL Server不同。每個Oracle實例只能管理一個數據庫,在一臺服務器上創建多個數據庫需要創建多個實例,在Oracle中可行但是不建議,Oracle服務于多應用程序是通過方案的方式來分隔應用程序,不像SQL Server可以創建多個數據庫來管理不同的應用程序。
使用Database Creation Assistant(DBCA)程序創建數據庫非常簡單,它使用數據庫模板來加速且標準化數據庫的創建過程。下面以BookLib數據庫為例,介紹如何使用這個工具創建一個圖書館數據庫。
(1)單擊“開始”菜單中的Oracle程序組中的“配置和移植工具”程序組,打開程序組中的“Database Creation Assistant”菜單項,將打開DBCA工具。
首先顯示一個歡迎頁面,單擊“下一步”按鈕后,將看到DBCA可以執行的操作。DBCA可以被用于創建數據庫,重新配置一個已經存在的數據庫、刪除一個數據庫和管理數據庫模板,如圖2.1所示。
圖2.1 DBCA的可以執行的操作界面
注意:數據庫模板是一個已經保存的數據庫的設置集合,可以使得用戶很容易地創建一個與模板數據庫相同配置的副本。
(2)在確認了“創建數據庫”選項后,單擊“下一步”按鈕,DBCA將進入到模板選擇窗口,如圖2.2所示。
在該窗口中可以看到如下3個可供使用的模板:
一般用途或事務處理,支持普通用途和事務處理的數據庫,適用于大多數事務型的數據庫系統,這是默認選項,也是使用得最多的選項。
定制數據庫,使用此模板可以自己創建定制的數據庫。
數據倉庫,大型的復雜查詢的數據倉庫環境數據庫。所謂“數據倉庫”是指將聯機事務處理數據庫積累的大量資料,用數據倉庫理論所特有的存儲架構進行系統的分析整理,主要用來分析處理、數據挖掘,主要用于一些面向主題的數據分析工作。
圖2.2 選擇數據庫模板
如果想知道每種模板的具體的參數配置信息,單擊右下角的“顯示詳細資料”按鈕,將顯示模板所使用的詳細資料,如圖2.3所示。
圖2.3 模板參數詳細資料
DBCA的數據庫模板以XML的形式而存在,可以從ORACLE_HOME\assistants\ dbca\templates文件夾中找到這些模板文件。由于BookLib是一個普通的數據庫和事務處理數據庫,因此選擇第一項作為數據庫模板。
(3)接下來需要指定數據庫標識符。在該窗口中,需要指定在分布式計算環境中的數據庫全局名稱,通常由數據庫名.域名組成,對于本機多實例的區分來說,是由Oracle系統標識符(SID)標識的,這兩個名稱可以相同,但是如果數據庫是在多服務器集群之間使用,則需要注意全局數據庫的命名,如圖2.4所示。
圖2.4 數據庫標識符的設置
Oracle系統會利用環境變量ORACLE_SID指定當前默認的數據庫,因此可以通過設置環境ORACLE_SID來設置當前操作系統上的默認的數據庫SID,這個名稱也與DB_NAME初始化參數相同。
(4)在配置了全局數據庫名稱之后,接下來進入到Oracle管理選項配置窗口,在該窗口中,可以配置Oracle企業管理器。Oracle企業管理器是一個界面友好的Web數據庫管理工具,主要用來進行數據庫的控制,一般只用來控制單個數據庫,更高級的選項是使用網格控制在一臺計算機上控制所有的數據庫。在這里使用默認的配置選項,即由DBCA對Oracle企業管理器進行配置,如圖2.5所示。
圖2.5 Oracle管理選項配置
注意:管理選項的自動維護任務頁面,提示是否要啟動Oracle的自動維護任務,它可以定期地進行Oracle數據庫系統的優化工作,一般建議選中這個選項。
(5)在配置了管理選項后單擊“下一步”按鈕,將進入到數據庫身份驗證窗口,要求用戶必須為Oracle數據庫的4個系統賬戶指定管理口令,如圖2.6所示。
圖2.6 配置身份證明窗口
SYS賬戶是所有Oracle數據字典的擁有者,SYSTEM賬戶擁有管理性視圖和其他Oracle管理基礎結構組件,DBSNMP和SYSMAN由Oracle企業管理器使用。
注意:除了這幾個賬戶之外,Oracle還具有很多管理賬戶,但是這些賬戶在Oracle數據庫創建時被鎖定,僅在需要時才啟用。
盡管可以為每個賬戶指定不同的密碼,但是出于簡單易記的考慮,這里為所有的賬戶使用相同的管理性的密碼。
(6)確認了密碼之后,在存儲選項窗口中,要求指定數據庫文件的存儲方法。文件系統是大多數數據庫系統的首選,而ASM自動存儲管理是一個用于磁盤管理的高級技術,它取代了傳統的基于卷標的管理,可以用來管理成百上千的磁盤,如圖2.7所示。
DBCA在創建數據庫的過程中會創建很多文件,在存儲選項中可以指定由模板中指定的文件路徑,或者是自己選擇一個存儲位置。
(7)在配置了數據庫的路徑后,DBCA要求配置數據恢復選項,在這一步中,要求指定一個閃回區域(即快速恢復區),用來存儲由RMAN(恢復管理器)創建的備份和歸檔重做日志。也可以指定快速恢復區的最大磁盤空間,這個值依賴于數據庫的大小、數據庫方案和期望的歸檔重做日志的大小,如圖2.8所示。
圖2.7 指定數據庫文件的存儲選項
注意:出于安全性的考慮,應該將這個區域指定到與數據庫系統不同的磁盤。
圖2.8 指定快速恢復選項
除了指定閃回區域外,還可以指定是否允許歸檔日志,這也是一個被建議的選項,如果不進行歸檔重做日志,除非先關閉數據庫,否則不能創建一個創建數據庫的備份。
(8)在數據庫內容區域,指定所創建的數據庫是否包含Oracle的示例方案內容,比如scott和hr方案,這些方案有助于學習Oracle數據庫,但是如果是正式使用的場合,則不建議包含這些示例的方案,如圖2.9所示。
圖2.9 指定數據庫的內容
(9)在確定了數據庫內容后,單擊“下一步”按鈕,將進入到初始化參數設置窗口,在該窗口中可以指定Oracle的內存大小、SGA和PGA的大小、I/O大小以及內存大小、所使用的字符集與連接模式等。由于這些設置涉及Oracle機制的較多內容,在此保留默認值即可。
(10)在數據庫存儲頁,DBCA提供了即將創建的數據庫的物理文件內容,此時可以通過文件位置變量按鈕來查看文件位置變量的具體位置,如圖2.10所示。
圖2.10 查看物理數據庫文件位置
(11)在第11步的數據庫創建選項窗口,指定是立即創建數據庫還是創建為數據庫模板,或者是僅創建數據庫腳本。由于本節是要立即創建數據庫,因此使用默認的選項即可,如圖2.11所示。
圖2.11 創建數據庫選項
(12)在確認了這些選項后,DBCA將顯示前面所有配置的概要窗口,該窗口列出了前面所有的配置選項,以方便用戶進行確認,如圖2.12所示。
(13)在確認了配置選項無誤后,單擊“確定”按鈕,DBCA將開始數據庫的創建工作,如圖2.13所示。
圖2.12 數據庫創建概要窗口 圖2.13 開始創建數據庫
(14)Oracle會創建一個數據庫實例及相應的數據庫文件,然后會啟動這個Oracle實例。在安裝完成后,Oracle會彈出如圖2.14所示的安裝結束對話框。
在創建提示窗口中,還可以對數據庫的口令進行進一步的管理,通過單擊“口令管理”按鈕,將彈出口令管理窗口,在該窗口中列出了可以設置口令的大部分用戶賬戶,對于已經鎖定的用戶,還可以輕松地進行解鎖,如圖2.15所示。
圖2.14 數據庫創建完成對話框
圖2.15 管理數據庫用戶口令在設置完口令后,單擊“退出”按鈕退出DBCA,此時可以通過Windows服務列表,單擊“開始|運行”菜單項,在彈出的對話框中輸入services.msc,將打開服務列表,在服務列表窗口中可以看到剛剛創建的BookLib實例服務已經成功運行,如圖2.16所示。
2.1.2 使用靜默方式創建數據庫
靜默方式又稱為非交互式方式,允許用戶在命令行模式下,通過一系列預先配置的參數來創建數據庫,這種模式不會彈出圖形化的向導界面。這種預先配置的模式可以快速創建一個數據庫。在命令行模式下,可以使用dbca -help命令查看dbca的命令行參數,如圖2.17所示。
圖2.16 數據庫實例服務
圖2.17 查看DBCA的命令行幫助
可以看到,要設置靜默模式,需要指定-silent標志指定用靜默模式運行,DBCA使用指定的值來創建數據庫,可以是一個響應文件或者是一個命令行的選項。響應文件是一個擴展名為.rsp的文本文件,它可以指定所有必要的參數。不過也可以使用命令行參數的方式,指定所有必需的參數來創建一個數據庫。
下面的示例將演示如何使用DBCA命令通過指定命令行參數的方式來創建一個名為ORCL的數據庫。示例命令如下:
C:\>dbca -silent -createDatabase -templateName General_Purpose.dbc
-gdbname ORCL
-sid ORCL -responseFile NO_VALUE -characterSet ZHS16GBK -memoryPercentage
30 -e
mConfiguration LOCAL
輸入 SYS 用戶口令:
oracle
輸入 SYSTEM 用戶口令:
oracle
輸入 DBSNMP 用戶口令:
oracle
輸入 SYSMAN 用戶口令:
oracle
復制數據庫文件
1% 已完成
3% 已完成
11% 已完成
18% 已完成
……
在這個命令中,-silent參數指示將要使用沒有圖形界面的靜默模式進行安裝,-templateName指定模板名稱,位于ORACLE_HOME\assistants\dbca\templates文件夾下,也可以使用DBCA圖形化工具來創建一個定制的模板文件。-gbdname指定全局數據庫名稱;-sid指定數據庫的全局唯一標識,這里都指定了ORCL;-responseFile指定響應文件,因為不使用響應文件,所以指定了NO_VALUE;-characterSet用于指定字符集,這里選擇了簡體中文ZHS16GBK;-memoryPercentage指定數據庫實例將占用的物理百分比;-emConfiguration用于指定Oracle企業管理器的安裝位置。
注意:《Oracle Database Installation Guide》文檔中包含了使用靜默模式的詳細的介紹,它介紹了響應文件的工作方式以及如何創建一個響應文件,對于需要了解使用DBCA和響應文件方式來創建數據庫的讀者來說,有必要進行仔細閱讀。
2.1.3 刪除現有數據庫
DBCA同樣提供了刪除數據庫的選項,這個向導使得用戶可以非常輕松地將Oracle中已經存在的數據庫刪除。刪除數據庫包含刪除Oracle的例程和數據庫文件。使用DBCA刪除BookLib的過程如以下步驟所示。
(1)打開DBCA,在可執行的選項中選擇“刪除數據庫”,如圖2.18所示。選中了執行選項后,單擊“下一步”按鈕,將進入到數據庫選擇窗口,如圖2.19所示。
(2)在選擇了所要刪除的數據庫之后,單擊“完成”按鈕,DBCA將彈出確認提示,提示刪除將會移除數據庫實例和數據庫文件,在確保無誤后單擊“確定”按鈕,將開始進行數據庫的刪除工作,如圖2.20所示。
圖2.18 刪除數據庫選項
圖2.19 選擇所要刪除的數據庫
圖2.20 開始數據庫的刪除工作
數據庫刪除完成后,可以看到在服務列表中的數據庫服務和監聽服務都已經被移除,這也就是說Oracle實例已經被刪除,并且磁盤上的數據庫文件也進行了刪除工作。
有時候使用DBCA不一定能夠正常刪除數據庫,此時可以手工來實現數據庫的刪除工作。手工刪除分為兩步:
刪除數據庫的數據文件、重做日志文件、控制文件及初始化參數文件。
對于Windows平臺,需要刪除數據庫實例,也就是刪除相關的服務進程。
可以使用SQL語句DROP DATABASE刪除一個數據庫,這個語句將會移除數據庫,刪除所有的控制文件和數據文件。如果數據庫使用了服務器參數文件SPFILE,那么SPFILE也會被刪除,不過它不會移除歸檔日志文件和備份文件,這可以通過RMAN來完成。
要能使用DROP DATABASE語句,除了具有SYSDBA的權限外,Oracle必須啟動到MOUNT狀態,并且處于RESTRICTED SESSION模式,示例語句如下:
SQL> SHUTDOWN IMMEDIATE
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> STARTUP MOUNT
ORACLE 例程已經啟動。
Total System Global Area 778387456 bytes
Fixed Size 1374808 bytes
Variable Size 268436904 bytes
Database Buffers 503316480 bytes
Redo Buffers 5259264 bytes
數據庫裝載完畢。
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
系統已更改。
SQL> DR
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。