Questions tagged «backup»

制作数据副本,这些副本可以在数据丢失事件后恢复或从某个较早的时间点恢复数据。

5
备份->恢复操作后混乱的用户权限
我不得不将几个SQL Server 2008数据库移动到我们的新数据库服务器,因此我将它们全部备份(到.bak文件),将这些文件复制到新框中并还原它们(所有操作都使用SQL Management Studio完成)。 一切正常,但是现在我发现我无法使用继续在旧RDBMS上运行的SQL Server帐户登录任何数据库。我的Windows身份验证登录仍然可以正常工作。 我有这样的想法,用户和权限都可以无缝地复制到新的数据库服务器上,但是似乎某个地方出了问题。我将不胜感激/建议/建议;-)


1
确定导致数据库卡在RESTORING状态的根本原因
我知道有一些问题可以解决数据库卡在RESTORING状态中的问题,并使用这些解决方案手动将数据库恢复在线状态,但是我的情况有所不同。 我使用Powershell脚本进行了自动还原,该脚本将生产的副本还原到DEV实例。这些脚本在大约一年内没有发生变化,并且偶尔会完成还原过程,但是还原后的数据库仍处于RESTORING状态(有时脚本可以正常工作,有时会失败)。 每当我手动重新运行该过程时,或者从SSMS的用户界面或通过T-SQL手动还原数据库时,它都会毫无问题地完成。 我找到了建议CHECKDB在还原后的数据库上运行的答案,但没有任何结果导致此问题。 由于还原脚本还原了数据库的完整备份并使用了一个"WITH RECOVERY"选项,因此我试图找出可能停止还原过程的原因,尽管实际上是使用进行还原的"WITH RECOVERY"。 真的很感谢任何建议,因为我一直努力了解为什么会不时发生这种情况。 我非常想解决问题的根本原因,而不是解决症状,那就是再次手动还原数据库。 更新: Github Gist如@Brent建议- 在此处。

3
仅在执行备份时,还原标头的用途是什么?
当我使用以下查询监视备份时: SELECT command, percent_complete, 'elapsed' = total_elapsed_time / 60000.0, 'remaining' = estimated_completion_time / 60000.0 FROM sys.dm_exec_requests WHERE command like 'BACKUP%' or command like 'RESTORE%' 我注意到,在备份之前,SQL Server仅执行备份头,然后执行备份。 我想知道它的用途是什么,以及是否可以以某种方式减少执行时间。它似乎比实际备份需要更长的时间。

1
MySqlDump的DISABLE KEYS对导入无效
我对我之前关于Inno-Tables的导入速度的问题有一个后续问题(惊奇!)。 方案 我尝试在合理的时间内在本地开发计算机上导入一些big *数据库转储。我们KEY在表上附加了许多s,这些表原来是瓶颈,但对于我们的实时系统仍然很重要。 在问完上述问题后,我的方法是KEY ...从转储,导入和重新添加键中删除语句。 但是,我经常发现自己正在编辑当前的转储以将其导入本地,并且偶然发现了这些有趣的“注释”(- disable/enable keys行) -- -- Dumping data for table `monster` -- LOCK TABLES `monster` WRITE; /*!40000 ALTER TABLE `monster` DISABLE KEYS */; INSERT … INSERT … INSERT /*!40000 ALTER TABLE `monster` ENABLE KEYS */; UNLOCK TABLES; 但实际上,这些“注释”是有条件的MySql语句 这对我来说是个新闻,但好的,鉴于输出形式mysql --version对我来说一切正常: mysql Ver 14.14 Distrib 5.5.38, …


2
Microsoft SQL Server 2008 R2备份错误
我正在尝试对外部磁盘进行简单备份,并收到此错误: 服务器“服务器名”的备份失败 附加信息: System.Data.SqlClient.SqlError:加载在“ C:\ Program Files \ Microsoft SQL ..”上的媒体的格式设置为支持1个媒体系列,但是根据备份设备规范,预计需要2个媒体系列。(Microsoft.SqlServer.Smo)` 备份类型:完整 为什么会出现此错误,为什么该消息指向C:\Program Files..目标文件是否为外部设备?

3
使用try / catch进行动态SQL备份命令时如何记录错误详细信息
在使用try catch和动态sql的存储过程中发出备份命令时,与直接运行备份命令相比,错误消息非常普遍。 在SP中尝试/捕获: begin try execute sp_executesql @sql; -- a backup command end try begin catch print ERROR_MESSAGE(); -- save to log, etc. end catch 结果是 50000:usp_Backup:117:BACKUP DATABASE异常终止。 wheareas发出raw命令: backup DATABASE someDb to disk... 结果更好的细节: 查找错误-SQL Server数据库错误:文件“ H:\ FolderName \ Filename.bak:” 112上发生了不可恢复的I / O错误(磁盘上没有足够的空间。)。 有没有办法将这些详细信息捕获到存储过程中的变量中(进行记录,传递回调用方以进行重试逻辑)?似乎详细信息正在通过消息通道传递,但我希望它们在SP中可用。

6
更频繁地备份SQL DB
我目前有一个计划任务,该任务每天晚上2点触发,调用SQLCMD.exe,并将其传递给.sql脚本以运行备份(如下所示)。我们是一家很小的公司,由于业务方面的重大增长,需求不断增长。此时丢失1天的数据将花费数万美元,而去年同期则为数百美元。在我可以将这个数据库平台迁移到另一个解决方案之前,该解决方案通过SQL Azure这样的主要冗余进行数据镜像,那么如何做才能获得更频繁的备份呢?下面的此脚本是否强制数据库脱机?我可以与与数据库交互的用户一起运行此脚本吗? USE CompanyCRM; GO BACKUP DATABASE CompanyCRM TO DISK = 'D:\CRMBackups\CompanyCRMCRM.Bak' WITH FORMAT, MEDIANAME = 'CompanyCRM_Backup', NAME = 'Full Backup of CompanyCRM'; GO 更新资料 哇,显然,这里的DBA社区比SO上的要多得多。感谢到目前为止的反馈。唯一缺少的是“方法”。我已经在上面显示了用于日常备份的SQL命令,但是增量日志备份的示例是MIA。这不是一个很大的数据库,它当前在SQLExpress上运行。当我说HA或SQL Azure时,我是专门指的是我们目前还没有的小型企业架构。该实例当前正在我们的ONLY服务器上运行。如果该服务器崩溃,那么我们的恢复时间将成为关键时刻。这就是为什么SQL Azure变得有吸引力的原因。

5
确定PostgreSQL数据库的最新更改时间
我正在查看如何更改备份方式,并且想知道是否有一种方法可以确定postgreql集群中的哪些数据库最近没有更改? 我不想使用pg_dumpall,而是想使用pg_dump并仅转储自上次备份以来已更改的数据库(某些数据库不会经常更新),其想法是,如果没有任何更改,则当前备份应还是不错。 有谁知道一种确定特定数据库上次更新/更改时间的方法? 谢谢... 更新: 我希望不必在所有地方编写触发器,因为我无法控制一个特定集群中数据库的创建(更不用说在数据库中创建db对象了)。 进一步挖掘,似乎$ PGDATA / global / pg_database文件的内容(特别是第二个字段)与$ PGDATA / base下的目录名称之间存在关联。 一路走来,我猜想pg_database文件的第二个字段是数据库oid,每个数据库在$ PGDATA / base下都有自己的子目录(子目录名带有oid)。那是对的吗?如果是这样,将$ PGDATA / base / *下文件中的文件时间戳用作触发备份是否合理? ...或者,还有更好的方法? 再次感谢...




3
将多个数据库备份到同一时间点
通常,当我们开始备份时,我们不允许提交更改,否则将无法访问数据库。我的意思是数据库将处于单用户模式,但是我想开始备份并释放数据库以供使用。另外,一旦开始备份,我就不想将正在进行的更改写入备份文件。我想知道如何在Microsoft SQL Server 2012中实现此目标。请帮助我。 好吧,让我先解释我的问题。目前,我正在将数据库设置为单用户模式,直到备份完成。我的目的是为了避免备份过程中的数据更改。但是我的应用程序与多个数据库绑定在一起(每个数据库相互链接,并且有var dbs不断按月创建)。因此,备份所有这些数据库已成为一个繁琐的过程,更重要的是,在备份过程中,我必须将用户排除在系统之外。 因此,我正在寻找可以满足以下要求的备份机制。 一次启动所有数据库的备份,然后释放该数据库以供使用。 由于数据库相互链接,因此我希望在备份文件中保持数据一致性。因此,由于这种数据一致性要求,我不想将正在进行的更改提交到备份文件中。 我想要的是-在给定时间备份所有数据库。

3
mysqldump --single-transaction,但是更新查询正在等待备份
如果我使用mysqldump --single-transaction,根据文档,它应该使用读锁刷新表以获取一致的状态,然后启动事务,并且没有编写者在等待。 但是,昨晚我遇到了以下情况: 摘录自show full processlist: 数百个... Command: Query Time: 291 State: Waiting for table flush Info: insert into db_external_notification..... 然后这个: Command: Query Time: 1204 State: Sending data Info: SELECT /*!40001 SQL_NO_CACHE */ * FROM `db_external_notification` 其余线程处于睡眠状态 有谁知道这些插入物还在等什么?我没有看到任何FLUSH表或DDL或手册中提到的任何可能导致查询等待的内容。 完整的mysqldump命令 mysqldump --quick --add-drop-table --single-transaction --master-data=2 -uxx -pxx dbname 我想--quick在这里是多余的,可能是以前的遗留物,这个脚本很旧,但也不会给您带来任何伤害

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.