polardbxengine/man/ndb_size.pl.1

412 lines
12 KiB
Groff

'\" t
.\" Title: \fBndb_size.pl\fR
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 09/06/2019
.\" Manual: MySQL Database System
.\" Source: MySQL 8.0
.\" Language: English
.\"
.TH "\FBNDB_SIZE\&.PL\FR" "1" "09/06/2019" "MySQL 8\&.0" "MySQL Database System"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
ndb_size.pl \- NDBCLUSTER Size Requirement Estimator
.SH "SYNOPSIS"
.HP \w'\fBndb_size\&.pl\ \fR\fB\fIarguments\fR\fR\ 'u
\fBndb_size\&.pl \fR\fB\fIarguments\fR\fR
.SH "DESCRIPTION"
.PP
This is a Perl script that can be used to estimate the amount of space that would be required by a MySQL database if it were converted to use the
NDBCLUSTER
storage engine\&. Unlike the other utilities discussed in this section, it does not require access to an NDB Cluster (in fact, there is no reason for it to do so)\&. However, it does need to access the MySQL server on which the database to be tested resides\&.
Requirements
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
A running MySQL server\&. The server instance does not have to provide support for NDB Cluster\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
A working installation of Perl\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The
DBI
module, which can be obtained from CPAN if it is not already part of your Perl installation\&. (Many Linux and other operating system distributions provide their own packages for this library\&.)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
A MySQL user account having the necessary privileges\&. If you do not wish to use an existing account, then creating one using
GRANT USAGE ON \fIdb_name\fR\&.*\(emwhere
\fIdb_name\fR
is the name of the database to be examined\(emis sufficient for this purpose\&.
.RE
.PP
ndb_size\&.pl
can also be found in the MySQL sources in
storage/ndb/tools\&.
.PP
The following table includes options that are specific to the NDB Cluster program
\fBndb_size\&.pl\fR\&. Additional descriptions follow the table\&. For options common to most NDB Cluster programs (including
\fBndb_size\&.pl\fR), see
Options Common to NDB Cluster Programs(1)\&.
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.B Table\ \&22.348.\ \&Command\-line options for the ndb_size\&.pl program
.TS
allbox tab(:);
lB lB lB.
T{
Format
T}:T{
Description
T}:T{
Added, Deprecated, or Removed
T}
.T&
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l.
T{
.PP
--database=dbname
T}:T{
The database or databases to examine; accepts a comma-delimited list;
the default is ALL (use all databases found on the server)
T}:T{
.PP
All NDB 8.0 releases
T}
T{
.PP
--hostname[:port]
T}:T{
Specify host and optional port as host[:port]
T}:T{
.PP
All NDB 8.0 releases
T}
T{
.PP
--socket=file_name
T}:T{
Specify a socket to connect to
T}:T{
.PP
All NDB 8.0 releases
T}
T{
.PP
--user=string
T}:T{
Specify a MySQL user name
T}:T{
.PP
All NDB 8.0 releases
T}
T{
.PP
--password=string
T}:T{
Specify a MySQL user password
T}:T{
.PP
All NDB 8.0 releases
T}
T{
.PP
--format=string
T}:T{
Set output format (text or HTML)
T}:T{
.PP
All NDB 8.0 releases
T}
T{
.PP
--excludetables=tbl_list
T}:T{
Skip any tables in a comma-separated list of tables
T}:T{
.PP
All NDB 8.0 releases
T}
T{
.PP
--excludedbs=db_list
T}:T{
Skip any databases in a comma-separated list of databases
T}:T{
.PP
All NDB 8.0 releases
T}
T{
.PP
--savequeries=file
T}:T{
Saves all queries to the database into the file specified
T}:T{
.PP
All NDB 8.0 releases
T}
T{
.PP
--loadqueries=file
T}:T{
Loads all queries from the file specified; does not connect to a
database
T}:T{
.PP
All NDB 8.0 releases
T}
T{
.PP
--real_table_name=table
T}:T{
Designates a table to handle unique index size calculations
T}:T{
.PP
All NDB 8.0 releases
T}
.TE
.sp 1
Usage
.sp
.if n \{\
.RS 4
.\}
.nf
perl ndb_size\&.pl [\-\-database={\fIdb_name\fR|ALL}] [\-\-hostname=\fIhost\fR[:\fIport\fR]] [\-\-socket=\fIsocket\fR] \e
[\-\-user=\fIuser\fR] [\-\-password=\fIpassword\fR] \e
[\-\-help|\-h] [\-\-format={html|text}] \e
[\-\-loadqueries=\fIfile_name\fR] [\-\-savequeries=\fIfile_name\fR]
.fi
.if n \{\
.RE
.\}
.PP
By default, this utility attempts to analyze all databases on the server\&. You can specify a single database using the
\fB\-\-database\fR
option; the default behavior can be made explicit by using
ALL
for the name of the database\&. You can also exclude one or more databases by using the
\fB\-\-excludedbs\fR
option with a comma\-separated list of the names of the databases to be skipped\&. Similarly, you can cause specific tables to be skipped by listing their names, separated by commas, following the optional
\fB\-\-excludetables\fR
option\&. A host name can be specified using
\fB\-\-hostname\fR; the default is
localhost\&. You can specify a port in addition to the host using
\fIhost\fR:\fIport\fR
format for the value of
\fB\-\-hostname\fR\&. The default port number is 3306\&. If necessary, you can also specify a socket; the default is
/var/lib/mysql\&.sock\&. A MySQL user name and password can be specified the corresponding options shown\&. It also possible to control the format of the output using the
\fB\-\-format\fR
option; this can take either of the values
html
or
text, with
text
being the default\&. An example of the text output is shown here:
.sp
.if n \{\
.RS 4
.\}
.nf
shell> \fBndb_size\&.pl \-\-database=test \-\-socket=/tmp/mysql\&.sock\fR
ndb_size\&.pl report for database: \*(Aqtest\*(Aq (1 tables)
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
Connected to: DBI:mysql:host=localhost;mysql_socket=/tmp/mysql\&.sock
Including information for versions: 4\&.1, 5\&.0, 5\&.1
test\&.t1
\-\-\-\-\-\-\-
DataMemory for Columns (* means varsized DataMemory):
Column Name Type Varsized Key 4\&.1 5\&.0 5\&.1
HIDDEN_NDB_PKEY bigint PRI 8 8 8
c2 varchar(50) Y 52 52 4*
c1 int(11) 4 4 4
\-\- \-\- \-\-
Fixed Size Columns DM/Row 64 64 12
Varsize Columns DM/Row 0 0 4
DataMemory for Indexes:
Index Name Type 4\&.1 5\&.0 5\&.1
PRIMARY BTREE 16 16 16
\-\- \-\- \-\-
Total Index DM/Row 16 16 16
IndexMemory for Indexes:
Index Name 4\&.1 5\&.0 5\&.1
PRIMARY 33 16 16
\-\- \-\- \-\-
Indexes IM/Row 33 16 16
Summary (for THIS table):
4\&.1 5\&.0 5\&.1
Fixed Overhead DM/Row 12 12 16
NULL Bytes/Row 4 4 4
DataMemory/Row 96 96 48
(Includes overhead, bitmap and indexes)
Varsize Overhead DM/Row 0 0 8
Varsize NULL Bytes/Row 0 0 4
Avg Varside DM/Row 0 0 16
No\&. Rows 0 0 0
Rows/32kb DM Page 340 340 680
Fixedsize DataMemory (KB) 0 0 0
Rows/32kb Varsize DM Page 0 0 2040
Varsize DataMemory (KB) 0 0 0
Rows/8kb IM Page 248 512 512
IndexMemory (KB) 0 0 0
Parameter Minimum Requirements
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
* indicates greater than default
Parameter Default 4\&.1 5\&.0 5\&.1
DataMemory (KB) 81920 0 0 0
NoOfOrderedIndexes 128 1 1 1
NoOfTables 128 1 1 1
IndexMemory (KB) 18432 0 0 0
NoOfUniqueHashIndexes 64 0 0 0
NoOfAttributes 1000 3 3 3
NoOfTriggers 768 5 5 5
.fi
.if n \{\
.RE
.\}
.PP
For debugging purposes, the Perl arrays containing the queries run by this script can be read from the file specified using can be saved to a file using
\fB\-\-savequeries\fR; a file containing such arrays to be read during script execution can be specified using
\fB\-\-loadqueries\fR\&. Neither of these options has a default value\&.
.PP
To produce output in HTML format, use the
\fB\-\-format\fR
option and redirect the output to a file, as shown here:
.sp
.if n \{\
.RS 4
.\}
.nf
shell> \fBndb_size\&.pl \-\-database=test \-\-socket=/tmp/mysql\&.sock \-\-format=html > ndb_size\&.html\fR
.fi
.if n \{\
.RE
.\}
.PP
(Without the redirection, the output is sent to
stdout\&.)
.PP
The output from this script includes the following information:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Minimum values for the
DataMemory,
IndexMemory,
MaxNoOfTables,
MaxNoOfAttributes,
MaxNoOfOrderedIndexes, and
MaxNoOfTriggers
configuration parameters required to accommodate the tables analyzed\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Memory requirements for all of the tables, attributes, ordered indexes, and unique hash indexes defined in the database\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The
IndexMemory
and
DataMemory
required per table and table row\&.
.RE
.SH "COPYRIGHT"
.br
.PP
Copyright \(co 1997, 2019, Oracle and/or its affiliates. All rights reserved.
.PP
This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
.PP
This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
.PP
You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/.
.sp
.SH "SEE ALSO"
For more information, please refer to the MySQL Reference Manual,
which may already be installed locally and which is also available
online at http://dev.mysql.com/doc/.
.SH AUTHOR
Oracle Corporation (http://dev.mysql.com/).