Oracle入門基本知識一點通.docx_第1頁
Oracle入門基本知識一點通.docx_第2頁
Oracle入門基本知識一點通.docx_第3頁
Oracle入門基本知識一點通.docx_第4頁
Oracle入門基本知識一點通.docx_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Oracle入門基本知識一點通關(guān)鍵字:Oracle 首頁.NetC軟件考試思科技術(shù)IT廠商認證網(wǎng)絡(luò)安全網(wǎng)絡(luò)管理網(wǎng)絡(luò)工程JavaLinuxMail服務(wù)器MySQLOraclePhpPowerBuilderSQL SERVERUnixWeb及應用服務(wù)器Web開發(fā)Windows華為3Com技術(shù)Oracle入門基本知識一點通Oracle基本知識輕松學: 1. 一個表空間只能屬于一個數(shù)據(jù)庫。 2. 每個數(shù)據(jù)庫最少有一個控制文件(建議3個,分別放在不同的磁盤上)。 3. 每個數(shù)據(jù)庫最少有一個表空間(SYSTEM表空間)。 4. 建立SYSTEM表空間的目的是盡量將目的相同的表存放在一起,以提高使用效率,只應存放數(shù)據(jù)字典。 5. 每個數(shù)據(jù)庫最少有兩個聯(lián)機日志組,每組最少一個聯(lián)機日志文件。 6. 一個數(shù)據(jù)文件只能屬于一個表空間。 7. 一個數(shù)據(jù)文件一旦被加入到一個表空間中,就不能再從這個表空間中移走,也不能再加入到其他表空間中。 8. 建立新的表空間需要建立新的數(shù)據(jù)文件。 9. 數(shù)據(jù)文件被Oracle格式化為Oracle塊,Oracle9i以前版本中,Oracle塊的大小是在第一次創(chuàng)建數(shù)據(jù)庫時設(shè)定的。 10. 并且以后不能改變,要想改變,只能重建數(shù)據(jù)庫。 11. 一個段segment只能屬于一個表空間,但可以屬于多個數(shù)據(jù)文件。 12. 一個區(qū)extent只能屬于一個數(shù)據(jù)文件,即區(qū)間(extent)不能跨越數(shù)據(jù)文件。 13. PCTFREE和PCTUSED總和不能大于等于100。 14. 單獨一個事務(wù)不能跨越多個回滾段。 15. 索引表不含ROWID值。 16. 擁有不同大小的回滾段沒有任何益處。 17. COMMIT后,數(shù)據(jù)不一定立即寫盤(數(shù)據(jù)文件)。 18. 一個事務(wù)即使不被提交,也會被寫入到重做日志中。 19. Oracle 8.0.4中,在初始安裝時建立的缺省數(shù)據(jù)庫,實例名為ORCL 。 20. 一個塊的最大長度為16KB(有2K、4K、8K、16K)。 每個數(shù)據(jù)庫最大文件數(shù)(按塊大?。?2K塊20000個文件 4K塊40000個文件 8K塊或以上65536個文件 21. Oracle server可以同時啟動多個數(shù)據(jù)庫 。 22. 一套操作系統(tǒng)上可以安裝多個版本的Oracle數(shù)據(jù)庫系統(tǒng)(UNIX可以,NT不可以)。 23. 一套Oracle數(shù)據(jù)庫系統(tǒng)中可以有多個Oracle數(shù)據(jù)庫及其相對應的實例 。 24. 每個Oracle數(shù)據(jù)庫擁有一個數(shù)據(jù)庫實例(INSTANCE)(OPS除外)。 25. 所以,一套操作系統(tǒng)上同時可以有多個Oracle數(shù)據(jù)庫實例啟動。 Oracle數(shù)據(jù)庫配置完全實戰(zhàn)手冊關(guān)鍵字:Oracle,數(shù)據(jù)庫 首頁.NetC軟件考試思科技術(shù)IT廠商認證網(wǎng)絡(luò)安全網(wǎng)絡(luò)管理網(wǎng)絡(luò)工程JavaLinuxMail服務(wù)器MySQLOraclePhpPowerBuilderSQL SERVERUnixWeb及應用服務(wù)器Web開發(fā)Windows華為3Com技術(shù)Oracle數(shù)據(jù)庫配置完全實戰(zhàn)手冊To be DBA or not to be, that is NOT the question. - Arron作者允許自由散發(fā)此文檔,但對其進行的任何修改應通知作者,以便于維護版本。作者email:zhou_Oracle8以8.1.5為界分為普通版本和internet版本。普通版版本號8.0.x,接觸較多的是8.0.5;internet版版本號包括8.1.5(Release 1),8.1.6(Release 2),8.1.7(Release 3)。普通版簡稱Oracle 8,internet版簡稱Oracle 8i。如果不作特別說明,文中凡出現(xiàn)Oracle 8i均指8.1.7版。Oracle9i目前出到第二版,版本號為9.2,簡稱Oracle 9i。如果不作特別說明,文中凡出現(xiàn)Oracle 9i均指9.2版。本手冊介紹Oracle配置的基本方法,描述的是“所然”而不是“所以然”。全部操作以命令行方式出現(xiàn),不涉及GUI(只有白刃戰(zhàn)才是真正的戰(zhàn)斗)。鑒于大家對Windows已經(jīng)十分熟悉,同時為了避免Windows和Unix兩種截然不同的使用和開發(fā)風格給描述帶來的復雜性,所以本手冊不介紹在Windows上的Oracle(上帝的歸上帝,愷撒的歸愷撒)。文中所有例子以oradb作為數(shù)據(jù)庫實例名,數(shù)據(jù)庫用戶dbuser,口令Oracle。如果不作特別說明,關(guān)于Oracle 8i所有的例子都在Solaris 8 Intel Platform+Oracle 8iR3上通過,關(guān)于Oracle 9i所有的例子都在RedHat Linux 7.3+Oracle 9iR2上通過。附錄文件sample.tar包含全部示例,簡稱附錄。大量使用表emp作為例子(參見附錄08_proc/proc/single/emp.sql):create table emp(no number(12) not null,name char(20) not null,age number(6) not null,duty char(1) not null,salary number(12) not null,upd_ts date not null,primary key (no);開發(fā)中對應emp表結(jié)構(gòu),定義其宿主結(jié)構(gòu)(參見附錄08_proc/proc/single/db.h):typedef structdouble no;char name21;int age;char duty2;double salary;char upd_ts15; emp_t;修改歷史:2000/07 版本1.02000/09 版本1.1增加Linux安裝,export,import使用,數(shù)據(jù)庫監(jiān)控及優(yōu)化(utlbstat,utlestat,分析session),語言時間環(huán)境變量設(shè)置,Oracle8.0.5手工建庫腳本(wei_dick提供,稍加修改)2000/10 版本1.2修改Linux安裝中RedHat 6.x+Oracle 8.1.6、數(shù)據(jù)庫優(yōu)化中配置文件和session分析、常用技巧中下載上傳文本資料和訪問他機數(shù)據(jù)庫;增加創(chuàng)建數(shù)據(jù)庫實例中資料字典參考、常用技巧中刪除冗余記錄、應用開發(fā),常見錯誤感謝liu_freeman,jiao_julian,huang_miles等人對開發(fā)工具所作的努力2001/03 版本1.3修改安裝部分、init.ora配置、常用技巧、應用開發(fā);增加手工建庫、MTS配置;重寫開發(fā)工具感謝li_bo的大力幫助2001/09 版本1.4修改數(shù)據(jù)庫優(yōu)化,使之較系統(tǒng)化;增加應用開發(fā)中多線程下的數(shù)據(jù)庫連接2002/04 版本1.5修改數(shù)據(jù)庫優(yōu)化、多線程條件下數(shù)據(jù)庫編程;分離附錄的程序范例2002/12 版本2.0重新安排內(nèi)容,增加Oracle 9i安裝配置、OCI開發(fā)、mysql安裝配置開發(fā),補充數(shù)據(jù)庫優(yōu)化、PROC開發(fā)Oracle傻 瓜 手 冊 11 安裝 61.1 通用設(shè)置 61.2 UnixWare7 71.2.1 Oracle 8 71.3 HP-UX 81.3.1 Oracle 8 81.4 Linux 91.4.1 kernel 2.0 & glibc 2.0 91.4.2 kernel 2.2 & glibc 2.1 91.4.3 kernel 2.4 & glibc 2.2 101.5 Solaris 112 創(chuàng)建 132.1 Oracle 8 & 8i 132.1.1 工具創(chuàng)建 132.1.2 手工創(chuàng)建 132.1.3 MTS(multi-threaded server) 142.1.4 調(diào)整臨時表空間 152.1.5 調(diào)整回滾表空間 152.1.6 調(diào)整日志 152.1.7 調(diào)整用戶表空間 162.1.8 創(chuàng)建用戶 172.1.9 創(chuàng)建資料對象 172.1.10 創(chuàng)建只讀用戶 182.1.11 激活及關(guān)閉數(shù)據(jù)庫實例 192.1.12 網(wǎng)絡(luò)配置 192.2 Oracle 9i 212.2.1 手工創(chuàng)建 212.2.2 創(chuàng)建用戶表空間 223 初始化文件配置 233.1 Oracle 8 & 8i 233.2 Oracle 9i 254 工具 264.1 sqlldr 264.2 exp 274.3 imp 284.4 sqlplus 294.4.1 命令行參數(shù) 294.4.2 提示符命令 294.4.3 SET選項 304.4.4 例子 305 備份及恢復 325.1 export與import方式 325.2 冷備份 325.3 聯(lián)機全備份+日志備份 325.3.1 設(shè)置 325.3.2 步驟 335.3.3 恢復 335.4 注意要點 346 數(shù)據(jù)庫優(yōu)化 356.1 通用設(shè)置 356.1.1 硬件配置 356.1.2 應用配置 356.1.3 日常性能監(jiān)控 366.2 實戰(zhàn)分析 366.2.1 總體分析 376.2.2 詳細分析 376.3 專題分析 396.3.1 巨表查詢 396.3.2 對比測試 416.3.3 上下載數(shù)據(jù) 446.3.4 回滾空間快照陳舊(snapshot too old) 467 常用技巧 487.1 增加、更改和刪除域 487.2 刪除冗余記錄 497.3 更改字符集 497.4 表數(shù)據(jù)遷移 507.5 成批生成資料 507.6 注意要點 518 嵌入式sql(C) 538.1 編譯 538.2 sql語句 548.2.1 內(nèi)部類型與宿主類型對應 548.2.2 連接和斷開 548.2.3 事務(wù) 558.2.4 標準sql語句 558.2.5 動態(tài)sql語句 558.2.6 數(shù)組操作 568.3 編程框架 588.3.1 總體原則 588.3.2 單線程和多線程 598.3.3 開發(fā)工具 609 OCIOracle Call Interface 619.1 連接和斷開 619.1.1 句柄層次 619.1.2 連接流程 619.1.3 斷開流程 629.2 sql語句 629.2.1 事務(wù) 629.2.2 無結(jié)果集的sql語句 639.2.3 有結(jié)果集的sql語句 639.2.4 LOB 659.3 編程框架 679.3.1 總體原則 679.3.2 sql語句 689.3.3 函數(shù) 6910 附錄mysql 7210.1 安裝配置 7210.2 管理 7210.2.1 初始調(diào)整 7210.2.2 建立用戶對象 7310.3 開發(fā) 7310.3.1 連接和斷開 7310.3.2 無結(jié)果集的sql語句 7410.3.3 有結(jié)果集的sql 7410.3.4 錯誤處理 751 安裝所有參見內(nèi)容都在附件01_install_02_create_03_init/下。1.1 通用設(shè)置文件系統(tǒng)swap創(chuàng)建文件系統(tǒng)時應考慮Oracle對swap的需要,大約每個Oracle服務(wù)進程將占用10-20Mswap空間,通常操作系統(tǒng)建議2倍于內(nèi)存的swap空間,數(shù)據(jù)庫系統(tǒng)可能要求更多些。操作系統(tǒng)用戶和環(huán)境變量Oracle文檔要求為數(shù)據(jù)庫系統(tǒng)的管理和使用建立3個或更多的組,但這個需求是可以忽略的,實踐中并沒有體現(xiàn)其必要性。為簡化操作起見,只建立dba組,即擁有更新軟件和管理最高權(quán)限(SYSDBA)的操作系統(tǒng)用戶組,此組稱為OSDBA,屬于此組的用戶可以SYSDBA身份登錄進任何一個數(shù)據(jù)庫實例,簡單的,只建立一個用戶,習慣上使用Oracle的名稱。$ groupadd dba$ useradd g dba d /home/Oracle m s /bin/bash Oracle確定Oracle 系統(tǒng)的根目錄Oracle_BASE,如/opt/Oracle,所有的軟件和配置都在這個目錄下展開,雖然并非一定需要如此,但這是一個良好的習慣。同時確定軟件安裝的起始點Oracle_HOME,通常在Oracle_BASE下。修改Oracle用戶的.profile,加入以下各行,或者修改/etc/profile,使每一個用戶都獲得環(huán)境變量設(shè)置umask 022Oracle_BASE=/opt/OracleOracle_HOME=$Oracle_BASE/product/版本號(如8.0.5,8.1.7,9.2.0等)Oracle_SID=oradbOracle_TERM=ansi 僅與Oracle8字符接口安裝有關(guān)ORA_NLS33=$Oracle_HOME/ocommon/nls/admin/data 字符集支持NLS_LANG=American_America.ZHS16CGB231280(Oracle8支持)|ZHS16GBK(Oracle8i支持)|ZHS16GB18030(Oracle9i支持)NLS_DATE_FORMAT=YYYYMMDDHH24MISSLD_LIBRARY_PATH=$Oracle_HOME/lib:$LD_LIBRARY_PATH 動態(tài)連接路徑,Unixware中要確保/usr/ucb/lib在/usr/ccs/lib之后出現(xiàn)TMPDIR=/tmp 安裝中Oracle會在此目錄下存儲相當數(shù)量的檔,所以TMPDIR所在的磁盤分區(qū)要確??臻e空間的大小,至少在1G左右PATH=$PATH:$Oracle_HOME/binexport Oracle_BASE Oracle_HOME Oracle_SID Oracle_TERM ORA_NLS33 NLS_LANG NLS_DATE_FORMAT LD_LIBRARY_PATH TMPDIR參見profile。注意:NLS_LANG=American_America.ZHS16CGB231280(ZHS16GBK)“American”指顯示信息時所用的語言,竊以為憑大家的英語水平足夠應付,如改為SIMPLIFIED CHINESE,在不帶中文支持的終端上就沒人能看懂了?!癆merica”指地區(qū)“ZHS16CGB231280”指Client工具使用的字符集,一般使用”ZHS16CGB231280”,Oracle8i已支持到”ZHS16GBK”NLS_DATE_FORMAT=YYYYMMDDHH24MISSOracle的date類型過于靈活,為統(tǒng)一時間格式,利于編程,應將時間的輸入輸出格式限定為14位字符串,如”20000101235959”據(jù)Oracle文檔,此參數(shù)可按照session,操作系統(tǒng)用戶環(huán)境,init.ora由高到低的優(yōu)先級順序設(shè)置,依次覆蓋。相關(guān)系統(tǒng)表:v$nls_parameters v$nls_valid_valuesX-WindowOracle 8的安裝程序是光盤mount點/bin/orainst,使用字符接口,不用考慮X-Window。Oracle 8i和9i使用光盤mount點/runInstaller進行安裝,它是用Java編寫的圖形接口,對中文處理有問題,所以應在進入X-Window前確保語言(LANG)和地域(LC_ALL,LC_TYPE,)環(huán)境變量不是中文。LANG=CLC_ALL=C安裝選項Oracle 8i的主要軟件包在安裝選項Enterprise中,但并不包括proc,必須進行第二次安裝,可選擇安裝選項Client中的programmer。Oracle 9i的主要軟件包在安裝選項Enterprise安裝選項中,但并不包括proc,必須進行第二次安裝,一定要選擇安裝選項Client中的Administrator。runInstaller的穩(wěn)定性欠佳,建議每次安裝結(jié)束后,先退出,再進行下一次安裝。1.2 UnixWare71.2.1 Oracle 8確認操作系統(tǒng)的交換分區(qū)swap不少于350M認為該打的補丁統(tǒng)統(tǒng)打上,寧濫毋缺。UnixWare7.0.1必須打的補丁為ptf7033,ptf7051,ptf7052,ptf7068,ptf7096。將/etc/default/login中的ulimit設(shè)為大于2113674(稍大一點即可,太大會有問題)將/etc/conf/node.d/async中的600改為666修改以下核心參數(shù)核心參數(shù) 必需值 解釋SHMMAX 2147483647 共享內(nèi)存段最大尺寸SHMMNI 100 系統(tǒng)共享內(nèi)存段標識最大數(shù)目SHMSEG 15 每個進程所能使用最大共享內(nèi)存段數(shù)目SEMMNI 100 核心信號量標識最大數(shù)目SEMMSL 150 每個信號量標識包含的信號量個數(shù)SCORLIM 0X7FFFFFFF Core文件最大尺寸HCORLIM 0X7FFFFFFF SDATLIM 0X7FFFFFFF 進程堆最大尺寸HDATLIM 0X7FFFFFFF SVMMLIM 0X7FFFFFFF 進程最大映像地址HVMMLIM 0X7FFFFFFF SFSZLIM 0X7FFFFFFF 進程檔最大偏移量HFSZLIM 0X7FFFFFFF SFNOLIM 128 進程能打開的最大檔個數(shù)HFNOLIM 2048 NPROC 20+(8*MAXUSERS) MAX:125000ARG_MAX 1,048,576 NPBUF 100 I/O緩沖區(qū)數(shù)目MAXUP 1000 用戶同時使用的最大進程個數(shù)STRTHRESH 0X500000 流能使用的最大字節(jié)數(shù)為優(yōu)化應用系統(tǒng)修改以下核心參數(shù)核心參數(shù) 參考值 解釋MSGMAX 8192 消息最大尺寸MSGMNB 81920 消息隊列尺寸MSGMNI 2048 系統(tǒng)能并存的最大消息隊列數(shù)目MSGSSZ 16384 MSGTQL 4096 系統(tǒng)能并用的消息頭數(shù)目SEMMNI 1024 SEMMSL 150 也可通過編輯/etc/conf/cf.d/stune達到同樣效果重新連接內(nèi)核,重起或運行/etc/conf/bin/idbuild B修改核心參數(shù)SEMMAP時,注意要同時修改/etc/conf/mtune.d/ipc中相應的MAX值建立/var/opt/Oracle,使Oracle成為此目錄屬主mount Oracle光盤,通常mount目錄為/SD-CDROM_1root用戶,Oracle_OWNER=Oracle,執(zhí)行光盤上orainst中oratab.sh,建立/var/opt/Oracle/oratab安裝時,選custom方式,安裝時不建立數(shù)據(jù)庫,字符集可選Simplified Chinese1.3 HP-UX1.3.1 Oracle 8流程大致與Unixware相同,調(diào)整kernel參數(shù)可通過sam,選擇/Kernel Configuration/Actions/Apply Tuned Parameter Set/OLTP Database Server System,另外為提高I/O能力,還需調(diào)整以下參數(shù):核心參數(shù) 參考值 解釋bufpages 61992 緩沖頁dbc_max_pct 10 動態(tài)緩存占內(nèi)存最大百分比dbc_min_pct 10 動態(tài)緩存占內(nèi)存最小百分比nbuf 設(shè)定共享庫目錄SHLIB_PATH,不是LD_LIBRARY_PATHSHLIB_PATH=$SHLIB_PATH:$Oracle_HOME/lib;export SHLIB_PATH1.4 Linux1.4.1 kernel 2.0 & glibc 2.0代表產(chǎn)品為Red Hat Linux 5.1。Oracle 8在RedHat5.1上能成功安裝,安裝軟件包為805ship.tgz一般不會在RedHat5.1上安裝Oracle8i以上的版本修改共享內(nèi)存最大尺寸限制:在系統(tǒng)初始化腳本/etc/rc.d/rc.sysinit中加入:echo 2147483648 /proc/sys/kernel/shmmax重啟計算機。這樣做避免了Oracle分配的共享內(nèi)存碎片化,對提高效率有好處。原$Oracle_HOME/precomp/admin/pcscfg.cfg中sys_include有誤,使proc預處理pc程序失敗,安裝結(jié)束后,應設(shè)為:sys_include=(/usr/include,/usr/lib/gcc -lib/i386-redhat-Linux/egcs-2.91.66/include)(視gcc版本而定)1.4.2 kernel 2.2 & glibc 2.1代表產(chǎn)品為Red Hat Linux 6.2。修改共享內(nèi)存最大尺寸限制:在系統(tǒng)初始化腳本/etc/rc.d/rc.sysinit中加入:echo 2147483648 /proc/sys/kernel/shmmax重啟計算機。這樣做避免了Oracle分配的共享內(nèi)存碎片化,對提高效率有好處。原$Oracle_HOME/precomp/admin/pcscfg.cfg中sys_include有誤,使proc預處理pc程序失敗,安裝結(jié)束后,應設(shè)為sys_include=(/usr/include,/usr/lib/gcc -lib/i386-redhat-Linux/egcs-2.91.66/include) (視gcc版本而定) Oracle 8本來已經(jīng)很少有人在LinuxKernel2.2的系統(tǒng)中安裝Oracle8.0.5,但筆者實在懷念8.0.5純粹的文本接口和與之相處的無數(shù)不眠之夜,故收錄如下:Oracle8在kernel為2.2.x的Linux中是無法正常運行的,運行可執(zhí)行檔如svrmgrl,sqlplus時會導致“Segmentation fault”,原因在于這些Linux使用了默認的libc2.1,與Oracle8程序重連接所需的libc2.0不兼容。Oracle的補丁程序其實是將Oracle可執(zhí)行程序的重連接腳本中l(wèi)ibc位置重新定位到libc2.0上去,并用舊版的gcc,ld重新連接可執(zhí)行檔。為此必須先在系統(tǒng)中安裝兼容庫和相應工具。這是權(quán)宜之計,而且僅對RedHat有效。root用戶rpm ivh tcl-8.0.3-20.i386.rpm Oracle的Intelligent Agent要使用rpm ivh compat-binutils-5.2-.23.1.i386.rpmrpm ivh compat-glibc-5.2-.i386.rpmrpm ivh compat-egcs-5.2-1.0.3a.1.i386.rpmrpm ivh compat-egcs-c+-5.2-1.0.3a.1.i386.rpmrpm ivh compat-libs-5.2-1.i386.rpm版本號可略有差異Oracle用戶安裝Oracle8.0.5但不創(chuàng)建instance,如選擇安裝文檔,則會產(chǎn)生如下錯誤:A write error occurred while try to copy /home/Oracle/setup_Oracle/Unixdoc/server.805/install/lnx_server.805.map to /Oracle/product/8.0.5/doc/server.805/install/lnx_server.805(No such file or directory).這是安裝程序的一個bug不能創(chuàng)建目錄。可進入$Oracle_HOME/doc,mkdir p server.805/install,再選擇Retry從ftp.O/pub/www/otn/Linux下載glibcpatch.tgz,在某一目錄(如/patch)下展開cd /patchglibcpatch.sh經(jīng)過一段時間后,看到“Applied glibc patch for Oracle 8.0.5.x successfully”,表明補丁成功。此時就能成功創(chuàng)建instance。 Oracle 8i推薦使用典型安裝,否則會產(chǎn)生難以預料的錯誤。1.4.3 kernel 2.4 & glibc 2.2代表產(chǎn)品為Red Hat Linux 7.3,SuSE Linux 7.3。 Oracle 8i與Oracle8在RedHat Linux 6.2上安裝所遇到的問題一樣,Oracle 8i使用的glibc 2.1與操作系統(tǒng)自帶的glibc 2.2不能兼容,解決的方法也一樣,要安裝glibc 2.1的兼容庫,并重新連接Oracle各組件。除非萬不得已,不建議使用兼容方式,因此省略安裝步驟,可參閱網(wǎng)上有關(guān)文檔。 Oracle 9iRedHat 7.3修改共享內(nèi)存最大尺寸限制:在系統(tǒng)初始化腳本/etc/rc.d/rc.sysinit中加入:echo 2147483648 /proc/sys/kernel/shmmax。修改信號量參數(shù):在系統(tǒng)初始化腳本/etc/rc.d/rc.sysinit中加入:echo 250 32000 100 128 /proc/sys/kernel/sem。這4個參數(shù)依次為SEMMSL(每個用戶擁有信號量最大數(shù)量),SEMMNS(系統(tǒng)信號量最大數(shù)量),SEMOPM(每次semop系統(tǒng)調(diào)用操作數(shù)),SEMMNI(系統(tǒng)信號量集最大數(shù)量),事實上只有SEMOP是需要調(diào)整的。重啟計算機。在連接可執(zhí)行檔過程中,會發(fā)生中斷,打開$Oracle_HOME/ctx/lib/env_ctx.mk,找到INSO_LINK,在-L$(CTXLIB) -L$(LDLIBFLAG)m后加入-L$(LDLIBFLAG)dl,重試。SuSE 7.3與RedHat類似,但SuSE沒有/etc/rc.d/rc.sysinit,筆者選擇/etc/rc.d/rc,將核心參數(shù)修改添加到最后exit語句之前。安裝過程中沒有發(fā)生任何問題。1.5 SolarisOracle 8i在Solaris 7,8 Intel Platform上均能順利安裝,未測試Solaris Sparc Platform。Oracle 9i目前無Solaris Intel Platform上的版本,由于條件所限,未測試在Solaris Sparc Platform上的Oracle 9i。修改下列核心參數(shù):核心參數(shù) 參考值 解釋shmmax 物理內(nèi)存/2 共享內(nèi)存段最大尺寸shmmin 1 共享內(nèi)存段最小尺寸shmmni 100 系統(tǒng)共享內(nèi)存段標識最大數(shù)目shmseg 10 每個進程所能使用最大共享內(nèi)存段數(shù)目semmni 100 系統(tǒng)信號量標識最大數(shù)目semmsl cesses+10 每個信號量標識包含的信號量數(shù)目semmns sum(cesses)*10+max(cesses)+count(init.ora)*10 系統(tǒng)信號量最大數(shù)目semopm 100 每個semop調(diào)用最大操作數(shù)目rlim_fd_max 4096 系統(tǒng)文件句柄最大數(shù)目rlim_fd_cur 1024 每個進程檔句柄最大數(shù)目修改/etc/system,并重啟使核心參數(shù)生效例:set shmsys:shminfo_shmmax=2147483648set shmsys:shminfo_shmmin=1set shmsys:shminfo_shmmni=100set shmsys:shminfo_shmseg=10set semsys:seminfo_semmni=200set semsys:seminfo_semmsl=200set semsys:seminfo_semmns=1000set semsys:seminfo_semopm=100set semsys:seminfo_semmap=200set semsys:seminfo_semmnu=250set semsys:seminfo_semvmx=32767set msgsys:msginfo_msgmni=200set msgsys:msginfo_msgmap=200set msgsys:msginfo_msgmax=65536set msgsys:msginfo_msgmnb=655360set msgsys:msginfo_msgssz=64set msgsys:msginfo_msgtql=1000set msgsys:msginfo_msgseg=16384set rlim_fd_max=4096set rlim_fd_cur=1024參見solaris_7_8/system注意:一定要先重建好kernel后再安裝,因為Oracle安裝時根據(jù)kernel動態(tài)連接程序,如果先安裝Oracle,即使隨后正確調(diào)整kernel,也會帶來許多問題,如Oracle進程不能拉起,instance創(chuàng)建失敗等。在kernel參數(shù)中,對數(shù)據(jù)庫運行影響最大的主要是SHMMAX,SEMMNS,SEMMNI,SEMMSL,SHMMAX取內(nèi)存一半即可,SEMMNS理論上應等于SEMMNI*SEMMSL,實際取一個較大值即可。SEMMNS: 信號量最大個數(shù),有些系統(tǒng)可忽略,因為他與SEMMNI,SEMMSL有關(guān)。2 創(chuàng)建所有參見內(nèi)容都在附件01_install_02_create_03_init/下。以O(shè)racle用戶進行操作,設(shè)定數(shù)據(jù)庫實例名為oradb(長度建議不要超過8個字符)。2.1 Oracle 8 & 8i2.1.1 工具創(chuàng)建Oracle 8運行$Oracle_HOME/bin/orainst(安裝數(shù)據(jù)庫時必須選中Oracle installer),選擇create database object,安裝接口中選Oracle Enterprise Server(RDBMS) mount point暫為$Oracle_BASE,字符集為ZHS16CGB231280或ZHS16GBK,調(diào)整system,tools,users,rbs,temp,redolog等尺寸。創(chuàng)建過程中會提示輸入osdba,osoper的Unix組,這是向instance表明此組的成員享有角色sysdba或sysoper的權(quán)限,從而用connect / as sysdba替換掉connect internalOracle 8i進入X WINDOW,運行dbassist2.1.2 手工創(chuàng)建任何工具都有其局限性,熟練的數(shù)據(jù)庫管理員可采用手工方法創(chuàng)建數(shù)據(jù)庫,以增加對系統(tǒng)的靈活控制。對于手工建庫Oracle 8與Oracle 8i的區(qū)別主要是建立的資料字典和存儲過程有些不同,Oracle8i的dbassistant可以生成建庫腳本供以后使用。取得/8i/initoradb.ora,編輯如db_name,control_file,dump_dest等參數(shù),以符合實際情況。如不需要生成remote_login_passwordfile,可在initoradb.ora中設(shè)remote_login_passwordfile=none;如需要,在initoradb.ora中設(shè)remote_login_passwordfile=exclusive,運行orapwd file= password=必須創(chuàng)建新生成檔所要用到的目錄,如在配置文件中指定的bdump,cdump,udump等目錄,以及數(shù)據(jù)文件存儲目錄。將initoradb.ora轉(zhuǎn)移到$Oracle_BASE/admin/oradb/pfile/,并連接到$Oracle_HOME/dbs/initoradb.ora。ln s $Oracle_BASE/admin/oradb/pfile/initoradb.ora $Oracle_HOME/dbs/initoradb.ora取得8i/createdb.sh,編輯如pfile,數(shù)據(jù)文件目錄等參數(shù),以符合實際情況,并轉(zhuǎn)移到$Oracle_BASE/admin/oradb/create/下,執(zhí)行。相關(guān)系統(tǒng)表:v$databasev$datafile(file#,ts#,name)v$tablespace(ts#,name)v$parameter(sqlshow parameter)v$sga(sqlshow sga)2.1.3 MTS(multi-threaded server)Oracle8使用兩種配置模式:dedicated server(專用模式)和shared server(即multi-threaded server共享模式),缺省使用專用模式。在連接數(shù)不很大且保持長期連接的情況下,專用模式為每個連接設(shè)立一個專用Oracle服務(wù)進程,以保持較高的性能和穩(wěn)定性。而當連接數(shù)上升到非常高的數(shù)目且不保持長期連接時,數(shù)據(jù)庫管理開銷增大,并且占用大量系統(tǒng)資源,給操作系統(tǒng)形成帶來極大的壓力。在這種情況下,共享模式更為有利,它通過緩沖池和預先設(shè)定數(shù)目的server提供服務(wù),每個連接不再有專用的Oracle服務(wù)進程,每次sql操作由分配器(dispatcher)確定Oracle服務(wù)進程。multi-thread僅表示分配器展開的多個服務(wù)流程,并非操作系統(tǒng)意義上的多線程配置: initoradb.ora加入mts_dispatchers = “(address=(protocol=TCP)(dispatchers=10)” #初始分配器數(shù)量mts_max_dispatchers = 15 #最大分配器數(shù)量mts_servers = 50 #初始服務(wù)進程數(shù)量mts_max_servers = 80 #最大服務(wù)進程數(shù)量mts_service = oradb3 #MTS方式下對外提供的數(shù)據(jù)庫服務(wù),非service_name表明instance能夠提供MTS服務(wù),不意味著取消dedicated方式 listener.ora應刪除所有SID_LIST,SID_LIST的存在決定LISTENER以dedicated還是shared方式激活Oracle連接。如SID_LIST存在,LISTENER不再接受instance的登記,以dedicated方式激活Oracle連接; 如SID_LIST不存在,LISTENER激活時不為任何instance服務(wù),由instance來登記MTS service,以shared方式激活Oracle連接 clientMTS在client端配置頗為怪誕,在tnsnames.ora中的host一定要寫數(shù)據(jù)庫server的名字,而且必須作全名解析,似乎server端接收到client端請求后會將主機字符串返回,應此client端必須能夠解析,否則會報出諸如“database service not exist”的錯誤 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS=(PROTOCOL=TCP)(HOST= dbserver)(PORT = 1521)(CONNECT_DATA =(SERVICE_NAME = oradb)/etc/hosts dbserver激活:先起LISTENER,后起instance以下步驟均在數(shù)據(jù)庫open狀態(tài)下,由system用戶完成2.1.4 調(diào)整臨時表空間alter tablespace temp temporary; #Oracle8的orainst沒有將temp的缺省值permanent改為temporary,這樣用戶在temp上暫存的資料均為永久對象,很快將temp空間耗完。Oracle8i已修正。sqlalter tablespace temp default storage (initial 128k next 128k maxextents 5000 pctincrease 0);sql查詢操作如group by,order by,distinct,join等需要在臨時段上展開資料,須充分考慮臨時段的大小。如果實例激活參數(shù)指定hash_join_enabled=true(缺省為true),當Oracle選擇以hash join方式進行表與表的聯(lián)接,Oracle根據(jù)查詢操作的實際情況計算出hash_multiblock_io_count,此參數(shù)從屬于session,平時顯示為0,即hash join一次I/O讀寫需要的連續(xù)資料空間。這樣當此參數(shù)大于臨時段的next擴展塊時,hash join操作會中斷。如果預知聯(lián)接表的規(guī)模比較巨大,可使用alter tablespace temp default storage(next )將next值設(shè)為較大值,待全部操作完成后,再恢復正常。2.1.5 調(diào)整回滾表空間先將建庫工具缺省設(shè)定的若干個回滾段刪除sqlalter rollback segment r01 offline;sqldrop rollback segment r01;根據(jù)實際需要創(chuàng)建回滾段(如r01-r10),供聯(lián)機處理和批處理使用sqlcreate rollback segment r01 storage(initial 128k next 128k maxextents 5000 optimal 5M) tablespace rbs;sqlalter rollback segment r01 online;注意修改$Oracle_HOME/dbs/initoradb.ora中的激活回滾段段名另創(chuàng)建一個尺寸無限制的回滾段(r99),供特殊用途sqlcreate rollback segment r99 storage(initial 128k next 128k maxextents 5000) tablespace rbs;如果在創(chuàng)建回滾段時使用create public rollback segment,則不需要在$Oracle_HOME/dbs/initoradb.ora中用rollback_segment=()選項激活,推薦使用public方式相關(guān)系統(tǒng)表:sqlselect segment_name, initial_extent, next_extent, max_extents, extents,bytes from dba_segments where segment_type=ROLLBACK; #回滾段占用空間狀況sqlselect segment_name, status from dba_rollback_segs; #回滾段狀態(tài)2.1.6 調(diào)整日志建立日志組sqlalter database add logfile group x(log1a,log1b) size 10M;增加日志組成員sqlalter database add logfile member log1c to group x;刪除日志數(shù)據(jù)庫實例至少需要2個日志組,只有狀態(tài)為inactive的日志組才能被刪除,而當前日志組狀態(tài)為current,上一個切換的日志組狀態(tài)為active,這就意味著至少存在3個日志組才能刪除其中的一個,如果要更新全部日志組,只能刪除一個,再創(chuàng)建一個,直至全部被更新。sqlalter database drop logfile group x;如果要刪除的日志組是當前日志組,必須先將其切換至狀態(tài)為inactive,再刪除。sqlalter system switch logfile;刪除日志組成員sqlalter database drop logfile member log1c;相關(guān)系統(tǒng)表v$log 日志組狀態(tài)、占用空間、順序號等v$logfile 日志組文件2.1.7 調(diào)整用戶表空間創(chuàng)建表空間假定表數(shù)據(jù)在ts_data,索引在ts_indexsqlcreate tablespace ts_data default storage(initial 10M next 10M maxextents 5000 pctincrease 0) datafile path/data_01.dbf size 500M;sqlcreate tablespace ts_index default storage(initial 5M next 5M maxextents 5000 pctincrease 0) datafile path/index_01.dbf size 500M;參考命令:刪除表空間sqldrop tablespace data including contents; 刪除表空間及其包含的所有資料對象相關(guān)系統(tǒng)表:user(dba)_tablespaces增加表空間尺寸假定表空間ts_data由path/data_01.dbf和path/data_02.dbf(500M)組成增加一個數(shù)據(jù)文件:sqlalter tablespace ts_data add datafile path/data_03.dbf size 500M;擴大原有檔大?。簊qlalter database datafile path/data_01.dbf resize 1000M;移動表空間數(shù)據(jù)文件假如要求為:將path1下data_01.dbf移至path2下,并把文件名改為data01.dbf實例處于關(guān)閉狀態(tài)sqlplus “/ as sysdba”sqlstartup mount回到shell環(huán)境下$ mv path1/data_01.dbf path2/data01.dbf$ mv path1/data_02.dbf path2/data02.dbf再到sqlplus環(huán)境中sqlalter database rename file path1/data_01.dbf to path2/data01.dbf;或sqlalter tablespace tbsdata rename

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論