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
    • 最新
    • 标签
主页 / server / 问题

问题[database-restore](server)

Martin Hope
Matthias
Asked: 2020-05-01 02:32:03 +0800 CST

快速、保存和重新启动更大的 MySQL/MariaDB 数据库

  • 0

我必须通过 ssh/scp 将带有 43GB MariaDB DB 的 Drupal 站点转移到另一台服务器。

我一大早就有一个有限的停机时间窗口。过去,我通过这样的管道直接传输较小的数据库(<3GB):

ssh -l webuser 10.0.0.99 "cd /var/www/drupal7/htdocs/site_name && drush sql-dump | xz -1 -" | xz -d - | drush sqlc

但是有了这个更大的数据库,我担心这个管道的某些部分会失败,我必须重新启动一切,这几乎肯定意味着我会超过停机时间窗口。

因此,显而易见的解决方案是将其拆分为单个独立的步骤,以便我可以重做部分任务,以防其中一个失败:

ssh -l webuser 10.0.0.99 "cd /var/www/drupal7/htdocs/site_name && drush sql-dump | xz -1 - > /home/webuser/db_dump.sql.xz"
scp webuser@10.0.0.99:/home/webuser/db_dump.sql.xz .
xzcat /home/webuser/db_dump.sql.xz | drush sqlc

但是现在这些步骤是连续的,需要更多时间,这意味着在出现问题时重做步骤的时间更少。

所以我想我正在寻找一种在旧服务器上创建数据库转储的方法,并有第二个独立的进程将数据传输到新服务器并开始在新服务器上恢复数据库。

只需使用

scp webuser@10.0.0.99:/home/webuser/db_dump.sql.xz .

在尚未完成的数据库转储上将不起作用,因为 scp 不会等到 MariaDB 完成写入数据库转储。

有人知道一个命令,它会继续传输或输出数据,直到数据库转储完成?

或者有人知道转移数据库的更好方法吗?


更新:

我想我可以使用这样的tee命令:

ssh -l webuser 10.0.0.99 "cd /var/www/drupal7/htdocs/site_name && drush sql-dump | xz -1 - | tee -a /home/webuser/db_dump.sql.xz" | xz -d - | drush sqlc

然而,这将改善这种情况,想象一下仍然写入数据库转储并且在网络传输或恢复期间出现问题的情况。然后你必须用转储文件重新启动,但你不能只是通过复制它,scp因为 MariaDB 仍在写入它,所以问题和以前一样。

mysql scp mariadb database-restore
  • 3 个回答
  • 204 Views
Martin Hope
SysAdminUK
Asked: 2016-09-13 23:59:28 +0800 CST

SQL 2012 恢复问题 - 无法获得独占访问

  • 0

情况 - 我们有一个 Live_db 数据库和一个 Test_db 数据库。我正在尝试获取 Live 的副本以用作测试。

进行了 Live 备份。现有的测试数据库被删除(关闭现有的连接),因为我们不需要它的数据。我正在尝试使用名称 Test_db 恢复 Live_db 并选择更改文件路径,使其指向 test_db_data.MDF 和 test_db_log.LDF,但恢复仍然失败。

    TITLE: Microsoft SQL Server Management Studio
------------------------------

Restore of database 'TEST_DB' failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)

------------------------------
ADDITIONAL INFORMATION:

System.Data.SqlClient.SqlError: Exclusive access could not be obtained because the database is in use. (Microsoft.SqlServer.SmoExtended)

当数据库甚至不存在时,它怎么能被使用呢?有很多关于此错误的信息,但都没有帮助。

我尝试根据网络上其他线程的建议修复它:

  1. 创建一个空白数据库并尝试覆盖它。- 没有不同
  2. 重新启动 SQL 服务器 - 没有区别
  3. 尝试恢复为不同的名称 - 没有区别
  4. 尝试恢复到不同的文件路径 - 没有区别
  5. 确保它不是默认数据库 - 它不是
  6. 在单用户模式下恢复 - 没有区别
  7. 确保数据库没有查询窗口 - 没有
  8. 确保没有任何表被浏览到 - DB 已删除,没有表

我完全不知所措。我要做的就是获取 LIVE_DB 的副本并将其创建为 TEST_DB。有人可以帮忙吗?如果这有所作为,我正在使用 GUI。

sql-server-2012 database-restore
  • 1 个回答
  • 1418 Views
Martin Hope
Carlo
Asked: 2016-09-06 01:14:20 +0800 CST

如果需要,我可以从完整的 Windows 服务器备份中恢复 SQL 数据库吗

  • 4

我已经安排了备份和每天的副本:

  • 裸机恢复
  • 系统状态
  • 系统保留
  • 本地磁盘 C:\

备份存储在 iSCSI 磁盘上。在本地磁盘 C 上是带有日志的数据库 mdf。理论上,如果 SQL Server 生成的数据库备份(如 mydatabase.bak)出现问题,我可以从完整的 Windows Server 备份中恢复数据库吗?

谢谢

windows sql-server backup windows-server-backup database-restore
  • 1 个回答
  • 836 Views
Martin Hope
riffraff
Asked: 2012-07-17 00:05:40 +0800 CST

选择性地将“记录集”从一个 mysql 实例导入到另一个

  • 0

我有一个托管生产数据库的 mysql 服务器,我会定期制作它的快照,我们也可以将其用作暂存环境。

有时会发生不好的事情,例如我们从生产中删除一行(以及所有通过外键连接到它的行),并且在修复错误代码后我继续导入备份数据。

但是,作为操作的菜鸟,我不确定正确的过程是什么。

截至目前,我有一个脚本可以执行以下操作:

  • 获取由键 K 索引的行(使用 mysqldump -w)
  • 从表列表中获取 row_key = K 的所有行(再次使用 mysqldump -w)
  • 将所有这些行插入到产品数据库中(使用 mysql )

这看起来很老套,并且在数据查找部分(例如我的数据库中“相关”表的列表不正确)和数据导入部分(例如由于数据库“分歧”而违反约束)总是存在一些不一致我必须手动修复INSERT代码)。

有没有正确的方法来做这种事情?

我可以在 SF 上看到相关问题,例如 将数据从一个 MYSQL 数据库移动到另一个数据库, 但这似乎与合并整个数据库或导入整个备份有关,而不是恢复一小部分“自包含”数据。

mysql backup-restoration database-restore
  • 1 个回答
  • 253 Views
Martin Hope
Chris Moschini
Asked: 2012-07-01 12:06:56 +0800 CST

在不影响用户的情况下恢复 SQL Server 2008 数据库

  • 2

当我从另一台服务器上的数据恢复 Sql Server 2008 R2 中的数据库时,它让用户感到一团糟。我在两台机器上都有一个名为 Web_SqlA 的 Windows 用户和 MsSql 登录名。在还原之前,Web_SqlA 已正确映射到数据库中正确的 Windows 用户。还原后,Web_SqlA 仍列为数据库的用户,但它不再与 Windows 用户相关联,导致对其的可信连接失败。

如何在每次不破坏该用户的情况下恢复数据库?

我看到这个:
Sql Server 数据库还原

解决事后修复这些孤立用户的问题;我希望首先防止在恢复期间覆盖用户 - 其他所有内容都应该恢复,但让我的用户保持原样。我该怎么做?

sql-server-2008 users restore database-restore orphans
  • 1 个回答
  • 3563 Views
Martin Hope
Shantanu Gupta
Asked: 2010-03-30 08:03:04 +0800 CST

Sql Server 2005 数据库丢失,如何恢复所有记录。MDF/LDF 尺寸与应有的尺寸相同

  • 2

几个月前,我在我的一台客户端机器上安装了 sql server 2005。我给了他一个备份选项,以便及时进行备份,但他从未进行任何备份。

今天他叫我“我看不到我的任何记录”。我访问了我的客户系统,发现桌子上没有任何记录。任何一张桌子上都没有一行。然后我检查了他是否有任何我发现不存在的备份文件。

我问他原因可能是什么原因。他说这可能是由于病毒。

在此之后,我检查了 mdf 和 ldf 文件的大小,发现它应该是它的大小。当我创建他的服务器 mdf ldf 文件时,它有 2MB 的数据库,现在分别是 83 MB 和 193Mb mdf/ldf。

这表明数据仍然存在于其中,但未显示。

可能的原因是什么?如何将所有数据恢复到我的表中?

sql-server backup database database-restore
  • 2 个回答
  • 664 Views
Martin Hope
Imagineer
Asked: 2010-01-16 08:04:57 +0800 CST

如果您必须从备份恢复并从头开始构建数据库服务器,主数据库备份对于恢复 MS SQL 服务器是否至关重要?

  • 5

Commvault 合作伙伴支持建议我关闭主数据库的备份,因为备份因日志文件被锁定而失败。

以下是给出的建议:

“该消息是由 Commvault 无法备份主数据库的事务日志引起的。如果这种情况间歇性发生,则可能是某些东西锁定了事务日志,从而阻止 SQL iData 代理访问日志。通常主数据库只是一个模板,并且是不被任何应用程序使用(需要使用 SQL 数据库的应用程序创建自己的数据库),因此阻止它被备份应该没有害处 您可以通过指定 NOT 在主副本中备份它来做到这一点SQL 数据代理"

以下是我得到的错误。

sqlxx SQL 服务器/

SQLxx 不适用/

系统数据库 19856*

(CWE) 交易日志 N/A 01/08/2010 19:00:16

(01/08/2010 19:00:18) 01/08/2010 19:03:15

(01/08/2010 19:03:14) 1.44 MB 0:01:11 0.071 2 0 1

ITD014L2

失败原因:

• 错误代码[30:325]:备份期间遇到错误。错误:[错误:[Microsoft][ODBC SQL Server Driver][SQL Server]无法备份master数据库的日志。请改用备份数据库。[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP LOG 异常终止。]

作业选项:创建新索引、启动新媒体、备份所有子客户端、截断日志、跟踪挂载点、备份受系统文件保护保护的文件、备份系统状态数据时停止 DHCP 服务、备份系统状态数据时停止 WINS 服务事件:

• 79714 [backupxx/JobManager] [01/08/2010 19:03:15]:备份作业 [19856] 已完成。客户端 [sqlxx]、代理类型 [SQL Server]、子客户端 [系统 DB]、备份级别 [事务日志]、对象 [2]、失败 [1]、持续时间 [00:02:59]、总大小 [1.44 MB] , 使用的介质或装载路径 [ITD014L2]。

• 79712 [sqlxx/SQLiDA] [01/08/2010 19:01:53]:备份期间遇到错误。错误:[错误:[Microsoft][ODBC SQL Server Driver][SQL Server]无法备份master数据库的日志。请改用备份数据库。[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP LOG 异常终止。]

• 79711 [sqlxx/SQLiDA] [01/08/2010 19:01:51 ]:查询结果 [[Microsoft][ODBC SQL Server Driver][SQL Server]无法备份 master 数据库的日志。请改用备份数据库。[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP LOG 异常终止。]。

• 79707 [backupxx/JobManager] [01/08/2010 19:00:15]:收到客户端 [sqlxx]、iDataAgent [SQL Server]、实例 [SQLxx]、子客户端 [系统 DB]、备份级别 [事务日志]。

文件备份失败:

• 备份数据库[master] 失败

请指教,谢谢。

sql-server backup restore database-restore
  • 4 个回答
  • 6557 Views

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve