2014年3月30日 星期日

[SSRS][Oracle]Tablespace Usage Report

        話說小弟我打字不快,但我又想有效率的管理DB,那怎麼做呢?就是把日常對DB作檢查的Script客製成自己想要的報表就好啦,只要用滑鼠點點點就可以看我想看的資訊,這樣是不是輕鬆很多?

        客製自己想要的報表,好處之一是可以滿足自己的需求,好處之二就是你得要求自己去研究那些資訊要如何取得,從中也順便對DB有進一步的了解,也是自學的好方法之一!

        因為小弟對MS SQL較熟悉,所以就想到用Reporting Services 2008 R2作為我報表呈現的工具,來去取得Oracle的資料,Reporting Services可以呈現精美的報表,也有訂閱的功能可以把報表送出,很方便喔

        以下就先分享Tablespace Usage的報表


2014年3月23日 星期日

[Rman]將備份檔還原到異機

        假設要將QA1的Rman備份還原到QA2,首先在QA1用Rman完整備份,記得archivelog與controlfile都要備份,命令如下

RMAN>run { allocate channel t1 type disk; allocate channel t2 type disk; CROSSCHECK ARCHIVELOG ALL; DELETE NOPROMPT EXPIRED ARCHIVELOG ALL ; backup full format '/home/oracle/rman_backup/db_%T_%u_%s_%p' database include current controlfile; sql 'alter system archive log current'; backup format '/home/oracle/rman_backup/archive_%T_%u_%s_%p' archivelog all delete input; delete noprompt obsolete; crosscheck backup; Release Channel t1; Release Channel t2; }

2014年3月16日 星期日

[PLSQL]當Tablespace的剩餘空間不足時,自動增加Datafile

        因為工作需要用Oracle,小弟只好自學了,因為剛開始不熟所以原廠說什就配合什,那時原廠DBA說要時常監控tablespace的剩餘空間,最好兩個小時就check一次,如果小於2GB時,就要主動增加datafile,避免單一datafile自動增長超過4G,那時想說Oracle怎麼那麼麻煩,不就一開始估計會長多大,就先分配好足夠的空間就好嗎?

        正因為不熟所以只好傻傻地照做,想說寫個Procedure來幫我做這件事好了,於是就產生的這個Procedure囉,但後來還是沒用到,但還是放上來給有需要的人參考,不過話說PLSQL跟T-SQL差好多啊

2014年1月6日 星期一

用Reporting Services 2008 R2連接Oracle

        最近打算用Reporting Services 2008 R2連接Oracle 11gR2,光測試到底要安裝哪個ODAC就快瘋掉,有夠複雜,因為我是先在VM上測試,OS是裝windows server 2008 r2 x64,打算開發與RS都在同一台上,但發現這樣行不通,似乎得拆開,因為開發用Visual Studio 2008是x32的,而RS是x64的,這會影響ODAC的版本,若全都裝在同一台,容易出錯的

2013年12月13日 星期五

安裝Oracle Instant Client與SQLPlus在Ubuntu上

        話說現在開始要學另外三種資料庫,真是很難消化啊

        最近在裝Oracle Instant Client就遇到很多問題,在Win上可以裝x32與x64的版本,在試Toad for Oracle時,又看到只支援x32版client的訊息,新版的好像可以支援x64,裝來裝去兩個都裝就出問題了,Linux反而比較單純

       裝完Client後,最基本連Oracle的工具就是SQL*Plus,我嘗試在Ubuntu上安裝也是花好多時間,原因就是網路上很多文章都誤導了我,連Oracle Database Online Documentation的說明也是不清不楚,像是SQL*Plus在Linux有分x32與x64版本,實際用起來有什差別嗎?你去網路上查看看差在哪裡,幾乎99%命令列都是打sqlplus,問題x64的實際上要打sqlplus64耶,這差很多的,害我明明裝好x64了,卻一直試著執行sqlplus,卻一直出錯說找不到命令,百思不解為何?以為是environment variable出錯,還是權限不足,怎麼try都不行,其實打sqlplus64就OK了,真是浪費我一堆時間(其實真正原因是我不熟啦...還怪人)

       在Ubuntu上的裝法如下,以下是我剛裝完Ubuntu後,只花十分鐘就裝好SQLPlus用的命令了,供各位參考

2013年12月10日 星期二

Remote Scan的問題

        在Performance Dashboard看到有不正常的Waiting Requests,點進去看Query Plan,發現問題在於Remote Scan,如下圖


2013年9月28日 星期六

[CTE]Common Table Expession到底有沒有使用TEMPDB呢?

        今天遇到一位同事,聊了一下跟我說CTE少用,因為CTE會佔用TEMPDB的空間,用的不恰當會把TEMPDB灌爆,講的煞有其事,我心想好像不是吧,印象中CTE並不會佔用TEMPDB的空間,但我也沒有去證實過也就沒有反駁了

        之後我查了一下WITH common_table_expression (Transact-SQL),上面是有提到Specifies a temporary named result set, known as a common table expression (CTE). 不知是不是看到temporary就認為一定是存在TEMPDB裡?

         那到底會不會佔用TEMPDB呢?我找到Steve這位大師的Temp Table vs Table Variable vs CTE and the use of TEMPDB這篇文章,值得一看,講得清楚明白啊