随着企业的业务扩展,企业应用所承载的访问需求也更加频繁及多元化,对于大多数企业应用来说,确保企业应用的高可用性(HA)是十分必要的。比如公共安全系统,电子商务支持系统、银联支付系统等等系统。高可用性分为两个主要的部分,一部分是应用程序(SOA服务
随着企业的业务扩展,企业应用所承载的访问需求也更加频繁及多元化,对于大多数企业应用来说,确保企业应用的高可用性(HA)是十分必要的。比如公共安全系统,电子商务支持系统、银联支付系统等等系统。高可用性分为两个主要的部分,一部分是应用程序(SOA服务)的高可用性,另一个方面就是数据库的高可用性。企业应用服务的高可用性主要是通过网络负载均衡(NLB)来实现,这个在另外的章节我们再探讨,这一章节我们主要探讨sqlserver数据库的高可用性集群是如何满足高可用性需求的。
数据库有两大基础作用,一个是存储系统相关的数据,二是提供对数据的管理机制。管理机制很多时候比存储数据功能更重要。这套机制能够确保数据的一致性,合理性、提高读取性能等等方面,当然这些规则及特性支持可以实际情况进行手动开启或关闭,并且可以自定义一些规则来约束对数据的操作。基于数据安全性的考虑,通常需要在另外一个物理位置对数据进行备份,避免数据因为一些特殊原因丢失而造成无法挽回的损失。这种情况下,确保两个数据库的数据一致性就很重要,如何将针对其中一个数据库的操作准确无误地反映到另外一个备份数据库上是一个重要的课题。其实这也是数据库HA最需要解决的问题。具体来说有以下几种方式:
1)数据库复制
数据库复制不是数据库备份和还原。数据库复制是通过发布和订阅来实现的。主数据库和备份数据库之间是发布和订阅的关系,一旦主库数据进行了修改,那么从库也做相应的动作,但主从数据库并不是实时同步的,一般会有延时,因为订阅数据库在一定时间内(通常5sec)会扫面主数据库是否有更改。这种方式是通过日志进行同步操作的,效率也还可以接受。但有一点是不接受DDL语句,即主数据库表结构的变动无法反应到从数据库,必须手动来同时更改库结构再同步。
2)数据库镜像
数据库镜像顾名思义是数据库的实时备份镜像。不同于发布订阅,数据库镜像的镜像数据库是不可读也不可写的。也就是说,如果应用程序希望通过访问镜像数据库来获取数据从而分担主数据库的压力这种方案是行不通的。必须对镜像数据库做数据库快照才可以访问。做数据库镜像的时候对数据库有一些要求,如必须在Full Recovery 模式下才能做数据库镜像,对版本也有一定的要求。
3)数据库快照
数据库快照是给数据库的拍的照片,这个不是实时的备份,很多的应用需求不能被满足。相比于通过日志进行的同步,性能损耗比较大,尤其是当数据量比较大。通常是通过数据库快照恢复数据。
这三种方式中数据库复制订阅支持多个数据往一个数据库进行同步。对于单向数据复制的需求能够很好地满足。比如有多个录入系统,数据入库进入本地数据库,本地数据库与服务端的数据库进行发布订阅,本地数据库发布数据库,服务端数据库订阅数据库,每一个录入端都发布数据库,服务端数据库订阅每一个服务端,这样每个录入端的数据就能够及时进入服务端,服务端就能够对所有客户端的数据进行汇总,统计,分析等等。优点是无论是订阅端还是发布端数据都是可读的(客户端当然是可写的),原则上订阅端的数据时不可写的,因为订阅端的更改不会反应到发布端,因为发布订阅是单向的。
通常数据库镜像是由三个物理数据库组成,一个是Principle,一个是Mirror, 还有一个Witness,Witness数据库是监测Principle 和 Mirror 的状态,实际并不存储数据,通常Witness 会承担其他任务,比如 Reporting Service。Principle 和 Mirror 之间传递着一个 Message. 这个Heart Beat是主从数据库角色转换的依据,一旦从数据库收不到主数据的Heart Beat 信息,从数据库立即响应数据库访问请求,从数据库立即转变成主数据库,主数据库理解转换成从数据库。主从数据库之间的数据同步是通过日志来实现的,并且有High Performance和High Safety 两种模式,前者是理解响应访问请求,然后再将数据更改反应到从数据库,后者是先将数据更改反应到从数据库,再响应访问请求。因为将数据更改反应到从数据库的过程中可能fail掉。
数据库响应请求分为读请求和写请求,由于数据库有物理读和逻辑读,读请求访问物理磁盘的几率较小,效率最低的是写请求。如果能够将读请求和写请求进行分离,能够大大地提高数据库集群的处理能力。于是SqlServer 2012 开始,提供了 SqlAlwaysOn组件。SqlServer 2012 组件让数据库的镜像能够可读。由数据库镜像来处理数据库的读请求,主数据库处理写请求。
还有非常重要的一点是SqlAlwaysOn能够对数据库进行分组。
下一个章节继续。

데이터베이스 최적화에서 쿼리 요구 사항에 따라 인덱싱 전략을 선택해야합니다. 1. 쿼리에 여러 열이 포함되고 조건 순서가 수정되면 복합 인덱스를 사용하십시오. 2. 쿼리에 여러 열이 포함되어 있지만 조건 순서가 고정되지 않은 경우 여러 단일 열 인덱스를 사용하십시오. 복합 인덱스는 다중 열 쿼리를 최적화하는 데 적합한 반면 단일 열 인덱스는 단일 열 쿼리에 적합합니다.

MySQL 느린 쿼리를 최적화하려면 SlowQueryLog 및 Performance_Schema를 사용해야합니다. 1. SlowQueryLog 및 Set Stresholds를 사용하여 느린 쿼리를 기록합니다. 2. Performance_schema를 사용하여 쿼리 실행 세부 정보를 분석하고 성능 병목 현상을 찾고 최적화하십시오.

MySQL 및 SQL은 개발자에게 필수적인 기술입니다. 1.MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템이며 SQL은 데이터베이스를 관리하고 작동하는 데 사용되는 표준 언어입니다. 2.MYSQL은 효율적인 데이터 저장 및 검색 기능을 통해 여러 스토리지 엔진을 지원하며 SQL은 간단한 문을 통해 복잡한 데이터 작업을 완료합니다. 3. 사용의 예에는 기본 쿼리 및 조건 별 필터링 및 정렬과 같은 고급 쿼리가 포함됩니다. 4. 일반적인 오류에는 구문 오류 및 성능 문제가 포함되며 SQL 문을 확인하고 설명 명령을 사용하여 최적화 할 수 있습니다. 5. 성능 최적화 기술에는 인덱스 사용, 전체 테이블 스캔 피하기, 조인 작업 최적화 및 코드 가독성 향상이 포함됩니다.

MySQL 비동기 마스터 슬레이브 복제는 Binlog를 통한 데이터 동기화를 가능하게하여 읽기 성능 및 고 가용성을 향상시킵니다. 1) 마스터 서버 레코드는 Binlog로 변경됩니다. 2) 슬레이브 서버는 I/O 스레드를 통해 Binlog를 읽습니다. 3) 서버 SQL 스레드는 데이터를 동기화하기 위해 Binlog를 적용합니다.

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) 데이터베이스 및 테이블 작성 : CreateAbase 및 CreateTable 명령을 사용하십시오. 2) 기본 작업 : 삽입, 업데이트, 삭제 및 선택. 3) 고급 운영 : 가입, 하위 쿼리 및 거래 처리. 4) 디버깅 기술 : 확인, 데이터 유형 및 권한을 확인하십시오. 5) 최적화 제안 : 인덱스 사용, 선택을 피하고 거래를 사용하십시오.

MySQL의 설치 및 기본 작업에는 다음이 포함됩니다. 1. MySQL 다운로드 및 설치, 루트 사용자 비밀번호를 설정하십시오. 2. SQL 명령을 사용하여 CreateAbase 및 CreateTable과 같은 데이터베이스 및 테이블을 만듭니다. 3. CRUD 작업을 실행하고 삽입, 선택, 업데이트, 명령을 삭제합니다. 4. 성능을 최적화하고 복잡한 논리를 구현하기 위해 인덱스 및 저장 절차를 생성합니다. 이 단계를 사용하면 MySQL 데이터베이스를 처음부터 구축하고 관리 할 수 있습니다.

innodbbufferpool은 데이터와 색인 페이지를 메모리에로드하여 MySQL 데이터베이스의 성능을 향상시킵니다. 1) 데이터 페이지가 버퍼 풀에로드되어 디스크 I/O를 줄입니다. 2) 더러운 페이지는 정기적으로 디스크로 표시되고 새로 고침됩니다. 3) LRU 알고리즘 관리 데이터 페이지 제거. 4) 읽기 메커니즘은 가능한 데이터 페이지를 미리로드합니다.

MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

WebStorm Mac 버전
유용한 JavaScript 개발 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

뜨거운 주제



