mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-09 03:37:36 +00:00
Compare commits
48 Commits
4c369587a3
...
dependabot
Author | SHA1 | Date | |
---|---|---|---|
![]() |
427a83ce6d | ||
![]() |
2ee29986db | ||
![]() |
2b5ceb9fee | ||
![]() |
c5c6bf34c6 | ||
![]() |
0e3a18c378 | ||
![]() |
0d0e7210f7 | ||
![]() |
699b28d2a3 | ||
![]() |
b30f10103a | ||
![]() |
05b7efcd27 | ||
![]() |
ab620a6707 | ||
![]() |
47f7638d60 | ||
![]() |
3173362d8e | ||
![]() |
bca6c5bee8 | ||
![]() |
dcab1bb2ad | ||
![]() |
6854715795 | ||
![]() |
6414d071cd | ||
![]() |
c1d3ebc72a | ||
![]() |
670f4d159b | ||
![]() |
a0dffc51e4 | ||
![]() |
9e799fd04b | ||
![]() |
478255a6d5 | ||
![]() |
30f2ae5fee | ||
![]() |
c85ad15e3c | ||
![]() |
afd8ccbbd5 | ||
![]() |
9bb3ab4cbc | ||
![]() |
495869da3e | ||
![]() |
d3172ce79c | ||
![]() |
63c49a9238 | ||
![]() |
4154acadc1 | ||
![]() |
01db562b10 | ||
![]() |
059a6fb52c | ||
![]() |
be598413ef | ||
![]() |
768473f0b6 | ||
![]() |
b3bf266412 | ||
![]() |
d60ffe0654 | ||
![]() |
a97c422851 | ||
![]() |
b9ef1bf23c | ||
![]() |
6c9deb9d66 | ||
![]() |
a20dcbf4d3 | ||
![]() |
825dea7547 | ||
![]() |
3d0c0c623f | ||
![]() |
75feef2f96 | ||
![]() |
82a2ac7a40 | ||
![]() |
f68faa7591 | ||
![]() |
58cebefdcc | ||
![]() |
2dd8de7def | ||
![]() |
6c11129419 | ||
![]() |
5989d2883c |
2
.github/workflows/libmodulesupdated.yml
vendored
2
.github/workflows/libmodulesupdated.yml
vendored
@@ -11,6 +11,6 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: true
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- name: run util/check_bin_md5sum
|
||||
run: ./util/check_bin_md5sum
|
||||
|
2
.github/workflows/spelling.yml
vendored
2
.github/workflows/spelling.yml
vendored
@@ -20,5 +20,5 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 1
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: crate-ci/typos@master
|
||||
|
4
.github/workflows/toolkit.yml
vendored
4
.github/workflows/toolkit.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
- name: Build the Docker image
|
||||
run: echo "FROM oraclelinux:9-slim" > Dockerfile; echo "RUN microdnf -y update" >> Dockerfile; echo "COPY bin/* /usr/bin/" >> Dockerfile; docker build . --file Dockerfile --tag percona-toolkit:${{ github.sha }}
|
||||
- name: Run Trivy vulnerability scanner
|
||||
uses: aquasecurity/trivy-action@0.32.0
|
||||
uses: aquasecurity/trivy-action@0.33.1
|
||||
with:
|
||||
image-ref: 'percona-toolkit:${{ github.sha }}'
|
||||
format: 'table'
|
||||
|
@@ -2120,12 +2120,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -2141,7 +2135,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
@@ -3932,7 +3928,7 @@ sub _find_replicas_by_hosts {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $sql = 'SHOW REPLICAS';
|
||||
my $source_name = 'source';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$sql = 'SHOW SLAVE HOSTS';
|
||||
$source_name='master';
|
||||
}
|
||||
@@ -4055,7 +4051,7 @@ sub get_source_dsn {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_host = 'source_host';
|
||||
my $source_port = 'source_port';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_host = 'master_host';
|
||||
$source_port = 'master_port';
|
||||
}
|
||||
@@ -4129,7 +4125,7 @@ sub get_source_status {
|
||||
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_name = 'binary log';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
}
|
||||
|
||||
@@ -4572,13 +4568,13 @@ sub get_cxn_from_dsn_table {
|
||||
sub get_source_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'master' : 'source';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'master' : 'source';
|
||||
}
|
||||
|
||||
sub get_replica_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'slave' : 'replica';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'slave' : 'replica';
|
||||
}
|
||||
|
||||
sub _d {
|
||||
|
@@ -3701,6 +3701,10 @@ sub _normalize_value {
|
||||
$val = defined $val ? $val : '';
|
||||
$val = $alt_val_for{$val} if exists $alt_val_for{$val};
|
||||
|
||||
if ( $val =~ m/,/ && !$is_dir && !$base_path) {
|
||||
$val = join(',', sort(split(',', $val)));
|
||||
}
|
||||
|
||||
if ( $val ) {
|
||||
if ( $is_dir ) {
|
||||
$val .= '/' unless $val =~ m/\/$/;
|
||||
|
@@ -504,12 +504,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -525,7 +519,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
@@ -5301,12 +5297,19 @@ sub print_duplicate_key {
|
||||
|
||||
if ( $o->get('sql') ) {
|
||||
if ( $dupe->{dupe_type} ne 'clustered' ) {
|
||||
print "# To remove this duplicate "
|
||||
. ($args{is_fk} ? 'foreign key' : 'index')
|
||||
. ", execute:\n"
|
||||
. 'ALTER TABLE ' . $q->quote($db, $tbl)
|
||||
. ($args{is_fk} ? ' DROP FOREIGN KEY ' : ' DROP INDEX ')
|
||||
. "`$dupe->{key}`;\n";
|
||||
if ( $o->get('invisible') && !$args{is_fk} ) {
|
||||
print "# To make this index invisible, execute:\n"
|
||||
. 'ALTER TABLE ' . $q->quote($db, $tbl)
|
||||
. " ALTER INDEX `$dupe->{key}` INVISIBLE;\n";
|
||||
}
|
||||
else {
|
||||
print "# To remove this duplicate "
|
||||
. ($args{is_fk} ? 'foreign key' : 'index')
|
||||
. ", execute:\n"
|
||||
. 'ALTER TABLE ' . $q->quote($db, $tbl)
|
||||
. ($args{is_fk} ? ' DROP FOREIGN KEY ' : ' DROP INDEX ')
|
||||
. "`$dupe->{key}`;\n";
|
||||
}
|
||||
}
|
||||
else {
|
||||
# Suggest shortening clustered dupes instead of
|
||||
@@ -5566,6 +5569,19 @@ type: Hash
|
||||
Ignore this comma-separated list of tables. Table names may be qualified with
|
||||
the database name.
|
||||
|
||||
=item --invisible
|
||||
|
||||
The output SQL will make the index INVISIBLE, instead of dropping it.
|
||||
|
||||
An invisible index cannot be considered by the query optimizer, but is still
|
||||
maintained when writes happen to the table. To make the index usable by the
|
||||
optimizer, execute ALTER INDEX .. VISIBLE
|
||||
|
||||
While dropping an index is a fast, background operation, adding indexes is
|
||||
a slow, CPU, and disk IO intensive operation. If you discover that an index
|
||||
was made invisible incorrectly, it becomes a NOOP (no-operation) to make the index visible again,
|
||||
compared to completely re-adding the index.
|
||||
|
||||
=item --key-types
|
||||
|
||||
type: string; default: fk
|
||||
|
10
bin/pt-find
10
bin/pt-find
@@ -2067,12 +2067,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -2088,7 +2082,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
|
@@ -384,7 +384,7 @@ sub _find_replicas_by_hosts {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $sql = 'SHOW REPLICAS';
|
||||
my $source_name = 'source';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$sql = 'SHOW SLAVE HOSTS';
|
||||
$source_name='master';
|
||||
}
|
||||
@@ -507,7 +507,7 @@ sub get_source_dsn {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_host = 'source_host';
|
||||
my $source_port = 'source_port';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_host = 'master_host';
|
||||
$source_port = 'master_port';
|
||||
}
|
||||
@@ -581,7 +581,7 @@ sub get_source_status {
|
||||
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_name = 'binary log';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
}
|
||||
|
||||
@@ -1024,13 +1024,13 @@ sub get_cxn_from_dsn_table {
|
||||
sub get_source_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'master' : 'source';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'master' : 'source';
|
||||
}
|
||||
|
||||
sub get_replica_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'slave' : 'replica';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'slave' : 'replica';
|
||||
}
|
||||
|
||||
sub _d {
|
||||
@@ -3941,12 +3941,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -3962,7 +3956,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
@@ -6454,7 +6450,7 @@ sub main {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
|
||||
my $source_name = 'source';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
}
|
||||
|
||||
@@ -6497,7 +6493,7 @@ sub main {
|
||||
|
||||
my $sql;
|
||||
if ( @master_status_cols ) {
|
||||
if ( $vp ge '8.1' && $vp->flavor() !~ m/maria/ ) {
|
||||
if ( $vp ge '8.1' && $vp->flavor() !~ m/maria/i ) {
|
||||
$sql = 'SHOW BINARY LOG STATUS';
|
||||
}
|
||||
else {
|
||||
@@ -6515,7 +6511,7 @@ sub main {
|
||||
}
|
||||
|
||||
if ( @slave_status_cols ) {
|
||||
if ( $vp ge '8.1' && $vp->flavor() !~ m/maria/ ) {
|
||||
if ( $vp ge '8.1' && $vp->flavor() !~ m/maria/i ) {
|
||||
$sql = 'SHOW REPLICA STATUS';
|
||||
}
|
||||
else {
|
||||
|
@@ -3319,12 +3319,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -3340,7 +3334,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
|
20
bin/pt-kill
20
bin/pt-kill
@@ -3190,12 +3190,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -3211,7 +3205,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
@@ -4206,7 +4202,7 @@ sub _find_replicas_by_hosts {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $sql = 'SHOW REPLICAS';
|
||||
my $source_name = 'source';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$sql = 'SHOW SLAVE HOSTS';
|
||||
$source_name='master';
|
||||
}
|
||||
@@ -4329,7 +4325,7 @@ sub get_source_dsn {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_host = 'source_host';
|
||||
my $source_port = 'source_port';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_host = 'master_host';
|
||||
$source_port = 'master_port';
|
||||
}
|
||||
@@ -4403,7 +4399,7 @@ sub get_source_status {
|
||||
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_name = 'binary log';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
}
|
||||
|
||||
@@ -4846,13 +4842,13 @@ sub get_cxn_from_dsn_table {
|
||||
sub get_source_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'master' : 'source';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'master' : 'source';
|
||||
}
|
||||
|
||||
sub get_replica_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'slave' : 'replica';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'slave' : 'replica';
|
||||
}
|
||||
|
||||
sub _d {
|
||||
|
@@ -2392,7 +2392,7 @@ report_jemalloc_enabled() {
|
||||
local variables_file="$2"
|
||||
local GENERAL_JEMALLOC_STATUS=0
|
||||
|
||||
for pid in $(grep '/mysqld ' "$instances_file" | awk '{print $1;}'); do
|
||||
for pid in $(grep '/mysqld\b' "$instances_file" | awk '{print $1;}'); do
|
||||
local jemalloc_status="$(get_var "pt-summary-internal-jemalloc_enabled_for_pid_${pid}" "${variables_file}")"
|
||||
if [ -z $jemalloc_status ]; then
|
||||
continue
|
||||
|
@@ -3509,12 +3509,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -3530,7 +3524,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
@@ -4497,7 +4493,7 @@ sub _find_replicas_by_hosts {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $sql = 'SHOW REPLICAS';
|
||||
my $source_name = 'source';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$sql = 'SHOW SLAVE HOSTS';
|
||||
$source_name='master';
|
||||
}
|
||||
@@ -4620,7 +4616,7 @@ sub get_source_dsn {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_host = 'source_host';
|
||||
my $source_port = 'source_port';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_host = 'master_host';
|
||||
$source_port = 'master_port';
|
||||
}
|
||||
@@ -4694,7 +4690,7 @@ sub get_source_status {
|
||||
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_name = 'binary log';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
}
|
||||
|
||||
@@ -5137,13 +5133,13 @@ sub get_cxn_from_dsn_table {
|
||||
sub get_source_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'master' : 'source';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'master' : 'source';
|
||||
}
|
||||
|
||||
sub get_replica_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'slave' : 'replica';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'slave' : 'replica';
|
||||
}
|
||||
|
||||
sub _d {
|
||||
@@ -8749,7 +8745,7 @@ sub main {
|
||||
}
|
||||
|
||||
# Explicit --chunk-size disable auto chunk sizing.
|
||||
$o->set('chunk-time', 0) if $o->got('chunk-size');
|
||||
$o->set('chunk-time', 0) if $o->got('chunk-size') && !$o->got('chunk-time');
|
||||
if (!$o->get('swap-tables') && !$o->get('drop-triggers')) {
|
||||
PTDEBUG && _d('Enabling no-drop-new-table since no-swap-tables & no-drop-triggers were specified');
|
||||
$o->set('drop-new-table', 0);
|
||||
@@ -8879,7 +8875,7 @@ sub main {
|
||||
# it's a hack, like ignoring a problem instead of fixing it somehow. We
|
||||
# should take a look at the things that get printed in a "normal"
|
||||
# non-quiet run, and "if !quiet" them, and then do some kind of Logger.pm
|
||||
# or Messager.pm module for a future release.
|
||||
# or Message.pm module for a future release.
|
||||
close STDOUT;
|
||||
open STDOUT, '>', '/dev/null'
|
||||
or warn "Cannot reopen STDOUT to /dev/null: $OS_ERROR";
|
||||
@@ -9185,6 +9181,41 @@ sub main {
|
||||
channel => $o->get('channel'),
|
||||
);
|
||||
|
||||
# Check if we are not a replica of the source server with ROW or MIXED base replication
|
||||
if ( !$o->get('force') ) {
|
||||
my $source = $ms->get_source_dsn($cxn->dbh(), $dsn, $dp);
|
||||
if ( $source ) {
|
||||
my $source_cxn = $make_cxn->(dsn => $source);
|
||||
|
||||
# Check source
|
||||
my $is_source_of = eval {
|
||||
$ms->is_source_of($source_cxn->{dbh}, $cxn->{dbh});
|
||||
};
|
||||
|
||||
# We should not die if replica connected via tunnel or port redirection
|
||||
if ( $EVAL_ERROR ) {
|
||||
$EVAL_ERROR =~ m/The replica is connected to (\d+) but the source's port is \d+/;
|
||||
if ( !$1 || $1 != $source->{P} ) {
|
||||
$is_source_of = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $is_source_of) {
|
||||
my $source_binlog_format = $source_cxn->dbh()->selectrow_arrayref("SHOW GLOBAL VARIABLES LIKE 'binlog_format'");
|
||||
if ( uc @$source_binlog_format[1] ne 'STATEMENT' ) {
|
||||
_die("Server " . $dp->as_string($cxn->dsn())
|
||||
. " is a replica of " . $dp->as_string($source_cxn->dsn())
|
||||
. " running with binary log format "
|
||||
. "@${source_binlog_format[1]}, therefore we cannot guarantee "
|
||||
. "that all replication updates will be applied to the new table.\n"
|
||||
. "Exiting.\n"
|
||||
. "If you want to bypass this check, specify option --force.",
|
||||
NO_MINIMUM_REQUIREMENTS);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
my $slaves_to_skip = $o->get('skip-check-replica-lag');
|
||||
|
||||
my $get_replicas_cb = sub {
|
||||
@@ -10634,7 +10665,7 @@ sub main {
|
||||
$plugin->after_copy_rows();
|
||||
}
|
||||
if ( $o->get('preserve-triggers') ) {
|
||||
if ( !$o->get('swap-tables') && $o->get('drop-new-table') && !$o->get('alter-foreign-keys-method') eq "drop-swap" ) {
|
||||
if ( !$o->get('swap-tables') && $o->get('drop-new-table') && ( $o->get('alter-foreign-keys-method') ne "drop_swap" ) ) {
|
||||
print ts("Skipping triggers creation since --no-swap-tables was specified along with --drop-new-table\n");
|
||||
} else {
|
||||
print ts("Adding original triggers to new table.\n");
|
||||
@@ -12466,9 +12497,8 @@ sub exec_nibble {
|
||||
# Success: no warnings, no errors. Record and return nibble time.
|
||||
if ( $hist_sth ) {
|
||||
$hist_sth->execute(
|
||||
# WHERE
|
||||
@{$boundary->{lower}}, # upper boundary values
|
||||
@{$boundary->{upper}}, # lower boundary values
|
||||
$lb_quoted, # upper boundary values
|
||||
$ub_quoted, # lower boundary values
|
||||
);
|
||||
}
|
||||
|
||||
@@ -13093,8 +13123,9 @@ This option can override the default behavior, which is to adjust chunk size
|
||||
dynamically to try to make chunks run in exactly L<"--chunk-time"> seconds.
|
||||
When this option isn't set explicitly, its default value is used as a starting
|
||||
point, but after that, the tool ignores this option's value. If you set this
|
||||
option explicitly, however, then it disables the dynamic adjustment behavior and
|
||||
tries to make all chunks exactly the specified number of rows.
|
||||
option explicitly, and do not set L<"--chunk-time"> explicitly, then it disables
|
||||
the dynamic adjustment behavior and tries to make all chunks exactly the specified
|
||||
number of rows.
|
||||
|
||||
=item --chunk-size-limit
|
||||
|
||||
@@ -13131,7 +13162,13 @@ changes in server load, the tool adapts quickly.
|
||||
If this option is set to zero, the chunk size doesn't auto-adjust, so query
|
||||
times will vary, but query chunk sizes will not. Another way to do the same
|
||||
thing is to specify a value for L<"--chunk-size"> explicitly, instead of leaving
|
||||
it at the default.
|
||||
it at the default, and omit the option L<"--chunk-time">.
|
||||
|
||||
If both options L<"--chunk-size"> and L<"--chunk-time"> set explicitly, initial
|
||||
chunk size will be as specified by the option L<"--chunk-size">, but later it will
|
||||
be adjusted, so that the next query takes this amount of time (in seconds)
|
||||
to execute. Use this option if the tool spends too much time copying the first chunk
|
||||
with default L<"--chunk-size">.
|
||||
|
||||
=item --config
|
||||
|
||||
@@ -13303,6 +13340,8 @@ This option bypasses confirmation in case of using alter-foreign-keys-method = n
|
||||
|
||||
This option also allows to use option --where without options --no-drop-new-table and --no-swap-tables.
|
||||
|
||||
This option also allows to bypass the safety check that prevents the tool from running on replica that is replicating from a source with binary log format ROW or MIXED.
|
||||
|
||||
=item --help
|
||||
|
||||
Show help and exit.
|
||||
|
@@ -9070,12 +9070,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -9091,7 +9085,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
@@ -10803,7 +10799,7 @@ sub _find_replicas_by_hosts {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $sql = 'SHOW REPLICAS';
|
||||
my $source_name = 'source';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$sql = 'SHOW SLAVE HOSTS';
|
||||
$source_name='master';
|
||||
}
|
||||
@@ -10926,7 +10922,7 @@ sub get_source_dsn {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_host = 'source_host';
|
||||
my $source_port = 'source_port';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_host = 'master_host';
|
||||
$source_port = 'master_port';
|
||||
}
|
||||
@@ -11000,7 +10996,7 @@ sub get_source_status {
|
||||
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_name = 'binary log';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
}
|
||||
|
||||
@@ -11443,13 +11439,13 @@ sub get_cxn_from_dsn_table {
|
||||
sub get_source_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'master' : 'source';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'master' : 'source';
|
||||
}
|
||||
|
||||
sub get_replica_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'slave' : 'replica';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'slave' : 'replica';
|
||||
}
|
||||
|
||||
sub _d {
|
||||
|
@@ -2531,7 +2531,7 @@ sub _find_replicas_by_hosts {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $sql = 'SHOW REPLICAS';
|
||||
my $source_name = 'source';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$sql = 'SHOW SLAVE HOSTS';
|
||||
$source_name='master';
|
||||
}
|
||||
@@ -2654,7 +2654,7 @@ sub get_source_dsn {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_host = 'source_host';
|
||||
my $source_port = 'source_port';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_host = 'master_host';
|
||||
$source_port = 'master_port';
|
||||
}
|
||||
@@ -2728,7 +2728,7 @@ sub get_source_status {
|
||||
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_name = 'binary log';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
}
|
||||
|
||||
@@ -3171,13 +3171,13 @@ sub get_cxn_from_dsn_table {
|
||||
sub get_source_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'master' : 'source';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'master' : 'source';
|
||||
}
|
||||
|
||||
sub get_replica_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'slave' : 'replica';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'slave' : 'replica';
|
||||
}
|
||||
|
||||
sub _d {
|
||||
|
@@ -2945,7 +2945,7 @@ sub _find_replicas_by_hosts {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $sql = 'SHOW REPLICAS';
|
||||
my $source_name = 'source';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$sql = 'SHOW SLAVE HOSTS';
|
||||
$source_name='master';
|
||||
}
|
||||
@@ -3068,7 +3068,7 @@ sub get_source_dsn {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_host = 'source_host';
|
||||
my $source_port = 'source_port';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_host = 'master_host';
|
||||
$source_port = 'master_port';
|
||||
}
|
||||
@@ -3142,7 +3142,7 @@ sub get_source_status {
|
||||
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_name = 'binary log';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
}
|
||||
|
||||
@@ -3585,13 +3585,13 @@ sub get_cxn_from_dsn_table {
|
||||
sub get_source_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'master' : 'source';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'master' : 'source';
|
||||
}
|
||||
|
||||
sub get_replica_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'slave' : 'replica';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'slave' : 'replica';
|
||||
}
|
||||
|
||||
sub _d {
|
||||
@@ -5438,7 +5438,7 @@ sub watch_server {
|
||||
my $source_name = 'source';
|
||||
my $source_change = 'replication source';
|
||||
my $replica_name = 'replica';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
$source_change = 'master';
|
||||
$replica_name = 'slave';
|
||||
|
@@ -4559,7 +4559,7 @@ sub main {
|
||||
|
||||
# Check version, refuse working with 8.4
|
||||
my $version = VersionParser->new($slave_dbh);
|
||||
if ( $version ge '8.1' && $version->flavor() !~ m/maria/ ) {
|
||||
if ( $version ge '8.1' && $version->flavor() !~ m/maria/i ) {
|
||||
die "This tool does not work with MySQL 8.1 and newer.\n";
|
||||
}
|
||||
|
||||
|
@@ -4703,12 +4703,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -4724,7 +4718,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
@@ -5452,7 +5448,7 @@ sub _find_replicas_by_hosts {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $sql = 'SHOW REPLICAS';
|
||||
my $source_name = 'source';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$sql = 'SHOW SLAVE HOSTS';
|
||||
$source_name='master';
|
||||
}
|
||||
@@ -5575,7 +5571,7 @@ sub get_source_dsn {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_host = 'source_host';
|
||||
my $source_port = 'source_port';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_host = 'master_host';
|
||||
$source_port = 'master_port';
|
||||
}
|
||||
@@ -5649,7 +5645,7 @@ sub get_source_status {
|
||||
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_name = 'binary log';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
}
|
||||
|
||||
@@ -6092,13 +6088,13 @@ sub get_cxn_from_dsn_table {
|
||||
sub get_source_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'master' : 'source';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'master' : 'source';
|
||||
}
|
||||
|
||||
sub get_replica_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'slave' : 'replica';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'slave' : 'replica';
|
||||
}
|
||||
|
||||
sub _d {
|
||||
|
@@ -3047,12 +3047,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -3068,7 +3062,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
@@ -6982,7 +6978,7 @@ sub _find_replicas_by_hosts {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $sql = 'SHOW REPLICAS';
|
||||
my $source_name = 'source';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$sql = 'SHOW SLAVE HOSTS';
|
||||
$source_name='master';
|
||||
}
|
||||
@@ -7105,7 +7101,7 @@ sub get_source_dsn {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_host = 'source_host';
|
||||
my $source_port = 'source_port';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_host = 'master_host';
|
||||
$source_port = 'master_port';
|
||||
}
|
||||
@@ -7179,7 +7175,7 @@ sub get_source_status {
|
||||
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_name = 'binary log';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
}
|
||||
|
||||
@@ -7622,13 +7618,13 @@ sub get_cxn_from_dsn_table {
|
||||
sub get_source_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'master' : 'source';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'master' : 'source';
|
||||
}
|
||||
|
||||
sub get_replica_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'slave' : 'replica';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'slave' : 'replica';
|
||||
}
|
||||
|
||||
sub _d {
|
||||
|
@@ -7057,12 +7057,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -7078,7 +7072,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
|
@@ -8,7 +8,11 @@ It is recommended to install Percona software from official repositories:
|
||||
|
||||
1. Configure Percona repositories as described in
|
||||
`Percona Software Repositories Documentation
|
||||
<https://www.percona.com/doc/percona-repo-config/index.html>`_.
|
||||
<https://docs.percona.com/percona-software-repositories/index.html>`_.
|
||||
|
||||
#. Enable Percona Toolkit repository::
|
||||
|
||||
sudo percona-release enable pt release
|
||||
|
||||
#. Install Percona Toolkit using the corresponding package manager:
|
||||
|
||||
|
16
go.mod
16
go.mod
@@ -26,14 +26,14 @@ require (
|
||||
github.com/rs/zerolog v1.34.0
|
||||
github.com/shirou/gopsutil v3.21.11+incompatible
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
github.com/stretchr/testify v1.10.0
|
||||
github.com/stretchr/testify v1.11.0
|
||||
github.com/xlab/treeprint v1.2.0
|
||||
go.mongodb.org/mongo-driver v1.17.4
|
||||
golang.org/x/crypto v0.40.0
|
||||
golang.org/x/crypto v0.41.0
|
||||
golang.org/x/exp v0.0.0-20230321023759-10a507213a29
|
||||
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
k8s.io/api v0.33.3
|
||||
k8s.io/api v0.33.4
|
||||
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
|
||||
)
|
||||
|
||||
@@ -61,14 +61,14 @@ require (
|
||||
github.com/xdg-go/stringprep v1.0.4 // indirect
|
||||
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
|
||||
github.com/yusufpapurcu/wmi v1.2.2 // indirect
|
||||
golang.org/x/net v0.41.0 // indirect
|
||||
golang.org/x/net v0.42.0 // indirect
|
||||
golang.org/x/sync v0.16.0 // indirect
|
||||
golang.org/x/sys v0.34.0 // indirect
|
||||
golang.org/x/term v0.33.0 // indirect
|
||||
golang.org/x/text v0.27.0 // indirect
|
||||
golang.org/x/sys v0.35.0 // indirect
|
||||
golang.org/x/term v0.34.0 // indirect
|
||||
golang.org/x/text v0.28.0 // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
k8s.io/apimachinery v0.33.3 // indirect
|
||||
k8s.io/apimachinery v0.33.4 // indirect
|
||||
k8s.io/klog/v2 v2.130.1 // indirect
|
||||
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
|
||||
sigs.k8s.io/randfill v1.0.0 // indirect
|
||||
|
32
go.sum
32
go.sum
@@ -99,8 +99,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8=
|
||||
github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||
github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
|
||||
github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI=
|
||||
github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms=
|
||||
@@ -129,8 +129,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM=
|
||||
golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY=
|
||||
golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
|
||||
golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
|
||||
golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug=
|
||||
golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
|
||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
@@ -144,8 +144,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
|
||||
golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
|
||||
golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
|
||||
golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
@@ -168,18 +168,18 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
|
||||
golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
|
||||
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.33.0 h1:NuFncQrRcaRvVmgRkvM3j/F00gWIAlcmlB8ACEKmGIg=
|
||||
golang.org/x/term v0.33.0/go.mod h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0=
|
||||
golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=
|
||||
golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||
golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=
|
||||
golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=
|
||||
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
|
||||
golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
@@ -203,10 +203,10 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
k8s.io/api v0.33.3 h1:SRd5t//hhkI1buzxb288fy2xvjubstenEKL9K51KBI8=
|
||||
k8s.io/api v0.33.3/go.mod h1:01Y/iLUjNBM3TAvypct7DIj0M0NIZc+PzAHCIo0CYGE=
|
||||
k8s.io/apimachinery v0.33.3 h1:4ZSrmNa0c/ZpZJhAgRdcsFcZOw1PQU1bALVQ0B3I5LA=
|
||||
k8s.io/apimachinery v0.33.3/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM=
|
||||
k8s.io/api v0.33.4 h1:oTzrFVNPXBjMu0IlpA2eDDIU49jsuEorGHB4cvKupkk=
|
||||
k8s.io/api v0.33.4/go.mod h1:VHQZ4cuxQ9sCUMESJV5+Fe8bGnqAARZ08tSTdHWfeAc=
|
||||
k8s.io/apimachinery v0.33.4 h1:SOf/JW33TP0eppJMkIgQ+L6atlDiP/090oaX0y9pd9s=
|
||||
k8s.io/apimachinery v0.33.4/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM=
|
||||
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
|
||||
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
|
||||
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
|
||||
|
@@ -340,7 +340,7 @@ sub _find_replicas_by_hosts {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $sql = 'SHOW REPLICAS';
|
||||
my $source_name = 'source';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$sql = 'SHOW SLAVE HOSTS';
|
||||
$source_name='master';
|
||||
}
|
||||
@@ -485,7 +485,7 @@ sub get_source_dsn {
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_host = 'source_host';
|
||||
my $source_port = 'source_port';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_host = 'master_host';
|
||||
$source_port = 'master_port';
|
||||
}
|
||||
@@ -566,7 +566,7 @@ sub get_source_status {
|
||||
|
||||
my $vp = VersionParser->new($dbh);
|
||||
my $source_name = 'binary log';
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/ ) {
|
||||
if ( $vp lt '8.1' || $vp->flavor() =~ m/maria/i ) {
|
||||
$source_name = 'master';
|
||||
}
|
||||
|
||||
@@ -1123,13 +1123,13 @@ sub get_cxn_from_dsn_table {
|
||||
sub get_source_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'master' : 'source';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'master' : 'source';
|
||||
}
|
||||
|
||||
sub get_replica_name {
|
||||
my ($dbh) = @_;
|
||||
my $vp = VersionParser->new($dbh);
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/) ? 'slave' : 'replica';
|
||||
return ($vp lt '8.1' || $vp->flavor() =~ m/maria/i) ? 'slave' : 'replica';
|
||||
}
|
||||
|
||||
sub _d {
|
||||
|
@@ -295,6 +295,10 @@ sub _normalize_value {
|
||||
$val = defined $val ? $val : '';
|
||||
$val = $alt_val_for{$val} if exists $alt_val_for{$val};
|
||||
|
||||
if ( $val =~ m/,/ && !$is_dir && !$base_path) {
|
||||
$val = join(',', sort(split(',', $val)));
|
||||
}
|
||||
|
||||
if ( $val ) {
|
||||
if ( $is_dir ) {
|
||||
$val .= '/' unless $val =~ m/\/$/;
|
||||
|
@@ -134,7 +134,12 @@ sub create_dbs {
|
||||
sub get_dbh_for {
|
||||
my ( $self, $server, $cxn_ops, $user ) = @_;
|
||||
_check_server($server);
|
||||
$cxn_ops ||= { AutoCommit => 1, mysql_enable_utf8 => 1, mysql_ssl => 1 };
|
||||
if ($ENV{FORK} || "" eq 'mariadb') {
|
||||
$cxn_ops ||= { AutoCommit => 1, mysql_enable_utf8 => 1, mysql_ssl => 0 };
|
||||
}
|
||||
else {
|
||||
$cxn_ops ||= { AutoCommit => 1, mysql_enable_utf8 => 1, mysql_ssl => 1 };
|
||||
}
|
||||
$user ||= 'msandbox';
|
||||
PTDEBUG && _d('dbh for', $server, 'on port', $port_for{$server});
|
||||
my $dp = $self->{DSNParser};
|
||||
|
@@ -341,12 +341,6 @@ sub check_table {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PTDEBUG && _d("lower_case_table_names=$lower_case_table_names");
|
||||
if ($lower_case_table_names > 0) {
|
||||
PTDEBUG && _d("MySQL uses case-insensitive lookup, converting '$tbl' to lowercase");
|
||||
$tbl = lc $tbl;
|
||||
}
|
||||
|
||||
my $db_tbl = $q->quote($db, $tbl);
|
||||
PTDEBUG && _d('Checking', $db_tbl);
|
||||
|
||||
@@ -362,7 +356,9 @@ sub check_table {
|
||||
$self->{check_table_error} = $e;
|
||||
return 0;
|
||||
}
|
||||
if ( !$row->[0] || $row->[0] ne $tbl ) {
|
||||
if ( !$row->[0]
|
||||
|| ( $lower_case_table_names == 0 && $row->[0] ne $tbl )
|
||||
|| ( $lower_case_table_names > 0 && lc $row->[0] ne lc $tbl ) ) {
|
||||
PTDEBUG && _d('Table does not exist');
|
||||
return 0;
|
||||
}
|
||||
|
@@ -1286,7 +1286,7 @@ report_jemalloc_enabled() {
|
||||
local variables_file="$2"
|
||||
local GENERAL_JEMALLOC_STATUS=0
|
||||
|
||||
for pid in $(grep '/mysqld ' "$instances_file" | awk '{print $1;}'); do
|
||||
for pid in $(grep '/mysqld\b' "$instances_file" | awk '{print $1;}'); do
|
||||
local jemalloc_status="$(get_var "pt-summary-internal-jemalloc_enabled_for_pid_${pid}" "${variables_file}")"
|
||||
if [ -z $jemalloc_status ]; then
|
||||
continue
|
||||
|
BIN
sandbox/servers/mariadb/11.3/data.tar.gz
Normal file
BIN
sandbox/servers/mariadb/11.3/data.tar.gz
Normal file
Binary file not shown.
29
sandbox/servers/mariadb/11.3/my.sandbox.cnf
Normal file
29
sandbox/servers/mariadb/11.3/my.sandbox.cnf
Normal file
@@ -0,0 +1,29 @@
|
||||
[client]
|
||||
user = msandbox
|
||||
password = msandbox
|
||||
port = PORT
|
||||
socket = /tmp/PORT/mysql_sandboxPORT.sock
|
||||
|
||||
[mysqld]
|
||||
port = PORT
|
||||
socket = /tmp/PORT/mysql_sandboxPORT.sock
|
||||
pid-file = /tmp/PORT/data/mysql_sandboxPORT.pid
|
||||
basedir = PERCONA_TOOLKIT_SANDBOX
|
||||
datadir = /tmp/PORT/data
|
||||
key_buffer_size = 16M
|
||||
innodb_buffer_pool_size = 16M
|
||||
innodb_data_home_dir = /tmp/PORT/data
|
||||
innodb_log_group_home_dir = /tmp/PORT/data
|
||||
innodb_data_file_path = ibdata1:10M:autoextend
|
||||
innodb_log_file_size = 64M
|
||||
log-bin = mysql-bin
|
||||
relay_log = mysql-relay-bin
|
||||
log_slave_updates
|
||||
server-id = PORT
|
||||
report-host = 127.0.0.1
|
||||
report-port = PORT
|
||||
log-error = /tmp/PORT/data/mysqld.log
|
||||
innodb_lock_wait_timeout = 3
|
||||
general_log
|
||||
general_log_file = genlog
|
||||
performance_schema = ON
|
627
sandbox/servers/mariadb/11.3/system_idb_tables.sql
Normal file
627
sandbox/servers/mariadb/11.3/system_idb_tables.sql
Normal file
@@ -0,0 +1,627 @@
|
||||
USE `mysql`;
|
||||
|
||||
-- MySQL dump 10.16 Distrib 10.1.21-MariaDB, for Linux (x86_64)
|
||||
--
|
||||
-- Host: localhost Database: localhost
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.1.21-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `column_stats`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `column_stats` (
|
||||
`db_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`column_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`min_value` varbinary(255) DEFAULT NULL,
|
||||
`max_value` varbinary(255) DEFAULT NULL,
|
||||
`nulls_ratio` decimal(12,4) DEFAULT NULL,
|
||||
`avg_length` decimal(12,4) DEFAULT NULL,
|
||||
`avg_frequency` decimal(12,4) DEFAULT NULL,
|
||||
`hist_size` tinyint(3) unsigned DEFAULT NULL,
|
||||
`hist_type` enum('SINGLE_PREC_HB','DOUBLE_PREC_HB') COLLATE utf8_bin DEFAULT NULL,
|
||||
`histogram` varbinary(255) DEFAULT NULL,
|
||||
PRIMARY KEY (`db_name`,`table_name`,`column_name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Statistics on Columns';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `columns_priv`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `columns_priv` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Column_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Column privileges';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `db`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `db` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
PRIMARY KEY (`Host`,`Db`,`User`),
|
||||
KEY `User` (`User`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Database privileges';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `event`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `event` (
|
||||
`db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`name` char(64) NOT NULL DEFAULT '',
|
||||
`body` longblob NOT NULL,
|
||||
`definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`execute_at` datetime DEFAULT NULL,
|
||||
`interval_value` int(11) DEFAULT NULL,
|
||||
`interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,
|
||||
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`last_executed` datetime DEFAULT NULL,
|
||||
`starts` datetime DEFAULT NULL,
|
||||
`ends` datetime DEFAULT NULL,
|
||||
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
|
||||
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
|
||||
`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`originator` int(10) unsigned NOT NULL,
|
||||
`time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
|
||||
`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`body_utf8` longblob,
|
||||
PRIMARY KEY (`db`,`name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `func`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `func` (
|
||||
`name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`ret` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`dl` char(128) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`type` enum('function','aggregate') CHARACTER SET utf8 NOT NULL,
|
||||
PRIMARY KEY (`name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User defined functions';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `gtid_slave_pos`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `gtid_slave_pos` (
|
||||
`domain_id` int(10) unsigned NOT NULL,
|
||||
`sub_id` bigint(20) unsigned NOT NULL,
|
||||
`server_id` int(10) unsigned NOT NULL,
|
||||
`seq_no` bigint(20) unsigned NOT NULL,
|
||||
PRIMARY KEY (`domain_id`,`sub_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Replication slave GTID position';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `help_category`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `help_category` (
|
||||
`help_category_id` smallint(5) unsigned NOT NULL,
|
||||
`name` char(64) NOT NULL,
|
||||
`parent_category_id` smallint(5) unsigned DEFAULT NULL,
|
||||
`url` text NOT NULL,
|
||||
PRIMARY KEY (`help_category_id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='help categories';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `help_keyword`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `help_keyword` (
|
||||
`help_keyword_id` int(10) unsigned NOT NULL,
|
||||
`name` char(64) NOT NULL,
|
||||
PRIMARY KEY (`help_keyword_id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='help keywords';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `help_relation`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `help_relation` (
|
||||
`help_topic_id` int(10) unsigned NOT NULL,
|
||||
`help_keyword_id` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`help_keyword_id`,`help_topic_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='keyword-topic relation';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `help_topic`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `help_topic` (
|
||||
`help_topic_id` int(10) unsigned NOT NULL,
|
||||
`name` char(64) NOT NULL,
|
||||
`help_category_id` smallint(5) unsigned NOT NULL,
|
||||
`description` text NOT NULL,
|
||||
`example` text NOT NULL,
|
||||
`url` text NOT NULL,
|
||||
PRIMARY KEY (`help_topic_id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='help topics';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `host`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `host` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
PRIMARY KEY (`Host`,`Db`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Host privileges; Merged with database privileges';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `index_stats`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `index_stats` (
|
||||
`db_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`index_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`prefix_arity` int(11) unsigned NOT NULL,
|
||||
`avg_frequency` decimal(12,4) DEFAULT NULL,
|
||||
PRIMARY KEY (`db_name`,`table_name`,`index_name`,`prefix_arity`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Statistics on Indexes';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `innodb_index_stats`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `innodb_index_stats` (
|
||||
`database_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`index_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`stat_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`stat_value` bigint(20) unsigned NOT NULL,
|
||||
`sample_size` bigint(20) unsigned DEFAULT NULL,
|
||||
`stat_description` varchar(1024) COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`database_name`,`table_name`,`index_name`,`stat_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `innodb_table_stats`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `innodb_table_stats` (
|
||||
`database_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`n_rows` bigint(20) unsigned NOT NULL,
|
||||
`clustered_index_size` bigint(20) unsigned NOT NULL,
|
||||
`sum_of_other_index_sizes` bigint(20) unsigned NOT NULL,
|
||||
PRIMARY KEY (`database_name`,`table_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `plugin`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `plugin` (
|
||||
`name` varchar(64) NOT NULL DEFAULT '',
|
||||
`dl` varchar(128) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL plugins';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `proc`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `proc` (
|
||||
`db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`name` char(64) NOT NULL DEFAULT '',
|
||||
`type` enum('FUNCTION','PROCEDURE') NOT NULL,
|
||||
`specific_name` char(64) NOT NULL DEFAULT '',
|
||||
`language` enum('SQL') NOT NULL DEFAULT 'SQL',
|
||||
`sql_data_access` enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL DEFAULT 'CONTAINS_SQL',
|
||||
`is_deterministic` enum('YES','NO') NOT NULL DEFAULT 'NO',
|
||||
`security_type` enum('INVOKER','DEFINER') NOT NULL DEFAULT 'DEFINER',
|
||||
`param_list` blob NOT NULL,
|
||||
`returns` longblob NOT NULL,
|
||||
`body` longblob NOT NULL,
|
||||
`definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
|
||||
`comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`body_utf8` longblob,
|
||||
PRIMARY KEY (`db`,`name`,`type`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `procs_priv`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `procs_priv` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Routine_name` char(64) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`Routine_type` enum('FUNCTION','PROCEDURE') COLLATE utf8_bin NOT NULL,
|
||||
`Grantor` char(141) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
|
||||
KEY `Grantor` (`Grantor`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `proxies_priv`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `proxies_priv` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Proxied_host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Proxied_user` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`With_grant` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`Grantor` char(141) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`Host`,`User`,`Proxied_host`,`Proxied_user`),
|
||||
KEY `Grantor` (`Grantor`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User proxy privileges';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `roles_mapping`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `roles_mapping` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Role` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Admin_option` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
UNIQUE KEY `Host` (`Host`,`User`,`Role`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Granted roles';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `servers`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `servers` (
|
||||
`Server_name` char(64) NOT NULL DEFAULT '',
|
||||
`Host` char(64) NOT NULL DEFAULT '',
|
||||
`Db` char(64) NOT NULL DEFAULT '',
|
||||
`Username` char(80) NOT NULL DEFAULT '',
|
||||
`Password` char(64) NOT NULL DEFAULT '',
|
||||
`Port` int(4) NOT NULL DEFAULT '0',
|
||||
`Socket` char(64) NOT NULL DEFAULT '',
|
||||
`Wrapper` char(64) NOT NULL DEFAULT '',
|
||||
`Owner` char(64) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`Server_name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `table_stats`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `table_stats` (
|
||||
`db_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
|
||||
`cardinality` bigint(21) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`db_name`,`table_name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Statistics on Tables';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `tables_priv`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `tables_priv` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Grantor` char(141) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
|
||||
KEY `Grantor` (`Grantor`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Table privileges';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `time_zone`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `time_zone` (
|
||||
`Time_zone_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`Use_leap_seconds` enum('Y','N') NOT NULL DEFAULT 'N',
|
||||
PRIMARY KEY (`Time_zone_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zones';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `time_zone_leap_second`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `time_zone_leap_second` (
|
||||
`Transition_time` bigint(20) NOT NULL,
|
||||
`Correction` int(11) NOT NULL,
|
||||
PRIMARY KEY (`Transition_time`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Leap seconds information for time zones';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `time_zone_name`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `time_zone_name` (
|
||||
`Name` char(64) NOT NULL,
|
||||
`Time_zone_id` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`Name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zone names';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `time_zone_transition`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `time_zone_transition` (
|
||||
`Time_zone_id` int(10) unsigned NOT NULL,
|
||||
`Transition_time` bigint(20) NOT NULL,
|
||||
`Transition_type_id` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`Time_zone_id`,`Transition_time`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zone transitions';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `time_zone_transition_type`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `time_zone_transition_type` (
|
||||
`Time_zone_id` int(10) unsigned NOT NULL,
|
||||
`Transition_type_id` int(10) unsigned NOT NULL,
|
||||
`Offset` int(11) NOT NULL DEFAULT '0',
|
||||
`Is_DST` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
`Abbreviation` char(8) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`Time_zone_id`,`Transition_type_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zone transition types';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `user`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `user` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
|
||||
`Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Reload_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Shutdown_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Process_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`File_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Show_db_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Super_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Repl_slave_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Repl_client_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_user_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_tablespace_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`ssl_cipher` blob NOT NULL,
|
||||
`x509_issuer` blob NOT NULL,
|
||||
`x509_subject` blob NOT NULL,
|
||||
`max_questions` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`max_updates` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`max_connections` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`max_user_connections` int(11) NOT NULL DEFAULT '0',
|
||||
`plugin` char(64) CHARACTER SET latin1 NOT NULL DEFAULT '',
|
||||
`authentication_string` text COLLATE utf8_bin NOT NULL,
|
||||
`password_expired` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`is_role` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`default_role` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`max_statement_time` decimal(12,6) NOT NULL DEFAULT '0.000000',
|
||||
PRIMARY KEY (`Host`,`User`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `general_log`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `general_log` (
|
||||
`event_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` bigint(21) unsigned NOT NULL,
|
||||
`server_id` int(10) unsigned NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `slow_log`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `slow_log` (
|
||||
`start_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`query_time` time(6) NOT NULL,
|
||||
`lock_time` time(6) NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(10) unsigned NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL,
|
||||
`thread_id` bigint(21) unsigned NOT NULL,
|
||||
`rows_affected` int(11) NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2017-03-10 19:49:04
|
@@ -369,6 +369,30 @@ $c2 = new MySQLConfig(
|
||||
) or print Dumper($diff);
|
||||
}
|
||||
|
||||
# ############################################################################
|
||||
# PS-2015 pt-config-diff doesn't diff ordered flags
|
||||
# ############################################################################
|
||||
$c1 = new MySQLConfig(
|
||||
result_set => [['log_slow_verbosity', 'innodb,microtime']],
|
||||
format => 'show_variables',
|
||||
);
|
||||
$c2 = new MySQLConfig(
|
||||
result_set => [['log_slow_verbosity', 'microtime,innodb']],
|
||||
format => 'show_variables',
|
||||
);
|
||||
|
||||
{
|
||||
$diff = $cc->diff(
|
||||
configs => [$c1, $c2],
|
||||
);
|
||||
|
||||
is_deeply(
|
||||
$diff,
|
||||
undef,
|
||||
"Values are same regardless of order"
|
||||
) or diag(Dumper($diff));
|
||||
}
|
||||
|
||||
# ############################################################################
|
||||
# https://bugs.launchpad.net/percona-toolkit/+bug/889739
|
||||
# pt-config-diff doesn't diff quoted strings properly
|
||||
|
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
plan 46
|
||||
plan 47
|
||||
|
||||
. "$LIB_DIR/alt_cmds.sh"
|
||||
. "$LIB_DIR/log_warn_die.sh"
|
||||
@@ -824,6 +824,12 @@ no_diff \
|
||||
"$samples/expected_output_ps-5.1-martin.txt" \
|
||||
"section_percona_server_features works on 5.1"
|
||||
|
||||
report_jemalloc_enabled "$samples/mysqld-instances-pt-2322" "$samples/mysql-variables-pt-2322" > "$PT_TMPDIR/got"
|
||||
no_diff \
|
||||
"$PT_TMPDIR/got" \
|
||||
"$samples/expected_output_pt-2322.txt" \
|
||||
"PT-2322: report_jemalloc_enabled works"
|
||||
|
||||
# ###########################################################################
|
||||
# Done
|
||||
# ###########################################################################
|
||||
|
@@ -80,6 +80,15 @@ ok(
|
||||
'--nosql'
|
||||
);
|
||||
|
||||
ok(
|
||||
no_diff(
|
||||
sub { pt_duplicate_key_checker::main(@args, qw(-d test --invisible)) },
|
||||
"$sample/basic_invisible.txt",
|
||||
transform_sample => $transform_int
|
||||
),
|
||||
'--invisible'
|
||||
);
|
||||
|
||||
ok(
|
||||
no_diff(
|
||||
sub { pt_duplicate_key_checker::main(@args, qw(-d test --nosummary)) },
|
||||
|
21
t/pt-duplicate-key-checker/samples/basic_invisible.txt
Normal file
21
t/pt-duplicate-key-checker/samples/basic_invisible.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
# ########################################################################
|
||||
# test.dupe_key
|
||||
# ########################################################################
|
||||
|
||||
# a is a left-prefix of a_2
|
||||
# Key definitions:
|
||||
# KEY `a` (`a`),
|
||||
# KEY `a_2` (`a`,`b`)
|
||||
# Column types:
|
||||
# `a` int(11) default null
|
||||
# `b` int(11) default null
|
||||
# To make this index invisible, execute:
|
||||
ALTER TABLE `test`.`dupe_key` ALTER INDEX `a` INVISIBLE;
|
||||
|
||||
# ########################################################################
|
||||
# Summary of indexes
|
||||
# ########################################################################
|
||||
|
||||
# Size Duplicate Indexes 0
|
||||
# Total Duplicate Indexes 1
|
||||
# Total Indexes 2
|
5
t/pt-mysql-summary/samples/expected_output_pt-2322.txt
Normal file
5
t/pt-mysql-summary/samples/expected_output_pt-2322.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
jemalloc enabled in mysql config for process with id 80592
|
||||
jemalloc enabled in mysql config for process with id 80852
|
||||
jemalloc enabled in mysql config for process with id 81695
|
||||
jemalloc is not enabled in mysql config for process with id 357384
|
||||
Using jemalloc from /usr/lib/x86_64-linux-gnu/libjemalloc.so.2
|
919
t/pt-mysql-summary/samples/mysql-variables-pt-2322
Normal file
919
t/pt-mysql-summary/samples/mysql-variables-pt-2322
Normal file
@@ -0,0 +1,919 @@
|
||||
activate_all_roles_on_login OFF
|
||||
admin_address
|
||||
admin_port 33062
|
||||
admin_ssl_ca
|
||||
admin_ssl_capath
|
||||
admin_ssl_cert
|
||||
admin_ssl_cipher
|
||||
admin_ssl_crl
|
||||
admin_ssl_crlpath
|
||||
admin_ssl_key
|
||||
admin_tls_ciphersuites
|
||||
admin_tls_version TLSv1.2,TLSv1.3
|
||||
authentication_policy *,,
|
||||
auto_generate_certs ON
|
||||
auto_increment_increment 1
|
||||
auto_increment_offset 1
|
||||
autocommit ON
|
||||
automatic_sp_privileges ON
|
||||
back_log 151
|
||||
basedir /usr/
|
||||
big_tables OFF
|
||||
bind_address *
|
||||
binlog_cache_size 32768
|
||||
binlog_checksum CRC32
|
||||
binlog_ddl_skip_rewrite OFF
|
||||
binlog_direct_non_transactional_updates OFF
|
||||
binlog_encryption OFF
|
||||
binlog_error_action ABORT_SERVER
|
||||
binlog_expire_logs_auto_purge ON
|
||||
binlog_expire_logs_seconds 2592000
|
||||
binlog_format ROW
|
||||
binlog_group_commit_sync_delay 0
|
||||
binlog_group_commit_sync_no_delay_count 0
|
||||
binlog_gtid_simple_recovery ON
|
||||
binlog_max_flush_queue_time 0
|
||||
binlog_order_commits ON
|
||||
binlog_rotate_encryption_master_key_at_startup OFF
|
||||
binlog_row_event_max_size 8192
|
||||
binlog_row_image FULL
|
||||
binlog_row_metadata MINIMAL
|
||||
binlog_row_value_options
|
||||
binlog_rows_query_log_events OFF
|
||||
binlog_skip_flush_commands OFF
|
||||
binlog_space_limit 0
|
||||
binlog_stmt_cache_size 32768
|
||||
binlog_transaction_compression OFF
|
||||
binlog_transaction_compression_level_zstd 3
|
||||
binlog_transaction_dependency_history_size 25000
|
||||
block_encryption_mode aes-128-ecb
|
||||
buffered_error_log_filename
|
||||
buffered_error_log_size 0
|
||||
build_id 4de3a036b7983a80c88f3a74d31b0c38359214d1
|
||||
bulk_insert_buffer_size 8388608
|
||||
caching_sha2_password_auto_generate_rsa_keys ON
|
||||
caching_sha2_password_digest_rounds 5000
|
||||
caching_sha2_password_private_key_path private_key.pem
|
||||
caching_sha2_password_public_key_path public_key.pem
|
||||
character_set_client utf8mb4
|
||||
character_set_connection utf8mb4
|
||||
character_set_database utf8mb4
|
||||
character_set_filesystem binary
|
||||
character_set_results utf8mb4
|
||||
character_set_server utf8mb4
|
||||
character_set_system utf8mb3
|
||||
character_sets_dir /usr/share/mysql/charsets/
|
||||
check_proxy_users OFF
|
||||
clone_autotune_concurrency ON
|
||||
clone_block_ddl OFF
|
||||
clone_buffer_size 4194304
|
||||
clone_compression_algorithm zstd
|
||||
clone_ddl_timeout 300
|
||||
clone_delay_after_data_drop 0
|
||||
clone_donor_timeout_after_network_failure 5
|
||||
clone_enable_compression OFF
|
||||
clone_exclude_plugins_list
|
||||
clone_max_concurrency 16
|
||||
clone_max_data_bandwidth 0
|
||||
clone_max_network_bandwidth 0
|
||||
clone_ssl_ca
|
||||
clone_ssl_cert
|
||||
clone_ssl_key
|
||||
clone_valid_donor_list
|
||||
clone_zstd_compression_level 3
|
||||
collation_connection utf8mb4_0900_ai_ci
|
||||
collation_database utf8mb4_0900_ai_ci
|
||||
collation_server utf8mb4_0900_ai_ci
|
||||
completion_type NO_CHAIN
|
||||
concurrent_insert AUTO
|
||||
connect_timeout 10
|
||||
connection_memory_chunk_size 8192
|
||||
connection_memory_limit 18446744073709551615
|
||||
core_file OFF
|
||||
create_admin_listener_thread OFF
|
||||
cte_max_recursion_depth 1000
|
||||
datadir /var/lib/mysql/
|
||||
default_collation_for_utf8mb4 utf8mb4_0900_ai_ci
|
||||
default_password_lifetime 0
|
||||
default_storage_engine InnoDB
|
||||
default_table_encryption OFF
|
||||
default_tmp_storage_engine InnoDB
|
||||
default_week_format 0
|
||||
delay_key_write ON
|
||||
delayed_insert_limit 100
|
||||
delayed_insert_timeout 300
|
||||
delayed_queue_size 1000
|
||||
disabled_storage_engines
|
||||
disconnect_on_expired_password ON
|
||||
div_precision_increment 4
|
||||
encrypt_tmp_files OFF
|
||||
end_markers_in_json OFF
|
||||
enforce_gtid_consistency OFF
|
||||
enforce_storage_engine
|
||||
eq_range_index_dive_limit 200
|
||||
event_scheduler ON
|
||||
expand_fast_index_creation OFF
|
||||
explain_format TRADITIONAL
|
||||
explain_json_format_version 1
|
||||
explicit_defaults_for_timestamp ON
|
||||
flush OFF
|
||||
flush_time 0
|
||||
foreign_key_checks ON
|
||||
ft_boolean_syntax + -><()~*:""&|
|
||||
ft_max_word_len 84
|
||||
ft_min_word_len 4
|
||||
ft_query_expansion_limit 20
|
||||
ft_query_extra_word_chars OFF
|
||||
ft_stopword_file (built-in)
|
||||
general_log OFF
|
||||
general_log_file /var/lib/mysql/s76.log
|
||||
generated_random_password_length 20
|
||||
global_connection_memory_limit 18446744073709551615
|
||||
global_connection_memory_tracking OFF
|
||||
group_concat_max_len 1024
|
||||
group_replication_consistency BEFORE_ON_PRIMARY_FAILOVER
|
||||
gtid_executed
|
||||
gtid_executed_compression_period 0
|
||||
gtid_mode OFF
|
||||
gtid_owned
|
||||
gtid_purged
|
||||
have_backup_locks YES
|
||||
have_backup_safe_binlog_info YES
|
||||
have_compress YES
|
||||
have_dynamic_loading YES
|
||||
have_geometry YES
|
||||
have_profiling YES
|
||||
have_query_cache NO
|
||||
have_rtree_keys YES
|
||||
have_snapshot_cloning YES
|
||||
have_statement_timeout YES
|
||||
have_symlink DISABLED
|
||||
histogram_generation_max_mem_size 20000000
|
||||
host_cache_size 279
|
||||
hostname s76
|
||||
information_schema_stats_expiry 86400
|
||||
init_connect
|
||||
init_file
|
||||
init_replica
|
||||
init_slave
|
||||
innodb_adaptive_flushing ON
|
||||
innodb_adaptive_flushing_lwm 10
|
||||
innodb_adaptive_hash_index OFF
|
||||
innodb_adaptive_hash_index_parts 8
|
||||
innodb_adaptive_max_sleep_delay 150000
|
||||
innodb_api_bk_commit_interval 5
|
||||
innodb_api_disable_rowlock OFF
|
||||
innodb_api_enable_binlog OFF
|
||||
innodb_api_enable_mdl OFF
|
||||
innodb_api_trx_level 0
|
||||
innodb_autoextend_increment 64
|
||||
innodb_autoinc_lock_mode 2
|
||||
innodb_buffer_pool_chunk_size 134217728
|
||||
innodb_buffer_pool_dump_at_shutdown ON
|
||||
innodb_buffer_pool_dump_now OFF
|
||||
innodb_buffer_pool_dump_pct 25
|
||||
innodb_buffer_pool_filename ib_buffer_pool
|
||||
innodb_buffer_pool_in_core_file OFF
|
||||
innodb_buffer_pool_instances 1
|
||||
innodb_buffer_pool_load_abort OFF
|
||||
innodb_buffer_pool_load_at_startup ON
|
||||
innodb_buffer_pool_load_now OFF
|
||||
innodb_buffer_pool_size 134217728
|
||||
innodb_change_buffer_max_size 25
|
||||
innodb_change_buffering none
|
||||
innodb_checksum_algorithm crc32
|
||||
innodb_cleaner_lsn_age_factor high_checkpoint
|
||||
innodb_cmp_per_index_enabled OFF
|
||||
innodb_commit_concurrency 0
|
||||
innodb_compressed_columns_threshold 96
|
||||
innodb_compressed_columns_zip_level 6
|
||||
innodb_compression_failure_threshold_pct 5
|
||||
innodb_compression_level 6
|
||||
innodb_compression_pad_pct_max 50
|
||||
innodb_concurrency_tickets 5000
|
||||
innodb_corrupt_table_action assert
|
||||
innodb_data_file_path ibdata1:12M:autoextend
|
||||
innodb_data_home_dir
|
||||
innodb_ddl_buffer_size 1048576
|
||||
innodb_ddl_threads 4
|
||||
innodb_deadlock_detect ON
|
||||
innodb_dedicated_server OFF
|
||||
innodb_default_row_format dynamic
|
||||
innodb_directories
|
||||
innodb_disable_sort_file_cache OFF
|
||||
innodb_doublewrite ON
|
||||
innodb_doublewrite_batch_size 0
|
||||
innodb_doublewrite_dir
|
||||
innodb_doublewrite_files 2
|
||||
innodb_doublewrite_pages 128
|
||||
innodb_empty_free_list_algorithm legacy
|
||||
innodb_encrypt_online_alter_logs OFF
|
||||
innodb_extend_and_initialize ON
|
||||
innodb_fast_shutdown 1
|
||||
innodb_file_per_table ON
|
||||
innodb_fill_factor 100
|
||||
innodb_flush_log_at_timeout 1
|
||||
innodb_flush_log_at_trx_commit 1
|
||||
innodb_flush_method O_DIRECT
|
||||
innodb_flush_neighbors 0
|
||||
innodb_flush_sync ON
|
||||
innodb_flushing_avg_loops 30
|
||||
innodb_force_index_records_in_range 0
|
||||
innodb_force_load_corrupted OFF
|
||||
innodb_force_recovery 0
|
||||
innodb_fsync_threshold 0
|
||||
innodb_ft_aux_table
|
||||
innodb_ft_cache_size 8000000
|
||||
innodb_ft_enable_diag_print OFF
|
||||
innodb_ft_enable_stopword ON
|
||||
innodb_ft_ignore_stopwords OFF
|
||||
innodb_ft_max_token_size 84
|
||||
innodb_ft_min_token_size 3
|
||||
innodb_ft_num_word_optimize 2000
|
||||
innodb_ft_result_cache_limit 2000000000
|
||||
innodb_ft_server_stopword_table
|
||||
innodb_ft_sort_pll_degree 2
|
||||
innodb_ft_total_cache_size 640000000
|
||||
innodb_ft_user_stopword_table
|
||||
innodb_idle_flush_pct 100
|
||||
innodb_io_capacity 10000
|
||||
innodb_io_capacity_max 20000
|
||||
innodb_lock_wait_timeout 50
|
||||
innodb_log_buffer_size 67108864
|
||||
innodb_log_checksums ON
|
||||
innodb_log_compressed_pages ON
|
||||
innodb_log_file_size 50331648
|
||||
innodb_log_files_in_group 2
|
||||
innodb_log_group_home_dir ./
|
||||
innodb_log_spin_cpu_abs_lwm 80
|
||||
innodb_log_spin_cpu_pct_hwm 50
|
||||
innodb_log_wait_for_flush_spin_hwm 400
|
||||
innodb_log_write_ahead_size 8192
|
||||
innodb_log_writer_threads ON
|
||||
innodb_lru_scan_depth 1024
|
||||
innodb_max_dirty_pages_pct 90.000000
|
||||
innodb_max_dirty_pages_pct_lwm 10.000000
|
||||
innodb_max_purge_lag 0
|
||||
innodb_max_purge_lag_delay 0
|
||||
innodb_max_undo_log_size 1073741824
|
||||
innodb_monitor_disable
|
||||
innodb_monitor_enable
|
||||
innodb_monitor_reset
|
||||
innodb_monitor_reset_all
|
||||
innodb_numa_interleave ON
|
||||
innodb_old_blocks_pct 37
|
||||
innodb_old_blocks_time 1000
|
||||
innodb_online_alter_log_max_size 134217728
|
||||
innodb_open_files 4000
|
||||
innodb_optimize_fulltext_only OFF
|
||||
innodb_page_cleaners 1
|
||||
innodb_page_size 16384
|
||||
innodb_parallel_read_threads 4
|
||||
innodb_print_all_deadlocks OFF
|
||||
innodb_print_ddl_logs OFF
|
||||
innodb_print_lock_wait_timeout_info OFF
|
||||
innodb_purge_batch_size 300
|
||||
innodb_purge_rseg_truncate_frequency 128
|
||||
innodb_purge_threads 1
|
||||
innodb_random_read_ahead OFF
|
||||
innodb_read_ahead_threshold 56
|
||||
innodb_read_io_threads 8
|
||||
innodb_read_only OFF
|
||||
innodb_records_in_range 0
|
||||
innodb_redo_log_archive_dirs
|
||||
innodb_redo_log_capacity 104857600
|
||||
innodb_redo_log_encrypt OFF
|
||||
innodb_replication_delay 0
|
||||
innodb_rollback_on_timeout OFF
|
||||
innodb_rollback_segments 128
|
||||
innodb_segment_reserve_factor 12.500000
|
||||
innodb_show_locks_held 10
|
||||
innodb_sort_buffer_size 1048576
|
||||
innodb_spin_wait_delay 6
|
||||
innodb_spin_wait_pause_multiplier 50
|
||||
innodb_stats_auto_recalc ON
|
||||
innodb_stats_include_delete_marked OFF
|
||||
innodb_stats_method nulls_equal
|
||||
innodb_stats_on_metadata OFF
|
||||
innodb_stats_persistent ON
|
||||
innodb_stats_persistent_sample_pages 20
|
||||
innodb_stats_transient_sample_pages 8
|
||||
innodb_status_output OFF
|
||||
innodb_status_output_locks OFF
|
||||
innodb_strict_mode ON
|
||||
innodb_sync_array_size 1
|
||||
innodb_sync_spin_loops 30
|
||||
innodb_sys_tablespace_encrypt OFF
|
||||
innodb_table_locks ON
|
||||
innodb_temp_data_file_path ibtmp1:12M:autoextend
|
||||
innodb_temp_tablespace_encrypt OFF
|
||||
innodb_temp_tablespaces_dir ./#innodb_temp/
|
||||
innodb_thread_concurrency 0
|
||||
innodb_thread_sleep_delay 10000
|
||||
innodb_tmpdir
|
||||
innodb_undo_directory ./
|
||||
innodb_undo_log_encrypt OFF
|
||||
innodb_undo_log_truncate ON
|
||||
innodb_undo_tablespaces 2
|
||||
innodb_use_fdatasync ON
|
||||
innodb_use_native_aio ON
|
||||
innodb_validate_tablespace_paths ON
|
||||
innodb_version 8.4.5-5
|
||||
innodb_write_io_threads 4
|
||||
interactive_timeout 28800
|
||||
internal_tmp_mem_storage_engine TempTable
|
||||
jemalloc_detected OFF
|
||||
jemalloc_profiling OFF
|
||||
join_buffer_size 262144
|
||||
keep_files_on_create OFF
|
||||
key_buffer_size 8388608
|
||||
key_cache_age_threshold 300
|
||||
key_cache_block_size 1024
|
||||
key_cache_division_limit 100
|
||||
keyring_operations ON
|
||||
kill_idle_transaction 0
|
||||
large_files_support ON
|
||||
large_page_size 0
|
||||
large_pages OFF
|
||||
lc_messages en_US
|
||||
lc_messages_dir /usr/share/mysql/
|
||||
lc_time_names en_US
|
||||
license GPL
|
||||
local_infile OFF
|
||||
lock_wait_timeout 31536000
|
||||
locked_in_memory OFF
|
||||
log_bin ON
|
||||
log_bin_basename /var/lib/mysql/binlog
|
||||
log_bin_index /var/lib/mysql/binlog.index
|
||||
log_bin_trust_function_creators OFF
|
||||
log_error /var/log/mysql/error.log
|
||||
log_error_services log_filter_internal; log_sink_internal
|
||||
log_error_suppression_list
|
||||
log_error_verbosity 2
|
||||
log_output FILE
|
||||
log_queries_not_using_indexes OFF
|
||||
log_query_errors
|
||||
log_raw OFF
|
||||
log_replica_updates ON
|
||||
log_slave_updates ON
|
||||
log_slow_admin_statements OFF
|
||||
log_slow_extra OFF
|
||||
log_slow_filter
|
||||
log_slow_rate_limit 1
|
||||
log_slow_rate_type session
|
||||
log_slow_replica_statements OFF
|
||||
log_slow_slave_statements OFF
|
||||
log_slow_sp_statements ON
|
||||
log_slow_verbosity
|
||||
log_statements_unsafe_for_binlog ON
|
||||
log_throttle_queries_not_using_indexes 0
|
||||
log_timestamps UTC
|
||||
long_query_time 10.000000
|
||||
low_priority_updates OFF
|
||||
lower_case_file_system OFF
|
||||
lower_case_table_names 0
|
||||
mandatory_roles
|
||||
master_verify_checksum OFF
|
||||
max_allowed_packet 67108864
|
||||
max_binlog_cache_size 18446744073709547520
|
||||
max_binlog_size 1073741824
|
||||
max_binlog_stmt_cache_size 18446744073709547520
|
||||
max_connect_errors 100
|
||||
max_connections 151
|
||||
max_delayed_threads 20
|
||||
max_digest_length 1024
|
||||
max_error_count 1024
|
||||
max_execution_time 0
|
||||
max_heap_table_size 16777216
|
||||
max_insert_delayed_threads 20
|
||||
max_join_size 18446744073709551615
|
||||
max_length_for_sort_data 4096
|
||||
max_points_in_geometry 65536
|
||||
max_prepared_stmt_count 16382
|
||||
max_relay_log_size 0
|
||||
max_seeks_for_key 18446744073709551615
|
||||
max_slowlog_files 0
|
||||
max_slowlog_size 0
|
||||
max_sort_length 1024
|
||||
max_sp_recursion_depth 0
|
||||
max_user_connections 0
|
||||
max_write_lock_count 18446744073709551615
|
||||
min_examined_row_limit 0
|
||||
myisam_data_pointer_size 6
|
||||
myisam_max_sort_file_size 9223372036853727232
|
||||
myisam_mmap_size 18446744073709551615
|
||||
myisam_recover_options OFF
|
||||
myisam_sort_buffer_size 8388608
|
||||
myisam_stats_method nulls_unequal
|
||||
myisam_use_mmap OFF
|
||||
mysql_native_password_proxy_users OFF
|
||||
mysqlx_bind_address *
|
||||
mysqlx_compression_algorithms DEFLATE_STREAM,LZ4_MESSAGE,ZSTD_STREAM
|
||||
mysqlx_connect_timeout 30
|
||||
mysqlx_deflate_default_compression_level 3
|
||||
mysqlx_deflate_max_client_compression_level 5
|
||||
mysqlx_document_id_unique_prefix 0
|
||||
mysqlx_enable_hello_notice ON
|
||||
mysqlx_idle_worker_thread_timeout 60
|
||||
mysqlx_interactive_timeout 28800
|
||||
mysqlx_lz4_default_compression_level 2
|
||||
mysqlx_lz4_max_client_compression_level 8
|
||||
mysqlx_max_allowed_packet 67108864
|
||||
mysqlx_max_connections 100
|
||||
mysqlx_min_worker_threads 2
|
||||
mysqlx_port 33060
|
||||
mysqlx_port_open_timeout 0
|
||||
mysqlx_read_timeout 30
|
||||
mysqlx_socket /var/run/mysqld/mysqlx.sock
|
||||
mysqlx_ssl_ca
|
||||
mysqlx_ssl_capath
|
||||
mysqlx_ssl_cert
|
||||
mysqlx_ssl_cipher
|
||||
mysqlx_ssl_crl
|
||||
mysqlx_ssl_crlpath
|
||||
mysqlx_ssl_key
|
||||
mysqlx_wait_timeout 28800
|
||||
mysqlx_write_timeout 60
|
||||
mysqlx_zstd_default_compression_level 3
|
||||
mysqlx_zstd_max_client_compression_level 11
|
||||
net_buffer_length 16384
|
||||
net_buffer_shrink_interval 0
|
||||
net_read_timeout 30
|
||||
net_retry_count 10
|
||||
net_write_timeout 60
|
||||
ngram_token_size 2
|
||||
offline_mode OFF
|
||||
old_alter_table OFF
|
||||
open_files_limit 10000
|
||||
optimizer_max_subgraph_pairs 100000
|
||||
optimizer_prune_level 1
|
||||
optimizer_search_depth 62
|
||||
optimizer_switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=on,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=on,derived_merge=on,use_invisible_indexes=off,skip_scan=on,hash_join=on,subquery_to_derived=off,prefer_ordering_index=on,hypergraph_optimizer=off,derived_condition_pushdown=on,hash_set_operations=on,favor_range_scan=off
|
||||
optimizer_trace enabled=off,one_line=off
|
||||
optimizer_trace_features greedy_search=on,range_optimizer=on,dynamic_range=on,repeated_subselect=on
|
||||
optimizer_trace_limit 1
|
||||
optimizer_trace_max_mem_size 1048576
|
||||
optimizer_trace_offset -1
|
||||
parser_max_mem_size 18446744073709551615
|
||||
partial_revokes OFF
|
||||
password_history 0
|
||||
password_require_current OFF
|
||||
password_reuse_interval 0
|
||||
percona_telemetry.grace_interval 86400
|
||||
percona_telemetry.history_keep_interval 604800
|
||||
percona_telemetry.scrape_interval 86400
|
||||
percona_telemetry.telemetry_root_dir /usr/local/percona/telemetry/ps
|
||||
percona_telemetry_disable OFF
|
||||
performance_schema ON
|
||||
performance_schema_accounts_size -1
|
||||
performance_schema_digests_size 10000
|
||||
performance_schema_error_size 5714
|
||||
performance_schema_events_stages_history_long_size 10000
|
||||
performance_schema_events_stages_history_size 10
|
||||
performance_schema_events_statements_history_long_size 10000
|
||||
performance_schema_events_statements_history_size 10
|
||||
performance_schema_events_transactions_history_long_size 10000
|
||||
performance_schema_events_transactions_history_size 10
|
||||
performance_schema_events_waits_history_long_size 10000
|
||||
performance_schema_events_waits_history_size 10
|
||||
performance_schema_hosts_size -1
|
||||
performance_schema_max_cond_classes 150
|
||||
performance_schema_max_cond_instances -1
|
||||
performance_schema_max_digest_length 1024
|
||||
performance_schema_max_digest_sample_age 60
|
||||
performance_schema_max_file_classes 80
|
||||
performance_schema_max_file_handles 32768
|
||||
performance_schema_max_file_instances -1
|
||||
performance_schema_max_index_stat -1
|
||||
performance_schema_max_memory_classes 530
|
||||
performance_schema_max_metadata_locks -1
|
||||
performance_schema_max_meter_classes 30
|
||||
performance_schema_max_metric_classes 600
|
||||
performance_schema_max_mutex_classes 350
|
||||
performance_schema_max_mutex_instances -1
|
||||
performance_schema_max_prepared_statements_instances -1
|
||||
performance_schema_max_program_instances -1
|
||||
performance_schema_max_rwlock_classes 100
|
||||
performance_schema_max_rwlock_instances -1
|
||||
performance_schema_max_socket_classes 10
|
||||
performance_schema_max_socket_instances -1
|
||||
performance_schema_max_sql_text_length 1024
|
||||
performance_schema_max_stage_classes 175
|
||||
performance_schema_max_statement_classes 228
|
||||
performance_schema_max_statement_stack 10
|
||||
performance_schema_max_table_handles -1
|
||||
performance_schema_max_table_instances -1
|
||||
performance_schema_max_table_lock_stat -1
|
||||
performance_schema_max_thread_classes 100
|
||||
performance_schema_max_thread_instances -1
|
||||
performance_schema_session_connect_attrs_size 512
|
||||
performance_schema_setup_actors_size -1
|
||||
performance_schema_setup_objects_size -1
|
||||
performance_schema_show_processlist OFF
|
||||
performance_schema_users_size -1
|
||||
persist_only_admin_x509_subject
|
||||
persist_sensitive_variables_in_plaintext ON
|
||||
persisted_globals_load ON
|
||||
pid_file /var/run/mysqld/mysqld.pid
|
||||
plugin_dir /usr/lib/mysql/plugin/
|
||||
port 3306
|
||||
preload_buffer_size 32768
|
||||
print_identified_with_as_hex OFF
|
||||
profiling OFF
|
||||
profiling_history_size 15
|
||||
protocol_compression_algorithms zlib,zstd,uncompressed
|
||||
protocol_version 10
|
||||
proxy_protocol_networks
|
||||
query_alloc_block_size 8192
|
||||
query_prealloc_size 8192
|
||||
range_alloc_block_size 4096
|
||||
range_optimizer_max_mem_size 8388608
|
||||
rbr_exec_mode STRICT
|
||||
read_buffer_size 131072
|
||||
read_only OFF
|
||||
read_rnd_buffer_size 262144
|
||||
regexp_stack_limit 8000000
|
||||
regexp_time_limit 32
|
||||
relay_log s76-relay-bin
|
||||
relay_log_basename /var/lib/mysql/s76-relay-bin
|
||||
relay_log_index /var/lib/mysql/s76-relay-bin.index
|
||||
relay_log_purge ON
|
||||
relay_log_recovery OFF
|
||||
relay_log_space_limit 0
|
||||
replica_allow_batching ON
|
||||
replica_checkpoint_group 512
|
||||
replica_checkpoint_period 300
|
||||
replica_compressed_protocol OFF
|
||||
replica_enable_event
|
||||
replica_exec_mode STRICT
|
||||
replica_load_tmpdir /tmp
|
||||
replica_max_allowed_packet 1073741824
|
||||
replica_net_timeout 60
|
||||
replica_parallel_type LOGICAL_CLOCK
|
||||
replica_parallel_workers 4
|
||||
replica_pending_jobs_size_max 134217728
|
||||
replica_preserve_commit_order ON
|
||||
replica_skip_errors OFF
|
||||
replica_sql_verify_checksum ON
|
||||
replica_transaction_retries 10
|
||||
replica_type_conversions
|
||||
replication_optimize_for_static_plugin_config OFF
|
||||
replication_sender_observe_commit_only OFF
|
||||
report_host
|
||||
report_password
|
||||
report_port 3306
|
||||
report_user
|
||||
require_secure_transport OFF
|
||||
restrict_fk_on_non_standard_key ON
|
||||
rocksdb_advise_random_on_open ON
|
||||
rocksdb_allow_concurrent_memtable_write OFF
|
||||
rocksdb_allow_mmap_reads OFF
|
||||
rocksdb_allow_mmap_writes OFF
|
||||
rocksdb_allow_to_start_after_corruption OFF
|
||||
rocksdb_allow_unsafe_alter OFF
|
||||
rocksdb_alter_column_default_inplace ON
|
||||
rocksdb_alter_table_comment_inplace OFF
|
||||
rocksdb_blind_delete_primary_key OFF
|
||||
rocksdb_block_cache_numshardbits -1
|
||||
rocksdb_block_cache_size 536870912
|
||||
rocksdb_block_restart_interval 16
|
||||
rocksdb_block_size 16384
|
||||
rocksdb_block_size_deviation 10
|
||||
rocksdb_bulk_load OFF
|
||||
rocksdb_bulk_load_allow_sk OFF
|
||||
rocksdb_bulk_load_allow_unsorted OFF
|
||||
rocksdb_bulk_load_compression_parallel_threads 1
|
||||
rocksdb_bulk_load_enable_unique_key_check OFF
|
||||
rocksdb_bulk_load_fail_if_not_bottommost_level OFF
|
||||
rocksdb_bulk_load_partial_index ON
|
||||
rocksdb_bulk_load_size 1000
|
||||
rocksdb_bulk_load_use_sst_partitioner OFF
|
||||
rocksdb_bytes_per_sync 0
|
||||
rocksdb_cache_dump ON
|
||||
rocksdb_cache_high_pri_pool_ratio 0.000000
|
||||
rocksdb_cache_index_and_filter_blocks ON
|
||||
rocksdb_cache_index_and_filter_with_high_priority ON
|
||||
rocksdb_cancel_manual_compactions OFF
|
||||
rocksdb_charge_memory OFF
|
||||
rocksdb_check_iterate_bounds ON
|
||||
rocksdb_checksums_pct 100
|
||||
rocksdb_collect_sst_properties ON
|
||||
rocksdb_column_default_value_as_expression ON
|
||||
rocksdb_commit_in_the_middle OFF
|
||||
rocksdb_commit_time_batch_for_recovery OFF
|
||||
rocksdb_compact_cf
|
||||
rocksdb_compact_lzero_now OFF
|
||||
rocksdb_compaction_readahead_size 2097152
|
||||
rocksdb_compaction_sequential_deletes 149999
|
||||
rocksdb_compaction_sequential_deletes_count_sd ON
|
||||
rocksdb_compaction_sequential_deletes_file_size 0
|
||||
rocksdb_compaction_sequential_deletes_window 150000
|
||||
rocksdb_concurrent_prepare ON
|
||||
rocksdb_converter_record_cached_length 0
|
||||
rocksdb_corrupt_data_action ERROR
|
||||
rocksdb_create_checkpoint
|
||||
rocksdb_create_if_missing ON
|
||||
rocksdb_create_missing_column_families OFF
|
||||
rocksdb_create_temporary_checkpoint
|
||||
rocksdb_datadir ./.rocksdb
|
||||
rocksdb_db_write_buffer_size 0
|
||||
rocksdb_deadlock_detect OFF
|
||||
rocksdb_deadlock_detect_depth 50
|
||||
rocksdb_debug_cardinality_multiplier 2
|
||||
rocksdb_debug_manual_compaction_delay 0
|
||||
rocksdb_debug_optimizer_no_zero_cardinality ON
|
||||
rocksdb_debug_skip_bloom_filter_check_on_iterator_bounds OFF
|
||||
rocksdb_debug_ttl_ignore_pk OFF
|
||||
rocksdb_debug_ttl_read_filter_ts 0
|
||||
rocksdb_debug_ttl_rec_ts 0
|
||||
rocksdb_debug_ttl_snapshot_ts 0
|
||||
rocksdb_default_cf_options block_based_table_factory={cache_index_and_filter_blocks=1;filter_policy=bloomfilter:10:false;whole_key_filtering=1};level_compaction_dynamic_level_bytes=true;optimize_filters_for_hits=true;compaction_pri=kMinOverlappingRatio;compression=kLZ4Compression;bottommost_compression=kLZ4Compression;
|
||||
rocksdb_delayed_write_rate 0
|
||||
rocksdb_delete_cf
|
||||
rocksdb_delete_obsolete_files_period_micros 21600000000
|
||||
rocksdb_disable_file_deletions OFF
|
||||
rocksdb_disable_instant_ddl OFF
|
||||
rocksdb_enable_bulk_load_api ON
|
||||
rocksdb_enable_delete_range_for_drop_index OFF
|
||||
rocksdb_enable_insert_with_update_caching ON
|
||||
rocksdb_enable_instant_ddl ON
|
||||
rocksdb_enable_instant_ddl_for_append_column OFF
|
||||
rocksdb_enable_instant_ddl_for_column_default_changes OFF
|
||||
rocksdb_enable_instant_ddl_for_drop_index_changes OFF
|
||||
rocksdb_enable_instant_ddl_for_table_comment_changes OFF
|
||||
rocksdb_enable_iterate_bounds ON
|
||||
rocksdb_enable_pipelined_write OFF
|
||||
rocksdb_enable_remove_orphaned_dropped_cfs ON
|
||||
rocksdb_enable_thread_tracking ON
|
||||
rocksdb_enable_tmp_table OFF
|
||||
rocksdb_enable_ttl ON
|
||||
rocksdb_enable_ttl_read_filtering ON
|
||||
rocksdb_enable_udt_in_mem OFF
|
||||
rocksdb_enable_write_thread_adaptive_yield OFF
|
||||
rocksdb_error_if_exists OFF
|
||||
rocksdb_error_on_suboptimal_collation OFF
|
||||
rocksdb_fault_injection_options
|
||||
rocksdb_file_checksums CHECKSUMS_OFF
|
||||
rocksdb_flush_log_at_trx_commit 1
|
||||
rocksdb_force_compute_memtable_stats ON
|
||||
rocksdb_force_compute_memtable_stats_cachetime 60000000
|
||||
rocksdb_force_flush_memtable_and_lzero_now OFF
|
||||
rocksdb_force_flush_memtable_now OFF
|
||||
rocksdb_force_index_records_in_range 0
|
||||
rocksdb_ignore_unknown_options ON
|
||||
rocksdb_index_type kBinarySearch
|
||||
rocksdb_info_log_level error_level
|
||||
rocksdb_invalid_create_option_action LOG
|
||||
rocksdb_io_error_action ABORT_SERVER
|
||||
rocksdb_is_fd_close_on_exec ON
|
||||
rocksdb_keep_log_file_num 1000
|
||||
rocksdb_lock_scanned_rows OFF
|
||||
rocksdb_lock_wait_timeout 1
|
||||
rocksdb_log_file_time_to_roll 0
|
||||
rocksdb_manifest_preallocation_size 4194304
|
||||
rocksdb_manual_compaction_bottommost_level kForceOptimized
|
||||
rocksdb_manual_compaction_threads 0
|
||||
rocksdb_manual_wal_flush ON
|
||||
rocksdb_master_skip_tx_api OFF
|
||||
rocksdb_max_background_compactions -1
|
||||
rocksdb_max_background_flushes -1
|
||||
rocksdb_max_background_jobs 2
|
||||
rocksdb_max_bottom_pri_background_compactions 0
|
||||
rocksdb_max_compaction_history 64
|
||||
rocksdb_max_file_opening_threads 16
|
||||
rocksdb_max_latest_deadlocks 5
|
||||
rocksdb_max_log_file_size 0
|
||||
rocksdb_max_manifest_file_size 1073741824
|
||||
rocksdb_max_manual_compactions 10
|
||||
rocksdb_max_open_files 5000
|
||||
rocksdb_max_row_locks 1048576
|
||||
rocksdb_max_subcompactions 1
|
||||
rocksdb_max_total_wal_size 2147483648
|
||||
rocksdb_merge_buf_size 67108864
|
||||
rocksdb_merge_combine_read_size 1073741824
|
||||
rocksdb_merge_tmp_file_removal_delay_ms 0
|
||||
rocksdb_no_block_cache OFF
|
||||
rocksdb_no_create_column_family OFF
|
||||
rocksdb_override_cf_options
|
||||
rocksdb_paranoid_checks ON
|
||||
rocksdb_partial_index_blind_delete ON
|
||||
rocksdb_partial_index_ignore_killed ON
|
||||
rocksdb_partial_index_sort_max_mem 0
|
||||
rocksdb_pause_background_work OFF
|
||||
rocksdb_perf_context_level 0
|
||||
rocksdb_persistent_cache_path
|
||||
rocksdb_persistent_cache_size_mb 0
|
||||
rocksdb_pin_l0_filter_and_index_blocks_in_cache ON
|
||||
rocksdb_print_snapshot_conflict_queries OFF
|
||||
rocksdb_protection_bytes_per_key 0
|
||||
rocksdb_rate_limiter_bytes_per_sec 0
|
||||
rocksdb_read_free_rpl OFF
|
||||
rocksdb_read_free_rpl_tables .*
|
||||
rocksdb_records_in_range 0
|
||||
rocksdb_reset_stats OFF
|
||||
rocksdb_rollback_on_timeout OFF
|
||||
rocksdb_rpl_skip_tx_api OFF
|
||||
rocksdb_seconds_between_stat_computes 3600
|
||||
rocksdb_signal_drop_index_thread OFF
|
||||
rocksdb_sim_cache_size 0
|
||||
rocksdb_skip_bloom_filter_on_read OFF
|
||||
rocksdb_skip_fill_cache OFF
|
||||
rocksdb_skip_locks_if_skip_unique_check OFF
|
||||
rocksdb_sst_mgr_rate_bytes_per_sec 0
|
||||
rocksdb_stats_dump_period_sec 600
|
||||
rocksdb_stats_level 1
|
||||
rocksdb_stats_recalc_rate 0
|
||||
rocksdb_store_row_debug_checksums OFF
|
||||
rocksdb_table_cache_numshardbits 6
|
||||
rocksdb_table_stats_background_thread_nice_value 19
|
||||
rocksdb_table_stats_max_num_rows_scanned 0
|
||||
rocksdb_table_stats_recalc_threshold_count 100
|
||||
rocksdb_table_stats_recalc_threshold_pct 10
|
||||
rocksdb_table_stats_sampling_pct 10
|
||||
rocksdb_table_stats_skip_system_cf OFF
|
||||
rocksdb_table_stats_use_table_scan OFF
|
||||
rocksdb_tmpdir
|
||||
rocksdb_trace_block_cache_access
|
||||
rocksdb_trace_queries
|
||||
rocksdb_trace_sst_api OFF
|
||||
rocksdb_track_and_verify_wals_in_manifest ON
|
||||
rocksdb_two_write_queues ON
|
||||
rocksdb_unsafe_for_binlog OFF
|
||||
rocksdb_update_cf_options
|
||||
rocksdb_use_adaptive_mutex OFF
|
||||
rocksdb_use_default_sk_cf OFF
|
||||
rocksdb_use_direct_io_for_flush_and_compaction OFF
|
||||
rocksdb_use_direct_reads OFF
|
||||
rocksdb_use_fsync OFF
|
||||
rocksdb_use_hyper_clock_cache OFF
|
||||
rocksdb_use_io_uring OFF
|
||||
rocksdb_use_write_buffer_manager OFF
|
||||
rocksdb_validate_tables 1
|
||||
rocksdb_verify_row_debug_checksums OFF
|
||||
rocksdb_wal_bytes_per_sync 0
|
||||
rocksdb_wal_dir
|
||||
rocksdb_wal_recovery_mode 2
|
||||
rocksdb_wal_size_limit_mb 0
|
||||
rocksdb_wal_ttl_seconds 0
|
||||
rocksdb_whole_key_filtering ON
|
||||
rocksdb_write_batch_flush_threshold 0
|
||||
rocksdb_write_batch_max_bytes 0
|
||||
rocksdb_write_disable_wal OFF
|
||||
rocksdb_write_ignore_missing_column_families OFF
|
||||
rocksdb_write_policy write_committed
|
||||
rocksdb_wsenv_path
|
||||
rpl_read_size 8192
|
||||
rpl_stop_replica_timeout 31536000
|
||||
rpl_stop_slave_timeout 31536000
|
||||
schema_definition_cache 256
|
||||
secondary_engine_cost_threshold 100000.000000
|
||||
secure_file_priv /var/lib/mysql/
|
||||
secure_log_path
|
||||
select_into_buffer_size 131072
|
||||
select_into_disk_sync OFF
|
||||
select_into_disk_sync_delay 0
|
||||
server_id 1
|
||||
server_id_bits 32
|
||||
server_uuid 8d728801-00b7-11ee-8f27-7404f1a10a4a
|
||||
session_track_gtids OFF
|
||||
session_track_schema ON
|
||||
session_track_state_change OFF
|
||||
session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection
|
||||
session_track_transaction_info OFF
|
||||
set_operations_buffer_size 262144
|
||||
sha256_password_auto_generate_rsa_keys ON
|
||||
sha256_password_private_key_path private_key.pem
|
||||
sha256_password_proxy_users OFF
|
||||
sha256_password_public_key_path public_key.pem
|
||||
show_create_table_verbosity OFF
|
||||
show_gipk_in_create_table_and_information_schema ON
|
||||
skip_external_locking ON
|
||||
skip_name_resolve OFF
|
||||
skip_networking OFF
|
||||
skip_replica_start OFF
|
||||
skip_show_database OFF
|
||||
skip_slave_start OFF
|
||||
slave_allow_batching ON
|
||||
slave_checkpoint_group 512
|
||||
slave_checkpoint_period 300
|
||||
slave_compressed_protocol OFF
|
||||
slave_exec_mode STRICT
|
||||
slave_load_tmpdir /tmp
|
||||
slave_max_allowed_packet 1073741824
|
||||
slave_net_timeout 60
|
||||
slave_parallel_type LOGICAL_CLOCK
|
||||
slave_parallel_workers 4
|
||||
slave_pending_jobs_size_max 134217728
|
||||
slave_preserve_commit_order ON
|
||||
slave_skip_errors OFF
|
||||
slave_sql_verify_checksum ON
|
||||
slave_transaction_retries 10
|
||||
slave_type_conversions
|
||||
slow_launch_time 2
|
||||
slow_query_log OFF
|
||||
slow_query_log_always_write_time 10.000000
|
||||
slow_query_log_file /var/lib/mysql/s76-slow.log
|
||||
slow_query_log_use_global_control
|
||||
socket /var/run/mysqld/mysqld.sock
|
||||
sort_buffer_size 262144
|
||||
source_verify_checksum OFF
|
||||
sql_auto_is_null OFF
|
||||
sql_big_selects ON
|
||||
sql_buffer_result OFF
|
||||
sql_generate_invisible_primary_key OFF
|
||||
sql_log_off OFF
|
||||
sql_mode ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
|
||||
sql_notes ON
|
||||
sql_quote_show_create ON
|
||||
sql_replica_skip_counter 0
|
||||
sql_require_primary_key OFF
|
||||
sql_safe_updates OFF
|
||||
sql_select_limit 18446744073709551615
|
||||
sql_slave_skip_counter 0
|
||||
sql_warnings OFF
|
||||
ssl_ca ca.pem
|
||||
ssl_capath
|
||||
ssl_cert server-cert.pem
|
||||
ssl_cipher
|
||||
ssl_crl
|
||||
ssl_crlpath
|
||||
ssl_fips_mode OFF
|
||||
ssl_key server-key.pem
|
||||
ssl_session_cache_mode ON
|
||||
ssl_session_cache_timeout 300
|
||||
stored_program_cache 256
|
||||
stored_program_definition_cache 256
|
||||
super_read_only OFF
|
||||
sync_binlog 1
|
||||
sync_master_info 10000
|
||||
sync_relay_log 10000
|
||||
sync_relay_log_info 10000
|
||||
sync_source_info 10000
|
||||
system_time_zone +03
|
||||
table_definition_cache 2000
|
||||
table_encryption_privilege_check OFF
|
||||
table_open_cache 4000
|
||||
table_open_cache_instances 16
|
||||
table_open_cache_triggers 524288
|
||||
tablespace_definition_cache 256
|
||||
temptable_max_mmap 0
|
||||
temptable_max_ram 2017911273
|
||||
temptable_use_mmap OFF
|
||||
terminology_use_previous NONE
|
||||
tf_sequence_table_max_upper_bound 1048576
|
||||
thread_cache_size 9
|
||||
thread_handling one-thread-per-connection
|
||||
thread_pool_high_prio_mode transactions
|
||||
thread_pool_high_prio_tickets 4294967295
|
||||
thread_pool_idle_timeout 60
|
||||
thread_pool_max_threads 100000
|
||||
thread_pool_oversubscribe 3
|
||||
thread_pool_size 16
|
||||
thread_pool_stall_limit 500
|
||||
thread_stack 1048576
|
||||
thread_statistics OFF
|
||||
time_zone SYSTEM
|
||||
tls_certificates_enforced_validation OFF
|
||||
tls_ciphersuites
|
||||
tls_version TLSv1.2,TLSv1.3
|
||||
tmp_table_size 16777216
|
||||
tmpdir /tmp
|
||||
transaction_alloc_block_size 8192
|
||||
transaction_isolation REPEATABLE-READ
|
||||
transaction_prealloc_size 4096
|
||||
transaction_read_only OFF
|
||||
unique_checks ON
|
||||
updatable_views_with_limit YES
|
||||
userstat OFF
|
||||
version 8.4.5-5
|
||||
version_comment Percona Server (GPL), Release '5', Revision '3d3abca6'
|
||||
version_compile_machine x86_64
|
||||
version_compile_os Linux
|
||||
version_compile_zlib 1.3.1
|
||||
version_suffix
|
||||
wait_timeout 28800
|
||||
windowing_use_high_precision ON
|
||||
xa_detach_on_prepare ON
|
||||
internal::nice_of_357384 0
|
||||
internal::oom_of_357384 0
|
||||
internal::nice_of_81695 0
|
||||
internal::oom_of_81695 1
|
||||
internal::nice_of_80852 0
|
||||
internal::oom_of_80852 1
|
||||
internal::nice_of_80592 0
|
||||
internal::oom_of_80592 1
|
||||
pt-summary-internal-pid_file_exists 1
|
||||
pt-summary-internal-current_time 2025-08-29 14:26
|
||||
pt-summary-internal-Config_File_path /etc/mysql/my.cnf
|
||||
pt-summary-internal-mysql_executable /usr/bin/mysql
|
||||
pt-summary-internal-now 2025-08-29 14:58:22
|
||||
pt-summary-internal-user sveta@%
|
||||
pt-summary-internal-FNV_64 Unknown
|
||||
pt-summary-internal-trigger_count 8
|
||||
pt-summary-internal-mysqld_executable_1 Yes
|
||||
pt-summary-internal-mysqld_executable_2 No
|
||||
pt-summary-internal-jemalloc_enabled_for_pid_357384 0
|
||||
pt-summary-internal-jemalloc_enabled_for_pid_81695 1
|
||||
pt-summary-internal-jemalloc_enabled_for_pid_80852 1
|
||||
pt-summary-internal-jemalloc_enabled_for_pid_80592 1
|
||||
pt-summary-internal-jemalloc_location /usr/lib/x86_64-linux-gnu/libjemalloc.so.2
|
5
t/pt-mysql-summary/samples/mysqld-instances-pt-2322
Normal file
5
t/pt-mysql-summary/samples/mysqld-instances-pt-2322
Normal file
@@ -0,0 +1,5 @@
|
||||
PID TTY STAT TIME COMMAND
|
||||
80592 pts/0 Sl 3:14 /home/sveta/mysqlpackages/Percona-Server-8.0.39-30-Linux.x86_64.glibc2.35/bin/mysqld --defaults-file=/tmp/12345/my.sandbox.cnf -u root --init-file /tmp/12345/mysql-init --plugin-dir=/home/sveta/mysqlpackages/Percona-Server-8.0.39-30-Linux.x86_64.glibc2.35/lib/plugin/ --early-plugin-load=keyring_file.so --loose-keyring_file_data=/tmp/12345/data/keyring
|
||||
80852 pts/0 Sl 3:32 /home/sveta/mysqlpackages/Percona-Server-8.0.39-30-Linux.x86_64.glibc2.35/bin/mysqld --defaults-file=/tmp/12346/my.sandbox.cnf -u root --init-file /tmp/12346/mysql-init --plugin-dir=/home/sveta/mysqlpackages/Percona-Server-8.0.39-30-Linux.x86_64.glibc2.35/lib/plugin/ --early-plugin-load=keyring_file.so --loose-keyring_file_data=/tmp/12346/data/keyring
|
||||
81695 pts/0 Sl 3:22 /home/sveta/mysqlpackages/Percona-Server-8.0.39-30-Linux.x86_64.glibc2.35/bin/mysqld --defaults-file=/tmp/12347/my.sandbox.cnf -u root --init-file /tmp/12347/mysql-init --plugin-dir=/home/sveta/mysqlpackages/Percona-Server-8.0.39-30-Linux.x86_64.glibc2.35/lib/plugin/ --early-plugin-load=keyring_file.so --loose-keyring_file_data=/tmp/12347/data/keyring
|
||||
357384 ? Ssl 0:17 /usr/sbin/mysqld
|
87
t/pt-online-schema-change/mariadb_flavour_105_plus.t
Executable file
87
t/pt-online-schema-change/mariadb_flavour_105_plus.t
Executable file
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
BEGIN {
|
||||
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
|
||||
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
|
||||
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
|
||||
};
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => 'all';
|
||||
use Test::More;
|
||||
use PerconaTest;
|
||||
use File::Temp qw(tempfile);
|
||||
|
||||
use Data::Dumper;
|
||||
use PerconaTest;
|
||||
use Sandbox;
|
||||
|
||||
require "$trunk/bin/pt-online-schema-change";
|
||||
|
||||
my $dp = new DSNParser(opts=>$dsn_opts);
|
||||
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
|
||||
my $dbh = $sb->get_dbh_for('source', { mysql_ssl => 0 });
|
||||
|
||||
my $db_flavor = VersionParser->new($dbh)->flavor();
|
||||
|
||||
if ( $sandbox_version lt 10.5 || $db_flavor !~ m/maria/i ) {
|
||||
plan skip_all => "Test requires MariaDB 10.5+";
|
||||
}
|
||||
else {
|
||||
plan tests => 4;
|
||||
}
|
||||
|
||||
# Prepare database and table
|
||||
diag("Creating test database and table...");
|
||||
$dbh->do("DROP DATABASE IF EXISTS test_flavor");
|
||||
$dbh->do("CREATE DATABASE test_flavor");
|
||||
$dbh->do("USE test_flavor");
|
||||
$dbh->do("CREATE TABLE test_table (id INT PRIMARY KEY AUTO_INCREMENT, test_column VARCHAR(255))");
|
||||
$dbh->do("INSERT INTO test_table VALUES(1, 'foobar')");
|
||||
$dbh->do("COMMIT");
|
||||
|
||||
# Run pt-online-schema-change with your full options
|
||||
my ($output, $exit_code) = full_output(
|
||||
sub { pt_online_schema_change::main(
|
||||
"D=test_flavor,t=test_table,h=127.1,P=12345,u=msandbox,p=msandbox,s=0",
|
||||
"--alter", "ADD INDEX test_column_idx (test_column)",
|
||||
qw(--execute)
|
||||
)
|
||||
},
|
||||
);
|
||||
|
||||
is(
|
||||
$exit_code,
|
||||
0,
|
||||
"pt-online-schema-change executed successfully"
|
||||
);
|
||||
|
||||
unlike(
|
||||
$output,
|
||||
qr/flavor mismatch|not supported/i,
|
||||
"No flavor mismatch or unsupported error"
|
||||
) or diag($output);
|
||||
|
||||
# Confirm index exists
|
||||
$output = `/tmp/12345/use -Ne "SELECT COUNT(*) FROM information_schema.STATISTICS WHERE INDEX_NAME = 'test_column_idx' AND TABLE_SCHEMA = 'test_flavor' AND TABLE_NAME = 'test_table'" 2>/dev/null`;
|
||||
|
||||
chomp $output;
|
||||
|
||||
is(
|
||||
$output,
|
||||
1,
|
||||
"Index 'test_column_idx' created"
|
||||
);
|
||||
|
||||
# Cleanup
|
||||
#$dbh->do("DROP DATABASE test_flavor");
|
||||
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
|
||||
$sb->wipe_clean($dbh);
|
||||
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
|
||||
|
||||
done_testing;
|
||||
|
106
t/pt-online-schema-change/pt-1423.t
Normal file
106
t/pt-online-schema-change/pt-1423.t
Normal file
@@ -0,0 +1,106 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
BEGIN {
|
||||
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
|
||||
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
|
||||
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
|
||||
};
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => 'all';
|
||||
use English qw(-no_match_vars);
|
||||
use Test::More;
|
||||
|
||||
use Data::Dumper;
|
||||
use PerconaTest;
|
||||
use Sandbox;
|
||||
|
||||
require "$trunk/bin/pt-online-schema-change";
|
||||
|
||||
my $dp = new DSNParser(opts=>$dsn_opts);
|
||||
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
|
||||
my $source_dbh = $sb->get_dbh_for('source');
|
||||
|
||||
if ( !$source_dbh ) {
|
||||
plan skip_all => 'Cannot connect to sandbox source';
|
||||
}
|
||||
|
||||
# The sandbox servers run with lock_wait_timeout=3 and it's not dynamic
|
||||
# so we need to specify --set-vars innodb_lock_wait_timeout=3 else the
|
||||
# tool will die.
|
||||
my $source_dsn = 'h=127.1,P=12345,u=msandbox,p=msandbox';
|
||||
my @args = (qw(--set-vars innodb_lock_wait_timeout=3));
|
||||
my $sample = "t/pt-online-schema-change/samples/";
|
||||
my $plugin = "$trunk/$sample/plugins";
|
||||
my $output;
|
||||
my $exit_status;
|
||||
|
||||
$sb->load_file('source', "$sample/basic_no_fks.sql");
|
||||
|
||||
# Should be big enough, so we can watch how number of chunks changes with different options
|
||||
my $num_rows = 5000;
|
||||
diag("Loading $num_rows into the table. This might take some time.");
|
||||
diag(`util/mysql_random_data_load --host=127.0.0.1 --port=12345 --user=msandbox --password=msandbox pt_osc t $num_rows`);
|
||||
|
||||
($output, $exit_status) = full_output(
|
||||
sub { pt_online_schema_change::main(@args,
|
||||
"$source_dsn,D=pt_osc,t=t",
|
||||
'--progress', 'iterations,1',
|
||||
"--alter", "FORCE",
|
||||
'--chunk-size=100',
|
||||
'--execute') },
|
||||
stderr => 1,
|
||||
);
|
||||
|
||||
my $chunks = () = $output =~ /Copying `pt_osc`.`t`:\s+\d+% \d\d:\d\d remain/gi;
|
||||
|
||||
is(
|
||||
$chunks,
|
||||
51,
|
||||
'Chunk size was not modified with default --chunk-time'
|
||||
) or diag($chunks, $output);
|
||||
|
||||
($output, $exit_status) = full_output(
|
||||
sub { pt_online_schema_change::main(@args,
|
||||
"$source_dsn,D=pt_osc,t=t",
|
||||
'--progress', 'iterations,1',
|
||||
"--alter", "FORCE",
|
||||
'--chunk-size=100',
|
||||
'--chunk-time=0',
|
||||
'--execute') },
|
||||
stderr => 1,
|
||||
);
|
||||
|
||||
$chunks = () = $output =~ /Copying `pt_osc`.`t`:\s+\d+% \d\d:\d\d remain/gi;
|
||||
|
||||
is(
|
||||
$chunks,
|
||||
51,
|
||||
'Chunk size was not modified with --chunk-time=0'
|
||||
) or diag($chunks, $output);
|
||||
|
||||
($output, $exit_status) = full_output(
|
||||
sub { pt_online_schema_change::main(@args,
|
||||
"$source_dsn,D=pt_osc,t=t",
|
||||
'--progress', 'iterations,1',
|
||||
"--alter", "FORCE",
|
||||
'--chunk-size=100',
|
||||
'--chunk-time=0.5',
|
||||
'--execute') },
|
||||
stderr => 1,
|
||||
);
|
||||
|
||||
$chunks = () = $output =~ /Copying `pt_osc`.`t`:\s+\d+% \d\d:\d\d remain/gi;
|
||||
|
||||
is(
|
||||
$chunks,
|
||||
2,
|
||||
'Chunk size was adjusted to fit specified --chunk-time'
|
||||
) or diag($chunks, $output);
|
||||
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
$sb->wipe_clean($source_dbh);
|
||||
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
|
||||
done_testing;
|
@@ -312,7 +312,7 @@ sub test_alter_table {
|
||||
$orig_triggers,
|
||||
$new_triggers,
|
||||
'Triggers should remain in place',
|
||||
);
|
||||
) or diag($output);
|
||||
|
||||
return;
|
||||
}
|
||||
|
156
t/pt-online-schema-change/pt-2305.t
Normal file
156
t/pt-online-schema-change/pt-2305.t
Normal file
@@ -0,0 +1,156 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
BEGIN {
|
||||
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
|
||||
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
|
||||
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
|
||||
};
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => 'all';
|
||||
use English qw(-no_match_vars);
|
||||
use Test::More;
|
||||
|
||||
use Data::Dumper;
|
||||
use PerconaTest;
|
||||
use Sandbox;
|
||||
|
||||
require "$trunk/bin/pt-online-schema-change";
|
||||
|
||||
my $dp = new DSNParser(opts=>$dsn_opts);
|
||||
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
|
||||
my $source_dbh = $sb->get_dbh_for('source');
|
||||
my $replica_dbh = $sb->get_dbh_for('replica1');
|
||||
|
||||
if ( !$source_dbh ) {
|
||||
plan skip_all => 'Cannot connect to sandbox source';
|
||||
}
|
||||
elsif ( !$replica_dbh ) {
|
||||
plan skip_all => 'Cannot connect to sandbox replica1';
|
||||
}
|
||||
|
||||
my $source_dsn = 'h=127.1,P=12345,u=msandbox,p=msandbox';
|
||||
my $replica_dsn = 'h=127.0.0.1,P=12346,u=msandbox,p=msandbox';
|
||||
my $output;
|
||||
my $exit_code;
|
||||
my $sample = "t/pt-online-schema-change/samples/";
|
||||
|
||||
my ($orig_binlog_format) = $source_dbh->selectrow_array(q{SELECT @@global.binlog_format});
|
||||
|
||||
$source_dbh->do("SET GLOBAL binlog_format = 'STATEMENT'");
|
||||
|
||||
($output, $exit_code) = full_output(
|
||||
sub { pt_online_schema_change::main("$replica_dsn,D=sakila,t=actor",
|
||||
'--alter', 'FORCE', '--execute',
|
||||
'--alter-foreign-keys-method', 'auto') }
|
||||
);
|
||||
|
||||
is(
|
||||
$exit_code,
|
||||
0,
|
||||
"pt-online-schema-change run successfully with binlog_format=STATEMENT"
|
||||
) or diag($output);
|
||||
|
||||
like(
|
||||
$output,
|
||||
qr/Altering `sakila`.`actor`/,
|
||||
"Expected output of pt-online-schema-change with binlog_format=STATEMENT"
|
||||
) or diag($output);
|
||||
|
||||
$source_dbh->do("SET GLOBAL binlog_format = 'ROW'");
|
||||
|
||||
($output, $exit_code) = full_output(
|
||||
sub { pt_online_schema_change::main("$replica_dsn,D=sakila,t=actor",
|
||||
'--alter', 'FORCE', '--execute',
|
||||
'--alter-foreign-keys-method', 'auto') }
|
||||
);
|
||||
|
||||
is(
|
||||
$exit_code,
|
||||
3,
|
||||
"pt-online-schema-change failed with binlog_format=ROW"
|
||||
) or diag($output);
|
||||
|
||||
like(
|
||||
$output,
|
||||
qr/running with binary log format ROW.*Exiting./s,
|
||||
"Expected output of pt-online-schema-change with binlog_format=ROW"
|
||||
) or diag($output);
|
||||
|
||||
($output, $exit_code) = full_output(
|
||||
sub { pt_online_schema_change::main("$replica_dsn,D=sakila,t=actor",
|
||||
'--alter', 'FORCE', '--execute',
|
||||
'--alter-foreign-keys-method', 'auto',
|
||||
'--force') }
|
||||
);
|
||||
|
||||
is(
|
||||
$exit_code,
|
||||
0,
|
||||
"pt-online-schema-change run successfully with binlog_format=ROW and --force"
|
||||
) or diag($output);
|
||||
|
||||
like(
|
||||
$output,
|
||||
qr/Altering `sakila`.`actor`/,
|
||||
"Expected output of pt-online-schema-change with binlog_format=ROW and --force"
|
||||
) or diag($output);
|
||||
|
||||
unlike(
|
||||
$output,
|
||||
qr/running with binary log format ROW.*Exiting./s,
|
||||
"No error for pt-online-schema-change with binlog_format=ROW and --force"
|
||||
) or diag($output);
|
||||
|
||||
$source_dbh->do("SET GLOBAL binlog_format = 'MIXED'");
|
||||
|
||||
($output, $exit_code) = full_output(
|
||||
sub { pt_online_schema_change::main("$replica_dsn,D=sakila,t=actor",
|
||||
'--alter', 'FORCE', '--execute',
|
||||
'--alter-foreign-keys-method', 'auto') }
|
||||
);
|
||||
|
||||
is(
|
||||
$exit_code,
|
||||
3,
|
||||
"pt-online-schema-change failed with binlog_format=MIXED"
|
||||
) or diag($output);
|
||||
|
||||
like(
|
||||
$output,
|
||||
qr/running with binary log format MIXED.*Exiting./s,
|
||||
"Expected output of pt-online-schema-change with binlog_format=MIXED"
|
||||
) or diag($output);
|
||||
|
||||
($output, $exit_code) = full_output(
|
||||
sub { pt_online_schema_change::main("$replica_dsn,D=sakila,t=actor",
|
||||
'--alter', 'FORCE', '--execute',
|
||||
'--alter-foreign-keys-method', 'auto',
|
||||
'--force') }
|
||||
);
|
||||
|
||||
is(
|
||||
$exit_code,
|
||||
0,
|
||||
"pt-online-schema-change run successfully with binlog_format=MIXED and --force"
|
||||
) or diag($output);
|
||||
|
||||
like(
|
||||
$output,
|
||||
qr/Altering `sakila`.`actor`/,
|
||||
"Expected output of pt-online-schema-change with binlog_format=MIXED and --force"
|
||||
) or diag($output);
|
||||
|
||||
unlike(
|
||||
$output,
|
||||
qr/running with binary log format ROW.*Exiting./s,
|
||||
"No error for pt-online-schema-change with binlog_format=MIXED and --force"
|
||||
) or diag($output);
|
||||
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
$source_dbh->do("SET GLOBAL binlog_format = '${orig_binlog_format}'");
|
||||
$sb->wipe_clean($source_dbh);
|
||||
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
|
||||
done_testing;
|
@@ -84,7 +84,7 @@ unlike(
|
||||
);
|
||||
|
||||
$output = output(
|
||||
sub { pt_show_grants::main('-F', $cnf, '--ignore', 'baron,msandbox,root,root@localhost,user,mysql.session@localhost,mysql.sys@localhost,sys,mysql.infoschema@localhost'); }
|
||||
sub { pt_show_grants::main('-F', $cnf, '--ignore', 'baron,msandbox,root,root@localhost,user,mysql.session@localhost,mysql.sys@localhost,sys,mysql.infoschema@localhost,percona.telemetry@localhost'); }
|
||||
);
|
||||
unlike(
|
||||
$output,
|
||||
|
@@ -28,7 +28,7 @@ ERRORS DIFFS ROWS SKIPPED TABLE
|
||||
0 0 0 0 mysql.time_zone_name
|
||||
0 0 0 0 mysql.time_zone_transition
|
||||
0 0 0 0 mysql.time_zone_transition_type
|
||||
0 1 5 0 mysql.user
|
||||
0 1 6 0 mysql.user
|
||||
0 0 29 0 percona_test.checksums
|
||||
0 0 1 0 percona_test.sentinel
|
||||
0 0 200 0 sakila.actor
|
||||
|
@@ -28,7 +28,7 @@ ERRORS DIFFS ROWS SKIPPED TABLE
|
||||
0 0 0 0 mysql.time_zone_name
|
||||
0 0 0 0 mysql.time_zone_transition
|
||||
0 0 0 0 mysql.time_zone_transition_type
|
||||
0 1 5 0 mysql.user
|
||||
0 1 6 0 mysql.user
|
||||
0 0 29 0 percona_test.checksums
|
||||
0 0 1 0 percona_test.sentinel
|
||||
0 0 200 0 sakila.actor
|
||||
|
@@ -147,7 +147,7 @@ foreach my $args (
|
||||
my $stm = $args->[-1] eq '--sync-to-source' ? ' --sync-to-source' : '';
|
||||
|
||||
test_filters(
|
||||
name => $stm . "--replicate --tables t1",
|
||||
name => $stm . " --replicate --tables t1",
|
||||
cmds => [@$args,
|
||||
qw(--tables t1)],
|
||||
res => [qw(d1.t1 d2.t1 percona.checksums)],
|
||||
|
@@ -104,12 +104,12 @@ if ($sandbox_version ge '5.7' and $sandbox_version lt '8.0') {
|
||||
[
|
||||
2,
|
||||
[ 'mysql.infoschema' ],
|
||||
[ 'mysql.sys' ]
|
||||
[ 'percona.telemetry' ]
|
||||
],
|
||||
[
|
||||
4,
|
||||
[ 'mysql.sys' ],
|
||||
[ 'mysql.infoschema' ]
|
||||
3,
|
||||
[ 'mysql.session' ],
|
||||
[ 'mysql.sys' ]
|
||||
]
|
||||
];
|
||||
}
|
||||
@@ -146,7 +146,7 @@ if ($sandbox_version ge '5.7' and $sandbox_version lt '8.0') {
|
||||
} elsif ($sandbox_version ge '8.0') {
|
||||
$expect =[
|
||||
[
|
||||
4,
|
||||
5,
|
||||
undef,
|
||||
[
|
||||
[ 'mysql.infoschema' ],
|
||||
@@ -189,7 +189,7 @@ if ($sandbox_version ge '5.7' and $sandbox_version lt '8.0') {
|
||||
} elsif ($sandbox_version ge '8.0') {
|
||||
$expect =[
|
||||
[
|
||||
4,
|
||||
5,
|
||||
[
|
||||
[
|
||||
'mysql.infoschema'
|
||||
|
Reference in New Issue
Block a user