我尝试在许多远程计算机上恢复备份 - 每台计算机都有一个本地// preparation
for (int i = 0; i < 4; i++)
{
Series s = chart1.Series.Add("S" + i);
s.ChartType = SeriesChartType.StackedArea;
Series s2 = chart2.Series.Add("S" + i);
s2.ChartType = SeriesChartType.SplineArea;
}
for (int i = 0; i < 30; i++) // some test data
{
chart1.Series[0].Points.AddXY(i, Math.Abs(Math.Sin(i / 8f)));
chart1.Series[1].Points.AddXY(i, Math.Abs(Math.Sin(i / 4f)));
chart1.Series[2].Points.AddXY(i, Math.Abs(Math.Sin(i / 1f)));
chart1.Series[3].Points.AddXY(i, Math.Abs(Math.Sin(i / 0.5f)));
}
// the actual calculations:
int sCount = chart1.Series.Count;
for (int i = 0; i < chart1.Series[0].Points.Count ; i++)
{
double v = chart1.Series[0].Points[i].YValues[0];
chart2.Series[sCount - 1].Points.AddXY(i, v);
for (int j = 1; j < sCount; j++)
{
v += chart1.Series[j].Points[i].YValues[0];
chart2.Series[sCount - j - 1].Points.AddXY(i, v);
}
}
// optionally control the tension:
chart2.Series[0].SetCustomProperty("LineTension", "0.15");
文件。这是在PS工作流程中完成的:
.BAK
如果我一次只做一个,这似乎有效,但如果我并行运行多个,我会遇到死锁错误:
Invoke-Sqlcmd:由于数据库正在使用,无法获得独占访问权 RESTORE DATABASE异常终止。
事务(进程ID 54)在锁资源上与另一个进程发生死锁,并被选为死锁牺牲品。重新运行交易 ALTER DATABASE语句失败。
我做错了什么?
答案 0 :(得分:1)
仅基于SQL错误,似乎在一个远程服务器上多次调用RESTORE DATABASE命令。运行该脚本,但注释掉Invoke-Sqlcmd行。检查服务器列表,看看您是否在服务器上多次还原数据库。
否则,您是否尝试在没有并行选项的情况下运行PS脚本?换句话说,每个人都会定期成功吗?如果是这样,那么您的问题在于并行操作的语法。我自己从未使用PowerShell并行处理,但它似乎有一些意想不到的行为:Reddit discussion