草庐IT

mysql - 使用 AWS s3 版本控制存储 gzip 压缩的 mysql 转储是否更有效?

对于我的数据库,我们每小时进行一次mysql转储备份。然后我们将该备份上传到AWSs3以确保安全和冗余。我们使用版本控制来仅存储每个新备份的增量。我的问题是,首先对数据进行gzip压缩真的有好处吗?数据是否会在gzip中加扰,以便每个版本都必须重新存储所有数据?如果我们改为存储数据库的未压缩版本,我们是否会因为更高效的版本控制而随着时间的推移实际节省空间?我应该补充一点,我们已经使用版本控制将每小时gzip备份存储在s3中几个月了。但是我无法在在线界面中弄清楚如何找到每个新版本在存储中占用了多少。 最佳答案 您似乎混淆了S3版本控制

mysql - 如何在 sql 转储中获取完整语法?

我正在尝试备份数据库,但出于版本控制目的,我想要完整的插入语句,如下所示:INSERTINTO`table_name`(`id`,`type`)VALUES(1,2);INSERTINTO`table_name`(`id`,`type`)VALUES(2,2);代替默认值:INSERTINTO`table_name`(`id`,`type`)VALUES(1,2),(2,2);我这样做的主要原因是它会将所有插入值放在它们自己的行上,而不是整个表放在一行上。我尝试添加各种格式的--complete-inserts和--extended-inserts(同时添加一个和两个),到目前为止,我

MySQL:使用 mysqldump 转储完整数据库时存储过程、函数和触发器会发生什么

我一直在使用mysqldump进行备份。我们这里有一个新数据库,其中包含许多函数、过程和触发器。如果我进行完整的数据库备份,这些函数或过程或触发器会发生什么情况?这些触发器、函数和过程也会被转储吗?遇到这种情况有什么注意事项吗? 最佳答案 mysqldumpwillbackupbydefaultallthetriggersbutNOTthestoredprocedures/functions.Thereare2mysqldumpparametersthatcontrolthisbehavior:–routines(procedure

mysql - 获取 mysqldump 以转储适合 psql 输入的数据(转义单引号)

我正在尝试将数据库从MySQL移植到PostgreSQL。我已经在Postgres中重建了架构,所以我需要做的就是获取数据,而无需重新创建表。我可以使用迭代所有记录并一次插入一个记录的代码来做到这一点,但我试过了,对于我们的数据库大小来说,它是waaayyyy减慢,所以我尝试使用mysqldump和一个管道到psql中(每个表一次,一旦我让它工作,我可能会并行化)。我不得不跳过各种障碍才能走到这一步,打开和关闭各种标志以获得一个隐约正常的转储。同样,这只会转储INSERTINTO,因为我已经准备好空模式以将数据放入:/usr/bin/env\PGPASSWORD=mypassword\

mysql - Docker MariaDB/Mysql 转储

我如何从在https://hub.docker.com/_/mariadb/上运行的容器中进行mysqldump??我找不到任何有用的文档或数据?任何备份和恢复数据库的方法。这是我的连续运行命令:dockerrun--namemyaapp-mariadb-v/databases/maria:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=password-dmariadb:10 最佳答案 如果我们假设您以这种方式创建了mariadb服务器容器:dockerrun--namesome-mariadb-eMYSQ

mysql - 如何将sql查询的结果转储到文件中

好的,所以我处于需要将sql查询的结果转储到文件中的情况,这是为了备份目的,我尝试从我的终端运行以下命令:mysql-e"select*fromproductswherebrand_id=5"-uroot-pdatabase_name>dumpfile.sql这会转储数据,但带有“插入语句”,因此如果稍后我想将此数据转储回我的数据库,我将重新组合它。这不是正确的方法。所以请建议我如何转储查询结果以供备份? 最佳答案 以下命令行(使用--where选项)应该可以工作:mysqldump-uroot-pdatabase_nameprod

bash - 带时间戳的 Mysql 转储

我有一个使用MySQL数据库的项目。我想每天备份数据库,所以我用这个:mysqldump-hhost-uuser-ppassworddatabase>'location.sql'我希望文件以时间戳命名,即:今天文件将被命名为something-07-05-201408-00-00明天将是,something-08-05-201408-00-00如何为导出的文件名附加格式化的时间戳? 最佳答案 你可以这样使用mysqldump-hhost-uuser-ppassworddatabase>$(date"+%b_%d_%Y_%H_%M_%

mysql - 我应该使用 mysql 来保存日志,还是只转储到文本文件

我正在创建一个将进行大量搜索的网站,我需要记录有关每次搜索的数据以供以后分析。我预计最终会在多个服务器之间分配负载,然后每个月我都会下载所有日志并将其导入到我这边的单个mysql数据库中以供分析。目前我一直在考虑将每台服务器都设置为mysql的“主服务器”,它将实时更新从属分析服务器并基本上充当备份服务器。但是我的目标是提高效率。显然,mysql复制的好处是我始终可以集中使用日志,而不必每个月都在每台服务器上导入和重置日志文件。登录一个明文文件,然后每月转储这个日志文件并集中导入到mysql中,效率会提高多少?明文转储是否比mysql更高效/更快?谢谢你的想法!

mysql - 将大量 MySQL 转储文件转换为 CSV

我试过这样的东西awk-F""'{if($1=="INSERT"){print$5}}'input.sql|\sed-e"s/^(//g"-e"s/),(/\n/g"-e"s/['\"]//g"\-e"s/);$//g"-e"s/,/;/g">output.txt但我发现它很慢而且没有优化MySQL转储文件如下所示CREATETABLEMyTable{data_1,data_2};INSERTINTOMyTAbleVALUES('data_1','data_2'),...,('data_1','data_2');INSERTINTOMyTAbleVALUES('data_1','dat

没有临时文件的远程主机的 MySQL 数据库转储

我正在尝试在我的工作中实现数据库备份cron(欢迎使用其他解决方案),但我遇到了一个小问题:我有一个空间超过10GB的大型数据库,而当前的虚拟机没有空间将其存储在mysql创建的临时文件中。我知道我可以使用带主机参数的mysqldump,但我的问题是,这样做时mysqldump生成的临时文件是保留在运行它的机器上还是保留在数据库服务器上?更新:我忘了提到我正在尝试备份网站网络,其中一些网站位于防火墙后面(需要VPN访问),一些网站需要跳转服务器才能访问数据库服务器。 最佳答案 您可以从存档主机运行shell脚本,您已经在其中与数据库