рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рд╢реНрд░рдо рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЙрддреНрдкрд╛рдж рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХрдИ рдШрдЯрдХреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдирддрд╛ рд╣реИ - рдХрд░реНрдиреЗрд▓, рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдмреНрд░рд┐рдЬ рдФрд░ рдбрд┐рд▓реАрд╡рд░реА рдЪреИрдирд▓ред рдШрдЯрдХреЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЬреЗрдПрд╡реАрдП рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реА ++ рдореЗрдВ рднрд╛рдЧред рд╡рд┐рддрд░рдг рдЪреИрдирд▓ рдПрдХ рд╕реЗ рдмреАрд╕ рддрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ (MS SQL рд╕рд░реНрд╡рд░ DBMS рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред JAVA рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИ; C ++ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕рдВрд░рдЪрдирд╛ рдХреЛ SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдм рд╕рд╛рдорд╛рди рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдПрдХ рдмрд╛рд░ рдЗрд╕ рдЪреАрдЬ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдХреНрд░рд┐рдпрд╛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдпрдорд┐рдд рд╣реИ)ред рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХрд┐рд╕реА рднреА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рддреБрд░рдВрдд рдкрд╕рдВрдж рдкреНрд░рд╛рдЪреАрди, рд▓реЗрдХрд┐рди рд╕рдордп-рдкрд░реАрдХреНрд╖рдгрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрдорд╛рдВрдб рднрд╛рд╖рд╛ - рдмрдЯ рдкрд░ рдЧрд┐рд░ рдЧрдИред рдЙрд╕реА рд╕рдордп, рд╣рдо рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреМрди рд╕реА рдмреИрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрднреА рднреА рд╕рдХреНрд╖рдо рд╣реИрдВред

рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗрдЯ рдХрд░реЗрдВ:
@ рд╕реЗрдЯ рдЙрдкрд╕реНрдХрд░ = "рд▓реЙрдЧред% DATE% _% рд╕рдордп: ~ 0.2% -% рд╕рдордп: ~ 3.2% -% рд╕рдордп: ~ 6.2% .txt"

рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд╕рдорд╛рди рдЖрдЙрдЯрдкреБрдЯ рдлрд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ: log.14.02.2012_10-41-42.txt
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рд╕реБрдмрд╣ рдпрд╛ рджреЗрд░ рд░рд╛рдд рдХреЛ рдХрд╛рдо рдХреЗ рдкреНрд░реЗрдореА рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: log.14.02.2012_ 1-03-28.txt
рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдкрд░ рд╕рд╣рд░реНрд╖ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред

рдпреБрдкреАрдбреАред рд╕рднреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдбреАрдЬреЗрдПрдирдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛:
for / f "tokens = 1-4 delims =:" %% a ( 'рдЗрдХреЛ% рд╕рдордп: ~ 0.8%' ) mytime = %% a_ %% b_ %% c рд╕реЗрдЯ рдХрд░реЗрдВ


рд╣рдо рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
@ рд░реЗрд╕реНрдЯ рдпрд╛ рд░рд┐рдореВрд╡
рд╕реЗрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ = % 1


рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рд╕реЗрдЯ рдХрд░реЗрдВ:
@ rem рдкреНрд░рд╛рд░реВрдк: < ComputerName > < InstanceName > рдпрд╛ рд╕рд┐рд░реНрдл IP
@ рд░рд┐рдо рдпрджрд┐ рди рддреЛ -рдпреВ рд╡рд┐рдХрд▓реНрдк рдФрд░ рди рд╣реА-рдкреА рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВ, рддреЛ sqlcmd Microsoft Windows рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
@ рд░реАрдо рдпрд╣ sqlcmd рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ Windows рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рд╕реЗрдЯ url_db = "(рд╕реНрдерд╛рдиреАрдп)"


рдЕрдЧрд▓рд╛, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ (y рдпрд╛ n) рд╣рдо рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ
@ рд░реЗрдо рд╣рдо рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рднрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рд╣рдо рдХрд░реНрдиреЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ
@ рд╕реЗрдЯ рдХрд░реЗрдВ
@ рд╕реЗрдЯ рдХрд░реНрдиреЗрд▓рдбрдмреНрдиреЗрдо = рдХрд░реНрдиреЗрд▓
@ рдХрд░реНрдиреЗрд▓рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо = рдХрд░реНрдиреЗрд▓ рд╕реЗрдЯ рдХрд░реЗрдВ
@ рд╕реЗрдЯ рдХрд░реНрдиреЗрд▓рдпреВрдЬрд╝рд░рдкрд╛рд╕ = рдХрд░реНрдиреЗрд▓
рдЖрдзрд╛рд░ рдХреЗ рд▓рд┐рдП @ рд░реЗрдо рд░рд┐рдХрд╡рд░реА рдореЙрдбрд▓ред рдкреВрд░реНрдг рдорд╛рди рдЙрдкрд▓рдмреНрдз | BULK_LOGGED | рд╕рд░рд▓
@ рд╕реЗрдЯ рдХрд░реНрдиреЗрд▓рдХреНрд░рд┐рд╕рд┐рдЬрд╝_рдореЛрдб = SIMPLE

@ rem рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рднрд░реЗрдВ, y - рдпрджрд┐ рд╣рдо рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ
@ рд╕реЗрдЯ рд╡рд░реНрдХрд╡рд┐рд╢рдиреЗрд▓ = % рей
@ channelDbName = рдЪреИрдирд▓ рд╕реЗрдЯ рдХрд░реЗрдВ
@ рд╕реЗрдЯ рдЪреИрдирд▓рдбрд╛рдЙрди = резреж
@ рд╕реЗрдЯ ChannelUserName = рдЪреИрдирд▓
@ рд╕реЗрдЯ ChannelUserPassw = рдЪреИрдирд▓
рдЖрдзрд╛рд░ рдХреЗ рд▓рд┐рдП @ рд░реЗрдо рд░рд┐рдХрд╡рд░реА рдореЙрдбрд▓ред рдкреВрд░реНрдг рдорд╛рди рдЙрдкрд▓рдмреНрдз | BULK_LOGGED | рд╕рд░рд▓
@ рд╕реЗрдЯ ChannelRecovery_mode = SIMPLE
@ rem рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╛рдо рдФрд░ рдЙрд╕рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "_" рдЪрд┐рд╣реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП test_1 рдпрд╛ test1
@ рд╕реЗрдЯ Use_underline = y
@ рд░реЗрдо рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдП
@ рд╕реЗрдЯ ChannelVersion = mssql.Channel_5.4.3.2

@ rem рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рднрд░реЗрдВ, y - рдЕрдЧрд░ рд╣рдо рдмреНрд░рд┐рдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ
@ рд╕реЗрдЯ рд╡рд░реНрдХрд╡рд┐рдмреНрд░рд┐рдЬ = % 4
@ рд╕реЗрдЯ рдмреНрд░рд┐рдЬрдбрдиреЗрдо = рдмреНрд░рд┐рдЬ
@ рд╕реЗрдЯ рдмреНрд░рд┐рдЬрд╕рдБ рдирд╛рдо = рдкреБрд▓
@ рд╕реЗрдЯ рдмреНрд░рд┐рдЬрдпреВрдЬрд╝рд░рдкрд╛рд╕ = рдкреБрд▓
рдЖрдзрд╛рд░ рдХреЗ рд▓рд┐рдП @ рд░реЗрдо рд░рд┐рдХрд╡рд░реА рдореЙрдбрд▓ред рдкреВрд░реНрдг рдорд╛рди рдЙрдкрд▓рдмреНрдз | BULK_LOGGED | рд╕рд░рд▓
@ рд╕реЗрдЯ BridgeRecovery_mode = SIMPLE
@ рд░реЗрдо рдмреНрд░рд┐рдЬ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд╕реНрдХрд░рдг
@ рд╕реЗрдЯ BridgeVersion = mssql.Bridge_1.1.3


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдзрд╛рд░ (INSTALL рдпрд╛ REMOVE) рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрд╕ рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░реЗрдВрдЧреЗред
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЕрд▓рдЧ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред рд╣рдо sqlcmd рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдкрдХреА рдорд╢реАрди рдкрд░ MSSQL рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ SQL рд╕рд░реНрд╡рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд┐рддрд░рдг рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ sqlcmd рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдпрджрд┐ "% WorkWhisI_k%" == "y" ()
рдпрджрд┐ "% ACTION%" == "INSTALL" (
@ rem рдХрд░реНрдиреЗрд▓ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдБ
sqlcmd -S % url_db % -i Kernel.sql >> % рд▓реЛрдЧреЛ %
)
рдпрджрд┐ "% ACTION%" == "REMOVE" (
@ rem рдореБрдЦрдмрд┐рд░_рдмрд░реНрди рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдЙрд╕рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╣рдЯрд╛рдПрдВ
sqlcmd -S % url_db % -i рдХрд░реНрдиреЗрд▓рдбреЗрд▓ .sql >> % рд▓реЛрдЧреЛ %
)
)


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдбреЗрдЯрд╛рдмреЗрд╕, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЖрджрд┐ рдХреЗ рдирд╛рдо рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ sqlcmd рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ?
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЙрдЧрд┐рди рдмрдирд╛рдПрдБ
рдХреНрд░рд┐рдПрдЯ рд▓реЙрдЧ $ ( рдХрд░реНрдиреЗрд▓рдпреВрдЬрд╝рд░рдирд╛рдо )
PASSWORD рдХреЗ рд╕рд╛рде = '$ (KernelUserPassw)' , CHECK_POLICY = OFF;
GO

- рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдБ
USE рдорд╛рд╕реНрдЯрд░;
$ DATABASE рдмрдирд╛рдПрдВ ( рдХрд░реНрдиреЗрд▓рдбрдмреНтАНрдирд╛рдо ) ;
GO

- рдбреЗрдЯрд╛рдмреЗрд╕ рд░рд┐рдХрд╡рд░реА рдореЛрдб рд╕реЗрдЯ рдХрд░реЗрдВ
$ DATABASE $ ( рдХрд░реНрдиреЗрд▓рдбрдмреНтАНрдирд╛рдо ) $ $ рдЦрд░реАрджреЗрдВ ( рдХрд░реНрдиреЗрд▓рдХреНрд░реАрдореНрд╕_рдореЛрдб )
GO

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдБ
USE $ ( рдХрд░реНрдиреЗрд▓рдбрдмреНтАНрдирд╛рдо ) ;
$ US $ ( рдХрд░реНрдиреЗрд▓UserName ) рд▓реЙрдЧрд┐рди $ ( рдХрд░реНрдиреЗрд▓рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ) рдХреЗ рд▓рд┐рдП рдмрдирд╛рдПрдВ
DEFAULT_SCHEMA = dbo рдХреЗ рд╕рд╛рде;
GO

- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рднреВрдорд┐рдХрд╛ рд╕реМрдВрдкреЗрдВ
USE $ ( рдХрд░реНрдиреЗрд▓рдбрдмреНтАНрдирд╛рдо ) ;
EXEC sp_addrolemember 'db_owner' , '$ (рдХрд░реНрдиреЗрд▓рд╕рд░реНрдирд╛рдо)'
GO


рдмреНрд░рд┐рдЬ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕реА рддрд░рд╣ рдХреА рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрдВрдЧреАред рд▓реЗрдХрд┐рди рдЪреИрдирд▓ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрд╣реЗрдВрдЧреЗ, рджрд╕ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд▓реВрдк рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
рдХреЗ рд▓рд┐рдП / рдПрд▓ %% i ( 1 , 1 , % ChannelDbCount % ) рдХрд░рддреЗ рд╣реИрдВ (
рдпрджрд┐ "% Use_underline%" == "y" (
@ рд╕реЗрдЯ ChannelDbNameCounter = % ChannelDbName % _ %% i
) рдФрд░ (
@ рд╕реЗрдЯ ChannelDbNameCounter = % ChannelDbName %%% i
)
% ChannelDbNameCounter %
@ rem рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдБ cp_service
sqlcmd -S % url_db % -i Channel.sql >> % рд▓реЛрдЧреЛ %
@ rem cp_service рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдБ
sqlcmd -S % url_db % -i % ChannelVersion % .sql >> % рд▓реЛрдЧрд┐рд╕ %
)


рдЕрдЧрд▓рд╛, рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдореИрдВ рдХреЗрд╡рд▓ рдЪреИрдирд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛)
@ рдЪреИрдирд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
SET ChannelDbCount = 10
@ рд░рд┐рдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкреНрд░рдХрд╛рд░ < рдмреВрдЯ | рдкреНрд░рдгрд╛рд▓реА | рдСрдЯреЛ | рдорд╛рдВрдЧ | рд╡рд┐рдХрд▓рд╛рдВрдЧ | рддреНрд░реБрдЯрд┐ >
SET run_type = рдорд╛рдВрдЧ
@ рд░реЗрдо рд╕рд░реНрд╡рд┐рд╕ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬ ( / / рдЖрдЧреЗ рд╕реНрд▓реИрд╢ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ )
SET рдирд┐рд░реНрднрд░ = MSSQLSERVER

рдХреЗ рд▓рд┐рдП / рдПрд▓ %% i ( 1 , 1 , % ChannelDbCount % ) рдХрд░рддреЗ рд╣реИрдВ (
@ рд░реЗрдо рдЪреИрдирд▓ рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдПрдХ рдШрдЯрдХ рдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд░реВрдмреА рдЪреИрдирд▓ %% i.exe - рд╕реНрдерд╛рдкрдирд╛
рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП @ 1 рдорд┐рдирдЯ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рд╣рдо 3 рд░рд┐рдмреВрдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ
sc рд╡рд┐рдлрд▓рддрд╛ рдЪреИрдирд▓ %% i рд░реАрд╕реЗрдЯ = 240 рдХреНрд░рд┐рдпрд╛рдПрдБ = рдкреБрдирд░рд╛рд░рдВрдн / 60000 / рдкреБрдирд░рд╛рд░рдВрдн / 60000 / рдкреБрдирд░рд╛рд░рдВрдн / 600000
@ рд░реЗрдо рд╕рд░реНрд╡рд┐рд╕ рд╕реНрдЯрд╛рд░реНрдЯ рдЯрд╛рдЗрдк < рдмреВрдЯ | рдкреНрд░рдгрд╛рд▓реА | рдСрдЯреЛ | рдорд╛рдВрдЧ | рд╡рд┐рдХрд▓рд╛рдВрдЧ | рддреНрд░реБрдЯрд┐ > рдФрд░ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ < рдирд┐рд░реНрднрд░рддрд╛ ( / ( рдЖрдЧреЗ рд╕реНрд▓реИрд╢ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ ) ) >
sc config рдЪреИрдирд▓ %% рдореИрдВ рд╢реБрд░реВ = % run_type % рдирд┐рд░реНрднрд░ = % рдирд┐рд░реНрднрд░ %
)

рд╣рдо рд╕реНрдерд╛рдкрд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:
рдХреЗ рд▓рд┐рдП / рдПрд▓ %% i ( 1 , 1 , % ChannelDbCount % ) рдХрд░рддреЗ рд╣реИрдВ (
sc start Channel %% i
)


рдореИрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рд╕рдорд╛рди рд╣реИред

рдЕрдм рд╡рд╣ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦреЗрдВ рдЬреЛ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдерд╛ред
Install.bat yyy рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЙрддреНрдкрд╛рдж рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдирд╛

@ рд░реЗрдо рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ
DbManage.bat INSTALL % 1 % 2 % 3

@ рд░реЗ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
InstallServices.bat

@ рд░реЗрдо рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ
StartServices.bat


рдЗрдВрд╕реНрдЯреЙрд▓ .bat yyy рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдбрдХреНрдЯ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдирд╛
@ рд░реЗрдо рдпрджрд┐ рд╣рдо рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╡реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ
StopServices.bat

@ рд░реЗрдо рд╣рдо рдПрдХ рдирд╛рд▓реА рдмрдирд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд░реБрдХрдиреЗ рдХрд╛ рд╕рдордп рдорд┐рд▓реЗ
@ рд░реЗрдо рдбреЗрдЯрд╛ рд╡рд┐рдзрд┐ рдЧреИрд░-рд╕рд░реНрд╡рд░ рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ
рдЯрд╛рдЗрдордЖрдЙрдЯ / рдЯреА резреж

@ рдкреБрд░рд╛рдиреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдПрдВ
RemoveServices.bat

@ рд╣рдЯрд╛рдПрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ
DbManage.bat REMOVE % 1 % 2 % 3 рд╢реБрд░реВ рдХрд░реЗрдВ


рдирддреАрдЬрддрди, рд╣рдореЗрдВ рд╕рднреА рд╡рд╛рдВрдЫрд┐рдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдорд┐рд▓реАрдВ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЗрд╕ рдСрдкреНрд╕ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдиреНрдпреВрдирддрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреН рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдорд┐рдд рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╢реБрднрд╛рд░рдВрднред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдЕрдЪреНрдЫреА рдкреБрд░рд╛рдиреА "рдмреИрдЪ рдлрд╛рдЗрд▓реЗрдВ" рдЕрднреА рднреА рдХреБрдЫ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ PoverShell рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд╣рд╛рдБ рдХреБрдЫ рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╛рд▓реА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдеред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рдЖрджрд░реНрд╢ рд╕рдорд╛рдзрд╛рди рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред

Source: https://habr.com/ru/post/In138162/


All Articles