찾다
데이터 베이스MySQL 튜토리얼Clone 플러그인의 MySQL 상세 분석

이 기사에서는 주로 복제와 관련된 문제를 소개하는 mysql에 대한 관련 지식을 제공합니다. MySQL 8.0.17에서는 로컬 또는 원격 MySQL 서버 인스턴스에서 복제할 수 있는 복제 플러그인을 소개합니다. 모두가 도움이 됩니다.

Clone 플러그인의 MySQL 상세 분석

추천 학습: mysql 튜토리얼

복제 플러그인 소개

MySQL 8.0.17에는 로컬 또는 원격 MySQL 서버 인스턴스에서 복제할 수 있는 복제 플러그인이 도입되었습니다. 복제된 데이터는 InnoDB에 저장됩니다. 스키마, 테이블, 테이블스페이스 및 데이터 사전 메타데이터를 포함한 데이터의 물리적 스냅샷입니다. 복제 작업에는 로컬 복제와 원격 복제가 포함됩니다.

로컬 복제 작업:                                                      플러그인을 먼저 설치하고 구성해야 합니다. 플러그인 이름은 mysql_clone.so이며, 설치하는 방법은 두 가지가 있다.

방법 1:

MySQL 데이터베이스 플러그인은 기본적으로 시스템 변수plugin_dir에 해당하는 디렉터리에 배치됩니다. MySQL 서버가 시작될 때 플러그인을 로드하려면 --plugin-load-add 옵션을 사용하세요. 이 방법을 사용하려면 매번 서버를 시작해야 합니다. my.cnf 파일에서 구성할 수 있는 해당 옵션을 지정해야 합니다. 즉:

[mysqld]
plugin-load-add=mysql_clone.so

방법 2:

런타임에 플러그인을 로드하고 INSTALL PLUGIN을 사용하여 설치합니다. mysql.plugin 시스템 테이블에 플러그인을 등록하세요. Medium:

install plugin clone soname 'mysql_clone.so';

설치 후에는 information_schema.plugins 테이블이나 show 플러그인을 통해 볼 수 있습니다.

로컬 데이터 복제

로컬 복제 데이터는 동일한 서버 또는 노드에 있는 MySQL 데이터 디렉터리를 다른 디렉터리로 복제하는 것입니다. 지원되는 구문은 다음과 같습니다.

CLONE LOCAL DATA DIRECTORY [=] '/path/to/clone_dir'

위 명령문을 실행하려면 해당 사용자에게 BACKUP_ADMIN 권한이 있어야 합니다. 권한, 사용자가 생성한 파일 또는 테이블스페이스가 데이터 디렉토리에 있어야 하며, 동시에 복제 대상에 대한 절대 경로가 지정되어야 하지만, clone_dir은 존재하지 않아야 합니다. 존재하다.

데모: 로컬 데이터 복제

1) 사용자 생성

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.25 |
+-----------+
1 row in set (0.00 sec)
mysql> create user clone_admin identified by 'Cl0neTest';
Query OK, 0 rows affected (0.02 sec)
mysql> grant backup_admin on *.* to clone_admin;
Query OK, 0 rows affected (0.10 sec)

2) 디렉터리 생성

[root@node1 ~]# mkdir /mysql/clone/
[root@node1 ~]# chown -R mysql:mysql /mysql/clone/

3) 복제 작업

mysql> clone local data directory='/mysql/clone/clone_data';
Query OK, 0 rows affected (17.09 sec)

4) 복제된 파일 보기

[root@node1 ~]# ll /mysql/clone/clone_data/
total 6348816
drwxr-x---. 2 mysql mysql 89 Nov 28 11:26 #clone
-rw-r-----. 1 mysql mysql 9231 Nov 28 11:26 ib_buffer_pool
-rw-r-----. 1 mysql mysql 4294967296 Nov 28 11:26 ibdata1
-rw-r-----. 1 mysql mysql 1073741824 Nov 28 11:26 ib_logfile0
-rw-r-----. 1 mysql mysql 1073741824 Nov 28 11:26 ib_logfile1
drwxr-x---. 2 mysql mysql 6 Nov 28 11:26 mysql
-rw-r-----. 1 mysql mysql 25165824 Nov 28 11:26 mysql.ibd
drwxr-x---. 2 mysql mysql 4096 Nov 28 11:26 sakila
drwxr-x---. 2 mysql mysql 28 Nov 28 11:26 sys
-rw-r-----. 1 mysql mysql 16777216 Nov 28 11:26 undo_001
-rw-r-----. 1 mysql mysql 16777216 Nov 28 11:26 undo_002

5) 확인, 복제된 디렉터리를 사용하여 데이터베이스 시작

[root@node1 ~]# service mysql.server stop
Shutting down MySQL.... SUCCESS!
[root@node1 ~]# mysqld_safe --datadir=/mysql/clone/clone_data/ --lower-case-table-names=1 --user=mysql
2021-11-28T03:47:11.012900Z mysqld_safe Logging to '/mysql/clone/clone_data/node1.com.cn.err'.
2021-11-28T03:47:11.036181Z mysqld_safe Starting mysqld daemon with databases from /mysql/clone/clone_data

원격 데이터 복제

원격 MySQL 서버 인스턴스(제공자)를 복제하고 복제 작업을 수행하는 MySQL 인스턴스(수신자)로 전송합니다. 원격 데이터 복제에 지원되는 구문은 다음과 같습니다.

CLONE INSTANCE FROM 'user'@'host':port
IDENTIFIED BY 'password'
[ DATA DIRECTORY [ = ] 'clone_dir' ]
[ REQUIRE [ NO ] SSL ]

Where,

user는 기증자 MySQL 서버 인스턴스의 사용자 이름입니다.

password는 사용자의 비밀번호입니다.

host는 기증자 MySQL 서버 인스턴스의 호스트 이름 주소입니다. IPv6는 지원되지 않습니다.

    port는 기증자 MySQL 서버 인스턴스입니다.
  • DATA DIRECTORY [ = ] 'clone_dir'은 복제 데이터를 수신할 디렉터리를 지정하는 데 사용되는 선택적 절입니다. . 이 옵션을 지정하면 복제 데이터를 디렉터리로 전송할 수 있습니다.
  • REQUIRE [NO] SSL은 암호화된 연결을 사용할지 여부를 명시적으로 지정합니다.
  • 복제 작업을 수행하려면 기증자와 수신자에서 활성화해야 합니다. MySQL 서버 인스턴스에서 복제 사용자는 수신자 서버의 BACKUP_ADMIN 권한이 필요합니다. 예를 들어 사용자를 복제하려면 BACKUP_ADMIN 및 SHUTDOWN 권한이 포함된 CLONE_ADMIN 권한이 필요합니다.
  • CLONE INSTANCE 문을 실행하려면 다음 전제 조건을 충족해야 합니다.
    • donor和recipient必须有相同的MySQL服务器版本,克隆插件在8.0.17版本后支持;
    • donor和recipient必须运行在相同的操作系统和平台;
    • 克隆数据,recipient必须有足够的磁盘空间;
    • InnoDB需要在数据目录外面创建表空间,可通过INFORMATION_SCHEMA.FILES查看;
    • 克隆插件必须在donor和recipient激活,可通过SHOW PLUGINS查看;
    • donor和recipient必须有相同的MySQL服务器字符集和排序规则;
    • donor和recipient需要有相同的innodb_page_size和innodb_data_file_path设置;
    • 若克隆加密或页压缩的数据,donor和recipient必须有相同的文件系统块大小;
    • 若克隆加密的数据,需要安全的连接;
    • recipient上的clone_valid_donor_list设置必须包括donor MySQL服务器实例的主机地址;
    • 一次只能有一个克隆操作,克隆期间不能有其他克隆操作,可通过clone_status查看;
    • 克隆插件以1MB数据包和元数据的形式传输数据,在donor和recipient MySQL服务器实例上所需的最小max_allowed_packet是2MB;
    • donor上的Undo表空间文件名必须唯一,当数据克隆到recipient,undo表空间克隆到recipient 上innodb_undo_directory指定的位置或DATA DIRECTORY [ = ] 'clone_dir' 子句指定的目录;
    • 默认,recipient MySQL服务器实例在克隆数据完成后自动重启;
    • 几个变量控制远程克隆操作的各个方面;

    演示:克隆远程数据

    默认将数据克隆到recipient端的数据目录,并使用donor的数据进行覆盖,然后进行自动重启recipient端的MySQL服务器实例

    1)登录到donor MySQL服务器实例,创建用户并安装插件(若安装可忽略)

    mysql> create user 'donor_clone_user' identified by 'donor_clone_user';
    Query OK, 0 rows affected (0.02 sec)
    mysql> grant backup_admin on *.* to donor_clone_user;
    Query OK, 0 rows affected (0.01 sec)

    2)登录到recipient MySQL服务器实例,创建账户并安装插件,并设置clone_valid_donor_list

    mysql> create user recipient_clone_user identified by 'recipient_clone_user';
    Query OK, 0 rows affected (0.04 sec)
    mysql> grant clone_admin,backup_admin on *.* to recipient_clone_user;
    Query OK, 0 rows affected (0.01 sec)
    mysql> install plugin clone soname 'mysql_clone.so';
    Query OK, 0 rows affected (0.01 sec)
    mysql> set global clone_valid_donor_list='192.168.56.53:3306';
    Query OK, 0 rows affected (0.00 sec)

    3)登录到recipient MySQL服务器实例,使用 recipient_clone_user用户或root用户执行克隆操作,操作完成后会自动重启

    mysql> clone instance from 'donor_clone_user'@'192.168.56.81':3306 identified by 'donor_clone_user';
    Query OK, 0 rows affected (51.08 sec)

    注:将donor的数据克隆到recipient端默认会覆盖其数据文件,也可以指定一个目录进行克隆,如下:

    mysql> clone instance from 'donor_clone_user'@'192.168.56.81':3306 identified by 'donor_clone_user' data directory='/mysql/clone/clone_data';
    Query OK, 0 rows affected (51.17 sec)

    使用新目录启动MySQL服务器实例:

    [root@node2 clone]# mysqld --lower-case-table-names=1 --datadir=/mysql/clone/clone_data/ --user=mysql &

    推荐学习:mysql视频教程

위 내용은 Clone 플러그인의 MySQL 상세 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 CSDN에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
MySQL : 초보자가 마스터하는 필수 기술MySQL : 초보자가 마스터하는 필수 기술Apr 18, 2025 am 12:24 AM

MySQL은 초보자가 데이터베이스 기술을 배우는 데 적합합니다. 1. MySQL 서버 및 클라이언트 도구를 설치하십시오. 2. SELECT와 같은 기본 SQL 쿼리를 이해하십시오. 3. 마스터 데이터 작업 : 데이터를 만들고, 삽입, 업데이트 및 삭제합니다. 4. 고급 기술 배우기 : 하위 쿼리 및 창 함수. 5. 디버깅 및 최적화 : 구문 확인, 인덱스 사용, 선택*을 피하고 제한을 사용하십시오.

MySQL : 구조화 된 데이터 및 관계형 데이터베이스MySQL : 구조화 된 데이터 및 관계형 데이터베이스Apr 18, 2025 am 12:22 AM

MySQL은 테이블 구조 및 SQL 쿼리를 통해 구조화 된 데이터를 효율적으로 관리하고 외래 키를 통해 테이블 ​​간 관계를 구현합니다. 1. 테이블을 만들 때 데이터 형식을 정의하고 입력하십시오. 2. 외래 키를 사용하여 테이블 간의 관계를 설정하십시오. 3. 인덱싱 및 쿼리 최적화를 통해 성능을 향상시킵니다. 4. 데이터 보안 및 성능 최적화를 보장하기 위해 데이터베이스를 정기적으로 백업 및 모니터링합니다.

MySQL : 주요 기능 및 기능이 설명되었습니다MySQL : 주요 기능 및 기능이 설명되었습니다Apr 18, 2025 am 12:17 AM

MySQL은 웹 개발에 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 주요 기능에는 다음이 포함됩니다. 1. 다른 시나리오에 적합한 InnoDB 및 MyISAM과 같은 여러 스토리지 엔진을 지원합니다. 2.로드 밸런싱 및 데이터 백업을 용이하게하기 위해 마스터 슬레이브 복제 기능을 제공합니다. 3. 쿼리 최적화 및 색인 사용을 통해 쿼리 효율성을 향상시킵니다.

SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다Apr 18, 2025 am 12:12 AM

SQL은 MySQL 데이터베이스와 상호 작용하여 데이터 첨가, 삭제, 수정, 검사 및 데이터베이스 설계를 실현하는 데 사용됩니다. 1) SQL은 Select, Insert, Update, Delete 문을 통해 데이터 작업을 수행합니다. 2) 데이터베이스 설계 및 관리에 대한 생성, 변경, 삭제 문을 사용하십시오. 3) 복잡한 쿼리 및 데이터 분석은 SQL을 통해 구현되어 비즈니스 의사 결정 효율성을 향상시킵니다.

초보자를위한 MySQL : 데이터베이스 관리를 시작합니다초보자를위한 MySQL : 데이터베이스 관리를 시작합니다Apr 18, 2025 am 12:10 AM

MySQL의 기본 작업에는 데이터베이스, 테이블 작성 및 SQL을 사용하여 데이터에서 CRUD 작업을 수행하는 것이 포함됩니다. 1. 데이터베이스 생성 : createAbasemy_first_db; 2. 테이블 만들기 : CreateTableBooks (idintauto_incrementprimarykey, titlevarchar (100) notnull, authorvarchar (100) notnull, published_yearint); 3. 데이터 삽입 : InsertIntobooks (Title, Author, Published_year) VA

MySQL의 역할 : 웹 응용 프로그램의 데이터베이스MySQL의 역할 : 웹 응용 프로그램의 데이터베이스Apr 17, 2025 am 12:23 AM

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

MySQL : 첫 번째 데이터베이스 구축MySQL : 첫 번째 데이터베이스 구축Apr 17, 2025 am 12:22 AM

MySQL 데이터베이스를 구축하는 단계에는 다음이 포함됩니다. 1. 데이터베이스 및 테이블 작성, 2. 데이터 삽입 및 3. 쿼리를 수행하십시오. 먼저 CreateAbase 및 CreateTable 문을 사용하여 데이터베이스 및 테이블을 작성한 다음 InsertInto 문을 사용하여 데이터를 삽입 한 다음 최종적으로 SELECT 문을 사용하여 데이터를 쿼리하십시오.

MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식Apr 17, 2025 am 12:21 AM

MySQL은 사용하기 쉽고 강력하기 때문에 초보자에게 적합합니다. 1.MySQL은 관계형 데이터베이스이며 CRUD 작업에 SQL을 사용합니다. 2. 설치가 간단하고 루트 사용자 비밀번호를 구성해야합니다. 3. 삽입, 업데이트, 삭제 및 선택하여 데이터 작업을 수행하십시오. 4. Orderby, Where and Join은 복잡한 쿼리에 사용될 수 있습니다. 5. 디버깅은 구문을 확인하고 쿼리를 분석하기 위해 설명을 사용해야합니다. 6. 최적화 제안에는 인덱스 사용, 올바른 데이터 유형 선택 및 우수한 프로그래밍 습관이 포함됩니다.

See all articles

핫 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를 무료로 생성하십시오.

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

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

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

메모장++7.3.1

메모장++7.3.1

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