創(chuàng)建數(shù)據(jù)庫(kù)時(shí)的準(zhǔn)則
?
??? 本文介紹了創(chuàng)建數(shù)據(jù)庫(kù)是需要注意的基本準(zhǔn)則,對(duì)于剛剛?cè)腴T(mén)的DBA是非常有幫助的,我就是剛剛?cè)腴T(mén)的DBA,呵呵,在專(zhuān)職DBA的協(xié)助下,管理了幾個(gè)數(shù)據(jù)庫(kù)。暫時(shí)還不用自己建庫(kù),不過(guò)過(guò)一段時(shí)間開(kāi)始估計(jì)就需要自己動(dòng)手維護(hù)了。OK下面開(kāi)始:
?
1、數(shù)據(jù)庫(kù)的安裝介紹
?
??? 1、使用DCBA
?
??? 并不是新手才會(huì)使用到DCBA,它可以創(chuàng)建數(shù)據(jù)庫(kù)、產(chǎn)生創(chuàng)建腳本(修改為手工創(chuàng)建)、10g還可以創(chuàng)建RAC和ASM。
?
??? 2、先決條件
?
??? * 服務(wù)器內(nèi)存的合理分配
??? * 數(shù)據(jù)庫(kù)實(shí)例的配置及其隨后的啟動(dòng)
??? * 與數(shù)據(jù)庫(kù)相關(guān)的目錄結(jié)構(gòu)創(chuàng)建
?
??? 3、使用create database命令
?
?
2、Create Database命令
?
??? 01、創(chuàng)建時(shí)sys、system密碼子句可以設(shè)置sys、system的密碼
?
??? 02、controlfile reuse子句可重用已存在的控制文件
??????? (可以防止意外執(zhí)行create database,默認(rèn)是不重用)
?
??? 03、logfile參數(shù)可以定義聯(lián)機(jī)重做日志組和名稱(chēng)
?
??? 04、小心設(shè)置maxlogfiles、maxlogmembers、maxloghistory、maxdatafiles、maxinstances參數(shù)值
??????? (除RAC外基本都用默認(rèn)值,完成后重新創(chuàng)建控制文件來(lái)更改這些參數(shù),除maxdatafiles)
?
??? 05、archivelog和noarchivelog來(lái)設(shè)置數(shù)據(jù)庫(kù)歸檔模式
?
??? 06、force logging參數(shù),可以禁止任何nologging操作
?
??? 07、character set參數(shù)設(shè)置數(shù)據(jù)庫(kù)字符集
?
??? 08、national character set可以為數(shù)據(jù)庫(kù)提供國(guó)際語(yǔ)言支持
?
??? 09、datafile子句可以為SYSTEM表空間定義數(shù)據(jù)文件
?
??? 10、extent management local子句可以將SYSTEM表空間定義為本地管理表空間
?
??? 11、default_temp_tablespace子句可以定義數(shù)據(jù)庫(kù)默認(rèn)臨時(shí)表空間
?
??? 12、set_time_zone子句可設(shè)置數(shù)據(jù)庫(kù)當(dāng)前時(shí)區(qū)
?
??? 13、(10g)set default子句用來(lái)定義默認(rèn)表空間類(lèi)型是否大文件表空間
?
??? 14、(10g)sysaux datafile子句來(lái)定義與SYSAUX表空間相關(guān)聯(lián)的數(shù)據(jù)文件和表空間
?
??? 15、(10g)default tablespace子句創(chuàng)建表空間,作為所有用戶(hù)的默認(rèn)表空間
?
?
3、Oracle默認(rèn)的設(shè)置
?
??? 01、創(chuàng)建SYSTEM表空間,雖然配置了OMF參數(shù)可以自動(dòng)創(chuàng)建SYSTEM,但最好還是定義SYSTEM表空間的位置
?
??? 02、一般默認(rèn)用戶(hù)表空間都是SYSTEM,除非設(shè)置了default_tablespace
?
??? 03、如果SYSTEM表空間在本地進(jìn)行管理,且不通過(guò)Oracle管理文件創(chuàng)建,則必須定義默認(rèn)臨時(shí)表空間。
?
??? 04、使用自動(dòng)段空間管理,將SUSAUX表空間作為本地管理表空間來(lái)創(chuàng)建
?
??? 05、可以手動(dòng)定義聯(lián)機(jī)重做日志的名稱(chēng)和位置。默認(rèn)創(chuàng)建兩個(gè)重做日志組。
?
??? 06、創(chuàng)建兩個(gè)用戶(hù):SYS和SYSTEM(10g中必須定義初始密碼)
?
??? 07、最多可以給數(shù)據(jù)庫(kù)分配8個(gè)字符長(zhǎng)的名稱(chēng),若不在create database語(yǔ)句中,則是同db_name參數(shù)值
?
??? 08、若undo_management的值為auto,且使用Oracle管理文件,則默認(rèn)創(chuàng)建SYS_UNDOTBS撤銷(xiāo)表空間
??????? (可以用undo_tablespace手動(dòng)設(shè)置,無(wú)論哪種,都會(huì)在SYSTEM表空間創(chuàng)建SYSTEM回滾段)
?
??? 09、表空間都默認(rèn)為小文件表空間。一個(gè)小文件表空間可以由1022個(gè)數(shù)據(jù)文件組成,每個(gè)數(shù)據(jù)文件最多包含400萬(wàn)個(gè)數(shù)據(jù)庫(kù)塊。
??????? (大文件僅由一個(gè)數(shù)據(jù)文件組成,最多包含4G和數(shù)據(jù)庫(kù)塊)
?
??? 10、當(dāng)服務(wù)器上使用時(shí)區(qū)是有效時(shí)區(qū)時(shí),則數(shù)據(jù)庫(kù)時(shí)區(qū)自動(dòng)設(shè)置為該時(shí)區(qū),否則設(shè)為UTC
?
?
4、需要注意的安全問(wèn)題:
?
??? 1、創(chuàng)建完數(shù)據(jù)庫(kù)后,確保對(duì)SYS、SYSTEM密碼的修改,或在創(chuàng)建時(shí)直接指定密碼
?
??? 2、禁止任何不使用的賬戶(hù)
?
??? 3、如果需要重新創(chuàng)建數(shù)據(jù)庫(kù)來(lái)替換已有的數(shù)據(jù)庫(kù),則應(yīng)該將remote_login_passwordfile參數(shù)設(shè)置為exclusive
?
??? 4、創(chuàng)建密碼文件,且當(dāng)ORACLE_HOME改變時(shí),為新的ORACLE_HOME移動(dòng)或重新創(chuàng)建密碼文件
?
?
5、可以遵循的準(zhǔn)則:
?
??? 1、不要?jiǎng)?chuàng)建太多的數(shù)據(jù)庫(kù),而是盡量將數(shù)據(jù)都放入一個(gè)數(shù)據(jù)庫(kù)。
?
??? 2、數(shù)據(jù)庫(kù)名稱(chēng)推薦用小寫(xiě),5個(gè)字符標(biāo)準(zhǔn)命名,前4個(gè)指出相關(guān)工程,最后一個(gè)指出類(lèi)型(dev/prod/tst)
?
??? 3、聯(lián)機(jī)重做日志大小要大概保持每15分鐘切換一次
?
??? 4、遵循靈活體系結(jié)構(gòu)(OFA),使用Oracle推薦文件目錄及位置
?
??? 5、最初的數(shù)據(jù)庫(kù)最好使用DBCA創(chuàng)建,然后通過(guò)修改腳本后,手動(dòng)執(zhí)行創(chuàng)建
?
??? 6、為SGA分配足夠的內(nèi)存空間
?
??? 7、對(duì)新特性和新功能謹(jǐn)慎使用
?
?