程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Powershell 脚本,用于恢复具有多个 TRN 文件的 SQL Server 数据库 示例:大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决PowersHell 脚本,用于恢复具有多个 TRN 文件的 SQL Server 数据库 示例:

开发过程中遇到PowersHell 脚本,用于恢复具有多个 TRN 文件的 SQL Server 数据库 示例:的问题如何解决?下面主要结合日常开发的经验,给出你关于PowersHell 脚本,用于恢复具有多个 TRN 文件的 SQL Server 数据库 示例:的解决方法建议,希望对你解决PowersHell 脚本,用于恢复具有多个 TRN 文件的 SQL Server 数据库 示例:有所启发或帮助;

我正在尝试提出一个 PowersHell 脚本,以便每天在 sql Server 2019 中使用位于一个文件夹中的多个 TRN(或 BAK)文件动态执行“还原数据库”。

我会先手动进行完整备份,此任务将安排在之后运行(每天一次)。

因此,Python 脚本将仅将昨天的文件从另一个文件夹抓取到此文件夹中,并且此 PowersHell 脚本将执行以运行以使用这些 TRN/BAK 文件(位于此文件夹中)来恢复数据库

计划是按顺序遍历每个 TRN 文件(位于同一文件夹中)(不是按文件创建时间,而是按文件名)。

例如,在这种情况下,它将从 "..04" --> "..12" 开始。

Powershell 脚本,用于恢复具有多个 TRN 文件的 SQL Server 数据库
      
    示例:

我从这个 site 中找到了一些示例,但我不确定如何在它识别要运行的序列 ("..04" --> "..12") 的位置进行编码。

PS C:\> $file = Get-ChildItem c:\BACkups,\\server1\BACkups -recurse
PS C:\> $file | Restore-DbaDatabase -sqlInstance Server1\Instance -UseDesTinationDefaultDirectorIEs

解决方法

因此,默认情况下,我认为 Get-ChildItem 应该已经从最低到最高显示文件,但如果您想确保可以尝试这样的操作,看看输出是否适合您的情况。>

为了开始测试,我将使用与您相同的名称创建文件:

$i=1;1..12|foreach{
    $null > "LOG_us_bcan_multi_replica_20210427$($i.ToString('0#')).bak"
    $null > "LOG_us_bcan_multi_replica_20200327$($i.ToString('0#')).bak"
    $i++
}

这将创建 24 个具有相同命名约定的文件。

  • ...multi_replica_2021042701.bak...multi_replica_2021042712.bak
  • ...multi_replica_2020042701.bak...multi_replica_2020042712.bak

我们知道可以按 datetiR_399_11845@e 排序,因此我们可以使用字符串操作来获取 Filenames 的日期并对其使用 ParseExact 方法。

例:

# Assuming your current directory is the directory where the .bak files are

$expression={
    [datetiR_399_11845@e]::ParseExact(
        $_.basename.split('replica_')[1],'yyyymMddHH',[cultureinfo]::InvariantCulture
    )
}

Get-ChildItem | SELEct-Object Basename,@{n='DateFromFilename';e=$expression}

# This will return a side by side Filename with their Dates from Filename

Basename                             DateFromFilename
--------                             ----------------
LOG_us_bcan_multi_replica_2020032701 3/27/2020 1:00:00 AM
LOG_us_bcan_multi_replica_2020032702 3/27/2020 2:00:00 AM
LOG_us_bcan_multi_replica_2020032703 3/27/2020 3:00:00 AM
LOG_us_bcan_multi_replica_2020032704 3/27/2020 4:00:00 AM
LOG_us_bcan_multi_replica_2020032705 3/27/2020 5:00:00 AM
LOG_us_bcan_multi_replica_2020032706 3/27/2020 6:00:00 AM
.....

现在我们可以使用相同的 $expressionSort-Object 而不是 SELEct-Object

Get-ChildItem | Sort-Object $expression

大佬总结

以上是大佬教程为你收集整理的Powershell 脚本,用于恢复具有多个 TRN 文件的 SQL Server 数据库 示例:全部内容,希望文章能够帮你解决Powershell 脚本,用于恢复具有多个 TRN 文件的 SQL Server 数据库 示例:所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。