MySQL管理工具MySQL Utilities — mysqlserverclone(21)

默北 MySQLMySQL管理工具MySQL Utilities — mysqlserverclone(21)已关闭评论11,818字数 7672阅读25分34秒阅读模式

mysqlserverclone 工具是在同一个主机上创建一个新的服务实例。该工具创建一个新的datadir目录和socket文件,并启动该实例。

如果新目录没有读写权限将报错。如果新目录非空,该工具不会删除并报错。因此在克隆前先要删除该目录下的内容或指定--delete-data选项。文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-utilities-mysqlserverclone/

选项

Usage: mysqlserverclone --server=user:pass@host:port:socket \
                        --new-data=/tmp/data2 --new-port=3310 \
                        --new-id=12 --root-password=root

mysqlserverclone - start another instance of a running server

Options:
  --version             show program's version number and exit
  --help                display a help message and exit
  --license             display program's license and exit
  --server=SERVER       connection information for the server in the form:
                        <user>[:<password>]@<host>[:<port>][:<socket>] or
                        <login-path>[:<port>][:<socket>] or <config-
                        path>[<[group]>].
  --ssl-ca=SSL_CA       The path to a file that contains a list of trusted SSL
                        CAs.
  --ssl-cert=SSL_CERT   The name of the SSL certificate file to use for
                        establishing a secure connection.
  --ssl-key=SSL_KEY     The name of the SSL key file to use for establishing a
                        secure connection.
  --new-data=NEW_DATA   新实例数据目录的完整路径。路径大小必需等于或少于200个字符。
                        至少需要120M的可用空间。
  --new-port=NEW_PORT   the new port for the new instance - default=3307
  --new-id=NEW_ID       the server_id for the new instance - default=2
  --root-password=ROOT_PASS
                        password for the root user
  --mysqld=MYSQLD       mysqld附加选项。指定多个,用空格分割。如--mysqld="--log-bin=binlog 
                         --general-log-file='my log file'"
  -w CMD_FILE, --write-command=CMD_FILE
                        path to file for writing startup command. For example:
                        start_server1.sh
  -v, --verbose         control how much information is displayed. e.g., -v =
                        verbose, -vv = more verbose, -vvv = debug
  -q, --quiet           turn off all messages for quiet execution.
  --basedir=BASEDIR     the base directory for the server
  --delete-data         delete the folder specified by --new-data if it exists
                        and is not empty.
  --user=USER           user account to launch cloned server. Default is
                        current user.
  --start-timeout=START_TIMEOUT
                        Number of seconds to wait for server to start. Default
                        = 10.
  --force               Ignore the maximum path length and the low space
                        checks for the --new-data option.

实例

创建一个新实例,设置root密码和启用二进制日志文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-utilities-mysqlserverclone/

# mysqlserverclone --server=instance_3306 --new-data=/data/tmp/ \
   --new-port=3310 --root-password=3310 --mysqld=--log-bin=mysql-bin-3310 \
   --new-id=3310 --user=mysql -vvv
# Cloning the MySQL server running on localhost.
# Configuring new instance...
# Locating mysql tools...
# Location of files:
#                       mysqld: /usr/sbin/mysqld
#                   mysqladmin: /usr/bin/mysqladmin
#      mysql_system_tables.sql: /usr/share/mysql/mysql_system_tables.sql
# mysql_system_tables_data.sql: /usr/share/mysql/mysql_system_tables_data.sql
# mysql_test_data_timezone.sql: /usr/share/mysql/mysql_test_data_timezone.sql
#         fill_help_tables.sql: /usr/share/mysql/fill_help_tables.sql
# Setting up empty database and mysql tables...
2015-01-06 16:31:32 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-01-06 16:31:32 19770 [Note] Plugin 'FEDERATED' is disabled.
2015-01-06 16:31:32 19770 [Note] InnoDB: Using atomics to ref count buffer pool pages
2015-01-06 16:31:32 19770 [Note] InnoDB: The InnoDB memory heap is disabled
2015-01-06 16:31:32 19770 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2015-01-06 16:31:32 19770 [Note] InnoDB: Memory barrier is not used
2015-01-06 16:31:32 19770 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-01-06 16:31:32 19770 [Note] InnoDB: Using Linux native AIO
2015-01-06 16:31:32 19770 [Note] InnoDB: Using CPU crc32 instructions
2015-01-06 16:31:32 19770 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2015-01-06 16:31:32 19770 [Note] InnoDB: Completed initialization of buffer pool
2015-01-06 16:31:32 19770 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
2015-01-06 16:31:32 19770 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2015-01-06 16:31:32 19770 [Note] InnoDB: Database physically writes the file full: wait...
2015-01-06 16:31:32 19770 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2015-01-06 16:31:33 19770 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2015-01-06 16:31:34 19770 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2015-01-06 16:31:34 19770 [Warning] InnoDB: New log files created, LSN=45781
2015-01-06 16:31:34 19770 [Note] InnoDB: Doublewrite buffer not found: creating new
2015-01-06 16:31:34 19770 [Note] InnoDB: Doublewrite buffer created
2015-01-06 16:31:34 19770 [Note] InnoDB: 128 rollback segment(s) are active.
2015-01-06 16:31:34 19770 [Warning] InnoDB: Creating foreign key constraint system tables.
2015-01-06 16:31:34 19770 [Note] InnoDB: Foreign key constraint system tables created
2015-01-06 16:31:34 19770 [Note] InnoDB: Creating tablespace and datafile system tables.
2015-01-06 16:31:34 19770 [Note] InnoDB: Tablespace and datafile system tables created.
2015-01-06 16:31:34 19770 [Note] InnoDB: Waiting for purge to start
2015-01-06 16:31:34 19770 [Note] InnoDB: 5.6.22 started; log sequence number 0
2015-01-06 16:31:35 19770 [Note] Binlog end
2015-01-06 16:31:35 19770 [Note] InnoDB: FTS optimize thread exiting.
2015-01-06 16:31:35 19770 [Note] InnoDB: Starting shutdown...
2015-01-06 16:31:37 19770 [Note] InnoDB: Shutdown completed; log sequence number 1625977
# Starting new instance of the server...
# Startup command for new server:
/usr/sbin/mysqld --no-defaults --datadir=/data/tmp --tmpdir=/data/tmp --pid-file=/data/tmp/clone.pid --port=3310 --server-id=3310 --basedir=/usr --socket=/data/tmp/mysql.sock --user=mysql --log-bin=mysql-bin-3310
# Testing connection to new instance...
2015-01-06 16:31:37 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-01-06 16:31:37 19796 [Note] Plugin 'FEDERATED' is disabled.
2015-01-06 16:31:37 19796 [Note] InnoDB: Using atomics to ref count buffer pool pages
2015-01-06 16:31:37 19796 [Note] InnoDB: The InnoDB memory heap is disabled
2015-01-06 16:31:37 19796 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2015-01-06 16:31:37 19796 [Note] InnoDB: Memory barrier is not used
2015-01-06 16:31:37 19796 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-01-06 16:31:37 19796 [Note] InnoDB: Using Linux native AIO
2015-01-06 16:31:37 19796 [Note] InnoDB: Using CPU crc32 instructions
2015-01-06 16:31:37 19796 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2015-01-06 16:31:37 19796 [Note] InnoDB: Completed initialization of buffer pool
2015-01-06 16:31:37 19796 [Note] InnoDB: Highest supported file format is Barracuda.
2015-01-06 16:31:37 19796 [Note] InnoDB: 128 rollback segment(s) are active.
2015-01-06 16:31:37 19796 [Note] InnoDB: Waiting for purge to start
2015-01-06 16:31:37 19796 [Note] InnoDB: 5.6.22 started; log sequence number 1625977
2015-01-06 16:31:37 19796 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 6e512b45-957e-11e4-9704-0050569f3bb8.
2015-01-06 16:31:37 19796 [Note] Server hostname (bind-address): '*'; port: 3310
2015-01-06 16:31:37 19796 [Note] IPv6 is available.
2015-01-06 16:31:37 19796 [Note]   - '::' resolves to '::';
2015-01-06 16:31:37 19796 [Note] Server socket created on IP: '::'.
2015-01-06 16:31:37 19796 [Note] Event Scheduler: Loaded 0 events
2015-01-06 16:31:37 19796 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.6.22-log'  socket: '/data/tmp/mysql.sock'  port: 3310  MySQL Community Server (GPL)
# trying again...
# Success!
# Setting the root password...
Warning: Using a password on the command line interface can be insecure.
# Connection Information:
#  -uroot -p3310 --socket=/data/tmp/mysql.sock
#...done.

数据目录下内容:文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-utilities-mysqlserverclone/

# ps -ef | grep 3310
mysql    19796     1  1 16:31 pts/0    00:00:00 /usr/sbin/mysqld --no-defaults --datadir=/data/tmp --tmpdir=/data/tmp --pid-file=/data/tmp/clone.pid --port=3310 --server-id=3310 --basedir=/usr --socket=/data/tmp/mysql.sock --user=mysql --log-bin=mysql-bin-3310
root     19842 19315  0 16:32 pts/0    00:00:00 grep 3310
# ll
总用量 110616
-rw-rw----. 1 mysql mysql       56 1月   6 16:31 auto.cnf
-rw-rw----. 1 mysql mysql        6 1月   6 16:31 clone.pid
-rw-rw----. 1 mysql mysql 12582912 1月   6 16:31 ibdata1
-rw-rw----. 1 mysql mysql 50331648 1月   6 16:31 ib_logfile0
-rw-rw----. 1 mysql mysql 50331648 1月   6 16:31 ib_logfile1
drwx------. 2 mysql mysql     4096 1月   6 16:31 mysql
-rw-rw----. 1 mysql mysql      262 1月   6 16:31 mysql-bin-3310.000001
-rw-rw----. 1 mysql mysql       24 1月   6 16:31 mysql-bin-3310.index
srwxrwxrwx. 1 mysql mysql        0 1月   6 16:31 mysql.sock
drwx------. 2 mysql mysql     4096 1月   6 16:31 performance_schema

权限

读取所有数据库的权限。文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-utilities-mysqlserverclone/

对新数据目录的读写权限。文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-utilities-mysqlserverclone/ 文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-utilities-mysqlserverclone/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 25/02/2015 01:00:26
  • 转载请务必保留本文链接:https://www.ttlsa.com/mysql/mysql-utilities-mysqlserverclone/