




已閱讀5頁(yè),還剩70頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Oracle8i/9ORACLE傻 瓜 手 冊(cè)To be DBA or not to be, that is NOT the question.- Arron作者允許自由散發(fā)此文檔,但對(duì)其進(jìn)行的任何修改應(yīng)通知作者,以便于維護(hù)版本。作者email:zhou_Oracle8以8.1.5為界分為普通版本和internet版本。普通版版本號(hào)8.0.x,接觸較多的是8.0.5;internet版版本號(hào)包括8.1.5(Release 1),8.1.6(Release 2),8.1.7(Release 3)。普通版簡(jiǎn)稱Oracle 8,internet版簡(jiǎn)稱Oracle 8i。如果不作特別說明,文中凡出現(xiàn)Oracle 8i均指8.1.7版。Oracle9i目前出到第二版,版本號(hào)為9.2,簡(jiǎn)稱Oracle 9i。如果不作特別說明,文中凡出現(xiàn)Oracle 9i均指9.2版。本手冊(cè)介紹Oracle配置的基本方法,描述的是“所然”而不是“所以然”。全部操作以命令行方式出現(xiàn),不涉及GUI(只有白刃戰(zhàn)才是真正的戰(zhàn)斗)。鑒于大家對(duì)Windows已經(jīng)十分熟悉,同時(shí)為了避免Windows和Unix兩種截然不同的使用和開發(fā)風(fēng)格給描述帶來的復(fù)雜性,所以本手冊(cè)不介紹在Windows上的Oracle(上帝的歸上帝,愷撒的歸愷撒)。文中所有例子以oradb作為數(shù)據(jù)庫(kù)實(shí)例名,數(shù)據(jù)庫(kù)用戶dbuser,口令oracle。如果不作特別說明,關(guān)于Oracle 8i所有的例子都在Solaris 8 Intel Platform+Oracle 8iR3上通過,關(guān)于Oracle 9i所有的例子都在RedHat Linux 7.3+Oracle 9iR2上通過。附錄文件sample.tar包含全部示例,簡(jiǎn)稱附錄。大量使用表emp作為例子(參見附錄08_proc/proc/single/emp.sql):create table emp( nonumber(12) not null, namechar(20) not null, agenumber(6) not null, dutychar(1) not null, salarynumber(12) not null, upd_tsdate not null,primary key (no);開發(fā)中對(duì)應(yīng)emp表結(jié)構(gòu),定義其宿主結(jié)構(gòu)(參見附錄08_proc/proc/single/db.h):typedef structdoubleno;charname21;intage;charduty2;doublesalary;charupd_ts15; emp_t;修改歷史:2000/07版本1.02000/09版本1.1增加Linux安裝,export,import使用,數(shù)據(jù)庫(kù)監(jiān)控及優(yōu)化(utlbstat,utlestat,分析session),語言時(shí)間環(huán)境變量設(shè)置,Oracle8.0.5手工建庫(kù)腳本(wei_dick提供,稍加修改)2000/10版本1.2修改Linux安裝中RedHat 6.x+Oracle 8.1.6、數(shù)據(jù)庫(kù)優(yōu)化中配置文件和session分析、常用技巧中下載上傳文本數(shù)據(jù)和訪問他機(jī)數(shù)據(jù)庫(kù);增加創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例中數(shù)據(jù)字典參考、常用技巧中刪除冗余記錄、應(yīng)用開發(fā),常見錯(cuò)誤感謝liu_freeman,jiao_julian,huang_miles等人對(duì)開發(fā)工具所作的努力2001/03版本1.3修改安裝部分、init.ora配置、常用技巧、應(yīng)用開發(fā);增加手工建庫(kù)、MTS配置;重寫開發(fā)工具感謝li_bo的大力幫助2001/09版本1.4修改數(shù)據(jù)庫(kù)優(yōu)化,使之較系統(tǒng)化;增加應(yīng)用開發(fā)中多線程下的數(shù)據(jù)庫(kù)連接2002/04版本1.5修改數(shù)據(jù)庫(kù)優(yōu)化、多線程條件下數(shù)據(jù)庫(kù)編程;分離附錄的程序范例2002/12版本2.0重新安排內(nèi)容,增加Oracle 9i安裝配置、OCI開發(fā)、mysql安裝配置開發(fā),補(bǔ)充數(shù)據(jù)庫(kù)優(yōu)化、PROC開發(fā)Oracle8i/9ORACLE傻 瓜 手 冊(cè)1l安裝6l通用設(shè)置6lUnixWare77lOracle 87lHP-UX8lOracle 88lLinux9lkernel 2.0 & glibc 2.09lkernel 2.2 & glibc 2.19lkernel 2.4 & glibc 2.210lSolaris11l創(chuàng)建13lOracle 8 & 8i13l工具創(chuàng)建13l手工創(chuàng)建13lMTS(multi-threaded server)14l調(diào)整臨時(shí)表空間15l調(diào)整回滾表空間15l調(diào)整日志15l調(diào)整用戶表空間16l創(chuàng)建用戶17l創(chuàng)建數(shù)據(jù)對(duì)象17l創(chuàng)建只讀用戶18l啟動(dòng)及關(guān)閉數(shù)據(jù)庫(kù)實(shí)例19l網(wǎng)絡(luò)配置19lOracle 9i21l手工創(chuàng)建21l創(chuàng)建用戶表空間22l初始化文件配置23lOracle 8 & 8i23lOracle 9i25l工具26lsqlldr26lexp27limp28lsqlplus29l命令行參數(shù)29l提示符命令29lSET選項(xiàng)30l例子30l備份及恢復(fù)32lexport與import方式32l冷備份32l聯(lián)機(jī)全備份+日志備份32l設(shè)置32l步驟33l恢復(fù)33l注意要點(diǎn)34l數(shù)據(jù)庫(kù)優(yōu)化35l通用設(shè)置35l硬件配置35l應(yīng)用配置35l日常性能監(jiān)控36l實(shí)戰(zhàn)分析36l總體分析37l詳細(xì)分析37l專題分析39l巨表查詢39l對(duì)比測(cè)試41l上下載數(shù)據(jù)44l回滾空間快照陳舊(snapshot too old)46l常用技巧48l增加、更改和刪除域48l刪除冗余記錄49l更改字符集49l表數(shù)據(jù)遷移50l成批生成數(shù)據(jù)50l注意要點(diǎn)51l嵌入式SQL(C)53l編譯53lSQL語句54l內(nèi)部類型與宿主類型對(duì)應(yīng)54l連接和斷開54l事務(wù)55l標(biāo)準(zhǔn)SQL語句55l動(dòng)態(tài)SQL語句55l數(shù)組操作56l編程框架58l總體原則58l單線程和多線程59l開發(fā)工具60lOCIOracle Call Interface61l連接和斷開61l句柄層次61l連接流程61l斷開流程62lSQL語句62l事務(wù)62l無結(jié)果集的sql語句63l有結(jié)果集的sql語句63lLOB65l編程框架67l總體原則67lsql語句68l函數(shù)69l附錄MYSQL72l安裝配置72l管理72l初始調(diào)整72l建立用戶對(duì)象73l開發(fā)73l連接和斷開73l無結(jié)果集的sql語句74l有結(jié)果集的sql74l錯(cuò)誤處理75l 安裝所有參見內(nèi)容都在附件01_install_02_create_03_init/下。l 通用設(shè)置文件系統(tǒng)swap創(chuàng)建文件系統(tǒng)時(shí)應(yīng)考慮Oracle對(duì)swap的需要,大約每個(gè)oracle服務(wù)進(jìn)程將占用10-20Mswap空間,通常操作系統(tǒng)建議2倍于內(nèi)存的swap空間,數(shù)據(jù)庫(kù)系統(tǒng)可能要求更多些。操作系統(tǒng)用戶和環(huán)境變量Oracle文檔要求為數(shù)據(jù)庫(kù)系統(tǒng)的管理和使用建立3個(gè)或更多的組,但這個(gè)需求是可以忽略的,實(shí)踐中并沒有體現(xiàn)其必要性。為簡(jiǎn)化操作起見,只建立dba組,即擁有更新軟件和管理最高權(quán)限(SYSDBA)的操作系統(tǒng)用戶組,此組稱為OSDBA,屬于此組的用戶可以SYSDBA身份登錄進(jìn)任何一個(gè)數(shù)據(jù)庫(kù)實(shí)例,簡(jiǎn)單的,只建立一個(gè)用戶,習(xí)慣上使用oracle的名稱。$ groupadd dba$ useradd g dba d /home/oracle m s /bin/bash oracle確定oracle 系統(tǒng)的根目錄ORACLE_BASE,如/opt/oracle,所有的軟件和配置都在這個(gè)目錄下展開,雖然并非一定需要如此,但這是一個(gè)良好的習(xí)慣。同時(shí)確定軟件安裝的起始點(diǎn)ORACLE_HOME,通常在ORACLE_BASE下。修改oracle用戶的.profile,加入以下各行,或者修改/etc/profile,使每一個(gè)用戶都獲得環(huán)境變量設(shè)置umask 022ORACLE_BASE=/opt/oracleORACLE_HOME=$ORACLE_BASE/product/版本號(hào)(如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 動(dòng)態(tài)連接路徑,Unixware中要確保/usr/ucb/lib在/usr/ccs/lib之后出現(xiàn)TMPDIR=/tmp 安裝中Oracle會(huì)在此目錄下存儲(chǔ)相當(dāng)數(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”指顯示信息時(shí)所用的語言,竊以為憑大家的英語水平足夠應(yīng)付,如改為SIMPLIFIED CHINESE,在不帶中文支持的終端上就沒人能看懂了?!癆merica”指地區(qū)“ZHS16CGB231280”指Client工具使用的字符集,一般使用”ZHS16CGB231280”,Oracle8i已支持到”ZHS16GBK”NLS_DATE_FORMAT=YYYYMMDDHH24MISSOracle的date類型過于靈活,為統(tǒng)一時(shí)間格式,利于編程,應(yīng)將時(shí)間的輸入輸出格式限定為14位字符串,如”20000101235959”據(jù)oracle文檔,此參數(shù)可按照session,操作系統(tǒng)用戶環(huán)境,init.ora由高到低的優(yōu)先級(jí)順序設(shè)置,依次覆蓋。相關(guān)系統(tǒng)表:v$nls_parameters v$nls_valid_valuesX-WindowOracle 8的安裝程序是光盤mount點(diǎn)/bin/orainst,使用字符界面,不用考慮X-Window。Oracle 8i和9i使用光盤mount點(diǎn)/runInstaller進(jìn)行安裝,它是用Java編寫的圖形界面,對(duì)中文處理有問題,所以應(yīng)在進(jìn)入X-Window前確保語言(LANG)和地域(LC_ALL,LC_TYPE,)環(huán)境變量不是中文。LANG=CLC_ALL=C安裝選項(xiàng)Oracle 8i的主要軟件包在安裝選項(xiàng)Enterprise中,但并不包括proc,必須進(jìn)行第二次安裝,可選擇安裝選項(xiàng)Client中的programmer。Oracle 9i的主要軟件包在安裝選項(xiàng)Enterprise安裝選項(xiàng)中,但并不包括proc,必須進(jìn)行第二次安裝,一定要選擇安裝選項(xiàng)Client中的Administrator。runInstaller的穩(wěn)定性欠佳,建議每次安裝結(jié)束后,先退出,再進(jìn)行下一次安裝。l UnixWare7l Oracle 8確認(rèn)操作系統(tǒng)的交換分區(qū)swap不少于350M認(rèn)為該打的補(bǔ)丁統(tǒng)統(tǒng)打上,寧濫毋缺。UnixWare7.0.1必須打的補(bǔ)丁為ptf7033,ptf7051,ptf7052,ptf7068,ptf7096。將/etc/default/login中的ulimit設(shè)為大于2113674(稍大一點(diǎn)即可,太大會(huì)有問題)將/etc/conf/node.d/async中的600改為666修改以下核心參數(shù)核心參數(shù)必需值解釋SHMMAX2147483647共享內(nèi)存段最大尺寸SHMMNI100系統(tǒng)共享內(nèi)存段標(biāo)識(shí)最大數(shù)目SHMSEG15每個(gè)進(jìn)程所能使用最大共享內(nèi)存段數(shù)目SEMMNI100核心信號(hào)量標(biāo)識(shí)最大數(shù)目SEMMSL150每個(gè)信號(hào)量標(biāo)識(shí)包含的信號(hào)量個(gè)數(shù)SCORLIM0X7FFFFFFFCore文件最大尺寸HCORLIM0X7FFFFFFFSDATLIM0X7FFFFFFF進(jìn)程堆最大尺寸HDATLIM0X7FFFFFFFSVMMLIM0X7FFFFFFF進(jìn)程最大映射地址HVMMLIM0X7FFFFFFFSFSZLIM0X7FFFFFFF進(jìn)程文件最大偏移量HFSZLIM0X7FFFFFFFSFNOLIM128進(jìn)程能打開的最大文件個(gè)數(shù)HFNOLIM2048NPROC20+(8*MAXUSERS)MAX:125000ARG_MAX1,048,576NPBUF100I/O緩沖區(qū)數(shù)目MAXUP1000用戶同時(shí)使用的最大進(jìn)程個(gè)數(shù)STRTHRESH0X500000流能使用的最大字節(jié)數(shù)為優(yōu)化應(yīng)用系統(tǒng)修改以下核心參數(shù)核心參數(shù)參考值解釋MSGMAX8192消息最大尺寸MSGMNB81920消息隊(duì)列尺寸MSGMNI2048系統(tǒng)能并存的最大消息隊(duì)列數(shù)目MSGSSZ16384MSGTQL4096系統(tǒng)能并用的消息頭數(shù)目SEMMNI1024SEMMSL150也可通過編輯/etc/conf/cf.d/stune達(dá)到同樣效果重新連接內(nèi)核,重起或運(yùn)行/etc/conf/bin/idbuild B修改核心參數(shù)SEMMAP時(shí),注意要同時(shí)修改/etc/conf/mtune.d/ipc中相應(yīng)的MAX值建立/var/opt/oracle,使oracle成為此目錄屬主mount oracle光盤,通常mount目錄為/SD-CDROM_1root用戶,ORACLE_OWNER=oracle,執(zhí)行光盤上orainst中oratab.sh,建立/var/opt/oracle/oratab安裝時(shí),選custom方式,安裝時(shí)不建立數(shù)據(jù)庫(kù),字符集可選Simplified Chinesel HP-UXl 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ù)參考值解釋bufpages61992緩沖頁(yè)dbc_max_pct10動(dòng)態(tài)緩存占內(nèi)存最大百分比dbc_min_pct10動(dòng)態(tài)緩存占內(nèi)存最小百分比nbuf設(shè)定共享庫(kù)目錄SHLIB_PATH,不是LD_LIBRARY_PATHSHLIB_PATH=$SHLIB_PATH:$ORACLE_HOME/lib;export SHLIB_PATHl Linuxl kernel 2.0 & glibc 2.0代表產(chǎn)品為Red Hat Linux 5.1。Oracle 8在RedHat5.1上能成功安裝,安裝軟件包為805ship.tgz一般不會(huì)在RedHat5.1上安裝Oracle8i以上的版本修改共享內(nèi)存最大尺寸限制:在系統(tǒng)初始化腳本/etc/rc.d/rc.sysinit中加入:echo 2147483648 /proc/sys/kernel/shmmax重啟計(jì)算機(jī)。這樣做避免了Oracle分配的共享內(nèi)存碎片化,對(duì)提高效率有好處。原$ORACLE_HOME/precomp/admin/pcscfg.cfg中sys_include有誤,使proc預(yù)處理pc程序失敗,安裝結(jié)束后,應(yīng)設(shè)為:sys_include=(/usr/include,/usr/lib/gcc -lib/i386-redhat-linux/egcs-2.91.66/include)(視gcc版本而定)l 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重啟計(jì)算機(jī)。這樣做避免了Oracle分配的共享內(nèi)存碎片化,對(duì)提高效率有好處。原$ORACLE_HOME/precomp/admin/pcscfg.cfg中sys_include有誤,使proc預(yù)處理pc程序失敗,安裝結(jié)束后,應(yīng)設(shè)為sys_include=(/usr/include,/usr/lib/gcc -lib/i386-redhat-linux/egcs-2.91.66/include) (視gcc版本而定)l Oracle 8本來已經(jīng)很少有人在LinuxKernel2.2的系統(tǒng)中安裝Oracle8.0.5,但筆者實(shí)在懷念8.0.5純粹的文本界面和與之相處的無數(shù)不眠之夜,故收錄如下:Oracle8在kernel為2.2.x的linux中是無法正常運(yùn)行的,運(yùn)行可執(zhí)行文件如svrmgrl,sqlplus時(shí)會(huì)導(dǎo)致“Segmentation fault”,原因在于這些linux使用了默認(rèn)的libc2.1,與Oracle8程序重連接所需的libc2.0不兼容。Oracle的補(bǔ)丁程序其實(shí)是將Oracle可執(zhí)行程序的重連接腳本中l(wèi)ibc位置重新定位到libc2.0上去,并用舊版的gcc,ld重新連接可執(zhí)行文件。為此必須先在系統(tǒng)中安裝兼容庫(kù)和相應(yīng)工具。這是權(quán)宜之計(jì),而且僅對(duì)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版本號(hào)可略有差異oracle用戶安裝Oracle8.0.5但不創(chuàng)建instance,如選擇安裝文檔,則會(huì)產(chǎn)生如下錯(cuò)誤: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).這是安裝程序的一個(gè)bug不能創(chuàng)建目錄??蛇M(jìn)入$ORACLE_HOME/doc,mkdir p server.805/install,再選擇Retry從/pub/www/otn/linux下載glibcpatch.tgz,在某一目錄(如/patch)下展開cd /patchglibcpatch.sh經(jīng)過一段時(shí)間后,看到“Applied glibc patch for Oracle 8.0.5.x successfully”,表明補(bǔ)丁成功。此時(shí)就能成功創(chuàng)建instance。l Oracle 8i推薦使用典型安裝,否則會(huì)產(chǎn)生難以預(yù)料的錯(cuò)誤。l kernel 2.4 & glibc 2.2代表產(chǎn)品為Red Hat Linux 7.3,SuSE Linux 7.3。l Oracle 8i與Oracle8在RedHat Linux 6.2上安裝所遇到的問題一樣,Oracle 8i使用的glibc 2.1與操作系統(tǒng)自帶的glibc 2.2不能兼容,解決的方法也一樣,要安裝glibc 2.1的兼容庫(kù),并重新連接Oracle各組件。除非萬不得已,不建議使用兼容方式,因此省略安裝步驟,可參閱網(wǎng)上有關(guān)文檔。l Oracle 9iRedHat 7.3修改共享內(nèi)存最大尺寸限制:在系統(tǒng)初始化腳本/etc/rc.d/rc.sysinit中加入:echo 2147483648 /proc/sys/kernel/shmmax。修改信號(hào)量參數(shù):在系統(tǒng)初始化腳本/etc/rc.d/rc.sysinit中加入:echo 250 32000 100 128 /proc/sys/kernel/sem。這4個(gè)參數(shù)依次為SEMMSL(每個(gè)用戶擁有信號(hào)量最大數(shù)量),SEMMNS(系統(tǒng)信號(hào)量最大數(shù)量),SEMOPM(每次semop系統(tǒng)調(diào)用操作數(shù)),SEMMNI(系統(tǒng)信號(hào)量集最大數(shù)量),事實(shí)上只有SEMOP是需要調(diào)整的。重啟計(jì)算機(jī)。在連接可執(zhí)行文件過程中,會(huì)發(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ā)生任何問題。l SolarisOracle 8i在Solaris 7,8 Intel Platform上均能順利安裝,未測(cè)試Solaris Sparc Platform。Oracle 9i目前無Solaris Intel Platform上的版本,由于條件所限,未測(cè)試在Solaris Sparc Platform上的Oracle 9i。修改下列核心參數(shù):核心參數(shù)參考值解釋shmmax物理內(nèi)存/2共享內(nèi)存段最大尺寸shmmin1共享內(nèi)存段最小尺寸shmmni100系統(tǒng)共享內(nèi)存段標(biāo)識(shí)最大數(shù)目shmseg10每個(gè)進(jìn)程所能使用最大共享內(nèi)存段數(shù)目semmni100系統(tǒng)信號(hào)量標(biāo)識(shí)最大數(shù)目cesses+10每個(gè)信號(hào)量標(biāo)識(shí)包含的信號(hào)量數(shù)目semmnssum(cesses)*10+max(cesses)+count(init.ora)*10系統(tǒng)信號(hào)量最大數(shù)目semopm100每個(gè)semop調(diào)用最大操作數(shù)目rlim_fd_max4096系統(tǒng)文件句柄最大數(shù)目rlim_fd_cur1024每個(gè)進(jìn)程文件句柄最大數(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后再安裝,因?yàn)閛racle安裝時(shí)根據(jù)kernel動(dòng)態(tài)連接程序,如果先安裝oracle,即使隨后正確調(diào)整kernel,也會(huì)帶來許多問題,如oracle進(jìn)程不能拉起,instance創(chuàng)建失敗等。在kernel參數(shù)中,對(duì)數(shù)據(jù)庫(kù)運(yùn)行影響最大的主要是SHMMAX,SEMMNS,SEMMNI,SEMMSL,SHMMAX取內(nèi)存一半即可,SEMMNS理論上應(yīng)等于SEMMNI*SEMMSL,實(shí)際取一個(gè)較大值即可。SEMMNS: 信號(hào)量最大個(gè)數(shù),有些系統(tǒng)可忽略,因?yàn)樗cSEMMNI,SEMMSL有關(guān)。l 創(chuàng)建所有參見內(nèi)容都在附件01_install_02_create_03_init/下。以oracle用戶進(jìn)行操作,設(shè)定數(shù)據(jù)庫(kù)實(shí)例名為oradb(長(zhǎng)度建議不要超過8個(gè)字符)。l Oracle 8 & 8il 工具創(chuàng)建Oracle 8運(yùn)行$ORACLE_HOME/bin/orainst(安裝數(shù)據(jù)庫(kù)時(shí)必須選中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)建過程中會(huì)提示輸入osdba,osoper的UNIX組,這是向instance表明此組的成員享有角色sysdba或sysoper的權(quán)限,從而用connect / as sysdba替換掉connect internalOracle 8i進(jìn)入X WINDOW,運(yùn)行dbassistl 手工創(chuàng)建任何工具都有其局限性,熟練的數(shù)據(jù)庫(kù)管理員可采用手工方法創(chuàng)建數(shù)據(jù)庫(kù),以增加對(duì)系統(tǒng)的靈活控制。對(duì)于手工建庫(kù)Oracle 8與Oracle 8i的區(qū)別主要是建立的數(shù)據(jù)字典和存儲(chǔ)過程有些不同,Oracle8i的dbassistant可以生成建庫(kù)腳本供以后使用。取得/8i/initoradb.ora,編輯如db_name,control_file,dump_dest等參數(shù),以符合實(shí)際情況。如不需要生成remote_login_passwordfile,可在initoradb.ora中設(shè)remote_login_passwordfile=none;如需要,在initoradb.ora中設(shè)remote_login_passwordfile=exclusive,運(yùn)行orapwd file= password=必須創(chuàng)建新生成文件所要用到的目錄,如在配置文件中指定的bdump,cdump,udump等目錄,以及數(shù)據(jù)文件存儲(chǔ)目錄。將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ù),以符合實(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)l MTS(multi-threaded server)Oracle8使用兩種配置模式:dedicated server(專用模式)和shared server(即multi-threaded server共享模式),缺省使用專用模式。在連接數(shù)不很大且保持長(zhǎng)期連接的情況下,專用模式為每個(gè)連接設(shè)立一個(gè)專用oracle服務(wù)進(jìn)程,以保持較高的性能和穩(wěn)定性。而當(dāng)連接數(shù)上升到非常高的數(shù)目且不保持長(zhǎng)期連接時(shí),數(shù)據(jù)庫(kù)管理開銷增大,并且占用大量系統(tǒng)資源,給操作系統(tǒng)形成帶來極大的壓力。在這種情況下,共享模式更為有利,它通過緩沖池和預(yù)先設(shè)定數(shù)目的server提供服務(wù),每個(gè)連接不再有專用的oracle服務(wù)進(jìn)程,每次SQL操作由分配器(dispatcher)確定oracle服務(wù)進(jìn)程。multi-thread僅表示分配器展開的多個(gè)服務(wù)流程,并非操作系統(tǒng)意義上的多線程配置: initoradb.ora加入mts_dispatchers = “(address=(protocol=TCP)(dispatchers=10)” #初始分配器數(shù)量mts_max_dispatchers = 15 #最大分配器數(shù)量mts_servers = 50 #初始服務(wù)進(jìn)程數(shù)量mts_max_servers = 80 #最大服務(wù)進(jìn)程數(shù)量mts_service = oradb3#MTS方式下對(duì)外提供的數(shù)據(jù)庫(kù)服務(wù),非service_name表明instance能夠提供MTS服務(wù),不意味著取消dedicated方式 listener.ora應(yīng)刪除所有SID_LIST,SID_LIST的存在決定LISTENER以dedicated還是shared方式啟動(dòng)oracle連接。如SID_LIST存在,LISTENER不再接受instance的登記,以dedicated方式啟動(dòng)oracle連接; 如SID_LIST不存在,LISTENER啟動(dòng)時(shí)不為任何instance服務(wù),由instance來登記MTS service,以shared方式啟動(dòng)oracle連接 clientMTS在client端配置頗為怪誕,在tnsnames.ora中的host一定要寫數(shù)據(jù)庫(kù)server的名字,而且必須作全名解析,似乎server端接收到client端請(qǐng)求后會(huì)將主機(jī)字符串返回,應(yīng)此client端必須能夠解析,否則會(huì)報(bào)出諸如“database service not exist”的錯(cuò)誤 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS=(PROTOCOL=TCP)(HOST= dbserver)(PORT = 1521) )(CONNECT_DATA =(SERVICE_NAME = oradb)/etc/dbserver啟動(dòng):先起LISTENER,后起instance以下步驟均在數(shù)據(jù)庫(kù)open狀態(tài)下,由system用戶完成l 調(diào)整臨時(shí)表空間alter tablespace temp temporary;#Oracle8的orainst沒有將temp的缺省值permanent改為temporary,這樣用戶在temp上暫存的數(shù)據(jù)均為永久對(duì)象,很快將temp空間耗完。Oracle8i已修正。SQLalter tablespace temp default storage (initial 128k next 128k maxextents 5000 pctincrease 0);SQL查詢操作如group by,order by,distinct,join等需要在臨時(shí)段上展開數(shù)據(jù),須充分考慮臨時(shí)段的大小。如果實(shí)例啟動(dòng)參數(shù)指定hash_join_enabled=true(缺省為true),當(dāng)oracle選擇以hash join方式進(jìn)行表與表的聯(lián)接,oracle根據(jù)查詢操作的實(shí)際情況計(jì)算出hash_multiblock_io_count,此參數(shù)從屬于session,平時(shí)顯示為0,即hash join一次I/O讀寫需要的連續(xù)數(shù)據(jù)空間。這樣當(dāng)此參數(shù)大于臨時(shí)段的next擴(kuò)展塊時(shí),hash join操作會(huì)中斷。如果預(yù)知聯(lián)接表的規(guī)模比較巨大,可使用alter tablespace temp default storage(next )將next值設(shè)為較大值,待全部操作完成后,再恢復(fù)正常。l 調(diào)整回滾表空間先將建庫(kù)工具缺省設(shè)定的若干個(gè)回滾段刪除SQLalter rollback segment r01 offline;SQLdrop rollback segment r01;根據(jù)實(shí)際需要?jiǎng)?chuàng)建回滾段(如r01-r10),供聯(lián)機(jī)處理和批處理使用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)建一個(gè)尺寸無限制的回滾段(r99),供特殊用途SQLcreate rollback segment r99 storage(initial 128k next 128k maxextents 5000) tablespace rbs;如果在創(chuàng)建回滾段時(shí)使用create public rollback segment,則不需要在$ORACLE_HOME/dbs/initoradb.ora中用rollback_segment=()選項(xiàng)激活,推薦使用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)l 調(diào)整日志建立日志組SQLalter database add logfile group x(log1a,log1b) size 10M;增加日志組成員SQLalter database add logfile member log1c to group x;刪除日志數(shù)據(jù)庫(kù)實(shí)例至少需要2個(gè)日志組,只有狀態(tài)為inactive的日志組才能被刪除,而當(dāng)前日志組狀態(tài)為current,上一個(gè)切換的日志組狀態(tài)為active,這就意味著至少存在3個(gè)日志組才能刪除其中的一個(gè),如果要更新全部日志組,只能刪除一個(gè),再創(chuàng)建一個(gè),直至全部被更新。SQLalter database drop logfile group x;如果要?jiǎng)h除的日志組是當(dāng)前日志組,必須先將其切換至狀態(tài)為inactive,再刪除。SQLalter system switch logfile;刪除日志組成員SQLalter database drop logfile member log1c;相關(guān)系統(tǒng)表v$log 日志組狀態(tài)、占用空間、順序號(hào)等v$logfile 日志組文件l 調(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; 刪除表空間及其包含的所有數(shù)據(jù)對(duì)象相關(guān)系統(tǒng)表:user(dba)_tablespaces增加表空間尺寸假定表空間ts_data由path/data_01.dbf和path/data_02.dbf(500M)組成增加一個(gè)數(shù)據(jù)文件:SQLalter tablespace ts_data add datafile path/data_03.dbf size 500M;擴(kuò)大原有文件大?。篠QLalter database datafile path/data_01.dbf resize 1000M;移動(dòng)表空間數(shù)據(jù)文件假如要求為:將path1下data_01.dbf移至path2下,并把文件名改為data01.dbf實(shí)例處于關(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 datafile path/data_01.dbf to path2/data01.dbf;SQLalter database open;查看剩余空間SQLselect tablespace_name,sum(bytes),max(bytes) from dba_free_space group by tablespace_name;注意:空閑數(shù)據(jù)塊總和sum(bytes)夠用并不意味每個(gè)空閑塊都滿足分配需要,所以當(dāng)表空間不夠分配擴(kuò)展塊的時(shí)候,還要查看最大空閑數(shù)據(jù)塊max(bytes)的大小。合并空閑塊如果表空間上的數(shù)據(jù)對(duì)象經(jīng)常發(fā)生類似drop-create的變動(dòng),加之未采用統(tǒng)一的擴(kuò)展塊尺寸,使那些采用較大擴(kuò)展塊的數(shù)據(jù)對(duì)象不能利用較小的空間碎片,造成空間浪費(fèi)??赏ㄟ^將較小的空閑塊合并成較大的空閑塊的方法,減少空間浪費(fèi)。SQLalter tablespace tbsdata coalesce;l 創(chuàng)建用戶SQLcreate user dbuser identified by oracle default tablespace data temporary tablespace temp quota unlimited on data quota 0 on system quota 0 on tools quota 0 on users;SQLgrant connect to dbuser;SQLgrant create procedure to dbuser; 這些權(quán)限足夠用于開發(fā)及生產(chǎn)環(huán)境SQLgrant select on dba_pending_transactions to dbuser; 二階段提交過程中類似Tuxedo的軟件需要檢索掛起交易的狀態(tài),所以必須得到對(duì)此視圖的select權(quán)限,以sys用戶身份賦予修改用戶可使用alter user dbuser .參考命令:drop user dbuser cascade; 刪除用戶及其所有的數(shù)據(jù)對(duì)象revoke connect from dbuser;取消用戶角色權(quán)限相關(guān)系統(tǒng)表:user(dba)_usersuser(dba)_role_privs角色權(quán)限user(dba)_sys_privs系統(tǒng)權(quán)限user(dba)_tab_privs對(duì)其他用戶表操作的權(quán)限user_ts_quotas表空間限額l 創(chuàng)建數(shù)據(jù)對(duì)象相關(guān)系統(tǒng)表:user_catalog(cat)user_objects(obj)表和索引建立在表空間上,如果不指定表空間,使用本用戶的缺省表空間(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京物資學(xué)院《政治文化分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 信陽學(xué)院《兒歌彈唱(實(shí)驗(yàn))》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西農(nóng)業(yè)大學(xué)《中藥生物技術(shù)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 天府新區(qū)信息職業(yè)學(xué)院《藥物分離工程》2023-2024學(xué)年第一學(xué)期期末試卷
- 西安交通工程學(xué)院《古代文學(xué)一》2023-2024學(xué)年第一學(xué)期期末試卷
- 蘋果公司培訓(xùn)
- 浙江中醫(yī)藥大學(xué)濱江學(xué)院《幼兒語言活動(dòng)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 普洱學(xué)院《中國(guó)現(xiàn)當(dāng)代文學(xué)1》2023-2024學(xué)年第一學(xué)期期末試卷
- 小區(qū)安全培訓(xùn)
- 2025年醫(yī)療美容行業(yè)生物注射材料監(jiān)管政策及市場(chǎng)應(yīng)用報(bào)告
- GB/T 32893-201610 kV及以上電力用戶變電站運(yùn)行管理規(guī)范
- GB 17681-1999易燃易爆罐區(qū)安全監(jiān)控預(yù)警系統(tǒng)驗(yàn)收技術(shù)要求
- 魚骨圖分析方法及培訓(xùn)課件
- 監(jiān)理抽檢表-11交通安全設(shè)施工程
- 部編版一年級(jí)語文下冊(cè)知識(shí)點(diǎn)總結(jié)歸納(全冊(cè))
- 創(chuàng)業(yè)園入駐和退出管理辦法
- 市委辦招考人員筆試試題
- 贛州市贛縣縣鄉(xiāng)鎮(zhèn)街道社區(qū)行政村統(tǒng)計(jì)表
- 《苯的同系物》名師教案
- 《寡人之于國(guó)也》課件
- 小兒靜脈留置針穿刺技巧與護(hù)理培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論