2017年10月11日 星期三

[MySQL]預設innodb_log_file_size太小,對IO影響有多大呢?

       基本上innodb_log_file_size我從沒用過預設值,一般來說都要求要能夠撐住1小時的寫入量,同事管的一台MySQL有效能上的問題,請我幫忙看,iostat看了一下還滿忙的,IOPS在1000~3000左右,IO吞吐量介於25MB~80MB,幾乎全是寫IO為主,以SAS 15000轉RAID 10來說算忙碌的,但看起來IO還不至於撐不住,看了一下MySQL內讀寫比為8:2,比對OS的顯得不太合理,寫IO怎麼會那麼重,再看一下設定,innodb_log_file_size居然用預設值,只有5MB,2個也不過10M,算了一下適當的大小應該要1.4G,10M對1.4G這也差太多了,log file豈不是一直被替換,寫IO這麼忙應該是這個問題,請同事找時間先改成1G看看,那改了之後IO差多少呢?

       下圖是PMM的監控項,時間範圍涵蓋更改innodb_log_file_size的前後時間段,看中間的兩個圖分別是IO吞吐量跟IOPS,更改innodb_log_file_size後的數據讓我嚇了一跳,同樣的QPS下,IO變得一點都不忙碌了,也差太多


       那如何計算innodb_log_file_size的大小呢?可參考Calc_innodb_log_file_size.sh

2017年9月25日 星期一

[MySQL]初始化資料庫後,竟無法啟動,Error Log無錯誤訊息紀錄

      測試Percona 5.7.19-17,原本就已搭好Master了,就在Slave上安裝完Server後,準備初始化資料庫,我直接把Master的my.cnf拿來用,初始化資料庫成功,自定義的Error Log目錄下有產生對應的mysql_error.log,預設的Error Log路徑下沒有,到這裡一如往常沒有問題

      但接下來MySQL竟然啟動FAILED,怪的是mysql_error.log竟然沒有錯誤訊息,難道錯誤寫到預設Error Log下,一看還真的產生了一個,不過是空的,如下圖

2017年9月11日 星期一

[Oracle]ORA-01034: ORACLE not available

     話說把Oracle移轉到新的server之後,為了讓client可以不要調整,所以得把新的server的hostname與ip改成跟之前的一樣,就在同事調完hostname與ip重開Server後,我打算啟動Oracle,結果剛進sqlplus就遇到下圖的錯誤
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0

2017年7月4日 星期二

[SQL Server]從備份檔bak產生完整Restore命令

  之前一直在異機還原,要還原的DB往往拆成好多個data file,異機的磁碟分區又不一樣,還原就很麻煩了,要改路徑,不知為什用SSMS產生的Restore命令竟不完全,當時上網有找到一位大大寫好的SP,可從BAK產生Restore命令,可是我忘記是從哪找到的,最近剛好套用到SQL 2016時會出錯,發現是RESTORE FILELISTONLY的結果集不太一樣,於是改了一下再放上來給有需要的人


2017年5月25日 星期四

[SQL Server]SSMS 17.1出來了

下載位址在Download SQL Server Management Studio

話說之前用SSMS 16.5.3在Object Explorer要refresh Databases時,只要是Database在Restoring狀態,總是會回應緩慢,然後Errror就會出18456的錯誤呢,我還想說是我哪裡設定有問題,一查SSMS 2016 - Refresh Databases & Login Failed 18456原來是bug,要17.0才會修正


 這次出了17.1就更新看看囉,那錯誤真的沒了,回應快了很多,而且UI的圖示長得不太一樣了呢


2017年4月21日 星期五

[MySQL]MySQL 5.7 inet_aton參數不允許空字串

  話說把一個資料蒐集的DB從Percona 5.6升級到5.7,結果用LOAD DATA INFILE的入庫腳本幾乎全部失敗,顯示如下的錯誤
Incorrect string value: '''' for function inet_aton

  因為來源資料有ip,所以用inet_aton轉換成整數存入,都運作好幾個月的腳本怎麼會升級後出錯呢?而且它都是顯示第一行出錯,我怎麼看第一行都是對的@@

  後來嘗試了一下inet_aton在5.6與5.7的差異
  各位猜猜看,下面哪個會出錯?
select inet_aton(null);
select inet_aton(0);
select inet_aton('');


2017年4月20日 星期四

[CentOS]升級MySQL後,mail命令竟然出錯了

  升級mysql後,mail就寄不出去了?
send-mail: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file:
No such file or directory

2017年4月16日 星期日

[Docker]測試SQL Server Agent on Linux

  因為SQL Server vNext(CTP1.4)的docker image並沒有包含SQL Server Agent,要使用它需要手動安裝,步驟可以參考Install SQL Server on Ubuntu,因為安裝過程遇到一些錯誤,我把遭遇到的問題跟解法列出來,供大家參考

  首先啟動mssql-server-linux的container然後進入bash,查看一下process
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<Passw0rd>' -p 1433:1433 -d microsoft/mssql-server-linux
docker exec -it c1f bash
ps aux

2017年4月13日 星期四

[Docker]測試Microsoft SQL Server vNext

  以往DBA在Mac上要測試SQL Server都要用VirtualBox或是Paralles之類的虛擬機器,現在多了Docker這個選擇,那如果是Developer的話,更要用Docker,因為真的是秒裝,非常快速,本篇來介紹一下如何來測試Microsoft SQL Server vNext (CTP1.4),關於image的說明可參考microsoft/mssql-server-linux

  第一次使用可以先docker pull下載它,需要花上一段時間喔,因為image有1G多
docker pull microsoft/mssql-server-linux

  啟動就很簡單了
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<Passw0rd>' -p 1433:1433 -d microsoft/mssql-server-linux
  其中環境變數ACCEPT_EULA與SA_PASSWORD是必要的

2017年3月29日 星期三

[轉載][SQL Server][PowerShell]dbatools - best practices and instance migration module

  最近發現一個給SQL Server DBA用的Free PowerShell tools,目前有超過150個命令可用,尤其是有很多Migration Commands,真是非常方便啊

  有興趣的自己試試,網址如下
dbatools - best practices and instance migration module


2017年3月26日 星期日

來試試Docker for Mac

  在Mac及Windows下並無法直接使用Docker,必須透過Linux的VM才行,所以在Mac下通常得先安裝VM才能使用Docker,而Docker For Mac的出現,讓在Mac上使用Docker變得簡單,它內建xhyve VM,不再需要安裝額外的VM就能使用囉

  Docker For Mac的安裝檔與教學可參考Install and Run Docker for Mac,安裝很簡單就不多做說明

      安裝成功後,可以執行docker相關命令試試
  docker version

2017年3月2日 星期四

Power BI reports in SQL Server Reporting Services技術預覽版

        昨天去微軟聽尹相志老師的Power BI的研討會,尹老師分享了一個很酷的視覺化工具,
Power BI reports in SQL Server Reporting Services: January 2017 Technical Preview now available,雖然是技術預覽版,但已經可以直連Tabular與Multidimensional (cubes)的AS model囉,就能產生很精美可互動的視覺化報表呢!

        下圖我是live直連測試的cube,不用寫MDX,直接拖拉一下測試出來的結果喔!是老師特別推薦的SandDance客制化圖表喔,是不是很炫!