标签: backup

用户抱怨在进行 mysqldump 时系统运行缓慢

MYSQL 数据库 (ibdata1) 的大小为 73 GB,配置为在 Windows 2008 O/S 上作为 INNODB 表的专用数据库服务器运行。我们正在使用 mysqldump mysqldump --skip-opt --quick --single-transaction --create-options --extended-insert --disable-keys --add-drop-table --complete-insert -- 运行备份set-charset -- 压缩 --log-error=Proddb0635.err -u root -pjohndoe Proddb> \devNas\devNas\sqlbackup\LIVE\db\Proddb0635.sql

备份文件 Proddb0635.sql 存储在与数据库服务器不同的服务器上。内存为 12 GB。INNODB 缓冲池大小为 6 GB。额外的 mem.pool 是 32 MB。查询缓存大小为 2 GB 网络缓冲区长度为 16 M 最大。数据包大小 1 GB。

mysql 版本是 5.0.67。

当备份未运行时,用户对性能感到满意。

当备份运行时,INNODB 缓冲池命中率很高,接近 100%。没有挂起的读取或挂起的写入。innodb 等待空闲时间为 0。CPU 使用率不高,最低 9% 到最高 15% 查询缓存命中率低约 40%,无论是否运行 mysqlbackup。当前 Windows 任务管理器显示正在使用 10GB 的 RAM。我应该在只有 2GB 可用 RAM 的情况下增加查询缓存吗?mysqlld-nt 占用 9.2 GB …

mysql mysql-5 mysqldump backup

9
推荐指数
2
解决办法
5247
查看次数

尽管总是说作业成功,但计划备份任务并不总是备份所有数据库

我在 SQL 2008 中有一份工作,它运行一个存储过程来备份所有数据库。这通过 sql server 代理作业每天运行。

它每天都成功退出,但有时只有在备份了几个数据库后才成功退出。每次可以是不同数量的数据库。大多数情况下,它会成功备份所有数据库,但有时会成功备份 2 次,有时会成功备份 5 次,等等。

我在作业历史记录、事件查看器或 sql server 日志中没有看到任何错误。

备份是在本地磁盘上进行的,尽管该文件夹是可扩展存储卷上文件夹的“连接点”。

操作系统是 Windows 2003 64 位运行 Sql Server 2008 网络版 64 位作为在 Vmware ESXi 5 主机上运行的虚拟机。

存储过程:

ALTER PROCEDURE [dbo].[backup_all_databases] 
@path VARCHAR(255)='c:\backups\'

AS

DECLARE @name VARCHAR(50) -- database name  
DECLARE @fileName VARCHAR(256) -- filename for backup  
DECLARE @fileDate VARCHAR(20) -- used for file name 
DECLARE @dbIsReadOnly sql_variant -- is database read_only?
DECLARE @dbIsOffline sql_variant -- is database offline?

DECLARE db_cursor CURSOR FOR  
SELECT name …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server backup

9
推荐指数
2
解决办法
1165
查看次数

如何从 LDF 文件中恢复数据?

我们使用的是 SQL 2005 Express Edition。我们要从 LDF 文件中读取数据以恢复一些已删除的记录。

我们尝试使用 ApexSQL 的试用版,这对我们有很大帮助。我们不是去寻找第三方软件,而是试图弄清楚如何自己读取日志文件。

我们如何从 LDF 文件中读取和恢复数据?

sql-server-2005 sql-server backup recovery restore

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

加载从 mysqldump 创建的数据时如何显示警告?

我有一个很大的 .sql 文件,里面有很大的 insert into ... values ... 语句。其中许多语句在执行期间会生成警告。如何让 mysql 打印警告?

如果它击中 control-C,则导入停止,我将返回 OS 命令行。

以下是运行 SQL 的示例输出:

Query OK, 9827 rows affected, 5403 warnings (0.20 sec)
Records: 9827  Duplicates: 0  Warnings: 5403

Query OK, 9859 rows affected, 5247 warnings (0.20 sec)
Records: 9859  Duplicates: 0  Warnings: 5247
Run Code Online (Sandbox Code Playgroud)

mysql mysqldump backup

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

在备份大型 SQL Server 数据库时执行数据更新操作

我有一个大型(数千万条记录)数据库,我将在其上执行完整的数据库备份

但是,数据库足够大,事务可以在备份发生之前和期间启动,也可以在备份发生期间和之后提交。

例如:

T0 = Transaction A start
T1 = Full database backup start
T2 = Transaction B start (will not deadlock with A)
T3 = Transaction A commit/rollback (does not matter, does it?)
T4 = Full database backup end
T5 = Transaction B commit/rollback (again, does not matter, does it?)

T0          T1          T2          T3          T4          T6
||----------||----------||----------||----------||----------||---------->
Run Code Online (Sandbox Code Playgroud)

我的理解是在备份期间不使用锁(尽管由于高 I/O 可能会出现其他性能问题),但我不确定我能保证什么会被提交。

此外,我担心的不是数据库将处于不一致状态,而是该状态将是什么(即使它不是确定性的,如果有一组可以一致应用的规则)以及它是如何到达那里的(例如,有多少数据文件与事务日志一起用于创建备份文件)?

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

9
推荐指数
1
解决办法
4249
查看次数

显示备份信息(成功和失败)SQL Server 的查询

我有两个备份两个不同数据库的作业。
作业 1 备份 DB1
作业 2 备份 DB2

DB1 由于驱动器 1 上的空间不足导致作业 1 失败而无法备份。为了解决这个问题,我只需要添加空间。没什么大不了的。当这个问题已经发生一个月时,我今天被告知了这一点。是的,我知道这很疯狂,但这是开发人员


我想获得 DB1 的完整备份历史记录。我知道我可以从 msdb.dbo.backupset 表中检索成功的备份信息,但我想知道是否存在显示数据库备份失败的查询。

我下面的查询显示了特定数据库从 12/31/13-1/27/14 的备份历史记录。信息包括服务器、数据库名称、备份开始和结束时间、备份数据库所需的总时间、数据库大小和备份集名称。

SELECT  
   distinct CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server, 
   msdb.dbo.backupset.database_name,  
   msdb.dbo.backupset.backup_start_date,  
   msdb.dbo.backupset.backup_finish_date, 
 CAST((DATEDIFF(second,  msdb.dbo.backupset.backup_start_date,msdb.dbo.backupset.backup_finish_date)) AS varchar)+ ' secs  ' AS [Total Time] ,

   Cast(msdb.dbo.backupset.backup_size/1024/1024 AS numeric(10,2)) AS 'Backup Size(MB)',   
   msdb.dbo.backupset.name AS backupset_name
FROM   msdb.dbo.backupmediafamily  
   INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id   
--Enter your database below
--and database_name = 'db_name_here'
and msdb.dbo.backupset.backup_start_date>'2013-12-31' and msdb.dbo.backupset.backup_start_date<'2014-01-27 23:59:59'
ORDER BY  
   msdb.dbo.backupset.database_name, 
   msdb.dbo.backupset.backup_start_date
Run Code Online (Sandbox Code Playgroud)

有没有办法通过修改我的代码来获取该信息?我可以通过执行针对 sysjobhistory …

sql-server-2005 sql-server backup

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

需要备份 MySQL 数据库 information_schema、performance_schema、mysql 和 phpmyadmin?

我知道没有必要备份information_schema数据库,但是以下数据库(除了用户定义的数据库)呢?

  • performance_schema
  • mysql
  • phpmyadmin

(所以,如果出现问题,我们必须从头开始(新的 MySQL 安装),我必须放回哪些数据库?)

mysql mysqldump backup

9
推荐指数
1
解决办法
5194
查看次数

带有 ssl 证书的 pg_dump

我想从我的数据库服务器上的远程主机运行 pg_dump 命令,该服务器只允许完全验证的基于证书的连接。我该怎么做呢?9.1 的手册页说明了我所看到的通过密码连接的说明。

postgresql backup postgresql-9.1 pg-dump

9
推荐指数
1
解决办法
4440
查看次数

SQL 备份与 IT 常规夜间服务器备份有何不同?

我们的 IT 部门每晚都会备份整个服务器(此服务器上安装了一个 SQL Server 实例),这应该备份该服务器以及整个网络,以防出现问题......

所以我的经理问我的完整、差异和日志 SQL 备份与 IT 部门备份的任何备份相比有何重要意义?为了在我们的服务器上节省更多空间,而不是将这些文件保留几个星期并删除它们,她认为 IT 只会提供它们!

我知道这是不对的,因为我可以用我的日志备份恢复到最后 30 分钟,IT 会在第二天恢复它,但这是唯一的区别吗?

由于我将数据库备份文件保存/发送到同一台服务器,IT 将恢复它们,但如果我的维护计划中没有这些备份作业,那么 IT 可以只恢复 SQL 实例,而无需我们的任何表、事务......等我做对了吗?
任何建议将不胜感激。

backup sql-server-2008-r2

9
推荐指数
2
解决办法
1500
查看次数

按计划备份和截断事务日志的最佳方法

我不是 DBA,但事情就是这样,我必须戴上 DBA 的帽子,并在我的 SQL Server 实例上设置维护计划。

因此,有一段时间我一直让我的 SSIS 通宵进程运行执行 SQL 任务来执行备份 - 基本上运行master.dbo.xp_create_subdir以确保目标文件夹存在,然后BACKUP DATABASE [DbName] TO DISK = 'G:\Backups\DbName\DbName.bak' WITH INIT.

每当该任务失败时,其余的过程将中止,我会收到通知,第二天早上来时注意到事务日志的驱动器已满,因此我会手动截断它们并继续。 .. 直到故事重演并且事务日志再次超过可用磁盘空间。

“手动截断”脚本如下所示:

use Staging;
alter database Staging set recovery simple
alter database Staging set recovery full
dbcc shrinkfile ('Staging_log', 0, truncateonly);
go
Run Code Online (Sandbox Code Playgroud)

所以我越来越厌倦了,我决定尝试正确地做事情,并按照这里的步骤创建一个实际的维护计划

SQL Server 维护计划

问题是,我以前从未这样做过,所以我有几个问题:

  • 像这样备份事务日志会自动截断它们,还是我需要做其他事情?
  • 可以同时运行数据和事务日志备份吗?如果没有,那么这样做的正确方法是什么?
  • 备份文件正在被另一个进程在一夜之间提取,该进程获取服务器上的所有文件并将它们存储在其他地方 - 在 2 天后使备份集过期是个好主意吗?我需要让它们过期吗?
  • 清理任务分别删除 .bak 和 .trn 子文件夹下的“旧”.bak 和 .trn 文件G:\Backups。那有意义吗?
  • 在 SSIS 中执行此操作是否会更好,因此如果/当备份失败时我可以使 …

sql-server backup transaction-log maintenance-plans sql-server-2014

9
推荐指数
1
解决办法
3万
查看次数