AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 335983
Accepted
Just a learner
Just a learner
Asked: 2024-02-19 01:50:24 +0800 CST2024-02-19 01:50:24 +0800 CST 2024-02-19 01:50:24 +0800 CST

如何在 PowerShell 中使用 dbatools 筛选和还原特定 SQL 数据库备份

  • 772

我正在使用混合 SQL Server 备份文件的目录,并且需要使用 PowerShell 中的 dbatools 恢复特定数据库。以下是我的备份文件夹的目录结构:

PS C:\Users\administrator> tree \\dc1\backup /F
Folder PATH listing
\\DC1\BACKUP.
│   Hadr_endpoint_cert.cer
│   Hadr_endpoint_cert.pvk
│
└───NODE1
    └───MSSQLSERVER
        ├───AdventureWorks2016
        │   ├───Full
        │   │       Full_AdventureWorks2016_20240219011641.bak
        │   │
        │   └───Log
        │           Log_AdventureWorks2016_20240219011647.trn
        │
        └───Credit
            ├───Full
            │       Full_Credit_20240219012730.bak
            │
            └───Log
                    Log_Credit_20240219012735.trn

PS C:\Users\administrator>

node2当尝试使用以下命令恢复信用数据库时,我遇到了问题:

$files = Get-ChildItem -Path \\dc1\backup -Recurse -Include *.trn,*.bak
Restore-DbaDatabase -SqlInstance node2 -Path $files -DatabaseName Credit -NoRecovery -ExecuteAs sa

这会导致错误:

WARNING: [01:27:36][Restore-DbaDatabase] Multiple Databases' backups passed in, but only 1 name to restore them under. Stopping as cannot work out how to proceed.

使用此命令代替:

Restore-DbaDatabase -SqlInstance node2 -Path \\dc1\backup -DirectoryRecurse -DatabaseName Credit

导致不同的错误:

WARNING: [01:32:00][Get-DbaBackupInformation] Failure on node2 | The media family on device '\\dc1\backup\Hadr_endpoint_cert.cer' is incorrectly formed. SQL Server cannot process this media family. RESTORE HEADERONLY is terminating abnormally.

我知道我可以通过命名约定手动选择与 Credit 数据库相关的文件,但如果备份文件的文件名中没有数据库名称怎么办?在过滤掉不相关文件的同时自动执行此恢复的最佳方法是什么?

任何关于在这种情况下正确使用 dbatools 的指导或提示将不胜感激!先感谢您。

sql-server
  • 1 1 个回答
  • 42 Views

1 个回答

  • Voted
  1. Best Answer
    Charlieface
    2024-02-19T20:11:53+08:002024-02-19T20:11:53+08:00

    如果您知道实际路径,则可以直接转到该数据库的文件夹。

    否则,您可以用来Get-DbaBackupInformation仅获取该数据库的相关备份。

    $backups = Get-DbaBackupInformation `
      -Path "\\dc1\backup"
      -DatabaseName Credit `
      -SqlInstance node2 `
      -DirectoryRecurse;
    
    "Backups found:";
    
    $backups;
    
    $backups |
    Restore-DbaDatabase `
      -SqlInstance node2 `
      -DatabaseName Credit `
      -NoRecovery `
      -ExecuteAs sa;
    
    • 1

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve