SQL鏡像憑證到期解決方案

今天開啟一部SQL主機,該主機是階段性使用,因此已經一年沒開機了。主機安裝兩個Instance,Instance A會鏡像一個DB到Instance B去。

今天一開機發現鏡像居然掛了,如下圖所示

第一時間看一下Log,看看是發生甚麼事情了。

看到關鍵字CERTIFICATE,心中想了一下該不會是憑證過期了吧,檢視了一下sys.certificates這張系統表的expiry_date欄位發現憑證果然到期了。上網查了一下發現解法都是建立新憑證來解決,自己做了一遍順便記錄下來。

步驟一 : 我們先在Principal端建立我們的新憑證[HOST_A_cert_new],為了怕又過期,這次直接設定過期日期是2030年7月1日。

步驟二 : 將新建立的憑證產出備份檔備用。

步驟三 : 異動Endpoint套用新的憑證。

步驟四 : 砍掉舊的憑證[HOST_A_cert]。

步驟五 : 我們到Mirror端,先移除Principal之前建立在這裡的舊憑證[HOST_A_cert]。

步驟六 : 在Mirror端從剛剛的備份檔建立來自於Principal的憑證[HOST_A_cert_new]。

步驟七 : 一樣在Mirror建立一個新的憑證[HOST_B_cert_new],為了怕又過期,這次直接設定過期日期是2030年7月1日。

步驟八 : 一樣將Mirror端建立起來的憑證備份起來備用。

步驟九 : 異動Endpoint套用新的憑證。

步驟十 : 移除Mirror端自己以前建立的舊憑證[HOST_B_cert]。

步驟十一: 我們回到Principal端,先移除之前Mirror端建立在這裡的憑證[HOST_B_cert]。

步驟十二 : 在Principal端從剛剛的備份檔建立來自於Mirror的憑證[HOST_B_cert_new]。

上面十二個步驟其實就是在兩個Instance各自建立新的憑證,並且將新憑證套用到鏡像需要的相關物件,然後砍掉舊的憑證如此而已。

完成上述動作後我們可以發現鏡像已經可以順利運作了,如下圖所示。

我是ROCK

rockchang@mails.fju.edu.tw