http://www.cisco.com/en/US/customer/products/sw/voicesw/ps556/products_tech_note09186a0080557ba5.shtml
In order to remove the server from the database there is a script listed in Cisco documentation but its incorrect. Here's the correct remove batch script.
@echo off @if "%3x" == "x" goto Usage echo Install stored procedure in database %2 echo USE %2 echo GO echo DROP PROCEDURE dblRemoveServerFromDB echo GO echo CREATE PROCEDURE [dblRemoveServerFromDB] echo (@servername NVARCHAR(50)) AS echo BEGIN TRANSACTION echo DECLARE @nodeid NVARCHAR(50), @deviceid NVARCHAR(50), @pnsid NVARCHAR(50) echo -- echo PRINT 'Get the Node ID' echo SELECT @nodeid=pkid from ProcessNode where name=@servername echo -- echo PRINT 'Delete associated Device and MediaMixer' echo WHILE (SELECT COUNT(*) FROM Device WHERE fkProcessNode=@nodeid) ^> 0 echo BEGIN echo SELECT @deviceid=pkid from Device where fkProcessNode=@nodeid echo PRINT 'Delete MediaMixer' echo DELETE FROM MediaMixer WHERE fkDevice=@deviceid echo PRINT 'Delete MOHServer' echo DELETE FROM MOHServer WHERE fkDevice=@deviceid echo PRINT 'Delete Device' echo DELETE FROM Device WHERE pkid=@deviceid echo END echo -- echo PRINT 'Delete associated CallManager records' echo DELETE FROM CallManagerGroupMember FROM CallManagerGroupMember AS M echo JOIN CallManager AS C ON C.pkid=M.fkCallManager WHERE C.fkProcessNode=@nodeid echo DELETE FROM CallManager WHERE fkProcessNode=@nodeid echo -- echo PRINT 'Delete associated ProcessConfig records' echo DELETE FROM ProcessConfig WHERE fkProcessNode=@nodeid echo -- echo PRINT 'Delete associated AlarmConfig records' echo DELETE FROM AlarmConfig FROM AlarmConfig AS A JOIN ProcessNodeService echo AS S ON A.fkProcessNodeService=S.pkid WHERE S.fkProcessNode=@nodeid echo PRINT 'Delete associated ProcessNodeService records' echo DELETE FROM ProcessNodeService WHERE fkProcessNode=@nodeid echo -- echo PRINT 'Delete associated ComponentVersion records' echo DELETE FROM ComponentVersion WHERE fkProcessNode=@nodeid echo -- echo PRINT 'Delete the node' echo DELETE FROM ProcessNode WHERE pkid=@nodeid echo -- echo COMMIT TRANSACTION echo GO echo -- Execute procedure on server %1 echo exec dblRemoveServerFromDB '%3' osql -S %1 -d %2 -E -e -i temp.sql del temp.sql echo USE %2 echo GO echo sp_dropsubscription @publication = '%2', @subscriber = '%3', @article='all' echo GO osql -S %1 -d %2 -E -e -i temp1.sql del temp1.sql goto endd :Usage @echo Usage: RemoveServerFromDB "server" "database" "name_of_server_to_delete_from_ProcessNode.Name" @echo Example: RemoveServerFromDB . CCM0300 fred.cisco.com :endd
No comments:
Post a Comment