데이터 베이스 MySQL 튜토리얼 MySQL内建复制功能来优化可用性_MySQL

MySQL内建复制功能来优化可用性_MySQL

Jun 01, 2016 pm 01:56 PM
살다 시험

MySQL内建复制功能来优化可用性,在Soundbreak我们每天24小时不间断地播放实况音频和视频,所以对于MySQL的新增的复制特性,我们不能做出很令人信服的测试。通过测试我们发现,可以使用这个特性来与备份数据库服务器保持数据同步,这样当主服务器因为某种原因处理失效时,能够使用备份机处理所有的查询。对于这样的要求,配置两台服务器并不困难。我将详细讨论整个处理过程,同时讨论一下当主服务器失效时,如何使用PHP来重定向查询。

MySQL内部复制功能是建立在两个或两个以上服务器之间,通过设定它们之间的主-从关系来实现的。其中一个作为主服务器,其它的作为从服务器。我将详细讨论如何配置两台服务器,将一个设为主服务器,另一个设为从服务器。并且描述一下在它们之间进行切换的处理过程。我是在MySQL的3.23.23版本上进行的配置设置过程,并且也是在这个版本上进行的测试。MySQL开发人员建议最好使用最新版本,并且主-从服务器均使用相同的版本。同时MySQL 3.23版本仍然是beta测试版,而且这个版本可能不能向下兼容。所以因为这个原因,在实际的网站中,我现在还没有使用这个版本。拥有容错能力具有一个好处是,在不需中断任何查询的情况下,对服务器进行升级。

第一步:配置主服务器

在这篇文章的剩下篇幅中,我将指定两台服务器。A(IP为10.1.1.1)作为主服务器(简称为主机)。B(IP为10.1.1.2)作为后备服务器(简称为备机)。

MySQL的复制功能的实现过程为:备机(B)与主机(A)连接,然后读出主机的二进制更新日志,再将发生的变化合并到自已的数据库中。备机需要一个用户帐号来与主机连接,所以在主机上创建一个帐号,并只给它FILE权限,如下操作: GRANT FILE ON *.* TO replicate@10.1.1.2 IDENTIFIED BY ’password’;

为了备机能够与主机连接,要在主机上运行’FLUSH PRIVILEGES’,不过不要担心,因为我们将在下面的步骤中停掉服务器。

现在我们需要主机数据库的一个快照,并且对主机进行配置,允许生成二进制的更新日志。首先编辑’my.cnf’文件,以便允许二进制更新日志,所以在[MySQLd]部分的下面某个地方增加一行:’log-bin’。在下一次服务器启动时,主机将生成二进制更新日志(名为:-bin.)。为了让二进制更新日志有效,关闭MySQL服务程序,然后将主机上的所有数据库目录到另一个目录中,接着重新启动mysqld。

请确定得到了所有数据库,否则在进行复制时,如果一个表在主机上存在但在备机上不存在,将因为出错而退出。现在你已经得到了数据的快照,和一个从建立快照以来的二进制日志,上面记录着任何对数据库的修改。请注意MySQL数据文件(*.MYD,*.MYI和*.frm)是依赖于文件系统的,所以你不能仅仅进行文件传输,如从Solaris到Linux。如果你处于一个异种的服务器环境,你将不得不使用mysqldump实用程序或其它的定制脚本来得到数据快照。

第二步:配置备机

让我们继续。停掉备机上的MySQL服务程序,并且把从主机上拷贝来的数据库目录移到备机上的data目录下。请确认将目录的拥有者和属组改变为MySQL用户相应值,并且修改文件模式为660(只对拥有者和属组可读、可写),目录本身为770(只对拥有者和属组可读、可写和可执行)。

继续。在备机上启动MySQL服务程序,确认MySQL工作正常。运行几个select查询(不要update或insert查询),看一看在第一步中得到的数据快照是否成功。接着,在测试成功后关掉MySQL服务程序。

在备机上配置需要访问的主机,以便接收主机的更改。所以需要编辑务机上的’my.cnf’文件,在[MySQLd]部分中增加下面几行: master-host=10.1.1.1

master-user=replicate

master-password=password

在启动备机服务程序后,备机服务程序将查看在’my.cnf’文件中所指定的主机,查看是否有改变,并且将这些改变合并到自已的数据库中。备机保持了主机的更新记录,这些记录是从主机的’master.info’文件中接收下来的。备机线程的状态可以通过sql命令’SHOW SLAVE-STATUS’看到。在备机上处理二进制日志中如果发生错误,都将导致备机线程的退出,并且在*.err的日志文件中生成一条信息。然后错误可以被改正,接着可以使用sql语句’SLAVE START’来重新启动备机线程。线程将从主机二进制日志处理中断的地方继续处理。

至此,在主机上所发生的数据改变应该已经复制到备机上了,要测试它,你可以在主机上插入或更新一条记录,而在备机上选择这条记录。

现在我们拥有了从A机到B机的这种主-从关系,这样当A机可能当机的时候,允许我们将所有的查询重定向到B机上去,但是当A机恢复时,我们没有办法将发生的改变恢复到A机中去。为了解决这个问题,我们创建从B机到A机的主-从关系。

第三步:创建相互的主从关系

首先在B机上的my.cnf文件中,在[MySQLd]部分中加入’log-bin’,接着重新启动mysqld,然后创建可在

它的上面执行复制功能的用户帐号,使用: GRANT FILE ON *.* TO replicate@10.1.1.1 IDENTIFIED BY ’password’;

在B机上运行’FLUSH PRIVILEGES’命令,以便装入在加入复制用户后的新的授权表,接着回到A机上,在它的’my.cnf’中加入下面几行: master-host=10.1.1.2

master-user=replicate master-password=password

在重启A机的服务程序之后,现在我们一拥有了在A机与B机之间的相互主-从关系。不管在哪个服务器上 更新一条记录或插入一条记录,都将被复制到另一台服务器上。要注意的是:我不敢确定一个备机合并二进 制日志变化的速度有多快,所以用这种方法来进行插入或更新语句的负载平衡可能不是一个好办法。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

iOS 17: iPhone에서 라이브 포토를 잠금 화면 배경화면으로 사용하는 방법 iOS 17: iPhone에서 라이브 포토를 잠금 화면 배경화면으로 사용하는 방법 Sep 21, 2023 am 10:33 AM

Apple은 최신 버전의 iOS17에서 LivePhoto를 사용하여 iPhone의 잠금 화면 배경을 꾸밀 수 있는 새로운 기능을 통합했습니다. 흥미로운 점은 iPhone 디스플레이를 켤 때마다 이러한 라이브 사진이 생생하게 살아난다는 것입니다. iOS 17을 실행하는 iPhone에서 Live Photo를 잠금 화면 배경화면으로 사용하는 방법은 다음과 같습니다. iPhone의 잠금 화면 배경화면으로 라이브 사진을 적용하는 방법 필수: iOS17 업데이트. (일반 >소프트웨어 업데이트 아래의 설정 >을 확인하세요). iOS17에서는 iPhone에서 촬영한 라이브 사진을 잠금 화면 배경화면으로 적용할 수 있습니다. 라이브 포토를 배경화면으로 사용할 때 화면 잠금

iPhone 15: 사진을 찍은 후 인물 사진으로 바꾸는 방법 iPhone 15: 사진을 찍은 후 인물 사진으로 바꾸는 방법 Sep 24, 2023 pm 03:53 PM

iPhone 15에서는 사람, 고양이, 개 사진을 찍으면 카메라가 프레임에서 이를 감지하고 자동으로 풍부한 심도 정보를 캡처하므로 사진 앱에서 즉시 또는 나중에 눈길을 끄는 사진으로 바꿀 수 있습니다. app. 경이의 초상. 그 방법은 다음과 같습니다. Apple의 인물 사진 모드는 보케(bokeh) 심도 효과를 사용하여 인상적인 사진을 찍는 인기 있는 방법이 되었습니다. 이를 통해 iPhone 사용자는 흐린 배경에도 불구하고 피사체가 선명하게 유지되는 사진을 찍을 수 있습니다. 이전 iPhone의 인물 사진 모드는 이미지의 깊이 맵을 캡처하기 위해 일반 사진보다 더 힘든 시스템을 사용했기 때문에 셔터 지연이 더 많았고 스마트 HDR에 대한 지원이 적었습니다. 하지만 iPhone15 모델에서는 Apple의 새로운 차세대

Furmark에 대해 어떻게 생각하시나요? - Furmark는 어떻게 자격을 갖춘 것으로 간주됩니까? Furmark에 대해 어떻게 생각하시나요? - Furmark는 어떻게 자격을 갖춘 것으로 간주됩니까? Mar 19, 2024 am 09:25 AM

Furmark에 대해 어떻게 생각하시나요? 1. 메인 인터페이스에서 "실행 모드"와 "디스플레이 모드"를 설정하고 "테스트 모드"도 조정한 후 "시작" 버튼을 클릭하세요. 2. 잠시 기다리면 그래픽 카드의 다양한 매개변수를 포함한 테스트 결과가 표시됩니다. Furmark는 어떻게 자격을 갖추었나요? 1. 푸르마크 베이킹 머신을 사용하여 약 30분 동안 결과를 확인합니다. 기본적으로 85도 정도, 최고 온도는 87도, 실내 온도는 19도입니다. 대형 섀시에 섀시 팬 포트 5개 전면 2개, 상단 2개, 후면 1개로 구성됐으나 팬은 1개만 설치됐다. 모든 액세서리는 오버클럭되지 않습니다. 2. 정상적인 상황에서 그래픽 카드의 정상 온도는 "30-85℃" 사이여야 합니다. 3. 주변온도가 너무 높은 여름에도 정상온도는 "50~85℃"

새로운 Xianxia 모험에 참여하세요! 'Zhu Xian 2' 'Wuwei Test' 사전 다운로드가 가능합니다 새로운 Xianxia 모험에 참여하세요! 'Zhu Xian 2' 'Wuwei Test' 사전 다운로드가 가능합니다 Apr 22, 2024 pm 12:50 PM

새로운 판타지 요정 MMORPG '주선2'의 '무작용 테스트'가 4월 23일 출시된다. 원작으로부터 수천 년이 지난 주선 대륙에서는 어떤 새로운 요정 모험 이야기가 펼쳐질 것인가? 육계선불세계, 불멸수련을 위한 전임 학원, 불멸수련의 자유로운 삶, 불멸세계의 온갖 즐거움이 불멸친구들이 직접 탐험하는 것을 기다리고 있습니다! 이제 'Wuwei 테스트' 사전 다운로드가 공개되었습니다. 요정 친구들은 공식 웹사이트에 접속하여 다운로드할 수 있습니다. 서버가 출시되기 전에는 게임 서버에 로그인할 수 없습니다. 사전 다운로드 및 설치 후에는 활성화 코드를 사용할 수 있습니다. 완성 됐습니다. "Zhu Xian 2" "Inaction Test" 개장 시간: 4월 23일 10:00 - 5월 6일 23:59 Zhu Xian의 정통 속편 "Zhu Xian 2"의 새로운 요정 모험 장은 "Zhu Xian" 소설을 기반으로 합니다. 원작의 세계관을 바탕으로 게임 배경이 설정되었습니다.

MySQL 데이터베이스의 신뢰성 테스트를 위해 MTR을 사용하는 방법은 무엇입니까? MySQL 데이터베이스의 신뢰성 테스트를 위해 MTR을 사용하는 방법은 무엇입니까? Jul 13, 2023 pm 12:05 PM

MySQL 데이터베이스의 신뢰성 테스트를 위해 MTR을 사용하는 방법은 무엇입니까? 개요: MTR(MySQL Test Runner)은 MySQL에서 공식적으로 제공하는 테스트 도구로, 개발자가 MySQL 데이터베이스의 기능 및 성능 테스트를 수행하는 데 도움을 줄 수 있습니다. 개발 과정에서 데이터베이스의 신뢰성과 안정성을 보장하기 위해 다양한 테스트를 수행해야 하는 경우가 많으며 MTR은 이러한 테스트를 수행할 수 있는 간단하고 편리하며 신뢰할 수 있는 방법을 제공합니다. 단계: MySQL 테스트 실행기 설치: 먼저 MySQL 공식 웹사이트에서 다운로드해야 합니다.

다른 언어에서 기능 테스트와 적용 범위의 차이점은 무엇입니까? 다른 언어에서 기능 테스트와 적용 범위의 차이점은 무엇입니까? Apr 27, 2024 am 11:30 AM

기능 테스트는 블랙박스 및 화이트박스 테스트를 통해 기능 기능성을 검증하고, 코드 커버리지는 테스트 케이스에 포함된 코드 부분을 측정합니다. Python 및 Java와 같은 언어마다 테스트 프레임워크, 적용 범위 도구 및 기능이 다릅니다. 실제 사례에서는 기능 테스트 및 적용 범위 평가를 위해 Python의 Unittest 및 Coverage와 Java의 JUnit 및 JaCoCo를 사용하는 방법을 보여줍니다.

Golang의 데이터베이스 테스트 기술 Golang의 데이터베이스 테스트 기술 Aug 10, 2023 pm 02:51 PM

Golang의 데이터베이스 테스트 기술 소개: 데이터베이스 테스트는 애플리케이션을 개발할 때 매우 중요한 링크입니다. 적절한 테스트 방법은 잠재적인 문제를 발견하고 데이터베이스 운영의 정확성을 보장하는 데 도움이 될 수 있습니다. 이 기사에서는 Golang의 몇 가지 일반적인 데이터베이스 테스트 기술을 소개하고 해당 코드 예제를 제공합니다. 1. 인메모리 데이터베이스를 사용한 테스트 데이터베이스 관련 테스트를 작성할 때 일반적으로 다음 질문에 직면합니다. 외부 데이터베이스에 의존하지 않고 테스트하는 방법은 무엇입니까? 여기서 우리는 메모리를 사용할 수 있습니다

국내 FPS의 새로운 왕! '델타 작전' 전장이 기대치를 뛰어넘는다 국내 FPS의 새로운 왕! '델타 작전' 전장이 기대치를 뛰어넘는다 Mar 07, 2024 am 09:37 AM

'오퍼레이션 델타'는 오늘(3월 7일) '코드네임: ZERO'라는 대규모 PC 테스트를 시작한다. 지난 주말 이 게임은 상하이에서 오프라인 플래시몹 체험행사를 진행했는데, 17173도 행운을 빌어 참여하게 됐다. 이번 시험은 지난 시험으로부터 불과 4개월여밖에 남지 않은 상황인데, 이 짧은 시간 안에 '델타 작전'이 어떤 새로운 볼거리와 놀라움을 선사할지 궁금증을 자아낸다. 4개월여 전 오프라인 테이스팅 세션과 첫 번째 베타 버전에서 'Operation Delta'를 경험했습니다. 당시 게임은 '위험한 액션' 모드만 열었습니다. 그러나 델타 작전은 당시로서는 이미 인상적이었습니다. 주요 제조사들이 모바일 게임 시장에 몰려드는 상황에서 국제 표준에 버금가는 FPS

See all articles