我很难在项目中走上正确的道路。
我是一个预算紧张的单人乐队。 2个专用服务器 MySQL 5/php5
我正在使用服务器 1 从各种提要中获取大量数据。服务器/软件全天候运行,生成一个巨大的数据库。
服务器 2 - 持有一份副本 带有网络前端的数据库
我没有任何 MySQL 复制的经验。我一直在研究,据我所知,奴隶会在主人之后立即更新。
我想要一个非常快速的网站,所以处理是在服务器 1 上完成的,而服务器 2 只是选择数据。
如果 MySQL 复制模仿服务器 1,那么这肯定会减慢服务器 2 的速度并且产生与预期效果相反的效果。
我认为最适合这种情况的方法是编写一个脚本来自动化该过程。
服务器 2 有 2 个数据库。一个用于活体,一个用于加工。
该脚本确定哪个数据库处于事件状态,而是使用另一个数据库。
它会删除其中的所有表格。 该脚本从服务器 1 转储数据库。 将它安装在服务器 2 新清空的数据库上。 该脚本更改网站配置文件以利用新数据库。
这个过程可以一遍又一遍地重复。
虽然数据库安装会很大,但它可能会在晚上全部安装,这应该意味着没有停机时间。
这比做 MySQL 复制好吗? 我会欢迎建议。
最佳答案
很难相信数据库转储/加载周期会比复制更快。特别是基于行(非查询)的复制。如果您不想在高峰时间复制(但当然您必须有足够的非高峰时间才能 catch ),复制可以滞后(通过在从站上运行 SLAVE STOP SQL_THREAD)。 (请记住,MySQL 具有三种复制模式:语句、行和混合。基于语句的在从属服务器上执行完全相同的更新负载,基于行的仅发送更改的行,并且在 CPU 方面应该相当便宜)
要么 所有 您的从站都足够快以应用更改,并且仍然有足够的 I/O 带宽和 CPU 时间来处理 SELECT,要么没有任何从站有帮助。它可能有一些其他方法(例如,直接复制数据文件)可能更快,但更脆弱,而且你实际上是在谈论一些相对较小的 yield 。如果您无法处理更新负载,您对 MySQL 的选择是分片(拆分以便每个服务器只负责部分数据)或购买更快的硬件。
但归根结底,这都是在黑暗中拍摄的。您可以很容易地从复制更改为 rsync,更改为涉及 drbd 的一些疯狂方案,更改为任何实际上只影响您的数据库层,可能只影响数据库本身的方案。您需要实际基准——实际数据——来做出这样的决定。我会告诉您,作为一般规则,设计合理的大型 OLTP 数据库首先会耗尽 I/O 带宽。
我建议从简单的开始。那将是一个单一的数据库服务器,或内置的复制。请记住,在某些时候可能需要分片。
实际上,您可能很早就想回答一个问题:您真的想使用 MySQL 吗?考虑 PostgreSQL。
关于php - MySQL 复制与其他技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7854544/
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin
我想编写一个ruby脚本来递归复制目录结构,但排除某些文件类型。因此,给定以下目录结构:folder1folder2file1.txtfile2.txtfile3.csfile4.htmlfolder2folder3file4.dll我想复制这个结构,但不包含.txt和.cs文件。因此,生成的目录结构应如下所示:folder1folder2file4.htmlfolder2folder3file4.dll 最佳答案 您可以使用查找模块。这是一个代码片段:require"find"ignored_extensions=[".cs"
我已经开始使用mysql2gem。我试图弄清楚一些基本的事情——其中之一是如何明确地执行事务(对于批处理操作,比如多个INSERT/UPDATE查询)。在旧的ruby-mysql中,这是我的方法:client=Mysql.real_connect(...)inserts=["INSERTINTO...","UPDATE..WHEREid=..",#etc]client.autocommit(false)inserts.eachdo|ins|beginclient.query(ins)rescue#handleerrorsorabortentirelyendendclient.commi
之前有人问过这个问题,我发现了以下clip关于如何一次设置一个类对象的所有属性,但由于批量分配保护,这在Rails中是不可能的。(例如,您不能Object.attributes={})有没有一种很好的方法可以将一个类的属性合并到另一个类中?object1.attributes=object2.attributes.inject({}){|h,(k,v)|h[k]=vifObjectModel.column_names.include?(k);h}谢谢。 最佳答案 利用assign_attributes使用:without_prote
我刚刚看到whitehouse.gov正在使用drupal作为CMS和门户技术。drupal的优点之一似乎是很容易添加插件,而且编程最少,即重新发明轮子最少。这实际上正是Ruby-on-Rails的DRY理念。所以:drupal的缺点是什么?Rails或其他基于Ruby的技术有哪些不符合whitehouse.org(或其他CMS门户)门户技术的资格? 最佳答案 Whatarethedrawbacksofdrupal?对于Ruby和Rails,这确实是一个相当主观的问题。Drupal是一个可靠的内容管理选项,非常适合面向社区的站点。它
(跟进我之前的问题,Ruby:howcanIcopyavariablewithoutpointingtothesameobject?)我正在编写一个简单的Ruby程序来在.svg文件中进行一些替换。第一步是从文件中提取信息并将其放入数组中。为了避免每次调用此函数时都从磁盘读取文件,我尝试使用memoize设计模式-在第一次调用后的每次调用中都使用缓存结果。为此,我使用了一个在函数之前定义的全局变量。但是,即使我在返回局部变量之前将该变量.dup为局部变量,调用该变量的函数仍在修改全局变量。这是我的实际代码:#memoizetokeepfromhavingtoreadoriginalfi
当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在