如果您执行...
BACKUP DATABASE [DB_Name] TO DISK=N'c:\backups\db_name.bak' WITH STATS=10
Run Code Online (Sandbox Code Playgroud)
这将执行单线程还是多线程写入?
我们的服务器支持公司建议我们,如果我们对备份进行多线程处理,我们将获得更好的磁盘写入性能。他们建议我们 SQL 备份是多线程的,但我认为上面的语句是单线程的。如果我们指定要写入的多个磁盘,那么它将跨多个设备对备份进行条带化,因此根据我的理解是多线程的。
如果我在备份处理时执行以下 T-SQL,我可以看到执行备份的 SPID 有多个进程,但似乎只有一个进程写入磁盘,我认为其他进程正在读取和执行其他操作。这只是我提到问题的写线程。
USE MASTER
GO
SELECT *
FROM sys.sysprocesses p
INNER JOIN sys.dm_exec_requests r ON p.spid = r.session_id
WHERE spid=(spid of backup T-SQL)
Run Code Online (Sandbox Code Playgroud)
提前致谢。
当我备份我的数据库时,我每天都会在磁带上进行完整备份。我正在尝试使用周日的完整备份来设置额外的差异备份,我该怎么做?它只需要最后一次完整备份。
完整(周日运行):
BACKUP DATABASE [DATABASE] TO DISK = N'J:\DATABASE Backup\MyDatabase_Full.bak' WITH NOFORMAT, NOINIT, NAME = N'DATABASE-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
Run Code Online (Sandbox Code Playgroud)
部分(每天运行,但使用错误的完整备份):
BACKUP DATABASE [DATABASE] TO DISK = N'J:\DATABASE Backup\MyDatabase_Partial_20120105.bak' WITH DIFFERENTIAL , RETAINDAYS = 10, NOFORMAT, NOINIT, NAME = N'DATABASE-Differential Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10
Run Code Online (Sandbox Code Playgroud) 我是一名应用程序开发人员,想知道我们的数据库备份策略。现在我们的系统管理员每 8 小时备份一次我们的数据库。我真的不知道怎么做,但是当备份运行时,我们的应用程序响应时间会飞快地过去。所以每 8 小时,应用程序就会变慢,有时甚至会产生错误。
有没有办法用 MyISAM 表备份 MySQL 数据库,而不会减慢应用程序代码的速度,并且仍然可以获得一致的备份?
我希望使用完整、差异和日志传送来优化我们的 SQL 备份。目前,我只在晚上执行一次完整备份。这个过程需要很长时间,以至于它在工作日的大部分时间里都在运行。由于我们希望使用备用服务器进行报告,因此这并不理想。
我想提高我们的备份速度,但同时让事情变得更可靠一些。使用上述 3 种方法实现此目的的最佳方法是什么?每周一次完整备份,每天一次差异备份,每 15-30 分钟发送一次日志?
我应该在这里考虑什么?(对不起,这有点含糊,只是想获得一些输入)
我正在使用 SQL Server 2005
在 MySQL 中,如何在不使用备份的情况下复制表结构?
jcho360> show create table actor\G
*************************** 1. row ***************************
Table: actor
Create Table: CREATE TABLE `actor` (
`actor_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`first_name` varchar(45) NOT NULL,
`last_name` varchar(45) NOT NULL,
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`actor_id`),
KEY `idx_actor_last_name` (`last_name`)
) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
jcho360> create table actor_copy select * from actor;
Query OK, 200 rows affected (0.07 sec)
Records: 200 Duplicates: 0 Warnings: …Run Code Online (Sandbox Code Playgroud) 我有几个不同的实例(SQL 2000、2005),它们的索引放在一个单独的文件组中。我是否需要确保备份该组,还是会通过恢复数据库来重建它?
我正在运行 MySQL 5.5/innoDB(通过 ubuntu)的 M/S 复制。
我的数据库非常大:~250GB。
我正在寻找可以执行以下操作的备份工具/服务:
有什么建议?
如果要确保备份的完整性,是否有必要对所有备份使用校验和,而不仅仅是“验证备份”选项?
我知道如何在 SQL Server 中备份数据库并恢复它。但是如何备份单个表,然后恢复它?是否可以?
我有一个具有两个不同名称(一些不同的数据)的数据库,我必须通过从一个数据库到另一个数据库来恢复一个表。如何从一个数据库中获取单个表备份,然后将其还原到另一个数据库?
我有一个每秒生成大量事务的数据库,例如 50-100 个事务/秒。因此,日志文件增长得非常快。问题是,即使有很多交易,实际数据也很少。
现在我遇到的问题是,当日志达到他的最大值时,数据库将不再接受事务。我不能真正实现不受限制的增长,因为我对尊重确实有身体限制。
我最初的理解是,一旦日志达到最大大小,它就会简单地采用最旧的事务并删除它们,以便为新事务腾出空间,这在我们的情况下是可以的。但是,这里的情况似乎并非如此。我不是 SQL 专家,所以我在这里迷失了方向。
我知道这个日志是用于备份的,但目前我们还没有实施备份的计划,因为我们仍处于测试阶段。我们也不会是执行它的人,所以我们现在必须等待。
谢谢
backup ×10
sql-server ×6
mysql ×3
performance ×2
log-shipping ×1
myisam ×1
mysql-5.5 ×1
mysqldump ×1
restore ×1