




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、附錄資料:不需要的可以自行刪除年數(shù)據(jù)庫-oracle-學(xué)習(xí)之路數(shù)據(jù)庫基礎(chǔ)數(shù)據(jù)庫主鍵生成Select Substr(To_char(dbms_random.value), 2, 22) | getUUID.NextvalFrom dual ;數(shù)據(jù)庫空間查詢-表空間在哪些空間下select df.tablespace_name 表空間名,totalspace 總空間M,freespace 剩余空間M,round(1-freespace/totalspace)*100,2) 使用率%from(select tablespace_name,round(sum(bytes)/1024/1024) tot
2、alspacefrom dba_data_filesgroup by tablespace_name) df,(select tablespace_name,round(sum(bytes)/1024/1024) freespacefrom dba_free_spacegroup by tablespace_name) fswhere df.tablespace_name=fs.tablespace_name;-查用戶下所用空間SELECT owner, tablespace_name, ROUND (SUM (BYTES) / 1024 / 1024, 2) USED(M) FROM dba
3、_segmentsGROUP BY owner, tablespace_nameORDER BY SUM (BYTES) DESC;-查用戶下所有表所占空間select OWNER, t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) mmmfrom dba_segments twhere t.owner = JIANGSUand t.segment_type=TABLEgroup by OWNER, t.segment_name, t.segment_typeorder by mmm desc;oracle 之刪除重復(fù)數(shù)據(jù)se
4、lect a.rowid,a.* from 表名 a where a.rowid != (select max(b.rowid) from 表名 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 )-刪除delete from 表名 a where a.rowid != (select max(b.rowid) from 表名 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 )oracle 之查詢數(shù)據(jù)第一條記錄select * from tab rownum sqlplus /nologSQL*Plus: Release .0 Pr
5、oduction on Fri Jan 20 02:29:37 2006Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL connect /as sysdbaConnected to an idle instance.SQL startupORACLE instance started.Total System Global Area 135352820 bytesFixed Size 455156 bytesVariable Size 109051904 bytesDatabase Buffers 25
6、165824 bytesRedo Buffers 679936 bytesDatabase mounted.2)關(guān)閉數(shù)據(jù)庫: HYPERLINK mailto:oraclesuse92 oraclesuse92: sqlplus /nologSQL*Plus: Release .0 Production on Fri Jan 20 02:29:37 2006Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL connect /as sysdbaConnected to an idle instance.SQ
7、L shutdwon abort;3)啟動監(jiān)聽器 HYPERLINK mailto:oraclesuse92 oraclesuse92: lsnrctl start4)停止監(jiān)聽器 HYPERLINK mailto:oraclesuse92 oraclesuse92: lsnrctl stop5)查看監(jiān)聽器狀態(tài) HYPERLINK mailto:oraclesuse92 oraclesuse92: lsnrctl status或lsnrctl命令進入監(jiān)聽程序后再用statusoracle 之備份工作背景:Oracle 10g 服務(wù)器,Oracle 10g 客戶端,windowsXP 操作平臺要求
8、:Oracle 數(shù)據(jù)庫服務(wù)器對數(shù)據(jù)庫 ytcn 每天自動備份一次。解決方案:利用任務(wù)計劃、批處理文件和 Oracle 的 exp 導(dǎo)出功能,根據(jù)日期自動生成 Oracle 備份文件。詳細步驟: 1) 創(chuàng)建批處理文件 ytcn.batytcn.bat中詳細內(nèi)容如下:echo offecho 正在備份銀通網(wǎng) Oracle 數(shù)據(jù)庫,請稍等.exp userid=ytcn/ytcnytcn as sysdba file=e:/bak/ytcn/oracle/ytcn/ytcn%date:0,4%date:5,2%date:8,2%.dmp log=e:/bak/ytcn/oracle/ytcn/ytc
9、n%date:0,4%date:5,2%date:8,2%.log full=yecho 任務(wù)完成!其中紅色部分是根據(jù)需要進行變動的地方,例如作者的項目名“銀通網(wǎng)”,數(shù)據(jù)庫 ytcn 用戶名 ytcn,密碼 ytcn,要在目錄 e:/bak/ytcn/oracle/ytcn 下生成形如 ytcn20090711.dmp 和 ytcn20090711.log 的備份和日志文件,全表導(dǎo)出。另外:%date%的值在不同的系統(tǒng)、語言版本下可能是不一樣的,控制面板里面區(qū)域選項的設(shè)定也會改變%date%的值。請先在命令行中測試 echo %date% 的返回值。%date:4,10% 是返回日期函數(shù),后的
10、第一個參數(shù)是要截取的起始位置(從0開始),第二個參數(shù)是要截取的長度,如沒有則是截取到最后,參數(shù)可酌情修改。 如需要準(zhǔn)確的時間做為文件名,請用%time%函數(shù),參數(shù)同上。 2) 添加一個任務(wù)計劃 ytcn開始 所有程序 附件 系統(tǒng)工具 任務(wù)計劃 添加任務(wù)計劃 下一步 在 瀏覽 中查找剛剛寫好的 ytcn.bat 文件 任務(wù)名輸入ytcn,執(zhí)行這個任務(wù)選擇每天,下一步 起始時間下午12:00,起始日期2009-7-11,下一步 輸入用戶名及密碼,用戶名要求是管理員權(quán)限用戶名,下一步 完成點擊完成之后,會在任務(wù)計劃欄目下新增一個名為ytcn的任務(wù)計劃,表明已經(jīng)配置完畢。備注:有時點擊完成 之后,系統(tǒng)
11、警告已創(chuàng)建新任務(wù),但可能不能運行,因為無法設(shè)置賬戶信息。指定的錯誤是:Ox80041315:任務(wù)計劃程序服務(wù)沒有運行這是因為電腦的任務(wù)計劃程序服務(wù)沒有啟動起來。開始 所有程序 管理工具 服務(wù),找到Task Scheduler服務(wù),發(fā)現(xiàn)啟動類型為已禁用,右鍵單擊更改為自動,并把它啟動起來,然后重新添加一次任務(wù)計劃 ytcn 就可以了。oracle之命中率查詢Buffer cache由數(shù)據(jù)塊組成。1. Buffer cache的工作原理LRU列表:MRU 。 LRU.(全表掃描FTS放在LRU端。)緩沖區(qū)塊的狀態(tài):Free、Pinned、Clean、Dirty.Dirty List或Write L
12、ist(寫列表)。數(shù)據(jù)庫寫進程DBW0將緩沖區(qū)高速緩存中的數(shù)據(jù)寫到數(shù)據(jù)文件中。2. 測量Buffer cache的性能測量Buffer cache的命中率:SQL select 1 - (physical.value - direct.value - lobs.value) / logical.value) Buffer Cache Hit Ratio from V$SYSSTAT physical, V$SYSSTAT direct, V$SYSSTAT lobs, V$SYSSTAT logical where = physical reads And = physical reads d
13、irect and = physical reads direct (lob) And = session logical reads;“Buffer Cache Hit Ratio”的值要 90%.使用STATSPACK來監(jiān)視Buffer cache.使用REPORT.TXT來監(jiān)視Buffer cache.非命中率指標(biāo):Free Buffer Inspected、Free Buffer Waits、Buffer Busy Waits.(V$sysstat)使用Performance Manager(數(shù)據(jù)庫例程)來監(jiān)視Buffer Cache.3. 提高緩沖區(qū)高速緩存性能的方法加大Buffer
14、 Cache的大?。篿nit.ora參數(shù)DB_CACHE_SIZE(動態(tài)參數(shù))。使用Buffer Cache Advisory功能決定Buffer Cache的大?。菏紫葘nit.ora參數(shù)DB_CACHE_ADVICE設(shè)成ON,然后查詢V$DB_CACHE_ADVICE.使用多個緩沖區(qū)池:Keep Pool: DB_KEEP_CACHE_SIZERecycle Pool:DB_RECYCLE_CACHE_SIZEDefault Pool: DB_CACHE_SIZE在內(nèi)存中緩存表: 表的CACHE選項,對優(yōu)化小表的全表掃描。正確創(chuàng)建索引。4. 調(diào)整Large Pool和JAVA POOLL
15、arge Pool用于共享服務(wù)器、RMAN、并行查詢、DBWR的從屬進程。Large Pool的大小通過init.ora參數(shù)Large_pool_size設(shè)置。默認(rèn)為8M.從V$sgastat中監(jiān)視free memory的值:SQLSELECT name,bytes FROM V$sgastat WHERE pool = large pool;JAVA_POOL池的默認(rèn)大小為32M.對于大型Java應(yīng)用程序,JAVA_POOL池的大小應(yīng)大于50M.init.ora參數(shù)java_pool_size從V$sgastat中監(jiān)視free memory的值。SQL SELECT name, bytes
16、/ 1024 / 1025 FROM V$sgastat WHERE pool = java pool; 調(diào)整重做有關(guān)的性能Oracle重做有關(guān)的組件包括:Redo Log Buffer、Online Redo Log、LGWR、Archive Log、Checkpoint、Arch0.1. 監(jiān)視Redo Log Buffer的性能Redo Log Buffer不采用LRU(Least Recently Used)算法管理。當(dāng)下列事件發(fā)生時,Redo Log Buffer的內(nèi)容存盤:Commit時、每3秒、空間使用1/3、達到1M、檢查點。如果寫入Redo Log Buffer的速度超過LGW
17、R存盤的速度,就會因等待而降低性能。監(jiān)視Redo Log Buffer的重試率(1%)。Select retries.value / entries.value Redo Log Buffer Retry Ratio From V$sysstat retries,V$sysstat entries Where = redo buffer allocation retries And = redo entries“Redo Log Buffer Retry Ratio”的值要 生成數(shù)據(jù)兩大選項:build immediate build deferredBuild immediate:在創(chuàng)建物化
18、視圖的同時根據(jù)主表生成數(shù)據(jù)Bulid deferred:在創(chuàng)建物化視圖的同時,在物化視圖內(nèi)不生成數(shù)據(jù),如果此時沒有生成數(shù)據(jù),以后可以采?。篍XEC DBMS_MVIEW.Refresh(MV_name,C),注意必須使用全量刷新,默認(rèn)是增量刷新,所以這里參數(shù)必須是C,因為之前都沒有生成數(shù)據(jù),所以必須全量。2關(guān)于刷新 刷新方式:complete fast forceComplete :完全刷新整個物化視圖,相當(dāng)于重新生成物化視圖,此時即時增量刷新可用也全量刷新 Fast:當(dāng)有數(shù)據(jù)更新時依照相應(yīng)的規(guī)則對物化視圖進行更新(此時必須創(chuàng)建物化視圖日志(物化視圖日志記錄了數(shù)據(jù)更新的日志),關(guān)于日志的說明,
19、參照“物化視圖日志文件介紹”) Force:當(dāng)增量刷新可用則增量刷新,當(dāng)增量刷新不可用,則全量刷新(此項為默認(rèn)選項)不過從實際情況出發(fā),應(yīng)該盡量不使用默認(rèn)選項,可以考慮使用增量刷新,對大表特別有效,大表全量更新速度是非常慢的,特別是在存在索引的情況下(在創(chuàng)建物化視圖語句中,可能某些限制查詢的條件,導(dǎo)致了增量刷新無法使用,這個是需要注意的,具體是哪類語句導(dǎo)致fast刷新不可用,有待總結(jié).) 刷新時間:on demand on commit start with/ nextOn demand:在需要刷新時進行刷新(人工判斷)On commit:在基表上有提交操作時,進行更新Start with:指
20、定首次刷新的時間(一般指定的是當(dāng)前時間,不過也可以在創(chuàng)建物化視圖時不生成數(shù)據(jù),則可以考慮在指定的時間刷新,從而生成數(shù)據(jù))Next:刷新的周期時間三、 基于主鍵的物化視圖和ROWID的物化視圖的說明創(chuàng)建物化視圖日志時,指定了記錄更新的原則即with 后面的primary 或者rowid 或者object id等等,后面,默認(rèn)是以primary key為記錄更新,在物化視圖內(nèi)也是以此為更新的原則。例如:1、如果日志內(nèi)使用的是primary key 則在創(chuàng)建物化視圖時指定rowid來更新,則會報ORA-12032: 不能使用 TEST 上實體化視圖日志中的 rowid 列2、如過日志內(nèi)使用的是row
21、id 則在創(chuàng)建物化視圖時指定primary或者默認(rèn)指定,則會報ORA-23415: GIS.LZWMV 的實體化視圖日志不記錄主鍵四、 關(guān)于物化視圖存放的的表空間直接在創(chuàng)建物化視圖時指定日志存放的表空間和物化視圖的表空間。例子:create materialized view MV_TEST tablespace test -表空間名稱五、 關(guān)于查詢重寫和更新在創(chuàng)建查詢重寫時,基表中必須有主鍵約束,視圖里是無法創(chuàng)建主鍵的,不過其繼承了基表的主鍵約束。(關(guān)于視圖的創(chuàng)建的一些技巧有待總結(jié))下面給個例子Create materialized view MV_TESTRefresh fast -前提是
22、必須創(chuàng)建基表日志,可以忽略該項Enable query rewrite -前提是基表上必須存在主鍵約束AsSelect * from TEST; -物化視圖數(shù)據(jù)生成六、 關(guān)于創(chuàng)建物化視圖的例子:1、 使用增量刷新的物化視圖的寫法創(chuàng)建物化視圖日志,必須創(chuàng)建日志Create materialized view log on TEST -TEST為表名-注:(TEST為表名或者視圖名,關(guān)于視圖上建立物化視圖,見基于視圖的物化視圖-創(chuàng)建物化視圖語句:Create materialized view MV_TEST -MVTEST為物化視圖名Build immediate -創(chuàng)建時生成數(shù)據(jù)對應(yīng)的是bui
23、ld deferredRefresh fast -增量刷新On commit -在基表有更新時提交,這里該句對視圖無效With rowid-這里創(chuàng)建基于rowid的物化視圖,對應(yīng)的是 primary keyAsSelect * from TEST;-生成物化視圖數(shù)據(jù)語句oracle學(xué)習(xí)之linux下啟動停止服務(wù) linux下的oracle從10g以后其啟動與關(guān)閉與以前版本有所不同9i 之后已經(jīng)沒有 svrmgrl 了,所有的管理工作都通過 sqlplus 來完成啟動數(shù)據(jù)庫步驟如下:注:$ORACLE_HOME為oracle的安裝路徑1,以oracle用戶登錄su oracle2,啟動TNS監(jiān)聽
24、器$ORACLE_HOME/bin/ lsnrctl start3,用sqlplus啟動數(shù)據(jù)庫$ORACLE_HOME/bin/sqlplus/nologSQL connect system/change_on_install as sysdbaSQL startup出現(xiàn)如下顯示,表示Oracle已經(jīng)成功啟動ORACLE instance started.Total System Global Area 205520896 bytesFixed Size 778392 bytesVariable Size 74456936 bytesDatabase Buffers 130023424 byt
25、esRedo Buffers 262144 bytesDatabase mounted.Database opened.4,用sqlplus停止數(shù)據(jù)庫$ORACLE_HOME/bin/sqlplus/nologSQL connect system/change_on_install as sysdbaSQL shutdown注:shutdown可加關(guān)閉選項,從最溫和到最粗暴的行為選項為(shutdown、shutdown transactional、shutdown immediate、shutdown abort)命令解釋如下shutdown:關(guān)閉,等待每個用戶退出系統(tǒng)戓被取消后退出關(guān)閉數(shù)據(jù)
26、庫。shutdown transactional:事務(wù)性關(guān)閉,等待每個用戶提交戓回退當(dāng)前的事務(wù),然后oracle取消對話,在所有用戶退出系統(tǒng)后執(zhí)行關(guān)閉。shutdown immediate:直接關(guān)閉,取消所有用戶對話(促使回退),執(zhí)行正常的關(guān)閉程序。shutdown abort:終止關(guān)閉,關(guān)閉數(shù)據(jù)庫時沒有自動檢查點戓日志開關(guān)。出現(xiàn)如下顯示,表示oracle已經(jīng)停止Database closed.Database dismounted.ORACLE instance shut down.oracle學(xué)習(xí)之rank函數(shù) select * From (select rank() over(parti
27、tion by t.車輛品牌, t.車輛型號 order by to_number(數(shù)字) desc, rownum) rr, t.* from t_sj t) tt where tt.rr = 1說明:t.車輛品牌, t.車輛型號 唯一篩選說明:to_number(數(shù)字) desc 數(shù)值排序說明:tt.rr = 1 取num 第一個oracle學(xué)習(xí)之JOB初始化相關(guān)參數(shù)job_queue_processesalter system set job_queue_processes=39 scope=spfile;/最大值不能超過1000 ;job_queue_interval = 10 /調(diào)度
28、作業(yè)刷新頻率秒為單位job_queue_process 表示 HYPERLINK javascript:; t _self oracle能夠并發(fā)的job的數(shù)量,可以通過語句show parameter job_queue_process;來查看oracle中job_queue_process的值。當(dāng)job_queue_process值為0時表示全部停止oracle的job,可以通過語句ALTER SYSTEM SET job_queue_processes = 10;來調(diào)整啟動oracle的job。相關(guān)視圖:dba_jobsall_jobsuser_jobsdba_jobs_running 包
29、含正在運行job相關(guān)信息提交job語法:beginsys.dbms_job.submit(job = :job, what = P_CLEAR_PACKBAL;, next_date = to_date(04-08-2008 05:44:09, dd-mm-yyyy hh24:mi:ss), interval = sysdate+ 1/360);commit;end;/創(chuàng)建JOBvariable jobno number;begindbms_job.submit(:jobno, P_CRED_PLAN;,SYSDATE,SYSDATE+1/2880,TRUE);commit;運行JOBSQL
30、begin dbms_job.run(:job1); end; /刪除JOBSQL begin dbms_job.remove(:job1); end; /DBA_JOBS字段(列) 類型 描述JOB NUMBER 任務(wù)的唯一標(biāo)示號LOG_USER VARCHAR2(30) 提交任務(wù)的用戶PRIV_USER VARCHAR2(30) 賦予任務(wù)權(quán)限的用戶SCHEMA_USER VARCHAR2(30) 對任務(wù)作語法分析的用戶模式LAST_DATE DATE 最后一次成功運行任務(wù)的時間LAST_SEC VARCHAR2(8) 如HH24:MM:SS格式的last_date日期的小時,分鐘和秒THI
31、S_DATE DATE 正在運行任務(wù)的開始時間,如果沒有運行任務(wù)則為nullTHIS_SEC VARCHAR2(8) 如HH24:MM:SS格式的this_date日期的小時,分鐘和秒NEXT_DATE DATE 下一次定時運行任務(wù)的時間NEXT_SEC VARCHAR2(8) 如HH24:MM:SS格式的next_date日期的小時,分鐘和秒TOTAL_TIME NUMBER 該任務(wù)運行所需要的總時間,單位為秒BROKEN VARCHAR2(1) 標(biāo)志參數(shù),Y標(biāo)示任務(wù)中斷,以后不會運行INTERVAL VARCHAR2(200) 用于計算下一運行時間的表達式FAILURES NUMBER 任
32、務(wù)運行連續(xù)沒有成功的次數(shù)WHAT VARCHAR2(2000) 執(zhí)行任務(wù)的PL/SQL塊CURRENT_SESSION_LABEL RAW MLSLABEL 該任務(wù)的信任Oracle會話符CLEARANCE_HI RAW MLSLABEL 該任務(wù)可信任的Oracle最大間隙CLEARANCE_LO RAW MLSLABEL 該任務(wù)可信任的Oracle最小間隙NLS_ENV VARCHAR2(2000) 任務(wù)運行的NLS會話設(shè)置MISC_ENV RAW(32) 任務(wù)運行的其他一些會話參數(shù)描述 INTERVAL參數(shù)值每天午夜12點 TRUNC(SYSDATE + 1)每天早上8點30分 TRUNC
33、(SYSDATE + 1) + (8*60+30)/(24*60)每星期二中午12點 NEXT_DAY(TRUNC(SYSDATE ), TUESDAY ) + 12/24每個月第一天的午夜12點 TRUNC(LAST_DAY(SYSDATE ) + 1)每個季度最后一天的晚上11點 TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), Q ) -1/24每星期六和日早上6點10分 TRUNC(LEAST(NEXT_DAY(SYSDATE, SATURDAY), NEXT_DAY(SYSDATE, SUNDAY) + (660+10)/(2460)1:每分鐘執(zhí)行Inter
34、val = TRUNC(sysdate,mi) + 1/ (24*60)2:每天定時執(zhí)行例如:每天的凌晨1點執(zhí)行Interval = TRUNC(sysdate) + 1 +1/ (24)3:每周定時執(zhí)行例如:每周一凌晨1點執(zhí)行Interval = TRUNC(next_day(sysdate,星期一)+1/244:每月定時執(zhí)行例如:每月1日凌晨1點執(zhí)行Interval =TRUNC(LAST_DAY(SYSDATE)+1+1/245:每季度定時執(zhí)行例如每季度的第一天凌晨1點執(zhí)行Interval = TRUNC(ADD_MONTHS(SYSDATE,3),Q) + 1/246:每半年定時執(zhí)行例
35、如:每年7月1日和1月1日凌晨1點Interval = ADD_MONTHS(trunc(sysdate,yyyy),6)+1/247:每年定時執(zhí)行例如:每年1月1日凌晨1點執(zhí)行Interval =ADD_MONTHS(trunc(sysdate,yyyy),12)+1/24oracle學(xué)習(xí)之路索引查詢查找表的所有索引(包括索引名,類型,構(gòu)成列):select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_n
36、ame查找表的主鍵(包括名稱,構(gòu)成列):select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = P排量生成創(chuàng)建腳本(唯一主鍵):select alter table | cu.table_name | add constraint | cu.constraint_name | primary key ( | cu.column_name | ); from user_cons_columns
37、cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = P 排量生成創(chuàng)建腳本(所有)select create index | t.index_name | on | t.table_name | ( | t.column_name | ); from user_ind_columns t, user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name排量生成創(chuàng)建
38、腳本(索引-去除主鍵)select create index | t.index_name | on | t.table_name | ( | t.column_name | ); from user_ind_columns t, user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and not exists (select 1 from user_cons_columns cu, user_constraints au where cu.constraint_name = au.c
39、onstraint_name and au.constraint_type = P and upper(t.index_name) = upper(cu.constraint_name)oracle 學(xué)習(xí)之路oracle中導(dǎo)入dmp數(shù)據(jù)庫文件 imp username/passwordSID file=XXX.dmp fromuser=XXX touser=XXX tables=(XXX,XXX)其中,fromuser若為多個表空間的話,使用()將其括起來:fromuser=(a,b);touser參數(shù)仿fromuser參數(shù);若只導(dǎo)入一部分表,使用tables參數(shù),用()括起要導(dǎo)入的表;如果想
40、全部導(dǎo)入,不需要指定tables參數(shù)補充:1.要新建一個數(shù)據(jù)庫;2.若你的oracle安裝在Unix/Linux上,直接在shell中使用imp;如果你的oracle安裝在Windows上,隨便在哪里開啟一個CMD窗口就可以執(zhí)行imp;3.username/password指的是你的數(shù)據(jù)庫的登錄用戶名和密碼;4.fromuser指對方數(shù)據(jù)庫用戶名,touser指你的數(shù)據(jù)庫的用戶名;5.使用oracle的管理端在“表空間”中即可創(chuàng)建;6.要導(dǎo)入所有的表最方便,不用寫tables參數(shù)就成,不需要知道對方的表名。下面介紹的是導(dǎo)入導(dǎo)出的實例。數(shù)據(jù)的導(dǎo)入1 將D:/daochu.dmp 中的數(shù)據(jù)導(dǎo)入 T
41、EST數(shù)據(jù)庫中。imp system/managerTEST file=d:/daochu.dmpimp aichannel/aichannelHUST full=y file=file= d:/data/newsmgnt.dmp ignore=y上面可能有點問題,因為有的表已經(jīng)存在,然后它就報錯,對該表就不進行導(dǎo)入。在后面加上 ignore=y 就可以了。2 將d:/daochu.dmp中的表table1 導(dǎo)入imp system/managerTEST file=d:/daochu.dmp tables=(table1)基本上上面的導(dǎo)入導(dǎo)出夠用了。不少情況要先是將表徹底刪除,然后導(dǎo)入。注意
42、:操作者要有足夠的權(quán)限,權(quán)限不夠它會提示。數(shù)據(jù)庫時可以連上的。可以用tnsping TEST 來獲得數(shù)據(jù)庫TEST能否連上。數(shù)據(jù)導(dǎo)出:1 將數(shù)據(jù)庫TEST完全導(dǎo)出,用戶名system 密碼manager 導(dǎo)出到D:/daochu.dmp中exp system/managerTEST file=d:/daochu.dmp full=y2 將數(shù)據(jù)庫中system用戶與sys用戶的表導(dǎo)出exp system/managerTEST file=d:/daochu.dmp owner=(system,sys)3 將數(shù)據(jù)庫中的表inner_notify、notify_staff_relat導(dǎo)出exp ai
43、channel/aichannelTESTDB2 file= d:/data/newsmgnt.dmp tables=(inner_notify,notify_staff_relat) 4 將數(shù)據(jù)庫中的表table1中的字段filed1以00打頭的數(shù)據(jù)導(dǎo)出exp system/managerTEST file=d:/daochu.dmp tables=(table1) query=/ where filed1 like 00%/上面是常用的導(dǎo)出,對于壓縮,既用winzip把dmp文件可以很好的壓縮。也可以在上面命令后面 加上 compress=y 來實現(xiàn)。oracle 學(xué)習(xí)之路數(shù)據(jù)導(dǎo)入導(dǎo)出ex
44、pDB/impDB一.創(chuàng)建邏輯目錄,該命令不會在操作系統(tǒng)創(chuàng)建真正的目錄.最好以system等管理員創(chuàng)建.createdirectorydpdata2asD:oraclebackup2;二.查看管理理員目錄(同時查看操作系統(tǒng)是否存在,因為Oracle并不關(guān)心該目錄是否存在,如果不存在,則出錯.)select*fromdba_directories;三.給scott用戶賦予在指定目錄的操作權(quán)限,最好以system等管理員賦予.grantread,writeondirectorydpdata2toaaa;impdpaaa/aaaorcldirectory=dpdata2dumpfile=dpdata
45、1.dmpremap_schema=pjbj_chinalife:aaaremap_tablespace=users:userslogfile=impdp_111217.logexpdppjbj_chinalife/pjbj_chinalifeorcldumpfile=pjbj_chinalife.dmpdirectory=dpdata1tables=(jy_md_code_info,jy_md_comm_part,jy_md_figinfo,jy_md_fig_pos,jy_md_model,jy_md_model_config,jy_md_part_type,jy_md_version,j
46、y_pt_data)impdpBBB/BBBorcldirectory=dpdata2dumpfile=pjbj_chinalife.dmpremap_schema=pjbj_chinalife:bbbremap_tablespace=users:JYDB1logfile=impdp_111217.log oracle學(xué)習(xí)之?dāng)U展空間oracle學(xué)習(xí)之磁盤讀寫Oracle 學(xué)習(xí)之物化視圖簡單介紹Create materialized view mate_view -視圖名稱Tablespace viewSpace -視圖空間Builddeferred -延遲刷新Refresh force -如果
47、可以快速刷新則快速刷新,否則全部刷新Ondemand -按照指定方式刷新Start with to_date(2012-3-27 22:00:00,yyyy-mm-dd hh24:mi:ss) -第一次刷新時間Next TRUNK(sysdate+1)+18/24 -刷新時間間隔As select 查詢數(shù)據(jù)創(chuàng)建方式(build Methods)包括BUILD IMMEDIATE和Build Deferred 兩種。Build Immediate 是在創(chuàng)建物化視圖的時候就生成數(shù)據(jù),而Build Deferred 則在創(chuàng)建時不生成數(shù)據(jù),以后根據(jù)需要生成數(shù)據(jù)。默認(rèn)為Build Immediate。查
48、詢重寫(QUERY Rewrite)包括ENABLE QUERY REWRITE和Disable Query Rewrite 兩種。分別指出創(chuàng)建的物化視圖是否支持重寫。查詢重寫是指當(dāng)對物化視圖的基礎(chǔ)表進行查詢時,Oracle會自動判斷是否通過查詢物化視圖來得到結(jié)果,如果可以,則避免了聚集或重新操作,而直接從已經(jīng)計算好的物化視圖中讀取數(shù)據(jù)。默認(rèn)為Disable Qery Rewrite。刷新(REFRESH)指當(dāng)基礎(chǔ)表發(fā)生了DML 操作后,物化視圖何時采用哪種方式和基礎(chǔ)表進行同步。刷新的模式有2種:ON Demand 和ON Commit 。ON Demand 指物化視圖在用戶需要的時候進行刷新
49、,可以手工通過DBMS_MVIEW.REFRESH等方法來進行刷新,也可以通過JOB定時進行刷新。ON Commit 指出物化視圖在對基礎(chǔ)表的DML操作提交的同時進行刷新。刷新的方法有四種:FAST、COMPLETE、FORCE和NEVE。Fast刷新采用增量刷新,只刷新自上次刷新以后的修改。COMPLETE 刷新對整個物化視圖進行完全的刷新。如果選擇FORCE方式,則Oracle在刷新時回去判斷是否可以進行快速刷新,如果可以則采用FAST方式,否則采用COMPLETE的方式。NEVER指物化視圖不進行任何刷新。默認(rèn)值是FORCE on DEMAND??焖偎⑿孪拗疲≧EFRESH fast)如
50、果需要進行快速刷新,則需要建立物化視圖日志。物化視圖日志根據(jù)不同物化視圖的快速刷新的需要,可以建立在ROWID或PRIMARY KEY類型的。還可以選擇在包括SEQUENCE、INCLUDING NEW VALUES 以及制定列的列表。基于物理表的物化視圖可以指明ON PREBUILD TABLE 語句將物化視圖建立在一個已經(jīng)存在的表上。這種情況下,物化視圖或表必須同名。當(dāng)刪除物化視圖時,不會刪除同名的表。這種物化視圖的查詢重寫要求參數(shù)QUERY_REWRITE_INTEGERITY必須設(shè)置為trusted 或者stale_tolerated、REFRESH 子句refreshfast|com
51、plete|forceon demand|commitstart with datenext datewith primary key|rowedRefresh FAST增量刷新用物化視圖日志(參照上面所述)來發(fā)送主表已經(jīng)修改的數(shù)據(jù)行到物化視圖中,如果指定Refresh Fast子句,那么應(yīng)該對主表創(chuàng)建物化視圖日志。SQLcreate materialized view log on emp ;Materialized view log created.對于刷新重新生成整個視圖,如果請求完全刷新,oracle會完成完全刷新即使增量刷新可用。Refresh Complete 完全刷新重新生成整個
52、視圖,如果請求完全刷新,Oracle會完成完全刷新即使增量刷新可用。Refresh Force當(dāng)指定Force子句,如果增量刷新可用Oracle將完成增量刷新,否則將完成完全刷新,如果不指定刷新方法(Fast、Complete、Force)。Force選項默認(rèn)選項。Primary key 和rowidWith Primary Key 選項生成主鍵視圖,也就是說物化視圖是基于主表的主鍵,而不是RowId(對應(yīng)于rowid子句)。Primary Key 是默認(rèn)選項,為了生成Primary Key 子句,應(yīng)該在主表上定義主鍵,否則應(yīng)該用基于Rowid的物化視圖。主鍵物化視圖允許識別物化視圖主表而不影
53、響物化視圖增量刷新的可用性。Rowid的物化視圖知識一個單一的主表,不能包括“Distinct、聚合函數(shù)、group by、子查詢、連接、SET操作”刷新時間Start with 子句通知數(shù)據(jù)庫完成從主表到本地表第一次復(fù)制的時間,應(yīng)該及時估計下一次運行的時間點,NEXT子句說明了刷新的間隔時間。另外:快速刷新的各類操作:/post/468/14245oracle物化視圖的一般用法,物化視圖是一種特殊的物理表,“物化”(Materialized)視圖是相對普通視圖而言的。普通視圖是虛擬表,應(yīng)用的局限性大,任何對視圖的查詢,Oracle都實際上轉(zhuǎn)換為視圖SQL語句的查詢。這樣對整體查詢性能的提高,
54、并沒有實質(zhì)上的好處。 1、物化視圖的類型:ON DEMAND、ON COMMIT 二者的區(qū)別在于刷新方法的不同,ON DEMAND顧名思義,僅在該物化視圖“需要”被刷新了,才進行刷新(REFRESH),即更新物化視圖,以保證和基表數(shù)據(jù)的一致性;而ON COMMIT是說,一旦基表有了COMMIT,即事務(wù)提交,則立刻刷新,立刻更新物化視圖,使得數(shù)據(jù)和基表一致。 2、ON DEMAND物化視圖 物化視圖的創(chuàng)建本身是很復(fù)雜和需要優(yōu)化參數(shù)設(shè)置的,特別是針對大型生產(chǎn) HYPERLINK /database/ t _blank 數(shù)據(jù)庫系統(tǒng)而言。但 HYPERLINK /database/Oracle/ t
55、_blank Oracle允許以這種最簡單的,類似于普通視圖的方式來做,所以不可避免的會涉及到默認(rèn)值問題。也就是說Oracle給物化視圖的重要定義參數(shù)的默認(rèn)值處理是我們需要特別注意的。 物化視圖的特點: (1) 物化視圖在某種意義上說就是一個物理表(而且不僅僅是一個物理表),這通過其可以被user_tables查詢出來,而得到佐證; (2) 物化視圖也是一種段(segment),所以其有自己的物理存儲屬性; (3) 物化視圖會占用數(shù)據(jù)庫磁盤空間,這點從user_segment的查詢結(jié)果,可以得到佐證; 創(chuàng)建語句:create materialized view mv_name as selec
56、t * from table_name 默認(rèn)情況下,如果沒指定刷新方法和刷新模式,則Oracle默認(rèn)為FORCE和DEMAND。 物化視圖的數(shù)據(jù)怎么隨著基表而更新?Oracle提供了兩種方式,手工刷新和自動刷新,默認(rèn)為手工刷新。也就是說,通過我們手工的執(zhí)行某個Oracle提供的系統(tǒng)級存儲過程或包,來保證物化視圖與基表數(shù)據(jù)一致性。這是最基本的刷新辦法了。自動刷新,其實也就是Oracle會建立一個job,通過這個job來調(diào)用相同的存儲過程或包,加以實現(xiàn)。 ON DEMAND物化視圖的特性及其和ON COMMIT物化視圖的區(qū)別,即前者不刷新(手工或自動)就不更新物化視圖,而后者不刷新也會更新物化視圖
57、,只要基表發(fā)生了COMMIT。 創(chuàng)建定時刷新的物化視圖:create materialized view mv_name refresh force on demand start with sysdate next sysdate+1 (指定物化視圖每天刷新一次) 上述創(chuàng)建的物化視圖每天刷新,但是沒有指定刷新時間,如果要指定刷新時間(比如每天晚上10:00定時刷新一次):create materialized view mv_name refresh force on demand start with sysdate next to_date( concat( to_char( sysda
58、te+1,dd-mm-yyyy), 22:00:00),dd-mm-yyyy hh24:mi:ss) 3、ON COMMIT物化視圖ON COMMIT物化視圖的創(chuàng)建,和上面創(chuàng)建ON DEMAND的物化視圖區(qū)別不大。因為ON DEMAND是默認(rèn)的,所以O(shè)N COMMIT物化視圖,需要再增加個參數(shù)即可。 需要注意的是,無法在定義時僅指定ON COMMIT,還得附帶個參數(shù)才行。 創(chuàng)建ON COMMIT物化視圖:create materialized view mv_name refresh force on commit as select * from table_name 備注:實際創(chuàng)建過程中,
59、基表需要有主鍵約束,否則會報錯(ORA-12014) 4、物化視圖的刷新 刷新(Refresh):指當(dāng)基表發(fā)生了DML操作后,物化視圖何時采用哪種方式和基表進行同步。刷新的模式有兩種:ON DEMAND和ON COMMIT。(如上所述) 刷新的方法有四種:FAST、COMPLETE、FORCE和NEVER。FAST刷新采用增量刷新,只刷新自上次刷新以后進行的修改。COMPLETE刷新對整個物化視圖進行完全的刷新。如果選擇FORCE方式,則Oracle在刷新時會去判斷是否可以進行快速刷新,如果可以則采用FAST方式,否則采用COMPLETE的方式。NEVER指物化視圖不進行任何刷新。 對于已經(jīng)創(chuàng)
60、建好的物化視圖,可以修改其刷新方式,比如把物化視圖mv_name的刷新方式修改為每天晚上10點刷新一次:alter materialized view mv_name refresh force on demand start with sysdate next to_date(concat(to_char(sysdate+1,dd-mm-yyyy), 22:00:00),dd-mm-yyyy hh24:mi:ss) 5、物化視圖具有表一樣的特征,所以可以像對表一樣,我們可以為它創(chuàng)建索引,創(chuàng)建方法和對表一樣。 6、物化視圖的刪除: 雖然物化視圖是和表一起管理的,但是在經(jīng)常使用的PLSQL工具中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西省安康市2024-2025學(xué)年高三下學(xué)期第二次質(zhì)量考試(二模)地理試題(含答案)
- 企業(yè)對外溝通與合作記錄表
- 鄉(xiāng)村旅游規(guī)劃設(shè)計服務(wù)協(xié)議
- 產(chǎn)品保密與知識產(chǎn)權(quán)保護契約書
- 倒裝句的構(gòu)成與識別:英語語法知識鞏固教案
- 鄉(xiāng)村土地承包經(jīng)營獎補資金使用協(xié)議
- 二手房買賣過戶網(wǎng)簽協(xié)議
- 健康飲食品牌推廣合同書
- 本季度銷售業(yè)績匯報與展望
- 高體三教授治療眩暈病學(xué)術(shù)思想研究
- 《元德秀字紫芝》2019年山東濰坊中考文言文閱讀真題(含答案與翻譯)
- 建設(shè)“三型三化551”財務(wù)體系加快財務(wù)轉(zhuǎn)型創(chuàng)建一流財務(wù)指導(dǎo)意見
- 語言領(lǐng)域核心經(jīng)驗《學(xué)前兒童語言學(xué)習(xí)與發(fā)展核心經(jīng)驗》
- 湖北省華中師大一附中2020-2021高一物理期中檢測試卷【含答案】
- 2021年合肥職業(yè)技術(shù)學(xué)院職業(yè)適應(yīng)性測試試題及答案解析
- 2022年三年級美術(shù)下冊教案課題美化教室一角
- 初中物理公式MicrosoftWord文檔
- 詐騙案件授課PPT課件
- 弗洛姆異化理論
- 碳納米管_ppt課件
- 【課件】第2課如何鑒賞美術(shù)作品課件-高中美術(shù)人教版(2019)美術(shù)鑒賞
評論
0/150
提交評論