我们希望为新的SQL Server安装自动化一些管理操作,因此我们开始研究 LogFile Class 但是这个类不允许我们运行ALTER()方法来更改日志文件位置。也不要让我们添加新文件和删除和现有文件。有谁知道这个班级的内部:)?
注意:我知道我们可以运行SQL查询并运行ALTER DATABASE MODIFY FILE并复制文件并重新启动db。这个问题是本课程特有的。
我还尝试更改现有文件而不是创建新文件并删除现有文件,并且它会抛出相同的错误。
ERROR “{”DropFile'DBAUtility_log'丢失失败。 “}”
{“由于尚未创建对象,因此无法执行此操作。”}
class Program
{
static void Main(string[] args)
{
Server srv = new Server("xx");
Database db = default(Database);
db = srv.Databases["DBAUtility"];
//LogFile LF = new LogFile(srv.Databases.ItemById(0),'DBAUtility_log');
//Console.WriteLine("DB:", srv.Databases.Count());
Console.WriteLine(srv.Name);
Console.WriteLine("DBName" + srv.Databases.ItemById(5).ToString());
LogFile lf = new LogFile();
Console.WriteLine("LF:" + lf.ToString());
lf.Parent = db;
lf.Name = "DBAUtility_NEWLOG";
lf.FileName = "M:\\DBFiles\\SQLlog\\1\\DBAUtility_1.ldf";
lf.Create();
LogFile lf2 = new LogFile();
lf2.Parent = db;
lf2.Name = "DBAUtility_log";
lf2.FileName = "C:\\Install\\DBAUtility_1.ldf";
lf2.Drop(); //ERROR HERE
}
}
答案 0 :(得分:0)
$LogFileName = $db.name + '_Log'
$LogFile = New-Object ('Microsoft.SqlServer.Management.SMO.LogFile') ($db, $LogFileName)
$db.LogFiles.Add($LogFile)
$LogFile.FileName = $LogFileName + '.ldf'
$LogFile.Size = $logfilesize * 1024
$LogFile.GrowthType = 'KB'
$LogFile.Growth = $logfilegrowth * 1024
$LogFile.MaxSize = -1
$db.Create()