一、原因
由於虛擬服務器系統出現問題,造成系統不斷不定時重啟,找不到原因,只好遷移到新的服務器,將服務器ip換成原來的ip來解決問題。
該服務器主要是數據庫服務器和一些gis協同服務,還有一些小服務在運行,所有主要是數據是服務器數據庫文件(mdf和ldf文件),總共有近三百個G(日志文件太大,單個最大的日志文件又150G),還有數據庫的備份文件,也有二百多G。然后就是 其他服務的安裝包等等。
二、遷移
先將安裝包文件復制到新服務,由於新服務器都是內網,而且沒有vpn,只好通過遠程原來的服務器,在這個服務器上遠程新服務器進行操作,現將SQLserver復制過去,一切都在順利的進行中。。。
五分鍾后,彈出一個錯誤信息窗口,復制失敗了,文件過大,通過直接復制的方式有點行不通呀。
只好換種方式,將需要的資料所在磁盤作為共享盤提供給新服務器,說干就干
先打開遠程,點擊左下角顯示選項
然后打開本地資源>詳細信息
勾選本機需要共享的磁盤
然后確定連接服務器,進去服務器后就可以看到共享的磁盤
剩下的任務就是將共享磁盤上的資料拷貝到新服務器上面了(注意數據庫mdf和ldf文件需要將SQLserver服務停止才能拷貝),這樣的好處就是不會因為文件過大造成傳輸失敗,也不會因為遠程連接中斷造成數據傳輸失敗,但是會暫停,只需要點擊重試即可。
。。。
一天后,資料文件終於拷貝完了。
三、安裝
接下來就是安裝了,首先把SQLserver安裝上,經過好一陣的搗鼓,終於安裝上了,中間還報了 幾次錯誤,系統缺少更新(KB2919355,KB2919442),還需要安裝jdk,否則SQLserver無法正常安裝上。
但是安裝上后,what!!!,找不到Microsoft SQL Server Management Studio,怎么回事?哦哦,原來SQLserver 2016版本以上需要單獨安裝,Microsoft SQL Server Management Studio,汗顏,我這是多久沒有更新我的SQLserver了。
接下來很順利安裝好Microsoft SQL Server Management Studio ,打開,連接,一切正常,(需要安裝的都在下圖所示)
SQLserver安裝過程遇到如下問題,走到這一步后,沒有下一步,之后回去將下圖圈中的功能取消,接下來可以繼續安裝了。
SQLserver安裝完后就是安裝其他一些服務軟件類的,例如gis3.2,在安裝的時候,配置協同服務,出現了一個問題,就是怎么登陸也登陸不上,報如下錯誤
一直檢查不到問題所在,只好重新建一個配置,且SQLserver重新創建一個用戶,用該用戶配置協同服務,問題解決。
那之前到底是哪出現問題呢?依舊是未解之謎。
不管了,接下來就是講SQLserver的mdf文件和ldf文件附加到數據庫中,進行還原。
四、CPU使用異常分析
CPU如下圖所示,每60秒會達到一次100%,經過查找發現問題是SQLserver Windows NT - 64,還是SQLserver的問題呀
問題來源知道了,但是問題是什么還不知道,這時候需要使用SQLserver的秘密武器-SQLserver profiler來查找問題,打開SQLserver 工具》SQLserver profiler,新建一個跟蹤,大約跟蹤兩分鍾的數據即可,另存為.trc文件即可。
將trc文件從服務器拷貝本地電腦,打開SQLserver》工具》SQLserver profiler。並打開剛才的trc文件,打開失敗,我本地的SQLserver Management Studio版本有點低,打不開高版本SQLserver保存的trc文件,
只好更新本地SQLserver Management Studio的版本為最新,到官網下載即可。
接下來很順利打開跟蹤文件,接下來就需要將trc文件里的數據導入到數據庫中,可以采用在分析工具中另存為>跟蹤表>連接數據庫>選擇表(已經存在temp_trc表結構的情況下使用)
也可以采用SQL語句的方式導入(沒有temp_trc表的情況下)
SELECT * INTO temp_trc FROM fn_trace_gettable('.trc文件路徑', default);
接下來在數據表總就可以進行數據的分析了,查看執行哪些SQL最占CPU內存。
這樣就確定問題所在的SQL,出在了同步日志查詢上面,導致查詢超時。處理后完美解決問題。
此次服務器遷移算是完美結束了。