官术网_书友最值得收藏!

2.1 使用DBCA創建數據庫

創建數據庫并不難。該過程很快捷、簡單:只需要不到10分鐘,輸入只有兩個單詞的命令即可。但是,在開始創建過程之前,應理解幾個概念:實例、數據庫和數據字典。

2.1.1 實例、數據庫和數據字典

Oracle 服務器由實例和數據庫構成。二者是獨立的,但又聯系在一起。實例是RAM(Random Access Memory,隨機訪問內存)和CPU中的內存結構和進程,其存在是暫時的,用戶可以啟動和停止實例。數據庫是磁盤上的文件,一旦創建,將永久存在,直至刪除為止。創建實例只不過是構建內存結構并啟動進程。創建數據庫的任務由實例一次性完成,此后,實例可以多次打開和關閉數據庫。沒有實例,數據庫就無法訪問。

在數據庫中,有一組稱為“數據字典(data dictionary)”的表和其他對象。數據字典描述了數據庫中的所有邏輯和物理結構,其中包括存儲用戶數據的所有段。創建數據庫的過程就是創建支持數據字典需要的最小限度的物理結構,然后在其中創建數據字典。

實例由實例參數文件定義。參數文件包含的指令定義了如何在內存中建立實例,包括內存結構的大小和后臺進程的行為。構建實例后,實例將處于“不加載(no mount)”模式。在此模式中,實例是存在的,但沒有連接到數據庫。實際上,此時甚至還沒有創建數據庫。

所有參數(通過參數文件指定,或隱式設置)都具有默認值,但DB_NAME參數例外。DB_NAME參數給出實例將連接到的數據庫的名稱。此名稱也嵌套在控制文件中。CONTROL_FILES參數將控制文件的位置告知實例。此參數定義實例和數據庫之間的連接。當實例讀取控制文件時(通過讀取CONTROL_FILES參數或默認值來查找),如果數據庫名稱不匹配,將不會加載數據庫。加載模式(mount mode)表明實例已經成功地連接到控制文件。如果控制文件受損或不存在,就無法加載數據庫。控制文件雖然小,但很重要。

控制文件包含的指針指向構成數據庫其余部分的其他文件(聯機重做日志文件和數據文件)。加載數據庫后,實例通過查找并打開其他文件,從而打開數據庫。所謂打開的數據庫,即實例已打開了所有可用聯機重做日志文件和數據文件的數據庫。控制文件還包括數據文件到表空間的映射。這允許實例確定構成SYSTEM表空間的數據文件。在SYSTEM表空間中,它將找到數據字典。使用數據字典,實例可以將SQL代碼中提到的對象的引用解析為引用所在的段,然后計算出這些對象的物理位置。

在創建數據庫服務器時,必須執行以下步驟:

● 創建實例。

● 創建數據庫。

● 創建數據字典。

實際上,還有第四步:

● 使數據庫可用。

開始時與數據庫一起創建的數據字典功能完備,但無法使用。它能夠定義和管理用戶數據,但不能供人使用,因為此時的結構過于晦澀難懂。要讓用戶或DBA能夠真正使用數據庫,必須基于數據字典創建一組視圖,以人們能夠理解的格式呈現數據字典。另外,還需要許多PL/SQL包來添加功能。

通過運行ORACLE_HOME/rdbms/admin目錄中的一組SQL腳本來創建數據字典本身。這些腳本由CREATE DATABASE命令調用。第一個是sql.bsq,此腳本將接著調用其他多個腳本。這些腳本發出一系列命令,來創建構成數據字典的所有表和其他對象。

ORACLE_HOME/rdbms/admin目錄中的其他腳本(前綴為“cat”)生成使數據庫可以使用的視圖和其他對象。例如catalog.sql和 catproc.sql,應該始終在創建數據庫后立即運行。還有其他很多啟動某些功能的可選“cat”腳本——其中的一些可在創建時運行,剩下的可以隨后運行,以便日后安裝新功能。

2.1.2 使用DBCA創建數據庫

創建數據庫的步驟如下:

(1) 創建一個參數文件和(可選)一個口令文件。

(2) 使用參數文件在內存中構建一個實例。

(3) 執行CREATE DATABASE命令,執行結果將至少生成一個控制文件、兩個聯機重做日志文件、用于SYSTEM和SYSAUX表空間的兩個數據文件以及一個數據字典。其語法允許在這里執行更多的操作。

(4) 運行SQL腳本,生成數據字典視圖與補充的PL/SQL包。

(5) 運行SQL腳本,生成代碼,以執行Enterprise Manager Database Express以及該數據庫需要的任何選項(例如Java)。

(6) 在Windows系統中,因為Oracle作為一種Windows服務運行,所以還存在一個額外步驟。Oracle提供了實用程序oradim.exe來幫助創建該服務。

通過SQL*Plus命令提示行或GUI工具Database Configuration Assistant(DBCA)可以交互式地執行上述步驟。也可以使用腳本或包含響應文件的DBCA來自動完成這個創建過程。

無論運行在哪種平臺上,通過DBCA創建數據庫都是最簡單的方式。DBCA會創建一個參數文件和一個口令文件,然后生成若干腳本,以啟動實例,創建數據庫,生成數據字典和數據字典視圖。此外,還可以手工創建參數文件和口令文件,然后在SQL*Plus 會話中完成剩余的工作。許多DBA都將上述兩種方法結合使用:使用DBCA生成文件和腳本,然后查看和編輯它們,最后在SQL*Plus中運行它們。

要在Windows上啟動DBCA,可以使用“開始”菜單中的快捷項。導航路徑如下:開始 |程序 | Oracle-OraDB12Home1|Configuration and Migration Tools|Database Configuration Assistant。

請注意,此路徑取決于安裝時為Oracle Home指定的名稱。另外,還可以在CMD命令提示行上運行dbca.bat腳本。標準安裝完成后,該腳本會包含在Windows搜索路徑中。

要在Linux中啟動DBCA,首先應該設置始終為任何Linux DBA會話設置的環境變量:DISPLAY、ORACLE_ BASE、ORACLE_HOMEPATH。下面是執行此任務的腳本示例:

export DISPLAY=myhost:0.0

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1

export PATH=$ORACLE_HOME/bin:$PATH

注意,Base和Home將因安裝時做出的不同選擇而有所差異。在Windows環境中也存在變量,但通常由OUI定義為注冊表變量集,而不是外殼變量。DISPLAY變量必須設置為X服務器的地址。要啟動DBCA,請運行位于$ORACLE_HOME/bin目錄下的dbca外殼腳本。

提示:

如果任何Linux可執行文件與Oracle可執行文件同名,則確保將$ORACLE_HOME/bin目錄放在搜索路徑的開頭。一個知名的例證是rman,它既是Oracle工具,也是SUSE Linux實用程序。

請注意,除一個特例外,在創建數據庫時做出的每個選擇都可以在以后更改,但有些更改難以處理,還會導致停機。因此,不必做到諸事皆宜,但要盡量將其做好。

2.1.3 DBCA對話框

DBCA對話框包含約13步(取決于選項):

1.步驟1:數據庫操作

第一步可用的單選按鈕可以選擇要執行的操作類型:

創建數據庫:可以啟動一個對話框,提示創建一個實例和一個數據庫。

配置數據庫選項:可以調整已有的數據庫,可能是安裝其他功能。

刪除數據庫:可以刪除任何已有的實例和數據庫。

管理模板:模板是一個存儲、預配置的數據庫。系統提供了一些模板,也可以從已有的數據庫中創建自己的模板。

管理可插入的數據庫:可插入的數據庫是12c中的一個新功能,超出了OCA教學大綱的范圍。

2.步驟2:創建模式

Create A Database With Default Configuration選項可以訪問DBCA的一小部分功能。而Advanced Mode選項可以訪問所有功能。

3.步驟3:數據庫模板

模板是一個預配置數據庫的存儲版本,可以從中生成新數據庫。從模板中創建數據庫要比從頭創建快得多,但并不是所有的選項都可配置。Oracle提供了兩個示范模板:一個是一般用途的模板,它沒有什么特別的配置;另一個是數據倉庫模板,為查詢處理而不是事務處理進行了優化。Custom Database選項會生成一個對話框,它在數據庫的配置方式上非常自由,沒有預定義的限制。

4.步驟4:數據庫識別

該數據庫必須要有一個全局數據庫名。全局名由一個數據庫名稱和可選的數據庫域組成。數據庫名稱嵌入在控制文件中,指定為DB_NAME實例參數,在服務器機器上必須是唯一的。該名稱至多有8個字符,包括字母、數字、下劃線(_)、數字符號(#)和美元符號($),第一個字符必須是字母。是否區分大小寫可能隨平臺而異。數據庫的名稱是需要設置正確的一個值;它可以在以后更改,但這樣做需要停機。

數據庫域至多有128個字符,包括字母、數字、字符和數字符號(#)。句點可以用作域的不同元素之間的分隔符。域用于DB_DOMAIN實例參數。注意,雖然可以構造一個全局名稱,它類似于在TCP網絡上使用的完全限定的域名(FQDN),但它們之間是沒有關系的。

第二個需要的值是系統標識符(SID)。這是要創建的Oracle的實例名,用于ORACLE_SID參數。它不應與DB_NAME值相同,但為了方便,它們通常是相同的。在數據庫服務器中,它必須是唯一的。

提示:

用帶有域的全局名稱可以幫助區分不同機器上DB_NAME相同的數據庫。為此,許多DBA追加機器的FQDN作為DB_DOMAIN。但根本不需要使用DB_DOMAIN。一些DBA認為,域是一種負擔,可能是因為它們對數據庫鏈接和數據庫全局名稱的影響,會導致混亂。

5.步驟5:管理選項

使用Oracle企業管理器(OEM)完全是可選的。如果想使用它,就有兩個選項:Enterprise Manager Database Express 和Enterprise Manager Cloud Control。Enterprise Manager Database Express是OEM的一個版本,它在一個托管的數據庫中配置。如果安裝了第二個數據庫,就需要一個獨立的Database Express實例,在該數據庫中配置。Enterprise Manager Cloud Control是Oracle的通用管理系統,通常運行在專用的機器上,其代理程序運行在每個目標服務器上。如果有一個可用的Cloud Control安裝,DBCA就需要知道如何登錄上去。

6.步驟6:數據庫憑據

這一步提供SYS和SYSTEM模式的密碼。SYS是擁有數據字典本身的模式,密碼寫到外部密碼文件中。這個SYS用戶非常特殊,一些重要功能可能需要密碼(如啟動和關機)。SYSTEM模式其實只是一個用戶,類似于任何其他用戶,但它有許多強大的權限。

Oracle最佳實踐方式是,這些密碼應至少8個字符,包括大小寫字母,至少要有一個數字。字符可以是數據庫字符集中的任意字符(詳見本章后面的內容)。如果指定的密碼太簡單, DBCA就會發出警告,但仍允許繼續。

這里,Windows變體是提示用戶輸入擁有Oracle Home的操作系統賬戶的密碼。

提示:

最佳做法通常是:密碼應使用小范圍內的字符(大小寫字母、數字和較常見的標點符號),且以字母開頭。一些命令外殼解釋程序可能無法處理不太常見的字符。

7.步驟7:存儲位置

數據庫可以在ASM磁盤組或文件系統目錄中創建。無論用什么方式創建,都可以指定目的地,或者讓DBCA根據ORACLE_BASE環境變量的派生值,確定存儲數據庫文件的位置。這兩種存儲類型都可以選擇OMF(Oracle托管文件)。OMF允許Oracle控制所有數據庫文件的命名,并構建一個合適的目錄結構,來存儲它們。

本步驟的Recovery Related Files(恢復相關文件)允許指定一個FRA(快速恢復區),用作備份和其他與恢復相關的文件的默認位置,并啟用操作的歸檔日志模式。大多數(不是全部)產品數據庫都運行在歸檔日志模式下,但該模式可以在數據庫創建后的任何時刻啟動。

8.步驟8:數據庫選項

各個選項都是分開授予許可的,應根據自己的許可選擇或取消選擇。Sample Schemas標簽會讓DBCA把演示架構安裝到它們自己的表空間中。

9.步驟9:初始化參數

有300多個公開可見的初始化參數,數千個所謂的隱藏參數。DBCA為數量最少的參數提供提示,并鏈接到一個編輯器上,在該編輯器上,可以看到其他參數的默認值,設置自己需要的參數。DBCA對話框的第9步會提示實例要使用的總內存量,或者指定SGA(System Global Area,系統全局區域)和PGA(Program Global Area,程序全局區域)的值。SGA由實例使用,可以在所有會話中訪問;它分為許多子結構,其中一些可以單獨調整。PGA為每個連接的會話和進程劃分一個私有內存區域。DBCA對話框的這個階段設置了一些內存參數。

Sizing標簽顯示了兩個參數:DB_BLOCK_SIZE(但提示僅是Block Size)和PROCESSES。DB_BLOCK_SIZE很重要,它在創建數據庫后就不能修改。這是因為它指定了SYSTEM表空間數據文件格式化的塊的大小。SYSTEM表空間存儲數據字典,改變它,需要重建數據字典,這等價于創建新數據庫。默認的DB_BLOCK_SIZE是8KB。合法值是2KB、4KB、8KB、16KB和(一些平臺上)32KB。

Character Sets標簽允許選擇數據庫字符集和備選的國家字符集。數據庫字符集用于數據字典和所有的字符數據類型,但NVARCHAR2、NCHAR和NCLOB除外,它們使用國家字符集。在理論上,創建數據庫后,可以隨時改變字符集,但這是一個非常危險的過程,沒有人會輕易嘗試。許多DBA認為,最佳實踐方式是,不使用默認的字符集(它派生于操作系統),而使用Unicode,即AL32UTF8。

Connection Mode標簽允許配置共享服務器。這個主題在第14章討論。

提示:

沒有DBA會因為選擇默認的8KB作為DB_BLOCK_SIZE的值,而被解雇。使用其他值的情況很少見。但默認的字符集可能也不合適,尤其是客戶可能使用非美國英語時,使用默認字符集就不合適了。

10.步驟10:創建選項

在這一步,Create Database復選框將啟動實際的創建操作。Save As A Database Template復選框會根據前面的對話框生成一個存儲的模板,該模板以后可以使用多次(這是在第3步選定的)。最后,Generate Database Creation Scripts復選框將生成并保存一組腳本,這組腳本可以手動運行,創建數據庫。

11.步驟11:檢查先決條件

DBCA運行幾個簡短的“sanity檢查”,確認創建已完成。如果有任何失敗,就應解決它們,之后繼續檢查。然而,可以選擇忽略它們,繼續進行。

提示:

DBCA驗證檢查并不全面。錯誤可能只有在第13步才顯示出來。比較典型的是內存問題。例如,如果第9步為自動內存管理指定的內存量超過了系統上配置的共享內存,當時并不會顯示出錯。

12.步驟12:匯總

Summary窗口顯示了DBCA要做的工作。掃描報告,如果看到任何不喜歡的東西,可以使用Back按鈕,進行修改。

13.步驟13:進度頁

Progress Page窗口顯示腳本的創建 (如果要求),然后是數據庫創建的各個階段。這可能需要10分鐘,也可能需要一個小時或更多。其區別主要取決于是否使用了模板,選擇了什么選項,以及硬件規格。

練習2-1 用DBCA創建數據庫

使用圖形化DBCA工具創建一個數據庫。盡量多地重復這個練習,如果RAM或磁盤空間較少,就刪除任何以前創建的數據庫。重要的是,熟悉這個過程,嘗試對話框提供的各種選項。

根據平臺是Windows、Linux 或其他,一些響應會不同。區別是很明顯的,常與目錄命名約定相關。下面是應遵循的步驟:

(1) 登錄服務器。

以執行安裝過程的操作系統用戶的身份連接到服務器。標準賬戶名是oracle。

(2) 啟動DBCA。

在命令外殼上,確保設置了適當的環境變量集。下面是一個在Linux系統上使用bash 外殼程序的典型對話框:

        db121a $
        db121a $ export DISPLAY=192.168.56.1:0.0
        db121a $ xclock
        db121a $ export ORACLE_BASE=/u01/app/oracle
        db121a $ export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
        db121a $ export PATH=$ORACLE_HOME/bin:$PATH
        db121a $ which dbca
        /u01/app/oracle/product/12.1.0/dbhome_1/bin/dbca
        db121a $ dbca

DISPLAY變量設置為指向X服務器(通常是PC)的地址。運行任何X程序來測試它,比如X-Clock。如果在控制臺或者在VNC桌面上運行,這就是不必要的。接著,設置ORACLE_BASE值,假定一個OFA(Optimal Flexible Architecture,最優靈活架構)安裝(用戶oracle擁有的二進制文件)。ORACLE_HOME和PATH仍使用OFA標準。使用which實用程序確認,dbca在搜索路徑上,因此啟動它。

在Windows上,可以在“開始”菜單上找到一個到DBCA的鏈接,根據注冊表中的變量設置運行它。或者,也可以在命令提示符上手動控制一切,如下所示:

        c:\> set ORACLE_BASE=c:\app\oracle
        c:\> set ORACLE_HOME=%ORACLE_BASE%\product\12.1.0\dbhome_1
        c:\> set PATH=%ORACLE_HOME%\bin; %PATH%
        c:\> where dbca
        c:\app\oracle\product\12.1.0\dbhome_1\BIN\dbca.bat
        c:\> dbca

(3) 對提示的響應如下所示:

A.選擇Create Database單選按鈕。單擊Next按鈕。

B.選擇Advanced Mode單選按鈕。單擊Next按鈕。

C.選擇Custom Database單選按鈕。單擊Next按鈕。

注意,這里,根據在Grid Infrastructure 產品是否已安裝在服務器上,可能會顯示一個Oracle Restart提示。忽略它,繼續。

D.把Global Database Name和SID值都指定為orcl121。單擊Next按鈕。

E.選擇Configure Enterprise Manager (EM) Database Express復選框。單擊Next按鈕。

F.選擇Use The Same Administrative Password For All Accounts單選按鈕,并輸入Oracle121。單擊Next按鈕。

G.在Storage Type下拉框中選擇File System,并選擇Use Database File Locations From Template單選按鈕。其他使用默認值。這會讓DBCA在ORACLE_BASE下面創建數據庫和快速恢復區。單擊Next按鈕。

H.在Database Components標簽上,使用所有默認值。單擊Sample Schemas標簽,選擇Sample Schemas復選框。單擊Next按鈕。

I.可接受的內存設置取決于自己的環境,默認值可能合適,也可能不合適。這些值通常有效,甚至在規格非常低的系統上,也是如此。在Memory標簽上,選擇Typical單選按鈕,把Memory Size(SGA和PGA)的值設置為640MB,取消Use Automatic Memory Management復選框的選擇。

在Character Sets標簽上,選擇Use Unicode (AL32UTF8)單選按鈕,單擊Next按鈕。

J.選擇Create Database和Generate Database Creation Scripts復選框。注意創建腳本的目錄。單擊Next按鈕。

K.這一步不需要任何輸入。

L.研究匯總。單擊Finish按鈕。

M.生成腳本,其后的一個小模態對話框指出腳本的位置(如果沒有看到這個窗口,確保它沒有隱藏在其他對象后面)。單擊OK按鈕。

向導運行時,注意前兩頁創建了實例和數據庫,幾分鐘就完成了。而其他頁負責創建數據字典視圖和各種組件,需要的時間較長。

完成后,會顯示一個成功窗口,其中列出了訪問Enterprise Manager Database Express的URL(統一資源定位器),如下所示:

        http://dbl2la.example.com:5500/em

注意,這個URL以后要使用。

(4) 安裝后,確認自己可以使用SQL*Plus,登錄到新創建的數據庫上。

在操作系統的提示符上,把ORACLE_SID環境變量設置為數據庫實例的名字,然后登錄并注銷,在Windows上,這個例子如下所示:

        c:\> set ORACLE_SID=orcl121
        c:\> sqlplus / as sysdba
        SQL*Plus: Release 12.1.0.0.2 Beta on Sat Apr 6 12:10:42 2013
        Copyright (c) 1982, 2012, Oracle.  All rights reserved.
        Connected to:
        Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 - 64bit Beta
        With the Partitioning, OLAP, Data Mining and Real Application Testing options
        SQL> exit
        Disconnected from Oracle Database 12c Enterprise Edition
        Release 12.1.0.0.2 - 64bit Beta
        With the Partitioning, OLAP, Data Mining and Real Application Testing options
        c:\>

在Linux上,這個例子如下所示:

        db121a orcl121$ db121a orcl121$ export ORACLE_SID=orcl121
        db121a orcl121$ sqlplus / as sysdba
        SQL*Plus: Release 12.1.0.0.2 Beta on Sat Apr 6 14:08:35 2013
        Copyright (c) 1982, 2012, Oracle.  All rights reserved.
        Connected to:
        Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 - 64bit Beta
        With the Partitioning, OLAP, Data Mining and Real Application Testing options
        SQL> exit
        Disconnected from Oracle Database 12c Enterprise Edition
        Release 12.1.0.0.2 - 64bit Beta
        With the Partitioning, OLAP, Data Mining and Real Application Testing options
        db121a orcl121$

(5) 重復多次。

盡量經常做這個練習,做出自己的變體,直到熟悉所有的選項為止。在“步驟1:數據庫操作”中,可以選擇Delete Database單選按鈕,刪除以前創建的數據庫。

主站蜘蛛池模板: 读书| 昭觉县| 宜阳县| 会理县| 紫阳县| 邳州市| 马边| 宁陕县| 聂拉木县| 磐石市| 金湖县| 潍坊市| 澄迈县| 大厂| 报价| 丰台区| 灵石县| 天津市| 左贡县| 田阳县| 东海县| 时尚| 德昌县| 鹤岗市| 镇远县| 永嘉县| 新乐市| 临邑县| 昌吉市| 吉林市| 许昌县| 正蓝旗| 永胜县| 寿阳县| 泰兴市| 澄江县| 梅河口市| 修水县| 长白| 名山县| 白山市|