[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7
Post on 14-Apr-2017
814 Views
Preview:
Transcript
Copyright*©*201 ,*Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL&5.7&&& &
Ryusuke*Kajiyama*/* */*@RKajiyama*MySQL*Sales*ConsulIng*Senior*Manager,*Asia*Pacific*&*Japan*
The&State&of&the&Dolphin
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
JA�8c��g9�6a>�YV�;KI�?�"eH$ZB�"���������QLS]$f6�D>��"����!���"^E��M�P�������%��JA�8c��/,3&4�)�.�FT$S]�"��$)0+-15-�"������`�d[@=$7�O�NW_U��� ���A�����'2(4YV�? �Rb�#��"FT�C:�33�*���<G�������g9�X\��!@=�#����
SAFE*HARBOR*STATEMENT*
2*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
The*world's*most*popular*open*source*database**
3
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
20 1510 5
*A*Year*of*Anniversaries!
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
20*MySQL 20 *
15*MySQL 15
10*Innobase 10
5*5
*A*Year*of*Anniversaries!
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
The*world's*most*popular*open*source*database**
DB_Engines.com*
h`p://db_engines.com/en/*
SNS
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
• MySQL& *
• *– Oracle,*Red*Hat,*CentOS**– Fedora*– Ubuntu,*Debian*
• *– SUSE*– *– DevOps
*
• *– MySQL*Database*– MySQL*Workbench*– MySQL*Connector/ODBC*– MySQL*Connector/Python*– MySQL*Connector/NET*– MySQL*UIliIes*
*
*
12*
MySQL :*Yum,*APT,*NuGET*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
GitHub MySQL &• MySQL Git*
– *– *– *
• GitHub*for*MySQL*Community*– *– h`ps://github.com/mysql*– :*h`p://mysqlrelease.com*
13*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*5.6*h7p://dev.mysql.com/doc/refman/5.6/ja/index.html
14
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
1 SCSK
16
1
MySQL
MySQL MySQL Enterprise Monitor
Query Analizer
MySQL
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
IDUIDAI:&Unique&IdenJficaJon&Authority&of&India
17
*(UIDAI:*
Unique*IdenIficaIon*Authority*of*India Aadhaar
ID 2015 89 ID
*
MySQL UID
MySQL
MySQL ACID
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
** *
• *• *• *• *• *
• *• *• *• • *
• *• *
• **
MySQL*Enterprise*EdiIon*
18*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
“����MySQL DBA”##������#
MySQL*Enterprise*Monitor • MySQL
*• MySQL *
**
• *• &• SQL
Query*Analyzer*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL&Enterprise&Backup&• / *• • *&*
*
MySQL&Enterprise&Security&• (PAM,*Windows,*LDAP,*etc.)*
• MySQL*Enterprise*Monitor
MySQL&Enterprise&EncrypJon&• AES256 *• /* *•
*
MySQL&Enterprise&Audit&• SQL
*•
*•
XML *
MySQL*Enterprise*EdiIon
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*Enterprise*Firewall*• SQL*InjecIon*ProtecIon*with*PosiIve*Security*Model*
• Out*of*policy*database*transacIons*detected*and*blocked*• Logging*&*Analysis*
21*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*Support *
• &
SQL &
– &
&
– &h7p://wwwPjp.mysql.com/support/consultaJve.html&
• &
– &
– &
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*Support *
• &– CPU &
• &– &h7p://www.oracle.com/jp/support/lifeJmePsupport/index.html&h7p://wwwPjp.mysql.com/support/&
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
Oracle*Enterprise*Manager*for*MySQL*Web &
• 70% MySQL *– Web *– ** **
24*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*Enterprise*EdiIon*&*Cluster*CGE *
30 &
• Oracle&SoWware&Delivery&Cloud&h`p://edelivery.oracle.com/**
*• *“MySQL*Database”*
*• *h`p://dev.mysql.com/doc/index_enterprise.html*
**
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
1,000 MySQL*Cluster
27
Paypal
1 2020330%
MySQL MySQL Cluster AWS 5
1/3
MySQL “NoSQLSQL
” Daniel Austin, Chief Architect, PayPal
h7p://wwwPjp.mysql.com/customers/view/?id=1223
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
:* *• *• *
• *• *• *• *
• *• *• *• *&*
*
• 4 MySQL*Cluster *LinuxWindows*
MySQL*User*Conference*Session:*h`p://bit.ly/ogeid3*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*Cluster:*SQL*and*NoSQL*Hybrid*APIsAcJvePAcJve&RDBMS && NoSQL&
29
MySQL*Cluster*Data*Nodes*
Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps
JPA
Cluster*JPA
PHP Perl Python Ruby JDBC Cluster*J JS Memcached
MySQL JNI Node.JS ndb_eng
NDB*API*(C++)
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*Cluster*7.4*GA*
• 200*Million*NoSQL*Reads/Sec*
• 2.5M*SQL*Ops/Sec*• 50%*Faster*Reads*• 40%*Faster*Mixed*
Performance*
• AcIve_AcIve*Geographic*Redundancy*
• Conflict*DetecIon/ResoluIon*
AcIve_AcIve*
• 5X*Faster*Maintenance*Ops*
• Detailed*ReporIng*
Management*
30*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*Cluster*7.4*–*
NoSQL:*20 / & *FlexAsych*(C++*NDB*API)
SQL:*250 / & *DBT2*BM
31
!"!!!!
!50,000,000!!
!100,000,000!!
!150,000,000!!
!200,000,000!!
!250,000,000!!
2! 4! 6! 8! 10! 12! 14! 16! 18! 20! 22! 24! 26! 28! 30! 32!
Read
s&per&se
cond
&
Data&Nodes&
FlexAsync&Reads&
!"!!!!
!500,000!!
!1,000,000!!
!1,500,000!!
!2,000,000!!
!2,500,000!!
!3,000,000!!
2! 4! 6! 8! 10! 12! 14! 16!
SQL$Statem
ents/sec$
Data$Nodes$
DBT2$SQL$Statements$per$Second$
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|* 33
4.0&/GIS*(MyISAM)*
UPDATE/DELETE*
Oracle*MySQL* Sun*
3.23&MyISAM*InnoDB*
*
5.1&*
* **
*
5.6&memcached*API*UNDO *Global*TransacIon*ID*
*ALTER*TABLE*
*
5.5&InnoDB *
*PERFORMANCE_SCHEMA*
1.0P3.22 &*(ISAM,*HEAP)
Windows /64bit **(SJIS/UJIS)
5.0&*
/ / *XAINFORMATION_SCHEMA*
4.1&Unicode *
*CSV,*ARCHIVE*ndbcluster*
1995 2000 2005 2010 2015
5.7+&*
**
*CJK /GIS*(InnoDB)*
**
NoSQL ***
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
• MySQL*5.0*(2005)*– *– *– *– *– *– XA *– INFORMATION_SCHEMA*
• MySQL*5.1*(2008)*– *
*– *– *
*– *–
34
• MySQL*5.5*(2010)*– InnoDB *– *
*– *
*– PERFORMANCE_SCHEMA
MySQL
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
• *– *– *– SSD *– UNDO *– *– JSON*EXPLAIN*– Memcached*API*
• – Global*TransacIon*ID*– *– *– Binlog* *–
*– *
*–
35
• *– ALTER*TABLE*– *
*– *
*– *
• *• SHA256*• *
MySQL*5.6
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*5.6:*InnoDB*–*ALTER&TABLE
• ADD/DROP*INDEX*• ADD/DROP*COLUMN*• ADD/DROP*FOREIGN*KEY*• RENAME*COLUMN,*TABLE*• CREATE*PRIMARY*KEY*• ALTER*ROW_FORMAT,*KEY_BLOCK_SIZE*• ALTER*COLUMN*NULLABLE,*NOT_NULLABLE*•
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*5.6:*InnoDB
• *• / *• ID
&
:*mysql> SET innodb_buffer_pool_dump_at_shutdown=ON;
:*mysql> SET innodb_buffer_pool_load_at_startup=ON;*
! * *! * SaaS *
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
CREATE TABLE t(c1 INT) engine=InnoDB; FLUSH TABLE t FOR EXPORT; -- quiesce the table and create the meta data file $innodb_data_home_dir/test/t.cfg UNLOCK TABLES;
CREATE TABLE t(c1 INT) engine=InnoDB; -- if it doesn't already exist ALTER TABLE t DISCARD TABLESPACE; -- The user must stop all updates on the tables, prior to the IMPORT ALTER TABLE t IMPORT TABLESPACE;
MySQL*5.6:*InnoDB
• MySQL *– Export*
– Import
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*5.6:*InnoDBRDBMS NoSQL
• Memcached*API *– Memcached *– SQL
• NotOnlySQL *– *– JOIN FK SQL
• *– mysqld Memcached
*– InnoDB*API memcached*
*
InnoDB&Storage&Engine&
MySQL&Server& Memcached&plugin&
ApplicaJon&
SQL&&(MySQL&Client)&
NoSQL&&(Memcached&&&Protocol)&
mysqld&
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
InnoDB*memcached*Plugin• The*mapping*is*done*through*specifying*corresponding*column*values*in*containers*table:*
mysql> desc containers; +------------------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+--------------+------+-----+---------+-------+ | name | varchar(50) | NO | PRI | NULL | | | db_schema | varchar(250) | NO | | NULL | | | db_table | varchar(250) | NO | | NULL | | | key_columns | varchar(250) | NO | | NULL | | | value_columns | varchar(250) | YES | | NULL | | | flags | varchar(250) | NO | | 0 | | | cas_column | varchar(250) | YES | | NULL | | | expire_time_column | varchar(250) | YES | | NULL | | | unique_idx_name_on_key | varchar(250) | NO | | NULL | | +------------------------+--------------+------+-----+---------+-------+ 9 rows in set (0.02 sec)
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*5.7*Release*Candidate*2*Available!*
42*
InnoDB :* *Online&Bulk*load* *
**(mulI_source,*mulI_threaded*slaves )*
:*greater*user*control*&*be`er*query*performance*
Performance*Schema *
MySQL*SYS*Schema *
&&& & &
MySQL*5.6 2 *
:**,* & *
NEW!*JSON Support*(now*in*labs)*
RC2*
And*many*more*new*features*and*enhancements...*h`p://mysqlserverteam.com/the_mysql_5_7_7_release_candidate_is_available/*#
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
0&
100,000&
200,000&
300,000&
400,000&
500,000&
600,000&
700,000&
8& 16& 32& 64& 128& 256& 512& 1,024&
Que
ries&per&Secon
d&
ConnecJons&
MySQL&5.7:&Sysbench&Read&Only&(Point&Select)&
MySQL&5.7&
MySQL&5.6&
MySQL&5.5&
MySQL*5.7:*Sysbench*Benchmark**
Intel(R)*Xeon(R)*CPU*E7_4860*x86_64*4*sockets*x*10*cores_HT*(80*CPU*threads)*2.3*GHz,*512*GB*RAM*Oracle*Linux*6.5*
&&&&&&&&&&2x&Faster&than&MySQL&5.6&& & & &3x&Faster&than&MySQL&5.5&
645,000&QPS&
43*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
InnoDB* *Thank*you,*SanDisk*Fusion_io*
• *– *– IO *– *
OS (NVMFS) *• IO **
– MySQL *– *– SSD *
• InnoDB UNDO *
44*
RC2*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*5.7:* *–* &SQL
• *– * *– * *
• *– I/O *– *
• *• EXPLAIN JSON **
45*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*5.7:*OpImizer*_*JSON*EXPLAIN *• JSON*EXPLAIN *
– *– MySQL*Workbench Visual*Explain *
{ "query_block": { "select_id": 1, "cost_info": { "query_cost": "200.40" }, "table": { "table_name": "nicer_but_slower_film_list", "access_type": "ALL", "rows_examined_per_scan": 992, "rows_produced_per_join": 992, "filtered": 100, "cost_info": { "read_cost": "2.00", "eval_cost": "198.40", "prefix_cost": "200.40", "data_read_per_join": "852K" }, "used_columns": [ "FID", "title", "description", "category", "price", "length", "rating", "actors" ], ...
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
InnoDB&P&General&Tablespace&Support
47
A*general*tablespace*is*a*shared*tablespace,*similar*to*the*system*tablespace.*It*can*hold*mulIple*tables,*and*supports*all*table*row*formats.*General*tablespaces*can*also*be*created*in*a*locaIon*relaIve*to*or*independent*of*the*data*directory.*
[USER01]>*CREATE*TABLESPACE*U_TABLESPACE01*ADD*DATAFILE*'/home/mysql/user_tablespace01.ibd'*Engine=InnoDB;*Query*OK,*0*rows*affected*(0.01*sec)*[USER01]>*CREATE*TABLESPACE*U_TABLESPACE02_8K*ADD*DATAFILE*'/home/mysql/user_tablespace02_8k.ibd'*FILE_BLOCK_SIZE*=**8192*Engine=InnoDB;*Query*OK,*0*rows*affected*(0.01*sec)**[USER01]>*CREATE*TABLE*`T_USER01`*(*>**`id`*int(11)*NOT*NULL*AUTO_INCREMENT,*`text`*varchar(100)*DEFAULT*NULL,*PRIMARY*KEY*(`id`)*>**)*TABLESPACE*=*U_TABLESPACE01*ENGINE=InnoDB*AUTO_INCREMENT=1*DEFAULT*CHARSET=uÄ8mb4;*Query*OK,*0*rows*affected*(0.01*sec)***[USER01]>*CREATE*TABLE*`T_USER02_8K`*(*>*`id`*int(11)*NOT*NULL*AUTO_INCREMENT,*`text`*varchar(100)*DEFAULT*NULL,*PRIMARY*KEY*(`id`)*>)*TABLESPACE*=*U_TABLESPACE02_8K*ENGINE=InnoDB*AUTO_INCREMENT=1*DEFAULT*CHARSET=uÄ8mb4**>*ROW_FORMAT=COMPRESSED*KEY_BLOCK_SIZE*=8;*Query*OK,*0*rows*affected*(0.00*sec)
13.1.15&CREATE&TABLESPACE&Syntax&
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
InnoDB*_**Temporary*Tables*• *
– CREATE/DROP *– DDL , I/O *
• DML *– No*REDO*logging,*no*change*buffering,*less*locking*
• *– ACID/MVCC *– *
48*
14.11&InnoDB&Startup&OpJons&and&System&Variables&
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
InnoDB*_*NaIve*parIIoning*SupportInnoDB *
•
•
49
Handler**(ha_innopart)*
Encapsulate*all*parIIoning*in*one*single&handler
InnoDB&NaJve&ParJJoning&–&Early&Access&
main*handler&(ha_parIIon)
ParIIon*1*handler&
ha_innobase
ParIIon*2*handler&
ha_innobase
ParIIon*N*handler&
ha_innobase………
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
&
• *( )**• *
– **
– *– JOIN *
• OR **
50*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
InnoDB*_*Full*Text*Search*(FTS)
• N_gram *– *
• mecab *–
51
CREATE TABLE `N_DEMO`( `FTS_N_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(100) DEFAULT NULL, PRIMARY KEY (`FTS_N_ID`), FULLTEXT KEY `ngram_idx` (`title`) /*!50100 WITH PARSER `ngram` */ ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
CREATE TABLE `M_DEMO` ( `FTS_M_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(100) DEFAULT NULL, PRIMARY KEY (`FTS_M_ID`), FULLTEXT KEY `mecab_idx` (`title`) /*!50100 WITH PARSER `mecab` */ ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*5.7*RC *• Performance&Schema:*性能統計情報のさらなる追加*• *• SYSLOG Linux/Windows *• GIS InnoDB Boost.Geometry *• Security , *
52*
• ReplicaJon*for*be`er*scalability*and*availability*• Fabric*for*high*availability*and*sharding*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL&SYS&Schema&
DB管理者、開発者や運用担当者を支援&• DB管理者や運用担当者の作業効率を改善&
*_*サーバの稼働状況、ユーザやホストの状況、主要な稼働指標***
*_*性能問題の発見、分析および改善*
*
• 状況をより簡単に把握し理解するための複数のビュー&
*_*IO量の高いファイルや処理、ロック、コストの高いSQL文***
*_*テーブル、インデックス、スキーマの統計***
• 他のデータベースにおけるSYS類似機能:*_ Oracle*V$表*****(動的パフォーマンスビュー)*_ MicrosoÉ*SQL*Server*DMV (Dynamic*Management*Views)* 53*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
&
54*
• Resize&the&InnoDB&Buffer&Pool&online**– オンラインでのバッファーサイズのチューニング*– データベースの使用パターンの変化にリアルタイムで適応*
• Separate&UNDO&tablespace&– 自動オンラインUNDOログ切り捨て(MySQL*5.7.5~)*– UNDOログファイルサイズの増加を回避する事が可能*
• Dynamic&configuraJon&– Making*exisIng*seÑngs*dynamically*configurable*– As*a*design*principle*for*new*features*&*seÑngs*– その他、幾つかのレプリケーションの設定変更等も* オンラインで変更可能になりました。*
14.4.8*TruncaIng*Undo*Logs*That*Reside*in*Undo*Tablespaces*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
• *– *– *
• OGC(Open*GeospaIal*ConsorIum) *– *
• Boost.Geometry *– *– *
• Boost.Geometry *
MySQL&5.7:&GIS&P&Boost.Geometry &
55*
ALTER*TABLE* add*SPATIAL*index( );
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*5.7.7*
• mysql_install_db *– mysqld __iniIalize __iniIalize_insecure *
• CREATE*USER ALTER*USER *– SSL,*PASSWORD*EXPIRE,*ACCOUNT*[LOCK*|*UNLOCK]*
• mysql.user Password authenIcaIon_string *• SET*PASSWORD PASSWORD() *
– ALTER*USER *
• ENCRYPT,*DES_ENCRYPT,*DES_DECRYPT *AES
56
mysqld*__iniIalize*__user=mysql
mysql_install_db*__user=mysql
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
Security&P&EncrypJon,&Passwords,&InstallaJon&
• AES*256*EncrypIon*(Default*in*MySQL*5.7*)*• *
– *• *
– / *– ,* (test),* *
57*
[&Global&ConfiguraJon&]&SET*GLOBAL*default_password_lifeIme*=*180;*[&Individual&user&accounts&]&ALTER*USER*joro@sv1*PASSWORD*EXPIRE*INTERVAL*90*DAY;*ALTER*USER*joro@sv1PASSWORD*EXPIRE*DEFAULT;*ALTER*USER*joro@sv1PASSWORD*EXPIRE*NEVER;*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
• *1 *– *– *– *
• & **
• *
MySQL*5.7:*MulI_Source*ReplicaIon*
Binlog*
Master*1*
Binlog*
Master*2*
…*
…*
Binlog*
Master*N*
IO*1*
Relay*1*
Coordinator*
W1* W2* …* WX*
IO*2*
Relay*2*
Coordinator*
W1* W2* …* WX*
…*
…*
Coordinator*
W1* W2* …* WX*
IO*N*
Relay*N*
Coordinator*
W1* W2* …* WX*
Slave&
58*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*5.7:*スキーマ内マルチスレッドスレーブ*• *
5 *– *– *
*
• GTID*&* **
• Sysbench*OLTP*test*– 1,000 *– SSD*/*48*core*HT*/*512*GB*RAM*
*59*
0*
500*
1000*
1500*
2000*
2500*
3000*
3500*
4000*
4500*
5000*
0* 4* 16* 25* 50* 100* 200*Worker&Threads&
Slave&TransacJons&per&Second&
Baseline*
50*clients*
100*clients*
150*clients*
200*clients*
PPslavePparallelPtype&&1.&DATABASE**:*(Default)*Use*the*db*parIIoned*MTS*(1*worker*per*database)*2.&LOGICAL_CLOCK:**Use*logical*clock*based*parallelizaIon*mode.&
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*60
GTID (gId_mode)
Enabling&Global&TransacJon&IdenJfiers&Without&DownJme&in&MySQL&5.7.6&
1.*Disable*all*write*operaIons.*2.*Wait*for*all*transacIons*to*propagate******from*the*master(s)*to*all*slaves.*3.*Stop*all*servers.*4.*On*each*server,*set*gId_mode=ON*in*the*configuraIon*file.*5.*Start*all*servers.*6.*Enable*write*operaIons.*
It*is*sIll*possible*to*use*the*old,*offline*procedure.**The*procedure*is*as*follows:
Offline*procedure* Online*procedure*詳細:*17.1.5.2*Enabling*GTID*TransacIons*Online** 17.1.5.4*Verifying*ReplicaIon*of*Anonymous*TransacIons*
1* SET*@@GLOBAL.ENFORCE_GTID_CONSISTENCY*=*WARN;
2 SET*@@GLOBAL.ENFORCE_GTID_CONSISTENCY*=*ON;
3 SET*@@GLOBAL.GTID_MODE*=*OFF_PERMISSIVE;
4 SET*@@GLOBAL.GTID_MODE*=*ON_PERMISSIVE;
5 SHOW*STATUS*LIKE*'ONGOING_ANONYMOUS_TRANSACTION_COUNT';
6 SET*@@GLOBAL.GTID_MODE*=*ON;
7 On*each*server,*add*gId_mode=ON*to*my.cnf.*
8STOP*SLAVE*;*CHANGE*MASTER*TO*MASTER_AUTO_POSITION*=*1;*START*SLAVE;
各サーバーで以下のコマンドを実行
MySQL*ReplicaIonの設定や運用を簡素化する為に、GTIDモードのレプリケーションを利用する方法がありますが、既にGTIDモード以前のレプリケーションで運用されている場合は、稼働中の全てのサーバーを停止してからGTIDモードのレプリケーションへ移行する必要がありました。しかし、稼働中のサービスを停止して切り替える事は難しいのが現実です。*MySQL*5.7.6*以降のMySQLにアップグレードする事で、オンラインのままMySQLのレプリケーションを切り替える事が出来るようになりました。*
5.6.x*Standard*ReplicaIon
5.7.6 *Standard*ReplicaIon
5.7.6 *GTID*Mode*ReplicaIon
① ②
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*Fabric*1.5:* *&* *• OpenStack* *• *
– ;**
• *– *
• *
– *– *
• Fabric :*Python,*Java,*PHP,*.NET,*C*(labs)*– *
*61*
MySQL&Fabric&
Connector*
ApplicaIon*
ReadPslaves&
mappings&
SQL&
HA&group&
ReadPslaves&
HA&group&
Connector*
ApplicaIon*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|* 62
MySQL*Slave*ReplicaIon*Filters*Dynamic*
REPLICATE_DO_DB**REPLICATE_IGNORE_DB**REPLICATE_DO_TABLE**REPLICATE_IGNORE_TABLE*REPLICATE_WILD_DO_TABLE*REPLICATE_WILD_IGNORE_TABLE*REPLICATE_REWRITE_DB*
MySQL_5.7.3 “CHANGE'REPLICATION'FILTER”& **slave**
MySQL_5.7.3 OpIon (my.cnf)MySQL
The*following*slave*replicaIon*filters*can*be*changed*dynamically*using*this*command.
mysql>*STOP*SLAVE*SQL_THREAD;*Query*OK,*0*rows*affected*(0.05*sec)*mysql>*CHANGE*REPLICATION*FILTER*REPLICATE_DO_DB=(db1);*Query*OK,*0*rows*affected*(0.00*sec)
)*
MySQLP5.7.3P&Making&MySQL&Slave&ReplicaJon&Filters&Dynamic&
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*Labs• *
– *
• MySQL MySQL*Cluster *– MySQL*5.6*memcached*API*– MySQL*Cluster*7.2*memcached*API*– MySQL*5.6*Performance*Schema*– MySQL*5.6*Intra_schema*MulI*Thread*Slave*– MySQL*5.6*Online*Alter*Table*– MySQL*5.7*MulI*Source*ReplicaIon*– MySQL*5.7*New*OpImizer*Cost*Model
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
• ” ” *
• *– ( *
– “OpImisIc*State*Machine”* *
• *– *
– / *– *– *
• *– InnoDB*– GTID *
– PERFORMANCE_SCHEMA*
MySQL*5.7:* *
ApplicaIon*
MySQL*Masters* ReplicaIon**Plugin*
API*
MySQL*Server*
Group*Comms*(Corosync)*
65*
labs.mysql.com*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
MySQL*5.7:*JSON*• *• JSON *
– *
• JSON *– *– SQL *
• Generated*Columns( ) **– *
• h`p://mysqlserverteam.com/json_labs_release_overview/*
RC2*
Copyright*©*201 *Oracle*and/or*its*affiliates.*All*rights*reserved.**|*
5.6& MySQL&Server&P&GA&InnoDB & &
&&&NoSQL &
MySQL&Cluster&P&GA&2 NoSQL 200 SQL &
&7.4&
5.7&MySQL&Server&P&RC2&
&&& &JSON Group&ReplicaJon &
67
top related