摘要:新晉技術(shù)專(zhuān)家下面是墨天輪部分新晉的技術(shù)專(zhuān)家。大家可以點(diǎn)擊往期閱讀墨天輪技術(shù)專(zhuān)家邀請(qǐng)函了解詳情,申請(qǐng)成為我們的技術(shù)專(zhuān)家,加入專(zhuān)家團(tuán)隊(duì),與我們一起創(chuàng)建一個(gè)開(kāi)放互助的數(shù)據(jù)庫(kù)技術(shù)社區(qū)。新關(guān)聯(lián)公眾號(hào)墨天輪是一個(gè)開(kāi)放互助的數(shù)據(jù)庫(kù)技術(shù)社區(qū)。
引言
近期我們?cè)贒BASK小程序增加了數(shù)據(jù)庫(kù) MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的專(zhuān)題欄目和一些新的技術(shù)專(zhuān)家,另外,也新關(guān)聯(lián)了技術(shù)閑談、OB、架構(gòu)文摘、51CTO技術(shù)棧等等數(shù)據(jù)領(lǐng)域的公眾號(hào),歡迎大家閱讀分享。
新晉技術(shù)專(zhuān)家
下面是墨天輪DBASK部分新晉的技術(shù)專(zhuān)家。大家可以點(diǎn)擊往期閱讀《墨天輪DBASK技術(shù)專(zhuān)家邀請(qǐng)函》了解詳情,申請(qǐng)成為我們的技術(shù)專(zhuān)家,加入專(zhuān)家團(tuán)隊(duì),與我們一起創(chuàng)建一個(gè)開(kāi)放互助的數(shù)據(jù)庫(kù)技術(shù)社區(qū)。
新關(guān)聯(lián)公眾號(hào)
墨天輪DBASK是一個(gè)開(kāi)放互助的數(shù)據(jù)庫(kù)技術(shù)社區(qū)。所以,我們也新關(guān)聯(lián)了技術(shù)閑談、OB、架構(gòu)文摘、51CTO技術(shù)棧等等數(shù)據(jù)領(lǐng)域的公眾號(hào),方便大家的閱讀。如果有和數(shù)據(jù)相關(guān)的公眾號(hào),有文章轉(zhuǎn)載合作的需求,可以留言聯(lián)系小編哦~
問(wèn)答集萃
接下來(lái),我們分享本期整理出的問(wèn)題和診斷總結(jié),供大家參考學(xué)習(xí),詳細(xì)的診斷分析過(guò)程可以通過(guò)標(biāo)題鏈接跳轉(zhuǎn)到小程序中查看。
問(wèn)題一、總結(jié)不走索引的常見(jiàn)情況
請(qǐng)問(wèn)SQL什么情況下不走索引,幫忙總結(jié)一下。
診斷結(jié)論:1、謂詞中出現(xiàn)NULL過(guò)濾條件;2、謂詞中出現(xiàn)函數(shù)轉(zhuǎn)換導(dǎo)致沒(méi)有走索引;3、統(tǒng)計(jì)信息不準(zhǔn)確;4、在WEHRE條件中l(wèi)ike中關(guān)鍵字兩邊都有"%";5、查詢(xún)條件值與列類(lèi)型不一致;6、查詢(xún)條件列進(jìn)行數(shù)學(xué)運(yùn)算;7、索引列在 IN 或者多個(gè) OR 語(yǔ)句中;8、是否使用的是不可見(jiàn)索引等。
問(wèn)題二、sid和服務(wù)名,和tns別名的區(qū)別
sid和服務(wù)名,和tns別名的區(qū)別。之間是如何區(qū)分的?
診斷結(jié)論:拿兩節(jié)點(diǎn)RAC的情況說(shuō)明下吧:db1/db2為兩個(gè)節(jié)點(diǎn)的sid,是兩個(gè)節(jié)點(diǎn)數(shù)據(jù)庫(kù)實(shí)例的唯一名稱(chēng),與instance_name參數(shù)一致分別為db1/db2;db為服務(wù)名,方便應(yīng)用連接數(shù)據(jù)庫(kù),與service_name參數(shù)一致兩個(gè)節(jié)點(diǎn)為db;tns別名為在tnsnames.ora文件中自定義的別名,應(yīng)用使用此別名連接數(shù)據(jù)庫(kù),如連接字符串為db,tns別名設(shè)置為crmdb,應(yīng)用連接直接使用crmdb即可,方便辨別。
問(wèn)題三、oracle DG failover后更改flashback操作的并行度
我這邊遇到一個(gè)問(wèn)題,想改變DG在failover后主庫(kù)進(jìn)行的flashback操作時(shí)的并行度,就是主庫(kù)執(zhí)行flashback to scn xxxxxx的命令所默認(rèn)的并行度。我們觀(guān)察到默認(rèn)是128的parallel,但是由于某些原因,我們可能需要降低并行度,請(qǐng)問(wèn)有什么參數(shù)可以控制嗎?
我在網(wǎng)上到處都找不到相關(guān)文章,也無(wú)法從專(zhuān)業(yè)書(shū)籍里找到類(lèi)似的研究。
診斷結(jié)論:經(jīng)測(cè)試,flashback的并行度默認(rèn)受CPU_COUNT參數(shù)控制。
問(wèn)題四、MySQL體系結(jié)構(gòu)中一直說(shuō)也有SGA和PGA,請(qǐng)問(wèn)具體位置在哪?
MySQL 體系結(jié)構(gòu)中一直說(shuō)也有 SGA 和 PGA,5.7 的官方文檔也沒(méi)有描述,那請(qǐng)問(wèn)是在 InnoDB 中,還是具體位置在哪?
診斷結(jié)論:一般而言,如果對(duì)應(yīng)于Oracl的這兩個(gè)對(duì)應(yīng)概念,SGA指的是以Innodb buffer pool,innodb字典,frm緩存等公用緩存組合出來(lái)的內(nèi)存區(qū)域。PGA指的是以sort buffer,binlog buffer等線(xiàn)程專(zhuān)用內(nèi)存組合成的內(nèi)存區(qū)域。
問(wèn)題五、oracle 11g支持IPV6嗎?
公司最近在做IPV6的改造方案,我想問(wèn)下對(duì)現(xiàn)有oracle數(shù)據(jù)庫(kù)會(huì)有什么影響嗎?公司主要用oracle11g和oracle12c。
診斷結(jié)論:11gr2支持單節(jié)點(diǎn)使用ipv6,12cR1支持public IP的ipv6(內(nèi)聯(lián)不支持),12cR2完全支持。
問(wèn)題六、move表后,表空間可用300G,但是無(wú)法resize
由于磁盤(pán)組冗余度不符合安全要求,對(duì)各表空間(Bigfile)進(jìn)行清理后嘗試做數(shù)據(jù)文件的resize操作,過(guò)程如下:
1、新建表空間,作為數(shù)據(jù)中轉(zhuǎn)用
2、MOVE大部分表(90%)至其新建表空間后MOVE回原有表空間,從而減少數(shù)據(jù)庫(kù)碎片
3、收縮對(duì)應(yīng)的數(shù)據(jù)文件在MOVE回原有表空間后重建相關(guān)索引,統(tǒng)計(jì)發(fā)現(xiàn)可用空間提高40G左右,有效的減少了碎片
但是無(wú)法resize數(shù)據(jù)文件到MOVE之后的大小。
診斷結(jié)論:實(shí)際上按照你的操作思路,可以move 100%的表都去另外一個(gè)表空間,然后直接drop掉原有表空間就可以了。如果存在沒(méi)MOVE表的EXTENTS已經(jīng)擴(kuò)展到了數(shù)據(jù)文件的邊緣,是沒(méi)辦法resize的。
問(wèn)題七、如何快速預(yù)估表的行數(shù)
請(qǐng)問(wèn)有哪些方法可以快速預(yù)估表的行數(shù)?
診斷結(jié)論:1、并行查詢(xún)count(*);2、統(tǒng)計(jì)信息num_rows字段;3、sample block() 取樣查詢(xún)。
問(wèn)題八、RAC配置多個(gè)public網(wǎng)絡(luò)
現(xiàn)在有一個(gè)需求,客戶(hù)有兩個(gè)網(wǎng)絡(luò),都需要連接數(shù)據(jù)庫(kù),需要配置兩個(gè)public網(wǎng)絡(luò),請(qǐng)問(wèn)如何配置。
診斷結(jié)論:首先官方建議不要在安裝Oracle時(shí)配置多個(gè)public網(wǎng)絡(luò),等集群安裝完之后再通過(guò)命令去添加public網(wǎng)絡(luò),測(cè)試步驟詳見(jiàn)小程序文章。
問(wèn)題九、關(guān)于分區(qū)表全局分區(qū)索引和全局不分區(qū)索引的效率
按月分區(qū)的分區(qū)表,單個(gè)分區(qū)表記錄大約1500萬(wàn),對(duì)于非分區(qū)鍵上的索引來(lái)說(shuō),是建全局分區(qū)索引還是不分區(qū)索引效率高?分區(qū)索引按照列HASH分區(qū)還是有其它方式?
專(zhuān)家解答:LOCAL索引的最大好處是在進(jìn)行分區(qū)操作,比如TRUNCATE PARTITION, DROP PARTITION時(shí),不會(huì)出現(xiàn)索引INVALID的情況,不影響索引的可用性。由于GLOBAL索引所有的數(shù)據(jù)存儲(chǔ)在一起,因此當(dāng)執(zhí)行分區(qū)操作的時(shí)候,索引會(huì)失效,而如果想要保證所有的有效性,需要增加UPDATE (GLOBAL) INDEXES語(yǔ)句,這使得原本很快結(jié)束的DDL操作,由于需要維護(hù)全局索引而變得非常緩慢,且產(chǎn)生大量的日志。12c之后,全局索引的異步同步可以緩解全局索引的這個(gè)問(wèn)題。
而GLOBAL索引的好處是,在表變?yōu)榉謪^(qū)后,只要索引仍然是GLOBAL索引,通過(guò)索引訪(fǎng)問(wèn)數(shù)據(jù)的效率就不會(huì)下降。由于LOCAL索引的索引分區(qū)數(shù)量和表分區(qū)數(shù)量相等,如果訪(fǎng)問(wèn)一個(gè)LOCAL索引,且查詢(xún)條件未指定分區(qū)鍵值,這時(shí)Oracle將會(huì)掃描所有的索引分區(qū)。而GLOBAL索引則只需要訪(fǎng)問(wèn)一棵索引樹(shù),當(dāng)分區(qū)數(shù)量眾多時(shí),二者的效率差異是非常明顯的。
當(dāng)然,它們還有其他的區(qū)別。就用戶(hù)而言,判斷需要GLOBAL還是LOCAL索引,最主要看是否會(huì)頻繁進(jìn)行分區(qū)的維護(hù)操作,比如定期刪除老分區(qū),如果是的話(huà),LOCAL是最佳選擇,如果不是,則考慮GLOBAL索引。
問(wèn)題十、同樣的SQL,變量不同執(zhí)行計(jì)劃不一樣
一條相似的SQL語(yǔ)句,變量值不同,執(zhí)行計(jì)劃不同。SQL如下:
select order_no from OWNER.TAB_NAME where pa_id = "10221178" and ORDER_TIME > SYSDATE - 120;(異常)select order_no from OWNER.TAB_NAME where pa_id = "10221178" and ORDER_TIME > SYSDATE - 150
診斷結(jié)論:120的trc文件可以看到成本最低的是bit map and的執(zhí)行路徑,120的trc文件可以看到成本最低的是bit map and的執(zhí)行路徑。至于為什么兩個(gè)執(zhí)行計(jì)劃不一樣,應(yīng)該和IDX_XXX索引選擇率變化導(dǎo)致bit map的成本增加有關(guān)。
問(wèn)題十一、oralce 11g RAC 系統(tǒng)時(shí)間同步問(wèn)題
oralce 11g RAC 系統(tǒng)時(shí)間慢慢的就比正常時(shí)間慢了,如何解決呢,rac節(jié)點(diǎn)之間時(shí)間是同步的,但是比實(shí)際時(shí)間慢出30分鐘,這個(gè)問(wèn)題如何避免呢,rac本身自帶了時(shí)間同步的服務(wù),還可以在外面再加ntp服務(wù)嗎?
診斷結(jié)論:一般都是在兩節(jié)點(diǎn)開(kāi)啟NTP服務(wù),同步外部NTP服務(wù)器的時(shí)間,實(shí)踐中都是配置NTP服務(wù)。如果啟用NTP服務(wù),集群自己的ctss服務(wù)會(huì)停止,沒(méi)有影響。如果需要啟用NTP,特殊情況下可能會(huì)導(dǎo)致節(jié)點(diǎn)重啟,保險(xiǎn)起見(jiàn),可以到下次停機(jī)窗口一起變更。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/39039.html
閱讀 1687·2021-11-11 10:59
閱讀 2699·2021-09-04 16:40
閱讀 3763·2021-09-04 16:40
閱讀 3080·2021-07-30 15:30
閱讀 1819·2021-07-26 22:03
閱讀 3227·2019-08-30 13:20
閱讀 2300·2019-08-29 18:31
閱讀 501·2019-08-29 12:21