在 Windows Server 2008 上运行的 MySQL Server (v5.1.45-community) 上调度数据库备份时,使用什么机制来触发备份运行?我认为它正在使用 Windows 任务计划程序,但我没有看到这些备份的任何明显任务。SQL Server 使用单独的代理服务。MySQL中有类似的东西吗?
附加信息:备份是使用 MySQL Administrator 设置的。我知道如何安排备份,但它们没有运行,我正在寻找有关从哪里开始排除故障的见解。
我只使用以下命令转储我的存储过程:
mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt databasename -u username -p > outputfile.sql
Run Code Online (Sandbox Code Playgroud)
但是生成的转储文件在每个过程声明之前不包含 DROP PROCEDURE IF EXISTS。
如何将 drop 查询添加到我的转储中?
谢谢你。
从数据库进行备份时,使用逻辑备份设备作为备份位置是“好习惯”吗?使用备份设备有什么好处?
我希望创建一个 cron 作业来备份我的 MySQL 数据库。我正在使用这个命令:
$ mysqldump --user="User" --password="Password" -A
--single-transaction > /home/user/Export-`date +"%F"`.sql
Run Code Online (Sandbox Code Playgroud)
这导致 2.5 MB 的文件大小。但是,当我使用同一用户使用 phpMyAdmin 导出功能时,我得到一个 3.7 MB 的文件。
有人可以解释这些差异吗,如果我做错了什么?
我有一个 500GB 的 MySQL 数据库,主要由 Innodb 表和一个大 (200GB) MyISAM 表组成。我当前的备份策略是将 db 文件复制到外部硬盘驱动器。这会导致约 4 小时的停机时间。我的需求:
目前正在考虑尝试迁移到 Percona xtrabackup。它是否适合我的用例?我特别担心它会锁定 MyISAM 表和学习曲线。
无法在 上创建临时文件/var/tmp。
mysqldump: Error: 'Can't create/write to file '/var/tmp/mysql.k6NKGk/#sql_5dc_2.MAI' (Errcode: 2)' when trying to dump tablespaces
Run Code Online (Sandbox Code Playgroud)
在我的操作系统上。
id mysql
uid=60(mysql) gid=105(mysql) groups=105(mysql)
ls -l /var/
drwxrwxrwt 2 root root 72 oct 24 16:43 tmp
Run Code Online (Sandbox Code Playgroud)
我能做什么?
我有一个大约 6Gb 的备份。它是原始文件的“轻量级”备份(清除了日志表),大约为 14Gb。
我尝试在我的 SQL Express 本地服务器上恢复备份。它失败并显示类似 : 的消息System.Data.SqlClient.Error: insufficient disk space。它要求 227,891,019,776 字节,这绝对是疯狂的,几乎和我的整个硬盘一样大。
正如在其他网站上发现的那样,我尝试了RESTORE FILELISTONLY FROM DISK = 'backupfile.bak'.
数据文件(列Size)的大小为 6,888,226,816,但日志文件的大小为 221,006,987,264。该列BackupSizeInBytes返回 6,259,736,576 和 0。
因此,如果我理解正确,则在继续之前,恢复检查我是否有足够的空间来恢复日志文件的“理论”大小,而忽略实际的日志文件大小?
我怎样才能绕过它?获得备份有点困难,所以如果我能在不返回生产服务器的情况下解决我的问题,那就太好了。
谢谢 !
哦顺便说一句,我在 SQL Server 2008 R2 Express 上。
我有一个 centos 服务器,/var/lib/mysql/ 是 125GB(磁盘有 1GB 的可用空间)。
通常我会使用 mysqldump 来备份数据库,但我通常不使用这么大的数据库,所以我需要知道将数据库复制到新服务器的最安全方法。
所有建议表示赞赏!
我想知道自定义 pg_dump 格式在 Postgres 版本之间有多稳定。例如,我可以在 postgres 9.x 中恢复使用 Postgres 8.x 创建的自定义格式转储吗?
背景:
我正在构建一个虚拟设备,其中包含 PostgreSQL 数据库中的所有配置。我必须决定是使用 SQL 格式还是自定义格式进行备份。随着设备随着时间的推移(几年)不断发展,我将使用更新的 PostgreSQL 版本,并且仍然需要能够轻松恢复旧备份。
假设用户 foo 拥有数据库 gee,并且用户 foo 已授予用户 bar 对数据库 gee 的所有访问权限
gee=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
gee | foo | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/foo +
| | | | | foo=CTc/foo +
| | | | | bar=CTc/foo
Run Code Online (Sandbox Code Playgroud)
我们转储这个数据库,
$ pg_dump -U foo -v -f gee.dump gee
Run Code Online (Sandbox Code Playgroud)
在数据库中,gee 用户栏创建了一个架构。因此,因为所有这些用户我们将数据库 gee 恢复为用户 postgres(在用户 foo 创建了数据库 goo 之后),
$ sudo -u postgres psql -d goo -f gee.dump …Run Code Online (Sandbox Code Playgroud) backup ×10
mysql ×6
mysqldump ×4
postgresql ×2
restore ×2
sql-server ×2
disk-space ×1
dump ×1
innodb ×1
myisam ×1
mysql-5.1 ×1
permissions ×1
pg-dump ×1
windows ×1
xtrabackup ×1