如何啟用或禁用SQL Server數(shù)據(jù)庫的TCP/IP網(wǎng)絡(luò)協(xié)議
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
SQL Server 安裝程序安裝了 TCP 和 Named Pipes 網(wǎng)絡(luò)協(xié)議,但這些協(xié)議可能并未啟用??梢允褂靡韵?PowerShell 腳本或者使用 SQL Server 配置管理器啟用或禁用網(wǎng)絡(luò)協(xié)議。必須停止然后再重新啟動 SQL Server 數(shù)據(jù)庫引擎,對協(xié)議所做的更改才會生效。
有關(guān) PowerShell 的常規(guī)信息,請參閱 SQL Server PowerShell 概述。有關(guān)如何使用 SQL Server 配置管理器管理協(xié)議的詳細(xì)信息,請參閱如何啟用或禁用服務(wù)器網(wǎng)絡(luò)協(xié)議(SQL Server 配置管理器)。
SQL Server PowerShell (SQLPS.exe) 實用工具會啟動一個 PowerShell 會話,并加載和注冊 SQL Server PowerShell 提供程序和 cmdlets。當(dāng)運(yùn)行 PowerShell (PowerShell.exe) 而非 SQL Server PowerShell 時,首先請執(zhí)行以下語句以便手動加載所需的程序集。
# Load the assemblies
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement")
下面的腳本會啟用協(xié)議。若要禁用協(xié)議,請將 IsEnabled 屬性設(shè)置為 $false。
使用 SQL Server PowerShell 啟用服務(wù)器網(wǎng)絡(luò)協(xié)議
使用管理員權(quán)限打開一個命令提示符。
若要啟動 SQL Server PowerShell,請在命令提示符處鍵入 sqlps.exe。
執(zhí)行以下語句以啟用 TCP 和 Named Pipes 協(xié)議。將
$smo = 'Microsoft.SqlServer.Management.Smo.'
$wmi = new-object ($smo + 'Wmi.ManagedComputer')
# List the object properties, including the instance names.
$Wmi
# Enable the TCP protocol on the default instance.
$uri = "ManagedComputer[@Name='
$Tcp = $wmi.GetSmoObject($uri)
$Tcp.IsEnabled = $true
$Tcp.Alter()
$Tcp
# Enable the named pipes protocol for the default instance.
$uri = "ManagedComputer[@Name='
$Np = $wmi.GetSmoObject($uri)
$Np.IsEnabled = $true
$Np.Alter()
$Np
為本地計算機(jī)配置協(xié)議
當(dāng)腳本在本地運(yùn)行并配置本地計算機(jī)時,SQL Server PowerShell 可以通過動態(tài)確定本地計算機(jī)的名稱使腳本更為靈活。若要檢索本地計算機(jī)的名稱,請將設(shè)置 $uri 變量的行替換為以下行。
$uri = "ManagedComputer[@Name='" + (get-item env:\computername).Value + "']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"
使用 SQL Server PowerShell 重新啟動數(shù)據(jù)庫引擎
啟用或禁用了協(xié)議后,必須停止并重新啟動數(shù)據(jù)庫引擎才能使更改生效。執(zhí)行以下語句,通過使用 SQL Server PowerShell 來停止和啟動默認(rèn)實例。若要停止和啟動命名實例,請將 'MSSQLSERVER' 替換為 'MSSQL$
# Get a reference to the ManagedComputer class.
CD SQLSERVER:\SQL\
$Wmi = (get-item .).ManagedComputer
# Get a reference to the default instance of the Database Engine.
$DfltInstance = $Wmi.Services['MSSQLSERVER']
# Display the state of the service.
$DfltInstance
# Stop the service.
$DfltInstance.Stop();
# Wait until the service has time to stop.
# Refresh the cache.
$DfltInstance.Refresh();
# Display the state of the service.
$DfltInstance
# Start the service again.
$DfltInstance.Start();
# Wait until the service has time to start.
# Refresh the cache and display the state of the service.
$DfltInstance.Refresh(); $DfltInstance 該文章在 2021/5/19 10:37:04 編輯過
|
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |