在以下脚本中,将重新连接 SQL 数据库定义为 DDC(Delivery Controller)。这是一项需要谨慎操作的任务,因此在执行之前强烈建议你采取适当的风险管理措施,例如备份数据库或创建快照,以便在出现问题时进行恢复。请仔细阅读以下风险提示,并确保你具备适当的权限和了解相关操作的影响。
重要风险提示: DDC 重新连接 SQL 数据库说明
- 在执行此操作之前,请确保你具备管理员权限,并了解该操作对系统的潜在影响。
- 此操作将重新定义 DDC 与 SQL 数据库之间的连接,可能会导致服务中断、数据丢失或其他不可预测的问题。
- 在执行此操作之前,强烈建议你在操作之前对数据库进行完整备份或创建系统快照。
- 重新连接 SQL 数据库是一项高风险操作,请确保你了解如何应对潜在问题,并准备好进行必要的故障排除和修复。
- 如果你对 SQL 数据库的配置和连接参数不确定,请勿继续执行此操作,以免造成严重损坏或无法恢复的状态。
- 在执行此操作期间,请确保没有用户正在使用 DDC 服务,并将其通知到相关人员以避免服务中断。
- 请明智地评估执行此操作的必要性,仅在确保系统安全的情况下继续进行。
注意:任何由于执行此操作而导致的问题或损失将完全由执行者承担责任。
asnp citrix.*
function conddc {
param(
[string]$sqlname,
[string]$sitename
)
$ServerName = "${sqlname}"
$SiteDBName = "Citrix${sitename}Site"
$LogDBName = "Citrix${sitename}Logging"
$MonitorDBName = "Citrix${sitename}Monitoring"
$csSite = "Server=$ServerName;Initial Catalog=$SiteDBName;Integrated Security=True"
$csLogging = "Server=$ServerName;Initial Catalog=$LogDBName;Integrated Security=True"
$csMonitoring = "Server=$ServerName;Initial Catalog=$MonitorDBName;Integrated Security=True"
Set-AdminDBConnection -DBConnection $csSite
Set-ConfigDBConnection -DBConnection $csSite
Set-AcctDBConnection -DBConnection $csSite
Set-AnalyticsDBConnection -DBConnection $csSite
Set-HypDBConnection -DBConnection $csSite
Set-ProvDBConnection -DBConnection $csSite
Set-AppLibDBConnection -DBConnection $csSite
Set-OrchDBConnection -DBConnection $csSite
Set-TrustDBConnection -DBConnection $csSite
Set-BrokerDBConnection -DBConnection $csSite
Set-EnvTestDBConnection -DBConnection $csSite
Set-SfDBConnection -DBConnection $csSite
Set-LogDBConnection -DBConnection $csSite
Set-LogDBConnection -DataStore Logging $null -Force
Set-LogDBConnection -DataStore Logging -DBConnection $csLogging
Set-MonitorDBConnection -DBConnection $csSite
Set-MonitorDBConnection -DataStore Monitor -DBConnection $null -Force
Set-MonitorDBConnection -DataStore Monitor -DBConnection $csMonitoring
## If necessary, enable configuration logging for the XD site:
Set-LogSite -State Enabled
}
function testsql{
#测试新的数据库连接字符串
## Load the Citrix snap-ins
Test-AcctDBConnection -DBConnection $csSite
Test-AdminDBConnection -DBConnection $csSite
Test-AnalyticsDBConnection -DBConnection $csSite # for 7.6 and newer
Test-AppLibDBConnection -DBConnection $csSite # for 7.8 and newer
Test-BrokerDBConnection -DBConnection $csSite
Test-ConfigDBConnection -DBConnection $csSite
Test-EnvTestDBConnection -DBConnection $csSite
Test-HypDBConnection -DBConnection $csSite
Test-LogDBConnection -DBConnection $csSite
}
function endsql {
Set-ConfigDBConnection -DBConnection $null -Force
Set-AcctDBConnection -DBConnection $null -Force
Set-AnalyticsDBConnection -DBConnection $null -Force
Set-AppLibDBConnection -DBConnection $null -Force
Set-OrchDBConnection -DBConnection $null -Force
Set-TrustDBConnection -DBConnection $null -Force
Set-HypDBConnection -DBConnection $null -Force
Set-ProvDBConnection -DBConnection $null -Force
Set-BrokerDBConnection -DBConnection $null
Set-EnvTestDBConnection -DBConnection $null -Force
Set-SfDBConnection -DBConnection $null -Force
Set-MonitorDBConnection -DataStore Monitor -DBConnection $null -Force
Set-MonitorDBConnection -DBConnection $null -Force
Set-LogDBConnection -DataStore Logging -DBConnection $null -Force
Set-LogDBConnection -DBConnection $null -Force
Set-AdminDBConnection -DBConnection $null -Force
}
do {
echo "你正在运行ddc连接数据库操作,请根据功能序号选择"
echo "1 重新定义DDC连接数据库,使用集成SQL数据连接"
echo "2 重新定义DDC连接数据库,使用独立SQL数据连接"
echo "3 清空DDC数据库的连接配置信息,建议先执行此操作后,再执行上述1或2操作"
echo "4 测试DDC连接SQL数据库状态"
echo "5 退出程序运行"
$num = [int](Read-Host "请输入你选择的序号")
if ($num -eq 1) {
$sqlname = Read-Host "请输入集成SQL数据库的DDC主机名,例如CVAD-DDC01"
$sitename = Read-Host "请输入DDC站点名称,例shenzhen"
$sqlname = $sqlname + "\sqlexpress"
conddc -sqlname $sqlname -sitename $sitename
} elseif ($num -eq 2) {
$sqlname = Read-Host "请输入独立SQL数据库FQDN,例如SQLVIP.citrixlab.local"
$sitename = Read-Host "请输入DDC站点名称,例shenzhen"
conddc -sqlname $sqlname -sitename $sitename
} elseif ($num -eq 3) {
endsql
} elseif ($num -eq 4) {
testsql
sleep 3
} elseif ($num -eq 5) {
break
} else {
Write-Host "求求你别乱输入好吧,请选择对应的功能输入" -ForegroundColor Red
}
} while ($true)