




已閱讀5頁(yè),還剩65頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
主要內(nèi)容,Oracle 數(shù)據(jù)庫(kù)的組成結(jié)構(gòu) 管理臨時(shí)表空間 加快索引的創(chuàng)建 使用 SPFILE 作為初始化參數(shù)文件 使用 Profile 加強(qiáng)數(shù)據(jù)庫(kù)安全 監(jiān)控系統(tǒng)的鎖資源爭(zhēng)用 SQL語(yǔ)句調(diào)優(yōu),Oracle 數(shù)據(jù)庫(kù)的基本結(jié)構(gòu),Oracle 服務(wù)器,An Oracle server: Is a database management system that provides an open, comprehensive, integrated approach to information management Consists of an Oracle instance and an Oracle database,Oracle 服務(wù)器的主要組件,Instance,SGA,Redo Log Buffer,Shared Pool,Data Dictionary Cache,Library Cache,DBWR,SMON,PMON,CKPT,LGWR,Others,User process,Server process,PGA,Control files,Data files,Database,Database Buffer Cache,Redo Log files,Java Pool,Large Pool,Parameter file,Archived Log files,Oracle 實(shí)例,An Oracle instance: Is a means to access an Oracle database Always opens one and only one database Consists of memory and background process structures,Background process structures,Memory structures,Instance,SGA,Redo Log Buffer,Shared Pool,Data Dictionary Cache,Library Cache,DBWR,SMON,PMON,CKPT,LGWR,Others,Database Buffer Cache,Java Pool,Large Pool,Oracle Database,An Oracle database: Is a collection of data that is treated as a unit Consists of three file types,建立一個(gè)數(shù)據(jù)庫(kù)連接,Connecting to an Oracle instance: Establishing a user connection Creating a session,Session created,Database user,User process,Server process,Connection established,用戶進(jìn)程,A program that requests interaction with the Oracle server Must first establish a connection Does not interact directly with the Oracle server,Database user,Server process,User process,Connection established,服務(wù)器進(jìn)程,A program that directly interacts with the Oracle server Fulfills calls generated and returns results Can be dedicated or shared server,Connection established,Session created,Database user,User process,Server process,服務(wù)器進(jìn)程,sdjf_dom2_srv4:/oracle ps -ef | grep oracle oracle 2904150 2379866 0 Jan 27 - 0:06 oraclejzjf2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq) oracle 3866722 1 0 08:50:21 - 0:00 oraclejzjf1 (LOCAL=NO) oracle 3870846 1 0 11:34:20 - 0:00 oraclejzjf1 (LOCAL=NO) oracle 3895388 1 0 02:37:35 - 0:00 oraclejzjf1 (LOCAL=NO) oracle 3903652 1 0 20:14:28 - 1:28 oraclejzjf1 (LOCAL=NO),進(jìn)程的所有者通常為 oracle 用戶 進(jìn)程的名稱為:oracleSID 可以被安全的 kill,服務(wù)器進(jìn)程,sdjf_dom2_srv4:/oracle topas Name PID CPU% PgSp Owner oracle 561246 36.6 7.1 oracle oracle 2711644 6.7 2.3 rate oracle 3358774 2.0 7.4 oracle oracle 454698 0.1 16.1 oracle -執(zhí)行查詢 select s.sid, s.status, s.terminal, s.machine, gram from v$process p, v$session s where s.paddr = p.addr and p.spid = 561246;,察看 Top CPU 進(jìn)程 找到該進(jìn)程的 SID,服務(wù)器進(jìn)程,- 察看會(huì)話的屬性 select s.sid, s.status, gram, sa.sql_text, sa.hash_value from v$session s, v$sqlarea sa where s.sql_address = sa.address and s.sql_hash_value = sa.hash_value and s.sid = 1561; SID STATUS TERMINAL MACHINE PROGRAM - - - - - ACTIVE 菏澤計(jì)費(fèi) WORKGROUP菏澤計(jì)費(fèi) plsqldev.exe - 察看會(huì)話正在執(zhí)行的 SQL select sa.sql_text from v$session s, v$sqlarea sa where s.sql_address = sa.address and s.sql_hash_value = sa.hash_value and s.sid = 1488;,根據(jù) SID 察看會(huì)話的屬性 察看會(huì)話正在執(zhí)行的 SQL,服務(wù)器進(jìn)程,- 殺死服務(wù)器進(jìn)程 ps -ef | grep -v grep | grep LOCAL=NO | awk print $2| xargs kill -9,殺死服務(wù)器進(jìn)程,以加快實(shí)例的關(guān)閉,后臺(tái)進(jìn)程,Maintains and enforces relationships between physical and memory structures: Mandatory background processes: DBWn PMON CKPT LGWR SMON Optional background processes: ARCn LMDn QMNn CJQ0 LMON RECO Dnnn LMS Snnn LCKn Pnnn,后臺(tái)進(jìn)程,sdjf_dom2_srv4:/oracle ps -ef | grep ora_ oracle 466988 1 0 Jan 06 - 11:54 ora_smon_jzjf2 oracle 487480 1 0 Jan 06 - 15:08 ora_lmon_jzjf2 oracle 602182 1 0 Jan 06 - 14:54 ora_dbw0_jzjf2 oracle 704594 1 0 Jan 06 - 19:20 ora_pmon_jzjf2 oracle 737408 1 0 Jan 06 - 23:33 ora_ckpt_jzjf2,進(jìn)程的所有者通常為 oracle 用戶 進(jìn)程的名稱為:ora_后臺(tái)進(jìn)程類型_SID 被 kill 后可能會(huì)導(dǎo)致實(shí)例終止,管理臨時(shí)表空間,臨時(shí)表空間中的空間管理,OPS/RAC 中的每個(gè)實(shí)例僅創(chuàng)建一個(gè)臨時(shí)段,實(shí)例中的所有進(jìn)程將共享該排序段 實(shí)例啟動(dòng)后第一個(gè)利用磁盤執(zhí)行排序操作的進(jìn)程創(chuàng)建臨時(shí)段;實(shí)例關(guān)閉后,系統(tǒng)將清空臨時(shí)表空間 臨時(shí)空間的分配以 extent 為單位進(jìn)行,并通過(guò) SGA 中的Sort Extent Pool 對(duì)這些 extents 進(jìn)行管理。 每個(gè)實(shí)例會(huì)維護(hù)一個(gè)屬于自己的 SEP,并通過(guò)視圖v$sort_segment 向用戶開(kāi)放,臨時(shí)表空間中的空間管理,臨時(shí)表空間已經(jīng) 100% 滿了 遇到了 ORA-01652 “unable to extend temp segment by %s in tablespace %s”錯(cuò)誤 查詢 v$sort_segment 查詢 v$tempseg_usage,臨時(shí)表空間中的空間管理,select s.tablespace_name, s.total_blocks, s.used_blocks from v$sort_segment s; TABLESPACE_NAME TOTAL_BLOCKS USED_BLOCKS - - - TEMP 4420864 15104 select s.sid, gram, s.machine, t.extents, t.blocks from v$tempseg_usage t, v$session s where t.session_addr = s.saddr; SID PROGRAM MACHINE EXTENTS BLOCKS - - - - - 1247 plsqldev.exe JSJZXZXY 3 384,臨時(shí)表空間中的空間管理,在 OPS/RAC 中,當(dāng)一個(gè)實(shí)例需要臨時(shí)空間并且 SEP 中沒(méi)有可用的 extent 時(shí): 或者增長(zhǎng)臨時(shí)段 或者系統(tǒng)自動(dòng)從另一個(gè)實(shí)例 re-assign extent 增大參數(shù) PGA_AGGREGAGE_TARGET 參數(shù)值以盡量避免磁盤排序,select * from v$sysstat where name like %sort%; STATISTIC# NAME CLASS VALUE STAT_ID - - - - - 312 sorts (memory) 64 79700987 2091983730 313 sorts (disk) 64 6900 2533123502 314 sorts (rows) 64 60395446874 3757672740,加快索引的創(chuàng)建,加快索引的創(chuàng)建,alter session set db_file_multiblock_read_count = 128; alter index bill.ind_charge_id rebuild parallel 5 nologging; create index parallel 5 nologging;,創(chuàng)建超大分區(qū)表的本地索引,create index idx_subs_score_detail_attr_sid on subs_score_detail_attr( subsoid, region,) local tablespace inx unusable;,首先創(chuàng)建 UNUSABLE 狀態(tài)的索引 然后利用多個(gè)進(jìn)程,rebuild 失效狀態(tài)的索引分區(qū),能夠利用 nologging 參數(shù)的操作,CREATE TABLE AS SELECT INSERT TABLE SELECT CREATE INDEX REBULD INDEX or INDEX PARTITION MOVE TABLE or TABLE PARTITION SQL*Loader direct-path load,查找失效的索引,- 查找非分區(qū)索引 select owner, index_name, index_type, table_owner, table_name from dba_indexes where partitioned = NO and status = UNUSABLE; OWNER INDEX_NAME INDEX_TYPE TABLE_OWNER TABLE_NAME - - - - - BILL IND_CHARGE_ID NORMAL BILL T_RC_INSTANCE BILL IND_CHARGE_ID0 NORMAL BILL T_RC_INSTANCE,- 查找分區(qū)索引 select i.index_owner, i.index_name, i.partition_name from dba_ind_partitions i where status = UNUSABLE;,使用 SPFILE 作為初始化參數(shù)文件,初始化參數(shù)文件,From Oracle9i onwards, there are two types of initialization parameter file used: Static parameter file, PFILE Persistent server parameter file, SPFILE,spfiledb01.ora,初始化參數(shù)文件,CONNECT / AS SYSDBA STARTUP,Oracle Instance,SGA,Redo Log Buffer,Shared Pool,Data Dictionary Cache,Library Cache,DBW0,SMON,PMON,CKPT,LGWR,Others,Database Buffer Cache,Java Pool,Large Pool,PFILE initSID.ora,文本文件 通過(guò)文本編輯器進(jìn)行修改 采用手工的方式進(jìn)行修改 所作的修改在實(shí)例下次啟動(dòng)時(shí)生效 僅在實(shí)例啟動(dòng)時(shí)打開(kāi) 確省的存取目錄是 $ORACLE_HOME/dbs,SPFILE spfileSID.ora,二進(jìn)制文件 通過(guò) Oracle 服務(wù)器進(jìn)行修改 總是存放在服務(wù)器上 Ability to make changes persistent across shut down and start up,創(chuàng)建 SPFILE,通過(guò) PFILE 創(chuàng)建 SPFILE where SPFILE-NAME: SPFILE to be created PFILE-NAME: PFILE creating the SPFILE 可以在實(shí)例啟動(dòng)之前或者之后執(zhí)行,CREATE SPFILE = $ORACLE_HOME/dbs/spfileDBA01.ora FROM PFILE = $ORACLE_HOME/dbs/initDBA01.ora;,創(chuàng)建 SPFILE,SQL sqlplus / as sysdba Connected to an idle instance. SQL create pfile from spfile; create pfile from spfile * ERROR at line 1: ORA-27037: unable to obtain file status IBM AIX RISC System/6000 Error: 2: No such file or directory Additional information: 3 SQL create pfile from spfile=/dev/rjf_spfile; File created.,不指定文件名,系統(tǒng)將使用缺省值,或者 spfile 參數(shù)值,SPFILE 內(nèi)容示例,*.background_dump_dest= /home/dba01/ADMIN/BDUMP *.control_files=/home/dba01/ORADATA/u01/ctrl01.ctl *.core_dump_dest= /home/dba01/ADMIN/CDUMP *.db_block_size=8192 *.db_name=jzjf jzjf1.thread=1 jzjf2.thread=2 jzjf1.undo_tablespace=UNDOTBS1 jzjf2.undo_tablespace=UNDOTBS2,檢查當(dāng)前是否使用了 SPFILE,察看初始化參數(shù) spfile,sqlplus / as sysdba SQL show parameter spfile NAME TYPE VALUE - - - spfile string /dev/rjf_spfile,修改 SPFILE 中的參數(shù),修改參數(shù)值 指明是臨時(shí)修改還是永久保存 重設(shè)參數(shù)值,ALTER SYSTEM SET undo_tablespace = UNDO2;,ALTER SYSTEM SET undo_tablespace = UNDO2 SCOPE=BOTH; ALTER SYSTEM SET undo_retention = 3600 SCOPE=memory SID=jzjf1;,ALTER SYSTEM RESET undo_suppress_errors SCOPE=BOTH SID=*;,STARTUP 命令,處理順序: spfileSID.ora initSID.ora Specified PFILE can override precedence. PFILE 中可以指明使用 SPFILE,STARTUP PFILE = $ORACLE_HOME/dbs/initDBA1.ora,SPFILE = /database/startup/spfileDBA1.ora,使用 Profile 加強(qiáng)數(shù)據(jù)庫(kù)安全,使用 Profile 加強(qiáng)數(shù)據(jù)庫(kù)安全,A profile is a named set of password and resource limits. 通過(guò) CREATE USER 或者 ALTER USER command 將 profile 賦予用戶 概要文件可以被啟用或者禁用 Profiles can relate to the DEFAULT profile.,User,Password expiration and aging,Password verification,Setting up profiles,Password 管理,Set up password management by using profiles and assigning them to users. Lock, unlock, and expire accounts using the CREATE USER or ALTER USER command. Password limits are always enforced. To enable password management, run the utlpwdmg.sql script as the user SYS.,啟用 Password 管理,賬號(hào)鎖定,Password 過(guò)期,Password 歷史,Parameter,Number of days before a password can be reused Maximum number of changes required before a password can be reused,PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX,Description,Password 校驗(yàn),用戶定義的 Password 函數(shù),This function must be created in the SYS schema and must have the following specification:,function_name( userid_parameter IN VARCHAR2(30), password_parameter IN VARCHAR2(30), old_password_parameter IN VARCHAR2(30) RETURN BOOLEAN,Password 校驗(yàn)函數(shù) VERIFY_FUNCTION,Minimum length is four characters. Password should not be equal to username. Password should have at least one alphabetic, one numeric, and one special character. Password should differ from the previous password by at least three letters.,CREATE PROFILE grace_5 LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME UNLIMITED PASSWORD_LIFE_TIME 30 PASSWORD_REUSE_TIME 30 PASSWORD_VERIFY_FUNCTION verify_function PASSWORD_GRACE_TIME 5;,設(shè)置 Password 選項(xiàng):創(chuàng)建 Profile,ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LIFE_TIME 60 PASSWORD_GRACE_TIME 10;,設(shè)置 Password 選項(xiàng):修改 Profile,Use ALTER PROFILE to change password limits.,DROP PROFILE developer_prof;,DROP PROFILE developer_prof CASCADE;,刪除 Profile,Drop the profile using DROP PROFILE command. DEFAULT profile cannot be dropped. CASCADE revokes the profile from the user to whom it was assigned.,監(jiān)控鎖資源的爭(zhēng)用,鎖機(jī)制,鎖機(jī)制的根本目的是:使對(duì)共享資源的訪問(wèn)串行化,比如行記錄、數(shù)據(jù)庫(kù)對(duì)象的定義等。 Automatic management Exclusive and Share lock modes Locks held until commit or rollback operations are performed,兩種類型的鎖,DML or data locks: Table-level locks Row-level locks DDL or dictionary locks,(TM),(TX),TM 鎖和 TX 鎖,A DML transaction gets at least two locks: A shared table lock An exclusive row lock,select * from my_test for update; select * from v$lock where sid = 1216; SID TYPE LMODE REQUEST CTIME BLOCK - - - - - - 1216 TX 6 0 808 2 1216 TM 3 0 808 2,Enqueue 機(jī)制,The enqueue mechanism keeps track of: Users waiting for locks The requested lock mode The order in which users requested the lock,DDL 鎖,Exclusive DDL locks are required for: DROP TABLE statements ALTER TABLE statements (The lock is released when the DDL statement completes.) Shared DDL locks are required for: CREATE PROCEDURE statements AUDIT statements (The lock is released when the DDL parse completes.),鎖爭(zhēng)用的常見(jiàn)原因,Uncommitted changes Bad application design,監(jiān)控鎖活動(dòng)的工具,Transaction 1,UPDATE employees SET salary = salary x 1.1;,Transaction 2,Transaction 3,v$lock v$locked_object dba_waiters dba_blockers,UPDATE employees SET salary = salary x 1.1 WHERE empno = 1000;,UPDATE employees SET salary = salary x 1.1 WHERE empno = 2000;,select * from v$session s where s.lockwait is not null; select * from v$session_wait w where w.event like enq%; select * from dba_waiters; WAITING_SESSION HOLDING_SESSION LOCK_TYPE MODE_HELD MODE_REQUESTED - - - - - 1320 1216 Transaction Exclusive Exclusive,Waiting Lock 的會(huì)話,使用下面的語(yǔ)句察看是否有會(huì)話在等待鎖資源:,select * from v$lock l where l.block = 1; SID TYPE LMODE REQUEST CTIME BLOCK - - - - - - 1216 TX 6 0 456 1 - 察看 blocking 會(huì)話是否在等待 select * from v$session_wait where sid = 1216; SID SEQ# EVENT - - - 1216 1155 SQL*Net message from client,Blocking 會(huì)話,察看 Blocking 會(huì)話的信息:,select /*+ rule */ l.session_id, l.os_user_name, l.locked_mode, o.owner, o.object_name from v$locked_object l, dba_objects o where l.object_id = o.object_id; SESSION_ID OS_USER_NAME LOCKED_MODE OBJECT_NAME - - - - 1251 usr_zb 3 T_ST_MODULE_MONITOR 1373 hzzcgx 3 T_USAGE_TOTAL_200701 1373 hzzcgx 3 T_USAGE_TOTAL_200701,當(dāng)前被鎖定的對(duì)象,察看當(dāng)前有哪些對(duì)象被鎖定:,SQL 語(yǔ)句調(diào)優(yōu),優(yōu)化 SQL 的思路,優(yōu)化 SQL 要從以下三個(gè)方面入手: 訪問(wèn)路徑: Access paths are ways in which data is retrieved from the database. 聯(lián)結(jié)方法 Joins are statements that retrieve data from more than one table. 聯(lián)結(jié)次序 優(yōu)化 SQL 要的手段:使用 hint,SQL 的執(zhí)行計(jì)劃,一個(gè) SQL 語(yǔ)句執(zhí)行計(jì)劃的示例:,常用的訪問(wèn)路徑,Full Table Scan /*+ full( a ) */ Rowid Scan Index Unique Scan Index Range Scan /*+ index( a idx_name ) */ Index Range Scans Descending Index Full Scan Index Fast Full Scan /*+ index_ffs( a idx_name ) */,常用的聯(lián)結(jié)方法,Nested Loop Join Hash Join Sort Merge Join,Nested Loop Join,Nested Loop Join
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育科技融合背景下的空間優(yōu)化實(shí)踐
- 中國(guó)餐具行業(yè)未來(lái)發(fā)展趨勢(shì)報(bào)告
- 第02章-供給與需求
- 中國(guó)工業(yè)能效管理行業(yè)市場(chǎng)深度評(píng)估及投資策略咨詢報(bào)告
- 《夢(mèng)游天姥吟留別1》改后改版
- 2025年中國(guó)海運(yùn)集裝箱行業(yè)市場(chǎng)調(diào)研分析及投資戰(zhàn)略規(guī)劃報(bào)告
- 2025年中國(guó)片式壓敏電阻器行業(yè)發(fā)展運(yùn)行現(xiàn)狀及投資戰(zhàn)略規(guī)劃報(bào)告
- 年產(chǎn)5萬(wàn)噸鎂合金生產(chǎn)線項(xiàng)目節(jié)能評(píng)估報(bào)告(節(jié)能專用)
- 2025年中國(guó)電動(dòng)控制閥行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 中國(guó)手機(jī)應(yīng)用軟件商店行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y戰(zhàn)略咨詢報(bào)告
- 山東省濟(jì)寧市兗州區(qū)2022-2023學(xué)年八年級(jí)下學(xué)期期末數(shù)學(xué)試題(含答案)
- 加強(qiáng)中小學(xué)生作業(yè)管理完整PPT
- 南京醫(yī)科大學(xué)自主招生面試試題綜合素質(zhì)答案技巧-南京醫(yī)學(xué)院自主招生題
- 武陟縣袁肯紙業(yè)有限公司紙箱項(xiàng)目環(huán)評(píng)報(bào)告
- 液氨的管理及應(yīng)急救援處置
- 大學(xué)啟示錄:如何讀大學(xué)(上海交通大學(xué))【超星爾雅學(xué)習(xí)通】章節(jié)答案
- 創(chuàng)業(yè)法學(xué)江西財(cái)經(jīng)大學(xué)【超星爾雅學(xué)習(xí)通】章節(jié)答案
- 工程質(zhì)量驗(yàn)收?qǐng)?bào)告和竣工驗(yàn)收?qǐng)?bào)告
- 2023年黃大仙救世報(bào)
- 2022-2023學(xué)年內(nèi)蒙古赤峰市數(shù)學(xué)高一下期末統(tǒng)考模擬試題含解析
- 江西省建筑工程竣工備案表
評(píng)論
0/150
提交評(píng)論