Articles of 数据库备份

有没有可能导出一个数据库的用户?

是否有可能导出一个SQL Server数据库(数据,结构)没有其用户? 如果是,是否可以使用SSMS?

清理没有xp_cmdshell或维护计划的备份文件

背景: 我们有一个需要运行xp_cmdshell的备份脚本。 我决定在新服务器上,我们不打算启用xp_cmdshell。 当作业启动时,我启用了xp_cmdshell,并在最后closures。 问题是,如果完整备份启动并且小时日志备份运行并完成,则会closuresxp_cmdshell,每小时备份将失败。 这导致我试图检测工作是否正在运行等path。但是,有没有更好的方法来清理? 实际的问题是: 如何在成功执行备份作业后删除旧的备份文件? 它需要脚本,如果我得到正确的通知,这就排除了维护计划。 它不会使用xp_cmdshell来避免整个工作交互的事情,并遵循良好的做法。 最好的scheme是让它从备份脚本中执行,所以它会在成功备份后删除备份文件。 如果由于任何原因在备份中出现错误,则可以继续备份其他数据库。 猜测:也许一个PowerShell脚本会做的伎俩? 这可以通过脚本进入一个工作步骤,并有条件地执行成功…但是,如果我们中途失败,所有这一切都将在备份结束时发生 – 如果我们紧张,备份驱动器需要手动清理空间。 也许我只是检查是否每小时工作正在运行,当我打算在小时工中closuresxp_cmdshell。 我可能会去那, 但你会怎么做 ?

LVM + MongoDB的。 降低备份创build的速度

直到最近,我们一直在使用SAS磁盘上的RAID10将mongo备份归档到隐藏SECONDARY服务器上的LVM快照。 目前,从500Gb数据量的快照操作需要花费很长时间。 最终档案大约是100Gb,在30分钟内创build第一个35Gb之后,磁盘速度令人难以置信。 直到存档达到52 Gb的那一刻,它工作了6个多小时。 我知道在主卷上的活动I / O期间执行LVM快照可能会减慢磁盘操作速度,但无法成像,可能会使速度减慢数十倍! 现在我正在考虑如何提高备份的速度 。 作为一个潜在的解决scheme,我看到了在备份服务器上停止mongodb并从“离线”服务器/卷运行LVM快照的方式。 然后再次启用它,并与主副本集重新同步。 但是,这种方式可能会导致一个问题,当php-mongo驱动程序没有正确反应副本集中的服务器列表更改。 而且我们需要在所有连接的客户端上重新启动php-fpm以解决这个问题,并使php迅速看到新的变化。 请您介绍一下如何在主动I / O负载下对数据500Gb +进行mongo备份的最佳方法。 先谢谢你!

备份mysql数据库的最佳实践

这个问题涉及mysql备份与复制和大量数据库的最佳做法。 我正在寻找你的观点和build议:) 我 – 现状 我有两个数据库主/从(MySQL复制)在我的每个应用程序服务器上。 我有一个由客户和一个“pipe理”数据库的数据库。 目前我共有500个数据库,很快就会超过1K。 每个数据库包括大约100个表,目前,在mysqldump操作(未压缩)之后,我通过数据库到达10到30mo。 II – 我需要什么 我现在正在考虑备份这些数据库。 主要目标是肯定能够解决服务器崩溃问题并构build灾难恢复stream程,但在此之前,我更担心自己的客户将自己的数据搞乱了。 总结一下,我希望能够: 备份和恢复所有数据库,以防服务器崩溃或受到攻击。 (然后执行灾难恢复)。 备份所有数据库并恢复特定的数据库,以便在客户弄糟自己帐户的数据时恢复新的副本(假设不超过24小时)。 三 – 我目前的想法和我的问题 1 – 备份位置 数据库的备份不应该在与数据库本身相同的服务器上完成。 由于我在两台不同的服务器上使用复制,您认为在另一台服务器上备份数据是一种很好的做法吗? 或者作为专用服务器的其他解决scheme是什么?为什么? 2 – 备份过程 首先,我将按照停止临时复制和“只读”备份的原则,从备份数据库进行备份。 我想我在这里考虑两种不同types的备份。 第一个备份将是原始数据文件的备份,我将每周执行说明(因为我正在使用复制,我很安全)。 而第二种types的备份将是每24小时执行一次的每个数据库的mysqldump。 这是否合乎逻辑? 还有其他要点我应该考虑吗? 增量备份是否对我有意思? 非常感谢!

备份ClickHouse数据的最佳方法

我们最近开始使用Yandex ClickHouse作为我们的数据后端,我正在研究如何最好地备份我们的数据。 似乎有两种方法来做到这一点。 改变表…冻结分区 ALTER TABLE … FREEZE PARTITION命令似乎只是创build一个分区的本地快照。 我不得不写一个脚本来发现每个表中的所有分区,然后发出相应的命令。 为了从系统中获得备份,我认为我必须在每个服务器上创build一个shadow目录的备份,并将该备份存储在另一个位置(如S3或其他位置)。 我将如何保持shadow目录清洁? 冻结可以被删除吗? 数据转储 我见过的备份数据的另一种方式是简单地将其转储到文件中,如本页所示。 https://github.com/resure/scpnet/wiki/ClickHouse-backup 我必须编写一个脚本来发现每个数据库中的所有表,然后将所有数据转储到一个文件中。 这让我想起了很多使用mysqldump来备份MySQL中的数据库,但是没有能力把所有东西都转储到一个命令中。 就我个人而言,我倾向于这个解决scheme,因为我似乎更容易编写脚本和维护,但我真的很好奇知道别人在做什么。

PostgreSQL自动备份

我一直在尝试在Windows服务器上设置备份脚本。 我已经使用pgAgent(调度pgAdmin)来运行备份脚本。 备份脚本没有问题。 但是,我的工作没有像他们应该运行。 我已经设定了时间表和步骤。 我相当肯定,我是在没有所需权限的情况下在错误的用户或用户下运行服务的。 我运行这样的服务: "C:\Program Files\pgAdmin III\pgAgent" INSTALL pgAgent -u postgres -p secret hostaddr=127.0.0.1 dbname=pgadmin user=postgres 我得到一个错误,告诉我,login信息有错误,但我知道这是正确的。 当我服务(控制面板 – >pipe理 – >服务)下,我能够启动与本地用户的服务。 这可能是问题吗? 我在哪里可以看到或更改postgres用户的权限?

数据库的完整,差异和日志备份,MSSQL和MYSQL

最好我给一个背后的故事,让你得到全面的情况。 我正在build立一个新的业务,希望能在2012年4月份开始,因此我正在准备好每一个方面。 业务的一部分将是虚拟主机。 我在这个领域非常有经验,并曾经pipe理过VPS。 在我的情况下,我去了两台服务器, 第一个只是一个Web服务器,第二个有邮件和数据库。 虽然MS SQL数据库最初不会提供给客户,但是可以或不可以通过“升级”等方式添加。我有2008快速安装,因为我需要为网站面板(我可能会也可能不会最终使用)。 否则MySQL数据库可以免费用于客户。 我正在思考两个数据库系统的备份策略。 对于MS SQL,我在00:00有一个每日完整备份,从01:00到23:00每个小时有一个差异。 我现在认为这将是备份“控制面板”的最佳方式 – 当我上线时,我可能每10分钟做一次备份。 至于MYSQL,似乎我不能做差异,就像我用MS SQL做的那样,首选的操作是每次都做一个完整的转储。 我相信你可以想象在这方面,磁盘空间会随着时间的推移而快速增长。 我的主要问题是: 我应该如何备份MySQL每小时​​? 每天一次完整的备份对客户来说是不够的,无论是否写入。 我实际上意识到客户负责他们的数据和备份,事实上,这是大多数公司的工作原理,但我想添加额外的安全网,可能会或可能不会帮助 – 尽最大的努力,如果你愿意的话。 我读过一些将MySQL复制到另一台机器的地方,然后每小时转储一次就可以解决我的问题,但是我会担心这个延迟。 我已经读过这个复制导致瓶颈。 这仍然是这样吗? 理想情况下,我想有另一台服务器进行登台/备份/复制,但现在还没有预算。 也许当我得到一定数量的客户时,我会这样做。 无论如何,这几乎是它的大部分。 感谢您的时间和帮助。 PS 我想提一下,以防万一,这是不明显的,我正在使用Windows Server的僵尸VPS – 在这种情况下,2008 R2数据中心。 另外,除了我的备份之外,我通过networking将它们发送到iDrive作为在线备份。 我的想法完美地工作在于,我创build了与以前完全相同的备份文件。 这样一来,在线备份中,我只用尽了本地备份文件的数据大小,同时保持了30天“在线版本”的设置。 所以我可以对我的客户说我有30(分)天的备份价值,我实际上做的都是正式的,只是用了一个备份集。

使用ghettoVCB进行虚拟机备份的一致性

我有一台运行Windows和CentOS虚拟机的ESXi主机。 其中几个正在运行SQL数据库(MSSQL和MySQL)。 我正在尝试使用ghettoVCB脚本来设置备份策略,我已成功执行备份并准备testing还原function。 ghettoVCB通过创build正在运行的计算机的快照,然后在成功备份后删除虚拟机,而不使其脱机,从而备份虚拟机。 由于生成的备份是一个离线虚拟机不会损害数据库(和快照时运行的其他应用程序)的一致性? 将此快照用作备份是否可靠?

Windows Server 2008 R2上的Postgresql 9.0.8物理备份导致“访问被拒绝”

我已经构build了一个脚本来执行PostgreSQL 9pipe理指南(Riggs / Krosing)中的“独立热物理数据库备份”配方,但是我将其修改为Windows Server 2008 R2的Postgresql 9.0.8数据库的物理备份。 对于使用rsync复制所有数据文件(不包括pg_xlog目录)的配方步骤#4我正在使用robocopy.exe(因为rsync是一个* nix实用程序,我正在使用Windows)。 问题是,经常有一个文件不能被复制,导致“访问被拒绝”。 手动复制文件失败,并且在备份脚本失败后很长一段时间 “访问被拒绝” – 所以这不是一个间歇性的问题,可以重新尝试。 该文件只有在重新启动PostgreSQL进程后才能被复制。 这总是一个不同的文件。 最后它是%PGDATADIR%\ 5432 \ base \ 24609 \ 38122。 我想听听你是否已经经历了这个,你做了什么来解决这个问题。 我在考虑: 备份之前重新启动PostgreSQL服务器(我承认这是一个黑客攻击) 使用某种可以复制打开文件的工具,如VSHADOW,DISKSHADOW和hobocopy(注意:不是robocopy) 也许有一些方法来指示PostgreSQL释放所有的锁? 看起来像添加常规“真空”消除症状

简单的脚本来备份PostgreSQL数据库

您好我编写简单的批处理脚本来备份postgeSQL数据库,但我发现一个奇怪的问题是否pg_dump命令可以指定一个密码? 有批处理脚本: REM script to backup PostgresSQL databases @ECHO off FOR /f "tokens=1-4 delims=/ " %%i IN ("%date%") DO ( SET dow=%%i SET month=%%j SET day=%%k SET year=%%l ) SET datestr=%month%_%day%_%year% SET db1=opennms SET db2=postgres SET db3=sr_preproduction REM SET db4=sr_production ECHO datestr is %datestr% SET BACKUP_FILE1=D:\%db1%_%datestr%.sql SET FIlLENAME1=%db1%_%datestr%.sql SET BACKUP_FILE2=D:\%db2%_%datestr%.sql SET FIlLENAME2=%db2%_%datestr%.sql SET BACKUP_FILE3=D:\%db3%_%datestr%.sql SET […]