以前曾經寫了一篇《How to remove replication in Syteline》http://www.cnblogs.com/insus/archive/2011/12/20/2294831.html 過于簡單。由于SyteLine采用共享License的授技術,如果你從一個正式的數據庫復制一個備份,恢復至另外一個站點上,這樣它們會有很多數據共享。為了杜絕數據混淆,我需要做的是移除Replication功能。說簡單一些吧,如果你在正式版的SyteLine數據有些問題,或是你想測試一些功能,但你又不想在正式版來操作。這樣你會想到創建一個測試的系統如Pilot。正常的情況之下,備份與恢復即可,但是SyteLine ERP是采用Intranet License的。也就是說恢復之后,Pilot的數據與正式版的數據庫還是有關聯的。在Pilot做測試或是更新,它會更新至正式版的數據庫去。因此我們需要移除復制(Replication)。
一,分別備份Live數據庫,包括App,Forms,Objects三個數據庫。
二,進入UT服務器,打開Services.msc,停止SyteLine服務(IDO service)。
四,恢復數據庫。分別使用備份的bak文件來恢復Pilot site的App, Forms & Objects)數據庫。以下步驟是在恢復數據庫進行或是相關,與原ERP和原數據庫無關?。?!五,登錄Pilot數據庫,查詢[intranet]表,然后更新[MasterSite]為NULL。
SELECT * FROM [intranet]
UPDATE [intranet] SET [MasterSite] = NULL WHERE [intranet_name] = '???'
六,查詢[rep_rule]表
SELECT * FROM [rep_rule]
并刪除所有此表[rep_rule]記錄:
DELETE FROM [rep_rule]
七,查詢表[site]
SELECT * FROM [site]
刪除[site]記錄,僅留:
DELETE FROM [site] WHERE [site] <> '???'
更新[IntranetLicensing]為0。
UPDATE [site] SET [IntranetLicensing] = 0 WHERE [site]= '???'
八,查詢[site_group]表:
SELECT * FROM [site_group]
刪除所有此表[site_group]記錄,僅保留當前site的site_group數據:
DELETE FROM [site_group] WHERE [site_group] <> '???'
九,查詢表[IntranetSharedTable]:
SELECT * FROM [dbo].[IntranetSharedTable]
刪除所有此表[IntranetSharedTable]記錄:
DELETE FROM [dbo].[IntranetSharedTable]
十,在SQL的查詢分析器中,執行下面configuration,把TRUSTWORTHY值改為sa,
USE <Restored Database Name> ALTER DATABASE <Restored Database Name> SET TRUSTWORTHY ONEXEC sp_changedbowner 'sa'View Code
然后更新sa的SyteLine的密碼,由于密碼是加密的,你需要使用加密后的字符串,先來查詢一下[UserNames]
SELECT * FROM [UserNames]
下面Insus.NET把sa的密碼設為空,由于SL_Internal的密碼就是空的,因此我們就用它的加密后的字符串:
UPDATE [UserNames] SET [UserPassWord]='287C0C4DB105827AC41D11555D199265966ECF1FC527B37B6740FF6491427E54EA80' WHERE [UserId] = 2View Code
十一,登錄UT服務器,Restart SyteLine IDO service。十二,setup object Metadata。
十三,Discard IDO Cache in configuration manager:根據IDO Runtime on local machine 選項 ,選與不選各執行一次。
十四,Restart SyteLine IDO service。
十五,在UT服務器,運行與登錄SyteLine:打開intranets form,檢查master site 字段是否為空。為空說明正確。十六,打開sites/Entities form, 填寫正確的DataBase Name和Forms DataBase Name,并保存。
十七,打開site groups form 是存有記錄,記錄是否正確。
十八,打開Replication Management from檢查 Intranet Shared Tables,點擊時,它會出現警示,點OK確認, 然后按F4檢查記錄是否全為空。為空正確。
十九,在相同的Replication Management from中, 檢查 replication Rules 是否存在記錄,點擊時,它會出現警示,點OK確認, 然后按F4檢查記錄是否全為空,如果是空記錄那就對了。
二十,在相同的Replication Management from中, 點擊 "Reqenerate Replication Triggers"銨鈕,確認"Replication Triggers Regenerated Successfully"信息。
二十一,打開Update_All Tables form,按F4 過濾所有記錄,點擊"Select All" 按鈕,把 "Disable Replication" 選項選中,最后點擊“Repopulate Tables” 銨鈕。此步有可能花費相當長時間,視你的數據多少來決定。
二十二,打印報表,看看是否正常打印。二十三,完成。
新聞熱點
疑難解答