标签: backup

使用 NOINIT 从 .bak 文件中恢复 SQL

希望这对外面的人来说是一个很好且快速的问题。它从我之前的问题继续。

我有一个要恢复的 .BAK 文件。.BAK 是用NOINIT参数创建的,以尝试保存以前的版本,因此附加了较新的数据(据我所知)。我想知道这是否意味着 - 在还原时 - 还原会尝试使用旧版本的备份?

即我已经备份了数据库,向其中添加了新表,执行了另一个完整备份并删除了添加的表。当我尝试恢复时,我没有取回“新”表,这是因为恢复在 .BAK 中找到了在“新表”之前创建的数据库版本吗?如果是这样,我如何指定使用最新数据?

编辑:抱歉没有早点说明,这是使用 SQL Server 数据库

sql-server backup restore

7
推荐指数
1
解决办法
942
查看次数

覆盖过期集时追加备份

我一直在阅读这个,但在线文档有点难以理解,而且看起来很笨拙。例如INITNOINIT。有人说它会尝试覆盖所有内容。另一个说无论如何它都会附加。

我想要介于两者之间的东西。我希望过期的媒体集不再存在于文件中,但要让新的备份作业与尚未过期的媒体集一起附加到文件中。

下面的 SQL 会执行所需的备份吗?

BACKUP DATABASE [mydb] 
TO  DISK = N'c:\Backups\mydb.bak' 
WITH NOFORMAT, NOINIT,  NAME = N'mydb-Full Database Backup', NOSKIP, 
NOREWIND, NOUNLOAD,  STATS = 10, RETAINDAYS = 60
GO
Run Code Online (Sandbox Code Playgroud)

如果我运行上面的,并且有一个超过 60 天的备份集,它会从文件中删除吗?

编辑:

为了响应 RichardTheKiwi 的建议,我每次都重写了代码以创建一个新文件。然后我将编写一个 Windows 脚本来删除早于某个日期的文件

declare @filename varchar(max)
set @filename = 'c:\sqlbackups\pptd_' +  replace(replace(convert(varchar, getdate(), 120),':','_'),' ','_') + '.bak'
BACKUP DATABASE [Peter's pointless test database] 
TO  DISK = @filename
WITH FORMAT, INIT,  NAME = N'pptd-Full Database Backup', 
NOREWIND, NOUNLOAD,  STATS = 10 …
Run Code Online (Sandbox Code Playgroud)

sql-server backup

7
推荐指数
1
解决办法
6027
查看次数

SQL Server 数据库备份文件是最终大小的两倍,直到备份完成

我刚刚为一个相当大的数据库(1.3 TB)编写了一个备份语句,我一直在使用一个更小的数据库(10 GB + 10 GB 日志文件)对其进行测试。备份写入三个目的地。在测试期间,我注意到当备份运行时,每个备份文件的大小约为 1.2 GB,但是一旦备份过程完成,文件就会缩小到 600 MB 以下。

我有兴趣了解:

  • 为什么文件在备份过程中变大然后缩小?
  • 是否有办法防止这种情况,
  • 当我备份 1.3 TB 的数据库时,文件可能有多大 - 如果文件再次是其最终大小的两倍,那么我可能需要请求更多的磁盘空间!

这是我正在使用的备份语句:

BACKUP DATABASE @DatabaseName
TO  DISK = @backupMedia1,
    DISK = @backupMedia2,
    DISK = @backupMedia3
WITH COMPRESSION, RETAINDAYS = 0, NOFORMAT, INIT, NOSKIP, NAME = @DatabaseName
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 backup

7
推荐指数
1
解决办法
3194
查看次数

比较两个 MySQL 转储文件

我正在尝试比较两个 MySQL 转储文件。一个是通过全新安装的 Web 应用程序制作的,另一个是来自同一 Web 应用程序的转储,该应用程序已从先前版本升级到与全新安装相同的版本号。

基本上我想确保升级脚本正常工作,并且所有正确的列和约束都在升级版本中,就像它们在全新安装中一样。我认为一个简单的 diff/sdiff 就足够了,但我遇到了问题:列顺序。

全新安装和升级之间的列顺序不同,导致许多误报“差异”。在查看输出时很容易看出同一列只是在不同的位置,但是对于数百个表,检查和识别这些误报需要很长时间。

是否有更好的方法来比较这两个将忽略列顺序的转储(或强制转储具有按字母顺序或类似顺序排列的列的方法)或一种更好的完全不同的方法。无可否认,我对 MySQL 还是很陌生,并且正在学习,所以任何帮助都将不胜感激。

谢谢。

mysql schema mysqldump backup

7
推荐指数
1
解决办法
5191
查看次数

如何在线备份 IBM DB2 数据库?

我尝试使用以下命令备份 IBM DB2 (LUW) 数据库:

./db2 backup database DBEMP to /home/user1/db2bkup
Run Code Online (Sandbox Code Playgroud)

但我收到了这条消息:

SQL1035N 数据库当前正在使用中。SQLSTATE=57019

然后我尝试了这个:

./db2 backup database DBEMP online to /home/user1/db2bkup
Run Code Online (Sandbox Code Playgroud)

我收到了这条消息:

SQL2413N 不允许联机备份,因为数据库不可恢复或备份暂挂条件生效。

这是什么意思?有没有其他方法可以在线备份数据库?我无法停止数据库,因为它正在被使用。

backup db2

7
推荐指数
1
解决办法
4万
查看次数

备份非常大的表

我必须更新一个大表的某些值(为了一个假定的例子,它被称为“资源”,它超过 500 万行),因此我必须在执行更改之前进行备份。我们没有足够的数据库可用空间来存储完整的备份表。

哪种方法最好?有没有办法通过块来做到这一点?我的意思是:备份原始表中的前 100K 行,更新原始表中的那 100K 行,从备份表中删除那 100K 行,备份原始表中的以下 100K 行,然后进行类似的操作. 这可行吗?

sql-server backup sql-server-2008-r2 update

7
推荐指数
1
解决办法
6486
查看次数

mysqldump和view的问题

当使用mysqldump备份MySQL中,我得到了下面的错误。

mysqldump --all-databases --routines >> all.sql
mysqldump: Couldn't execute 'show table status like 'hdkien'': SELECT command denied to user 'tungbt'@'192.168.12.197' for column 'id' in table 'hdcn_hd' (1143)
Run Code Online (Sandbox Code Playgroud)

hdkien 是一种观点

CREATE ALGORITHM=UNDEFINED DEFINER=`tungbt`@`192.168.12.197` SQL SECURITY DEFINER VIEW `hdcn`.`hdkien` AS (...striped...)
Run Code Online (Sandbox Code Playgroud)

用户tungbt@192.168.12.197已经有权在表上进行选择hdcn_hd,我可以hdkien毫无问题地从视图中进行选择。

mysql> select * from hdkien limit 1;
+------+-----------+
| id   | shd       |
+------+-----------+
|  876 | ADFADFA1  |
+------+-----------+
Run Code Online (Sandbox Code Playgroud)

更多信息:

  • MySQL版本: mysql-community-server-5.5.37-4.el6.x86_64
  • 操作系统:CentOS 6.5

为什么我在运行时出现错误,我该mysqldump如何解决?

更新 1 …

mysql mysqldump backup view

7
推荐指数
2
解决办法
6万
查看次数

SQL Server 备份事务错误

嗨,我正在尝试备份事务日志文件以在 SQL Server 中设置镜像

我执行

BACKUP LOG CUSTOMER TO DISK ='K:\JonDB\CUSTOMER.trn' WITH INIT
GO
Run Code Online (Sandbox Code Playgroud)

我收到

Processed 6587361 pages for database 'CUSTOMER', file 'CUSTOMER' on file 1.
Processed 0 pages for database 'CUSTOMER', file 'CUSTOMER_log' on file 1.
Processed 6 pages for database 'CUSTOMER', file 'CUSTOMER_log2' on file 1.
BACKUP DATABASE successfully processed 6587368 pages in 969.013 seconds (46.948 MB/sec).
Msg 3049, Level 16, State 1, Line 5
BACKUP detected corruption in the database log. Check the errorlog for more information. …
Run Code Online (Sandbox Code Playgroud)

sql-server backup mirroring corruption

6
推荐指数
1
解决办法
932
查看次数

SQL 备份问题/操作系统错误 995

昨晚某些数据库的备份失败。正在使用 CommVault. 以下是 SQL Server 日志中的错误消息

01/05/2016 23:03:58,spid58,Unknown,BackupVirtualDeviceFile::SendFileInfoBegin:备份设备“{051A54E1-01B8-4F24-BCB3-A63A7B43D100}5”失败。操作系统错误 995(无法检索此错误的文本。原因:15105)。01/05/2016 23:03:58,spid58,未知,错误:18210 严重性:16 状态:1。

01/05/2016 23:03:58,spid59,Unknown,BackupVirtualDeviceFile::SendFileInfoBegin:备份设备“{051A54E1-01B8-4F24-BCB3-A63A7B43D100}7”失败。操作系统错误 995(无法检索此错误的文本。原因:15105)。01/05/2016 23:03:58,spid59,未知,错误:18210 严重性:16 状态:1。

01/05/2016 23:03:58,spid61,Unknown,BackupVirtualDeviceFile::SendFileInfoBegin:备份设备“{051A54E1-01B8-4F24-BCB3-A63A7B43D100}6”失败。操作系统错误 995(无法检索此错误的文本。原因:15105)。01/05/2016 23:03:58,spid61,未知,错误:18210 严重性:16 状态:1。

01/05/2016 23:03:58,spid63,Unknown,BackupVirtualDeviceFile::SendFileInfoBegin: 备份设备失败“{051A54E1-01B8-4F24-BCB3-A63A7B43D100}9”。操作系统错误 995(无法检索此错误的文本。原因:15105)。01/05/2016 23:03:58,spid63,未知,错误:18210 严重性:16 状态:1。

01/05/2016 23:03:58,spid57,Unknown,BackupVirtualDeviceFile::SendFileInfoBegin:备份设备“{051A54E1-01B8-4F24-BCB3-A63A7B43D100}4”失败。操作系统错误 995(无法检索此错误的文本。原因:15105)。01/05/2016 23:03:58,spid57,未知,错误:18210 严重性:16 状态:1。

01/05/2016 23:03:58,spid62,Unknown,BackupVirtualDeviceFile::SendFileInfoBegin: 备份设备失败“{051A54E1-01B8-4F24-BCB3-A63A7B43D100}8”。操作系统错误 995(无法检索此错误的文本。原因:15105)。01/05/2016 23:03:58,spid62,未知,错误:18210 严重性:16 状态:1。

01/05/2016 23:03:58,Backup,Unknown,BACKUP 未能完成命令 BACKUP DATABASE master。检查备份应用程序日志以获取详细消息。01/05/2016 23:03:58,备份,未知,错误:3041 严重性:16 状态:1。

01/05/2016 23:03:58,Backup,Unknown,BACKUP 未能完成命令 BACKUP DATABASE SUNDOMAIN_WLD。检查备份应用程序日志以获取详细消息。01/05/2016 23:03:58,备份,未知,错误:3041 严重性:16 状态:1。

01/05/2016 23:03:58,Backup,Unknown,BACKUP 未能完成命令 BACKUP DATABASE db1_TST。检查备份应用程序日志以获取详细消息。01/05/2016 23:03:58,备份,未知,错误:3041 严重性:16 状态:1。

01/05/2016 23:03:58,Backup,Unknown,BACKUP 未能完成命令 BACKUP DATABASE msdb。检查备份应用程序日志以获取详细消息。01/05/2016 23:03:58,备份,未知,错误:3041 严重性:16 …

sql-server backup errors

6
推荐指数
1
解决办法
2万
查看次数

转储具有“压缩数据已损坏”错误的数据库

我正在使用pg_dump转储大型(396 GB)PostgreSQL 数据库:

pg_dump --clean --create mydatabase
Run Code Online (Sandbox Code Playgroud)

运行一天后,语句失败ERROR: compressed data is corruptpg_dump退出。

100% 的数据完整性不是我的首要任务。这可能只是一个断行阻止我移动或备份一个需要数周时间创建的数据库。输了那行我没问题。

有什么方法可以创建忽略此类数据错误的转储?我在pg_dump文档中什么也没找到。

如果没有,如何查找并删除表中所有损坏的行?其他表中的行指向它们,也需要删除。

postgresql backup postgresql-9.3 pg-dump

6
推荐指数
1
解决办法
2977
查看次数