Time of Update: 2018-12-05
1 dd 類比物理壞塊SQL> select * from v$database_block_corruption;no rows selectedSQL> select * from v$backup_corruption;no rows selectedSQL> select * from v$copy_corruption;no rows selectedSQL> create tablespace physical_corrupt datafile
Time of Update: 2018-12-05
規則如下: 依據這個規則、只有 3 種輸出:大寫、小寫、首字母大寫 測試如下:sys@ORCL> select to_char(sysdate,'Month') from dual;TO_CHAR(SYSDATE,'MONTH')------------------------------------Junesys@ORCL> select to_char(sysdate,'MOnth') from
Time of Update: 2018-12-05
每個RDBMS都基於標準sql走出了屬於自己的sql特色。oracle也不例外。現起,我們來學習oracle sql。 學習sql,於開發人員,實現優秀的商務邏輯;於管理者,完成資料庫的調優。 oracle sql可分: a)select b)DML:update,insert,delete,merge c)DDL:create,alter,drop d)DCL:grant,revoke e)TCL:commit,roolback,savepoint oracle
Time of Update: 2018-12-05
還是想嘮叨一下,要想把oracle體繫結構學深學透,必須結合備份與恢複的實驗及原理去學,這個我在後續也會寫相應的blog。在這裡我在介紹記憶體結構時,只是做些基礎性的瞭解。 我們先看兩個容易混淆的概念。SID和ORACLE_SID,其實吧,這兩個沒啥本質的區別。若真箇想分一分的話。那麼,SID是網站標識符,也即工作階段識別項,他和$ORACLE_HOME一起唯一標識了一個SGA;而ORACLE_SID則可以認為是執行個體名,通過v$instance的欄位instance_name查出。
Time of Update: 2018-12-05
大資料浪潮洶湧襲來、一場新的資訊技術革命即將開始。“春江水暖鴨Crowdsourced Security Testing”,作為資料庫從業人員的我、體會尤為深刻 然而、無論是Oracle的 EXADATA 還是MySQL的Scale
Time of Update: 2018-12-05
undo機制是oracle的巧妙之處,也是學習oracle的痛點之一。 下面我們從內部來具體瞭解它。 會話1:scott使用者,發起一個事務hr@ORCL> conn scott/oracleConnected.scott@ORCL> UPDATE emp SET sal=4000 WHERE empno=7788;1 row updated.scott@ORCL> SELECT empno,ename,job,mgr,sal FROM emp WHERE
Time of Update: 2018-12-05
在生產環境、我們會發現: ① 索引資料表空間 I/O 非常高 ② "db file sequential read" 等待事件也比較高 這種跡象表明、整個資料庫系統、索引的讀寫操作比較多、已經成為系統的主要瓶頸 一般的原因、大抵如下: ① 大量SQL均採用索引 ② DML操作導致索引維護工作量暴增 ③ 頻繁DML導致很多索引片段、增加I/O開銷 ④ 索引建立策略失誤、走索引如同全表掃 如果、一張表欄位30個、但索引竟有 50個!?
Time of Update: 2018-12-05
效能調優是每個DBA職業生涯中都能遇到的任務 大到世界五百強的核心系統,小到鄉鎮企業的進銷存,幾乎都會有要調優的時候 面對形形色色的系統,林林總總的需求,調優的手段也是豐富多彩 定位問題,分析問題,解決問題環環相扣,缺一不可,且又手段多樣,效果也各有千秋 確定基準是溝通過程中的第一大任務 前期的任務到此就告一段落了、接下來就得見招拆招、沒有固定的招
Time of Update: 2018-12-05
先話嘮一下,oracle索引,有兩類運用較廣: 1)b-tree:OLTP(面向交易) 2)bitmap:OLAP(面向分析) 步入正題,先搭建測試環境:SQL> create table tt as select * from dba_objects;表已建立。SQL> select count(*) from tt; COUNT(*)---------- 50441SQL> insert into tt select * from tt;
Time of Update: 2018-12-05
備份的定義。 備份的根本目的是恢複。需要時,能恢複出來的,就叫備份。比如,archive log file便是對online redo log file的備份。 備份的有效性。 eygle在其blog上說:"系統總是要崩潰的,沒有有效備份只是等哪一天死!唯一會使DBA在夢中驚醒的就是沒有有效備份"。當我們以resetlogs開啟資料庫時,建議馬上做一次全庫備份,其目的就是為了確保archive log file的序號的連續,之前的備份依然有效。 備份的類型。
Time of Update: 2018-12-05
1 準備測試環境:SQL> create table c as select * from dept;Table created.SQL> select * from c; DEPTNO DNAME LOC---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES
Time of Update: 2018-12-05
這個索引專題N久未見陽光了、偶覺得特過去、不幸福、於是有了本文 坊間傳聞、B*Tree 索引在應用開發階段、常作"炮灰"狀、而在維護時期、則是"馬後炮" 即便身世坎坷常被冷眼相待、但到底是B*Tree、魅力無限、全身散發著令人 YY 的韻味、你比如: 如果存在主鍵或者唯一性限制式、則不論是訪問1w行、還是1億行、這個CPU或IO的開銷都相去無幾呀 哇、、、美麗可愛大方如B*Tree、怎麼能令人不愛呢、 說起
Time of Update: 2018-12-05
Time of Update: 2018-12-05
SCN是oracle掛在牆上的時鐘。早上起床,曰“起床SCN”;吃早餐,名“早餐SCN”;出門上班,稱之為“出門SCN”。我們的任何活動,都會對應一個SCN。我們可藉助oracle內部的一個包來擷取系統的SCN(注意:這裡只是系統的scn,因為,oracle還有commit scn,checkpoint scn,select scn等等)。SQL> select dbms_flashback.get_system_change_number "system's scn" from
Time of Update: 2018-12-05
㈠ lsof 應用執行個體 ① 尋找指定連接埠被哪個程式佔用:[root@temp ~]# lsof -i :80COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEhttpd 10278 root 3u IPv6 37812 0t0 TCP *:http (LISTEN)httpd 10280 apache 3u IPv6 37812
Time of Update: 2018-12-05
在前面的blog中,我們知道,redo entries寫入log buffer大致的過程如下: 在PGA中生產Redo Entry -> 服務進程擷取Redo Copy latch(存在多個---CPU_COUNT*2) -> 服務進程擷取redo allocation latch(僅1個) -> 分配log buffer -> 釋放redo allocation latch -> 將Redo Entry寫入Log
Time of Update: 2018-12-05
在一個頻繁 commit/rollback 或磁碟 I/O 有問題、大量物理讀寫爭用 那麼、我們便會經常瞧見 LOG FILE SYNC 等待事件出現在 TOP EVENTS 中 評估 LOG FILE SYNC等待事件的指標是平均等待時間、以及 AWR 後續的 WAIT EVENT HISTOGRAM 對於 OLTP、平均等待時間 7 ms算正常、正常情況下平均等待時間不會超過 10 ms 下面給出幾種最佳化的策略、 ㈠ 最佳化 REDO
Time of Update: 2018-12-05
繁瑣複雜的執行計畫、可能迷了開發人員的眼、導致一條性感又傻X的SQL 在伺服器上跑得特歡樂 有介於此、重點抓住幾個部分、至於其他的嘛、當然是、非禮勿視咯、、 ㈠ 返回行的數量 Oracle最佳化器是基於成本的、評估成本的一個主要指標便是查詢多少行 一般的、傳回值在100W或者大表傳回值超過總記錄50%、可最佳化的空間就非常小 標記圖為:
Time of Update: 2018-12-05
10G R2後,ORACLE提供了一個新參數commit_write來控制用戶端commit後,ORACLE寫日誌的行為。這個參數值有四種組合。 · immediate , wait 注釋:Server process在提交時使用semctl發送訊號給LGWR,通知其Flush Log Buffer,並等待LGWR發回的訊息(semtimedop). LGWR在接收到訊息後, Flush
Time of Update: 2018-12-05
環境:14:56:24 sys@ORCL (^ω^) select * from v$version where rownum=1;BANNER--------------------------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod oracle NET