none
Скрипт которые делает Kill Process у выбранных баз в SQL 2005. RRS feed

  • Вопрос

  • Добрый день.

    Наверное проблема не нова и где то уже поднималась - укажите плиз.

    Вообщем ситуация такая - есть 1С 7.7 и есть SQL Server 2005 Enterprise.

    Очень часто происходит зависание баз 1С и при этом необходимо сбрасывать на SQL сервере зависшие сессии (sleeping).

    В 2005 SQL я делаю это через Detach.

    Так вот собственно вопрос - есть ли такой скрипт который сбрасывает сессии с базы которую я укажу?

    Язык скрипта не имеет значения :).

     

     


    fil
    4 октября 2010 г. 9:18

Ответы

  • Маленький совет, скрипт SQL лучше написать как хранимую процедуру.

    А уж хранимую процедуру можно вызывать из PS без проблем.

    Про SQL & PS:

    Accessing SQL Server Data from PowerShell

    #Вызов хранимой процедуры DecreaseInventory
    
    # Define input parameters
    $ProductID = Read-Host "Enter product ID"
    $Amount = Read-Host "Decrease quantity by"
    
    # Create SqlConnection object, define connection string, and open connection
    $con = New-Object System.Data.SqlClient.SqlConnection
    $con.ConnectionString = "Server=.; Database=AdventureWorks;
     Integrated Security=true"
    $con.Open()
    
    # Create SqlCommand object, define command text, and set the connection
    $cmd = New-Object System.Data.SqlClient.SqlCommand
    
    #Вот она родимая, хранимая процедура!
    $cmd.CommandText = "EXEC DecreaseInventory @ProductID, @Amount"
    $cmd.Connection = $con
    
    # Add parameters to pass values to the stored procedure
    $cmd.Parameters.AddWithValue("@ProductID", $ProductID) | Out-Null
    $cmd.Parameters.AddWithValue("@Amount", $Amount) | Out-Null
    
    # Run the stored procedure
    $RowsUpdated = $cmd.ExecuteNonQuery()
    
    Write-Host
    
    # Display the number of rows updated
    Write-Host Number of rows updated: $RowsUpdated
    
    Write-Host
    
    # Close the connection
    $con.Close()
    
    
    

    MCSE, MCSA:Messaging (2000/2003) MCITP:EMA, MCTS: Exchange 2007
    5 октября 2010 г. 2:53

Все ответы

  • Я думаю, что задача состоит из двух частей: 1. Написать SQL скрипт, который убивает зависшие сессии (об этом лучше спросить в разделе по SQL) 2. Написать скрипт на VBS или Posh, который подключится к SQL-серверу, например через ODBC, и запустит SQL-скрипт на выполнение.


    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    4 октября 2010 г. 11:55
    Модератор
  • Маленький совет, скрипт SQL лучше написать как хранимую процедуру.

    А уж хранимую процедуру можно вызывать из PS без проблем.

    Про SQL & PS:

    Accessing SQL Server Data from PowerShell

    #Вызов хранимой процедуры DecreaseInventory
    
    # Define input parameters
    $ProductID = Read-Host "Enter product ID"
    $Amount = Read-Host "Decrease quantity by"
    
    # Create SqlConnection object, define connection string, and open connection
    $con = New-Object System.Data.SqlClient.SqlConnection
    $con.ConnectionString = "Server=.; Database=AdventureWorks;
     Integrated Security=true"
    $con.Open()
    
    # Create SqlCommand object, define command text, and set the connection
    $cmd = New-Object System.Data.SqlClient.SqlCommand
    
    #Вот она родимая, хранимая процедура!
    $cmd.CommandText = "EXEC DecreaseInventory @ProductID, @Amount"
    $cmd.Connection = $con
    
    # Add parameters to pass values to the stored procedure
    $cmd.Parameters.AddWithValue("@ProductID", $ProductID) | Out-Null
    $cmd.Parameters.AddWithValue("@Amount", $Amount) | Out-Null
    
    # Run the stored procedure
    $RowsUpdated = $cmd.ExecuteNonQuery()
    
    Write-Host
    
    # Display the number of rows updated
    Write-Host Number of rows updated: $RowsUpdated
    
    Write-Host
    
    # Close the connection
    $con.Close()
    
    
    

    MCSE, MCSA:Messaging (2000/2003) MCITP:EMA, MCTS: Exchange 2007
    5 октября 2010 г. 2:53
  • Сделай такой вот батник:

    sqlcmd -S SQLServer\Instance -U SQLAdmin -P SQLAdminPassword -Q "KILL %1" 

    и передавай ему в качестве параметра Session ID 


    Andrew Mishechkin
    29 ноября 2010 г. 9:38