西門(mén)子的wincc軟件提供了方便的變量歸檔,報(bào)警歸檔備份功能。但沒(méi)想到的是wincc用戶歸檔沒(méi)有自動(dòng)備份功能。配方數(shù)據(jù)及用戶歸檔存儲(chǔ)的報(bào)表記錄數(shù)據(jù)確是生產(chǎn)的關(guān)鍵數(shù)據(jù),需要定時(shí)定期備份。
當(dāng)然,西門(mén)子也提供了標(biāo)準(zhǔn)的接口函數(shù)提供導(dǎo)出功能。是的,一個(gè)表一個(gè)表的導(dǎo)出功能。項(xiàng)目變了,配方多了一種重新編輯腳本重新導(dǎo)出。基于項(xiàng)目實(shí)際情況,拋棄了西門(mén)子官方提供的方法,選擇了其他的方法處理備份數(shù)據(jù)。
在此,提供三種昌暉儀表使用過(guò)的wincc用戶歸檔備份方法,歡迎大家一起討論!
方法一:完整性備份為bak文件
借用強(qiáng)大的sql語(yǔ)法,通過(guò)vbs執(zhí)行sqlcmd指令,執(zhí)行已經(jīng)測(cè)試完成的t-sql備份指令。由于需要使用cmdshell指令,sql默認(rèn)為關(guān)閉狀態(tài)需要在t-sql指令中開(kāi)啟,結(jié)束完成后記得關(guān)閉,否則sql處于危險(xiǎn)狀態(tài)。結(jié)合wincc可以靈活的定義重復(fù)執(zhí)行的時(shí)間??梢造`活控制備份的周期,備份文件的保留方式。具體看現(xiàn)場(chǎng)實(shí)際要求,部分腳本如下:
實(shí)際測(cè)試,備份速度基本是ms級(jí)別,截圖如下。
方法二:導(dǎo)出表數(shù)據(jù)使用bcp指令
bcp實(shí)用工具可以在microsoft sql server實(shí)例和用戶指定格式的數(shù)據(jù)文件間大容量復(fù)制數(shù)據(jù)。使用bcp實(shí)用工具可以將大量新行導(dǎo)入sql server表,或?qū)⒈頂?shù)據(jù)導(dǎo)入數(shù)據(jù)文件。除非與queryout選項(xiàng)一起使用,否則使用該實(shí)用工具不需要了解transact-sql知識(shí)。bcp既可以在cmd提示符下運(yùn)行,也可以在ssms下執(zhí)行。
如圖所示:導(dǎo)出對(duì)應(yīng)的表的數(shù)據(jù),如果表名有固定的標(biāo)簽,可以靈活的控制表的數(shù)據(jù)導(dǎo)出,即使外部新建表單或者新加數(shù)據(jù)都無(wú)需調(diào)整腳本。通過(guò)vbs執(zhí)行sqlcmd,可以靈活控制表的名稱(chēng)。
方法三:使用wincc提供的c指令wincc odk uaarchiveexport與uaarchiveimport函數(shù)
詳細(xì)的指令有興趣的可以查詢西門(mén)子的官方幫助手冊(cè)。當(dāng)然官方的是最安全可靠的,靈活度卻少了很多,不到最后一刻腳本都可能根據(jù)需要調(diào)整。對(duì)c腳本的功底要求也很高,具體的腳本可以根據(jù)官方指導(dǎo)文件處理。