




已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Oracle8i/9ORACLE傻 瓜 手 冊To be DBA or not to be, that is NOT the question.- Arron作者允許自由散發(fā)此文檔,但對其進行的任何修改應(yīng)通知作者,以便于維護版本。作者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( 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ā)中對應(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ù)庫監(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ù)和訪問他機數(shù)據(jù)庫;增加創(chuàng)建數(shù)據(jù)庫實例中數(shù)據(jù)字典參考、常用技巧中刪除冗余記錄、應(yīng)用開發(fā),常見錯誤感謝liu_freeman,jiao_julian,huang_miles等人對開發(fā)工具所作的努力2001/03版本1.3修改安裝部分、init.ora配置、常用技巧、應(yīng)用開發(fā);增加手工建庫、MTS配置;重寫開發(fā)工具感謝li_bo的大力幫助2001/09版本1.4修改數(shù)據(jù)庫優(yōu)化,使之較系統(tǒng)化;增加應(yī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ā)Oracle8i/9ORACLE傻 瓜 手 冊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)整臨時表空間15l調(diào)整回滾表空間15l調(diào)整日志15l調(diào)整用戶表空間16l創(chuàng)建用戶17l創(chuàng)建數(shù)據(jù)對象17l創(chuàng)建只讀用戶18l啟動及關(guān)閉數(shù)據(jù)庫實例19l網(wǎng)絡(luò)配置19lOracle 9i21l手工創(chuàng)建21l創(chuàng)建用戶表空間22l初始化文件配置23lOracle 8 & 8i23lOracle 9i25l工具26lsqlldr26lexp27limp28lsqlplus29l命令行參數(shù)29l提示符命令29lSET選項30l例子30l備份及恢復32lexport與import方式32l冷備份32l聯(lián)機全備份+日志備份32l設(shè)置32l步驟33l恢復33l注意要點34l數(shù)據(jù)庫優(yōu)化35l通用設(shè)置35l硬件配置35l應(yīng)用配置35l日常性能監(jiān)控36l實戰(zhàn)分析36l總體分析37l詳細分析37l專題分析39l巨表查詢39l對比測試41l上下載數(shù)據(jù)44l回滾空間快照陳舊(snapshot too old)46l常用技巧48l增加、更改和刪除域48l刪除冗余記錄49l更改字符集49l表數(shù)據(jù)遷移50l成批生成數(shù)據(jù)50l注意要點51l嵌入式SQL(C)53l編譯53lSQL語句54l內(nèi)部類型與宿主類型對應(yīng)54l連接和斷開54l事務(wù)55l標準SQL語句55l動態(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建立用戶對象73l開發(fā)73l連接和斷開73l無結(jié)果集的sql語句74l有結(jié)果集的sql74l錯誤處理75l 安裝所有參見內(nèi)容都在附件01_install_02_create_03_init/下。l 通用設(shè)置文件系統(tǒng)swap創(chuàng)建文件系統(tǒng)時應(yī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”指顯示信息時所用的語言,竊以為憑大家的英語水平足夠應(yīng)付,如改為SIMPLIFIED CHINESE,在不帶中文支持的終端上就沒人能看懂了?!癆merica”指地區(qū)“ZHS16CGB231280”指Client工具使用的字符集,一般使用”ZHS16CGB231280”,Oracle8i已支持到”ZHS16GBK”NLS_DATE_FORMAT=YYYYMMDDHH24MISSOracle的date類型過于靈活,為統(tǒng)一時間格式,利于編程,應(yī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編寫的圖形界面,對中文處理有問題,所以應(yīng)在進入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é)束后,先退出,再進行下一次安裝。l UnixWare7l 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ù)必需值解釋SHMMAX2147483647共享內(nèi)存段最大尺寸SHMMNI100系統(tǒng)共享內(nèi)存段標識最大數(shù)目SHMSEG15每個進程所能使用最大共享內(nèi)存段數(shù)目SEMMNI100核心信號量標識最大數(shù)目SEMMSL150每個信號量標識包含的信號量個數(shù)SCORLIM0X7FFFFFFFCore文件最大尺寸HCORLIM0X7FFFFFFFSDATLIM0X7FFFFFFF進程堆最大尺寸HDATLIM0X7FFFFFFFSVMMLIM0X7FFFFFFF進程最大映射地址HVMMLIM0X7FFFFFFFSFSZLIM0X7FFFFFFF進程文件最大偏移量HFSZLIM0X7FFFFFFFSFNOLIM128進程能打開的最大文件個數(shù)HFNOLIM2048NPROC20+(8*MAXUSERS)MAX:125000ARG_MAX1,048,576NPBUF100I/O緩沖區(qū)數(shù)目MAXUP1000用戶同時使用的最大進程個數(shù)STRTHRESH0X500000流能使用的最大字節(jié)數(shù)為優(yōu)化應(yīng)用系統(tǒng)修改以下核心參數(shù)核心參數(shù)參考值解釋MSGMAX8192消息最大尺寸MSGMNB81920消息隊列尺寸MSGMNI2048系統(tǒng)能并存的最大消息隊列數(shù)目MSGSSZ16384MSGTQL4096系統(tǒng)能并用的消息頭數(shù)目SEMMNI1024SEMMSL150也可通過編輯/etc/conf/cf.d/stune達到同樣效果重新連接內(nèi)核,重起或運行/etc/conf/bin/idbuild B修改核心參數(shù)SEMMAP時,注意要同時修改/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安裝時,選custom方式,安裝時不建立數(shù)據(jù)庫,字符集可選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緩沖頁dbc_max_pct10動態(tài)緩存占內(nèi)存最大百分比dbc_min_pct10動態(tài)緩存占內(nèi)存最小百分比nbuf設(shè)定共享庫目錄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一般不會在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é)束后,應(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重啟計算機。這樣做避免了Oracle分配的共享內(nèi)存碎片化,對提高效率有好處。原$ORACLE_HOME/precomp/admin/pcscfg.cfg中sys_include有誤,使proc預處理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,但筆者實在懷念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)中安裝兼容庫和相應(yī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)建目錄??蛇M入$ORACLE_HOME/doc,mkdir p server.805/install,再選擇Retry從/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。l Oracle 8i推薦使用典型安裝,否則會產(chǎn)生難以預料的錯誤。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的兼容庫,并重新連接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。修改信號量參數(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ā)生任何問題。l 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)存段最大尺寸shmmin1共享內(nèi)存段最小尺寸shmmni100系統(tǒng)共享內(nèi)存段標識最大數(shù)目shmseg10每個進程所能使用最大共享內(nèi)存段數(shù)目semmni100系統(tǒng)信號量標識最大數(shù)目cesses+10每個信號量標識包含的信號量數(shù)目semmnssum(cesses)*10+max(cesses)+count(init.ora)*10系統(tǒng)信號量最大數(shù)目semopm100每個semop調(diào)用最大操作數(shù)目rlim_fd_max4096系統(tǒng)文件句柄最大數(shù)目rlim_fd_cur1024每個進程文件句柄最大數(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理論上應(yīng)等于SEMMNI*SEMMSL,實際取一個較大值即可。SEMMNS: 信號量最大個數(shù),有些系統(tǒng)可忽略,因為他與SEMMNI,SEMMSL有關(guān)。l 創(chuàng)建所有參見內(nèi)容都在附件01_install_02_create_03_init/下。以oracle用戶進行操作,設(shè)定數(shù)據(jù)庫實例名為oradb(長度建議不要超過8個字符)。l Oracle 8 & 8il 工具創(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,運行dbassistl 手工創(chuàng)建任何工具都有其局限性,熟練的數(shù)據(jù)庫管理員可采用手工方法創(chuàng)建數(shù)據(jù)庫,以增加對系統(tǒng)的靈活控制。對于手工建庫Oracle 8與Oracle 8i的區(qū)別主要是建立的數(shù)據(jù)字典和存儲過程有些不同,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)l 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應(yīng)刪除所有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端請求后會將主機字符串返回,應(yīng)此client端必須能夠解析,否則會報出諸如“database service not exist”的錯誤 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS=(PROTOCOL=TCP)(HOST= dbserver)(PORT = 1521) )(CONNECT_DATA =(SERVICE_NAME = oradb)/etc/dbserver啟動:先起LISTENER,后起instance以下步驟均在數(shù)據(jù)庫open狀態(tài)下,由system用戶完成l 調(diào)整臨時表空間alter tablespace temp temporary;#Oracle8的orainst沒有將temp的缺省值permanent改為temporary,這樣用戶在temp上暫存的數(shù)據(jù)均為永久對象,很快將temp空間耗完。Oracle8i已修正。SQLalter tablespace temp default storage (initial 128k next 128k maxextents 5000 pctincrease 0);SQL查詢操作如group by,order by,distinct,join等需要在臨時段上展開數(shù)據(jù),須充分考慮臨時段的大小。如果實例啟動參數(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ù)據(jù)空間。這樣當此參數(shù)大于臨時段的next擴展塊時,hash join操作會中斷。如果預知聯(lián)接表的規(guī)模比較巨大,可使用alter tablespace temp default storage(next )將next值設(shè)為較大值,待全部操作完成后,再恢復正常。l 調(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)l 調(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 日志組文件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ù)對象相關(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 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)夠用并不意味每個空閑塊都滿足分配需要,所以當表空間不夠分配擴展塊的時候,還要查看最大空閑數(shù)據(jù)塊max(bytes)的大小。合并空閑塊如果表空間上的數(shù)據(jù)對象經(jīng)常發(fā)生類似drop-create的變動,加之未采用統(tǒng)一的擴展塊尺寸,使那些采用較大擴展塊的數(shù)據(jù)對象不能利用較小的空間碎片,造成空間浪費??赏ㄟ^將較小的空閑塊合并成較大的空閑塊的方法,減少空間浪費。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),所以必須得到對此視圖的select權(quán)限,以sys用戶身份賦予修改用戶可使用alter user dbuser .參考命令:drop user dbuser cascade; 刪除用戶及其所有的數(shù)據(jù)對象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對其他用戶表操作的權(quán)限user_ts_quotas表空間限額l 創(chuàng)建數(shù)據(jù)對象相關(guān)系統(tǒng)表:user_catalog(cat)user_objects(obj)表和索引建立在表空間上,如果不指定表空間,使用本用戶的缺省表空間(
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司烤肉策劃方案
- 公司組織烤肉派對活動方案
- 公司組織暖心小活動方案
- 公司春游一日游策劃方案
- 公司游園會年會策劃方案
- 公司暖冬捐衣活動方案
- 公司職場媽媽活動方案
- 公司甜品活動方案
- 公司春節(jié)抽獎活動方案
- 公司線下沙龍策劃方案
- GB/T 32893-201610 kV及以上電力用戶變電站運行管理規(guī)范
- GB 17681-1999易燃易爆罐區(qū)安全監(jiān)控預警系統(tǒng)驗收技術(shù)要求
- 魚骨圖分析方法及培訓課件
- 監(jiān)理抽檢表-11交通安全設(shè)施工程
- 部編版一年級語文下冊知識點總結(jié)歸納(全冊)
- 創(chuàng)業(yè)園入駐和退出管理辦法
- 市委辦招考人員筆試試題
- 贛州市贛縣縣鄉(xiāng)鎮(zhèn)街道社區(qū)行政村統(tǒng)計表
- 《苯的同系物》名師教案
- 《寡人之于國也》課件
- 小兒靜脈留置針穿刺技巧與護理培訓課件
評論
0/150
提交評論