烂大街

 找回密码
 立即注册
搜索
热搜: cf
查看: 1042|回复: 0

[分享交流] 批量还原数据库

[复制链接]
  • TA的每日心情
    郁闷
    7 天前
  •  成长值: 4610

    118

    主题

    382

    回帖

    6万

    积分

    垃圾回收员

    Rank: 10Rank: 10Rank: 10

    UID
    1
    马尼
    22468 枚
    贡献
    4941 次
    信誉
    100 点
    在线时间
    197 小时
    注册时间
    2023-7-20
    最后登录
    2024-11-24

    龙年大吉信誉勋章灌水之王活跃之王优质贡献者国庆勋章

    发表于 2024-6-17 08:28:22 | 显示全部楼层 |阅读模式
    [AppleScript] 纯文本查看 复制代码
    # SQL Server 实例名称
    $serverName = "换成你主机的名字"
    # 备份文件目录
    $backupFolder = "数据库存放的目录"
    
    # 默认的数据和日志文件路径(请根据您的实际情况替换这些路径)
    $defaultDataPath = "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA"
    $defaultLogPath = "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log"
    
    # 获取备份文件列表
    $backupFiles = Get-ChildItem -Path $backupFolder -Filter "*.bak"
    
    # 遍历备份文件并构建还原命令
    foreach ($file in $backupFiles) {
        $dbName = $file.BaseName
        $backupFileFullPath = $file.FullName
    
        # 获取逻辑文件名
        $fileList = Invoke-Sqlcmd -ServerInstance $serverName -Query "RESTORE FILELISTONLY FROM DISK = N'$backupFileFullPath'"
        $mdfLogicalName = $fileList | Where-Object { $_.Type -eq "D" } | Select-Object -ExpandProperty LogicalName
        $ldfLogicalName = $fileList | Where-Object { $_.Type -eq "L" } | Select-Object -ExpandProperty LogicalName
    
        # 构建还原数据库的 T-SQL 命令
        $restoreCommand = @"
    RESTORE DATABASE [$dbName]
    FROM DISK = N'$backupFileFullPath'
    WITH FILE = 1, 
    MOVE N'$mdfLogicalName' TO N'$defaultDataPath\$dbName.mdf',
    MOVE N'$ldfLogicalName' TO N'$defaultLogPath\$dbName.ldf',
    NOUNLOAD, REPLACE, STATS = 10
    "@
    
        # 执行还原命令
        Invoke-Sqlcmd -ServerInstance $serverName -Query $restoreCommand
        Write-Host "已还原数据库:$dbName"
    }
    
    Write-Host "所有备份文件还原完成。"
    

    666
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|烂大街

    GMT+8, 2024-11-24 16:51 , Processed in 0.560570 second(s), 28 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表