GREATEST/LEAST函数

GREATEST
greatest( expr1, expr2, … expr_n )
expr1, expr2, . expr_n 可以是值也可以是函数.
函数功能: 取得值最大值
SQL> SELECT GREATEST(10,21,3,15,18) FROM dual;
GREATEST(10,21,3,15,18)
———————–
21
SQL> SELECT GREATEST(‘abc’,’bca’,’cba’,’bac’,’cabb’,’cbaa’) FROM dual;
GREATEST(‘ABC’,’BCA’,’CBA’,’BA
——————————
cbaa
LEAST
least( expr1, expr2, … expr_n )
expr1, expr2, . expr_n 可以是值也可以是函数.
函数功能: 取得值最小值
SQL> SELECT least(10,21,3,15,18) FROM dual;
LEAST(10,21,3,15,18)
——————–
3
SQL> SELECT least(‘abc’,’bca’,’cba’,’a’,’bac’,’cabb’,’cbaa’) FROM dual;
LEAST(‘ABC’,’BCA’,’CBA’,’A’,’B
——————————
a

oracle 10g flashback

一、oracle falshback drop
利用flashback drop oracle10g可以对DDL操作进行恢复,oracla提供类似回收站的recyclebin来收集被删除的对象,其实对象在删除的时候oracle把对象写到一个数据字典表中,当用户不需要该对象的时候,可以利用purge命令来从回收站进行清除
select object_name,droptime,dropscn,purge_object,ORIGINAL_NAME from recyclebin;
flashback table f_drop to before drop;
清空回收站:
1)清空一张表:purge table “BIN$N+i42FTvSSemvMrH6frCQg==$0″/table_name;
2)清空一个index:purge index index_name;
2)清空所有对象:PURGE recyclebin;
二、oracle falshback table
对于误drop的table此可以使用本操作,还原drop的table
select t_odu.*,ora_rowscn from a;–查询每条记录对应scn
select dbms_flashback.get_system_change_number from dual;–系统当前scn
alter table t_odu enable row movement;–table row movement
flashback table t_odu to scn 1831189;–基于scn恢复
flashback table t_odu to timestamp to_timestamp(‘2011-6-27 11:45:20′,’yyyy-mm-dd hh24:mi:ss’);–基于时间点
scn补充:
可以通过select ora_rowscn from table 得到每一条结果集当前的SCN,timestamp_to_scn()将scn转换到stmestamp;scn_to_timestamp()将timestamp转换到scn。
三、oracle falshback version query
racle10g falshback 能将所有做了提交的行进行记录,就类似于审计的功能,通过falshback可以查询什么时候执行了什么操作,非常方便,包括闪回版本的查询和审计等
select COUNT(*) from t_query as of scn 1831544;
SELECT COUNT(*) FROM t_query as of timestamp to_timestamp(‘2011-07-21 14:58:00′,’yyyy-mm-dd hh24:mi:ss’);
四、oracle falshback transaction query
回闪事务功能提供对过去某段时间内所完成的事务的查询和撤销
SELECT * FROM flashback_transaction_query a WHERE a.table_name=’T_QUERY’;
补充:
UNDO_SQL 就是当时对表T_QUERY的逆向操作语句

performing DML/DDL operation over object in bin错误模拟

1、alert文件中现象
Thu Jul 21 09:49:38 2011
performing DML/DDL operation over object in bin.
Thu Jul 21 09:51:02 2011
performing DML/DDL operation over object in bin.
2、开始模拟
1)确认回收站功能启用
SQL> show parameter recyclebin;
NAME TYPE VALUE
———————————— ———– ——————————
recyclebin string ON
如果是OFF,使用alter system set recyclebin=on;开启回收站功能
2)创建和删除表
SQL> create table t_drop
2 as
3 select * from tab;
Table created.
SQL> drop table t_drop;
Table dropped.
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
—————- —————————— ———— ——————-
T_DROP BIN$qIuF4JHvDJDgQKjADAsarA==$0 TABLE 2011-07-21:09:46:52
3)查看回收站表中数据
SQL> select * from “BIN$qIuF4JHvDJDgQKjADAsarA==$0”;
TNAME TABTYPE CLUSTERID
—————————— ——- ———-
T TABLE
TAB_CRM_CLIENT TABLE
TEST_COUNT TABLE
V_TEST VIEW
TEST TABLE
T_DROP TABLE
TAB_OLCM TABLE
7 rows selected.
4)对回收站中数据进行dml操作
SQL> delete from “BIN$qIuF4JHvDJDgQKjADAsarA==$0”;
delete from “BIN$qIuF4JHvDJDgQKjADAsarA==$0”
*
ERROR at line 1:
ORA-38301: can not perform DDL/DML over objects in Recycle Bin
5)对回收站中数据进行ddl操作
SQL> drop table “BIN$qIuF4JHvDJDgQKjADAsarA==$0”;
drop table “BIN$qIuF4JHvDJDgQKjADAsarA==$0”
*
ERROR at line 1:
ORA-38301: can not perform DDL/DML over objects in Recycle Bin
6)查看回收站,错误重现
Thu Jul 21 09:56:44 2011
performing DML/DDL operation over object in bin.
Thu Jul 21 09:57:19 2011
performing DML/DDL operation over object in bin.
7)说明
由于对回收站中的对象执行了dml或者ddl操作导致alert报类此做。在回收站中不能执行ddl或者dml操作

innobackupex增量备份测试

1、全备
/opt/mysql/product/5.5/bin/innobackupex –defaults-file=/etc/my.cnf –no-timestamp –socket=/var/run/mysqld/mysqld.sock –user=root –password=passw0rd /opt/mysql/mysql_bak/full
2、修改库中数据
mysql> create database fei;
Query OK, 1 row affected (0.03 sec)
mysql> use fei;
Database changed
mysql> create table t_1 as select * from information_schema.tables;
Query OK, 83 rows affected (0.20 sec)
Records: 83 Duplicates: 0 Warnings: 0
mysql> create table t_2 as select * from information_schema.tables;
Query OK, 84 rows affected (0.03 sec)
Records: 84 Duplicates: 0 Warnings: 0
mysql> create table t_3 as select * from information_schema.tables;
Query OK, 85 rows affected (0.04 sec)
Records: 85 Duplicates: 0 Warnings: 0
3、增量备份
/opt/mysql/product/5.5/bin/innobackupex –defaults-file=/etc/my.cnf –no-timestamp –socket=/var/run/mysqld/mysqld.sock –user=root –password=passw0rd –incremental –incremental-basedir=/opt/mysql/mysql_bak/full /opt/mysql/mysql_bak/inc
4、恢复全备
/opt/mysql/product/5.5/bin/innobackupex /opt/mysql/mysql_bak/full –apply-log
5、恢复增量备份
/opt/mysql/product/5.5/bin/innobackupex /opt/mysql/mysql_bak/full –incremental –incremental-dir=/opt/mysql/mysql_bak/inc –apply-log
6、还原数据库到默认目录
/opt/mysql/product/5.5/bin/innobackupex –defaults-file=/etc/my.cnf /opt/mysql/mysql_bak/full/ –copy-back
7、启动数据库测试
结论为:所有新创建的对象都没恢复成功
后来创建的库和表结构都不存在,在执行增量恢复的时候,有如下错误提示:
110719 11:49:57 InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
xtrabackup: error: cannot open /opt/mysql/mysql_bak/full/fei/t_2.ibd
xtrabackup: Error: xtrabackup_apply_delta() failed.
xtrabackup: page size for /opt/mysql/mysql_bak/inc/fei/t_3.ibd.delta is 16384 bytes
110719 11:49:57 InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
xtrabackup: error: cannot open /opt/mysql/mysql_bak/full/fei/t_3.ibd
xtrabackup: Error: xtrabackup_apply_delta() failed.
xtrabackup: page size for /opt/mysql/mysql_bak/inc/fei/t_1.ibd.delta is 16384 bytes
110719 11:49:57 InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
xtrabackup: error: cannot open /opt/mysql/mysql_bak/full/fei/t_1.ibd
xtrabackup: Error: xtrabackup_apply_delta() failed.
fei.*对象是在全备之后创建的,全备份集中并不存在,因此应用增量时就报了错,此时如果原始数据文件已经损坏,那么fei.*的数据就无法恢复了,因为缺少了其数据文件。innobackupex增量备份和恢复功能还不完善,有新增对象时会出错

mysql-cluster 7.x安装(linux)

一、整体规划
192.168.11.10(ndb)
192.168.11.11(ndb)
192.168.11.12(mgm)
192.168.11.13(sql)
192.168.11.14(sql)
二、安装mysql-cluster软件(root)
所有节点相同操作,如果没有mysql用户请创建mysql用户和组
groupadd mysql
useradd -g mysql mysql
上传至/tmp目录,开始解压安装
cd/tmp
tarxzvftarxzvfmysql-cluster-gpl-7.1.15-linux-x86_64-glibc23.tar.gz
mvmysql-cluster-gpl-7.1.15-linux-x86_64-glibc23/opt/mysql_cluster
chownmysql.mysql-R/opt/mysql_cluster
三、管理节点(mgm)配置(mysql)
配置mgm节点的config.ini文件
[NDBDDEFAULT]
NoOfReplicas=2
[NDB_MGMD]
NodeId=1
hostname=192.168.11.12
[NDBD]
NodeId=11
hostname=192.168.11.11
datadir=/opt/mysql_cluster/ndbdata
[NDBD]
NodeId=12
hostname=192.168.11.10
datadir=/opt/mysql_cluster/ndbdata
[MYSQLD]
NodeId=21
hostname=192.168.11.13
[MYSQLD]
NodeId=22
hostname=192.168.11.14
启动mgm节点
/opt/mysql_cluster/bin/ndb_mgmd -f /opt/mysql_cluster/config.ini –configdir=/opt/mysql_cluster
四、数据节点配置(mysql)
配置ndb节点参数(/opt/mysql_cluster/my.cnf)
[mysqld]
ndbcluster
ndb-connectstring=192.168.11.12
[mysql_cluster]
ndb-connectstring=192.168.11.12
创建ndbdata文件夹
mkdir /opt/mysql_cluster/ndbdata
启动ndb节点
/opt/mysql_cluster/bin/ndbd –defaults-file=/opt/mysql_cluster/my.cnf –initial
五、SQL节点配置(mysql)
初始化sql节点
/opt/mysql_cluster/scripts/mysql_install_db –user=mysql –datadir=/opt/mysql_cluster/data –basedir=/opt/mysql_cluster/
配置my.cnf文件(root)
mv /opt/mysql_cluster/my-large.cnf /etc/my.cnf
添加
[mysqld]
ndbcluster
ndb-connectstring=192.168.11.12
[mysql_cluster]
ndb-connectstring=192.168.11.12
修改mysql.server(mysql)
/opt/mysql_cluster/support-files/mysql.server中的datadir和basedir为
basedir=/opt/mysql_cluster
datadir=/opt/mysql_cluster/data
启动sql节点(mysql)
/opt/mysql_cluster/support-files/mysql.server start
六、查看集群状态(msyql)
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=11 @192.168.11.11 (mysql-5.1.56 ndb-7.1.15, Nodegroup: 0, Master)
id=12 @192.168.11.10 (mysql-5.1.56 ndb-7.1.15, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.11.12 (mysql-5.1.56 ndb-7.1.15)
[mysqld(API)] 2 node(s)
id=21 @192.168.11.13 (mysql-5.1.56 ndb-7.1.15)
id=22 @192.168.11.14 (mysql-5.1.56 ndb-7.1.15)

Rman的format格式中的%s参数说明

%c 备份片的拷贝数
%d 数据库名称
%D 位于该月中的第几天 (DD)
%M 位于该年中的第几月 (MM)
%F 一个基于DBID唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII为该数据库的DBID,YYYYMMDD为日期,QQ是一个1-256的序列
%n 数据库名称,向右填补到最大八个字符
%u 一个八个字符的名称代表备份集与创建时间
%p 该备份集中的备份片号,从1开始到创建的文件数
%U 一个唯一的文件名,代表%u_%p_%c
%s 备份集的号
%t 备份集时间戳
%T 年月日格式(YYYYMMDD)

mysql-cluster 7.x安装(windows)

mysql 集群配置(windows2台机器模拟)
1、环境规划
win7 192.168.1.1(管理节点,存储节点,sql节点)
win03 192.168.1.2(存储节点,sql节点)
2、安装cluster(zip包)
win7机器安装在D:\mysql-cluster中
win03机器安装在C:\mysql-cluster中
存储节点存储路径分别为:D:\mysql-cluster\ndbdata和C:\mysql-cluster\ndbdata
3、win7机器配置
创建D:\mysql-cluster\config.txt文件,内容为:
[NDBD DEFAULT]
NoOfReplicas=2
[NDB_MGMD]
ID=1
hostname=192.168.1.1
datadir=D:\mysql-cluster\data
[NDBD]
ID=21
hostname=192.168.1.1
datadir=D:\mysql-cluster\ndbdata
[NDBD]
ID=22
hostname=192.168.1.2
datadir=C:\mysql-cluster\ndbdata
[MYSQLD]
ID=11
hostname=192.168.1.1
[MYSQLD]
ID=12
hostname=192.168.1.2
复制D:\mysql-cluster\my-small.ini到c:\windows\my.ini并添加
[mysqld]
ndbcluster
ndb-connectstring=192.168.1.1
[mysql_cluster]
ndb-connectstring=192.168.1.1
4、win03机器配置
复制C:\mysql-cluster\my-small.ini到c:\windows\my.ini并添加
[mysqld]
ndbcluster
ndb-connectstring=192.168.1.1
[mysql_cluster]
ndb-connectstring=192.168.1.1
5、启动
5.1)启动管理节点(win7 上)
D:\mysql-cluster\bin>ndb_mgmd.exe –config-file=D:\mysql-cluster\config.txt –co
nfigdir=D:\mysql-cluster
5.2)启动存储节点(无先后顺序,第一个启动使用–initial)
win7
D:\mysql-cluster\bin>ndbd.exe –initial
win03
C:\mysql-cluster\bin>ndbd.exe
5.3)启动sql节点(无先后顺序)
win03
C:\mysql-cluster\bin>mysqld.exe –defaults-file=c:\windows\my.ini
win7
d:\mysql-cluster\bin>mysqld.exe –defaults-file=c:\windows\my.ini
6、查看是否启动成功
6.1)查看状态
D:\mysql-cluster\bin>ndb_mgm.exe
— NDB Cluster — Management Client —
ndb_mgm> show
Connected to Management Server at: 192.168.1.1:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=21 @192.168.1.1 (mysql-5.1.56 ndb-7.1.15, Nodegroup: 0, Master)
id=22 @192.168.1.2 (mysql-5.1.56 ndb-7.1.15, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.1 (mysql-5.1.56 ndb-7.1.15)
[mysqld(API)] 2 node(s)
id=11 @192.168.1.1 (mysql-5.1.56 ndb-7.1.15)
id=12 @192.168.1.2 (mysql-5.1.56 ndb-7.1.15)
6.2数据操作测试
在win7上创建表,并插入数据
C:\Users\XIFENFEI>mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.56-ndb-7.1.15-cluster-gpl MySQL Cluster Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> use test;
Database changed
mysql> create table city(
-> id mediumint unsigned not null auto_incremen
-> name varchar(20) not null default ”
-> ) engine = ndbcluster default charset utf8;
Query OK, 0 rows affected (9.60 sec)
mysql> insert into city values(1, ‘city1’);
Query OK, 1 row affected (0.41 sec)
mysql> insert into city values(2, ‘city2’);
Query OK, 1 row affected (0.01 sec)
mysql> select * from city;
+—-+——-+
| id | name |
+—-+——-+
| 1 | city1 |
| 2 | city2 |
+—-+——-+
2 rows in set (0.00 sec)
win03机器查看数据
C:\mysql-cluster\bin>mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.56-ndb-7.1.15-cluster-gpl MySQL Cluster Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> use test;
Database changed
mysql> show tables;
+—————-+
| Tables_in_test |
+—————-+
| city |
+—————-+
1 row in set (0.11 sec)
mysql> select * from city;
+—-+——-+
| id | name |
+—-+——-+
| 1 | city1 |
| 2 | city2 |
+—-+——-+
2 rows in set (0.05 sec)

mysql 5.5 源码安装

1.安装cmake
1)下载cmake
#wget http://www.cmake.org/files/v2.8/cmake-2.8.3.tar.gz
2)解压cmake
#tar -zvxf cmake-2.8.3.tar.gz
3)配置编译
#cd cmake-2.8.3
#yum -y install gcc
#yum -y install gcc-c++
#./configure
#make
#make install
2.安装MYSQL
1)下载MYSQL
mkdir /opt/mysql_src
#cd /opt/mysql_src
#wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.14.tar.gz/from/http://mysql.mirror.rafal.ca/
2)解压mysql-5.5.14.tar.gz
#tar -zvxf mysql-5.5.14.tar.gz
创建目录(mysql5.5默认已经没有data目录了)
mkdir -p /opt/mysql_src/product
mkdir -p /opt/mysql_src/data
3)配置编译
#cd mysql-5.5.14
#cmake . ##这个方法,安装路径默认

#cmake . \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_INSTALL_PREFIX:PATH=/opt/mysql_src/product \
-DCOMMUNITY_BUILD:BOOL=ON \
-DENABLED_PROFILING:BOOL=ON \
-DENABLE_DEBUG_SYNC:BOOL=OFF \
-DINSTALL_LAYOUT:STRING=STANDALONE \
-DMYSQL_DATADIR:PATH=/opt/mysql_src/data \
-DMYSQL_MAINTAINER_MODE:BOOL=OFF \
-DWITH_EMBEDDED_SERVER:BOOL=ON \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DWITH_SSL:STRING=bundled \
-DWITH_UNIT_TESTS:BOOL=OFF \
-DWITH_ZLIB:STRING=bundled \
-LH
如果出现一下错误:
cmake .
— MySQL 5.5.14
— Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:82 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:126 (FIND_CURSES)
cmake/readline.cmake:216 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:256 (MYSQL_CHECK_READLINE)
— Configuring incomplete, errors occurred!
需要安装ncurses-devel包
# yum -y install ncurses-devel
#make
#make install
#groupadd mysql
#useradd -r -g mysql mysql
#cd /opt/mysql_sc
#chown -R mysql:mysql .
#scripts/mysql_install_db –user=mysql
添加标准/etc/my.cnf文件(见mysql二进制安装程序,修改相关路径)
#./bin/mysqld_safe –user=mysql &

mysqldump+mysqlbinlog恢复测试

一、模拟环境
mysql> create database test;
Query OK, 1 row affected (0.02 sec)
mysql> use test;
Database changed
mysql> reset master;
Query OK, 0 rows affected (0.04 sec)
mysql> show binary logs;
+—————–+———–+
| Log_name | File_size |
+—————–+———–+
| mysqlbin.000001 | 107 |
+—————–+———–+
1 row in set (0.00 sec)
mysql> create table t(id int,name varchar(10));
Query OK, 0 rows affected (0.09 sec)
mysql> insert into t values(1,’aaaa’);
Query OK, 1 row affected (0.01 sec)
mysql> insert into t values(2,’bbbb’);
Query OK, 1 row affected (0.00 sec)
二、使用mysqldump备份数据
mysqldump -u root -ppassw0rd –skip-opt –extended-insert=false –master-data=2 –single-transaction –allow-keywords –add-locks –add-drop-table -F -q test >/tmp/test.sql
三、继续操作
mysql> insert into t values(3,’cccc’);
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect…
Connection id: 208
Current database: test
Query OK, 1 row affected (0.00 sec)
mysql> insert into t values(4,’dddd’);
Query OK, 1 row affected (0.00 sec)
mysql> drop table t;
Query OK, 0 rows affected (0.04 sec)
mysql> create table t1 as
-> select * from information_schema.tables;
Query OK, 79 rows affected (0.27 sec)
Records: 79 Duplicates: 0 Warnings: 0
四、报告误删除表,开始恢复准备
mysql> show binary logs;
+—————–+———–+
| Log_name | File_size |
+—————–+———–+
| mysqlbin.000001 | 605 |
| mysqlbin.000002 | 14686 |
+—————–+———–+
2 rows in set (0.00 sec)
tee /tmp/output.txt
Logging to file ‘/tmp/output.txt’
mysql> show binlog events in ‘mysqlbin.000002′;
……………………省略
mysql> notee
Outfile disabled.
mysql> exit
Bye
查找删除表的位置(起点和终点)
[root@ECP-UC-DB1 tmp]# cat output.txt |grep “DROP TABLE”
| mysqlbin.000002 | 461 | Query | 1 | 564 | use `test`; DROP TABLE `t` /* generated by server */
[root@ECP-UC-DB1 mysqllog]# cat /tmp/test.sql |grep MASTER
— CHANGE MASTER TO MASTER_LOG_FILE=’mysqlbin.000002’, MASTER_LOG_POS=107;
生成恢复sql语句
mysqlbinlog –start-position=107 –stop-position=461 mysqlbin.000002>/tmp/drop.sql
mysqlbinlog –start-position=564 mysqlbin.000002>>/tmp/drop.sql
五、开始恢复
找一个测试库,拷贝/tmp/drop.sql和/tmp/test.sql到备库,然后进行恢复
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> use test;
Database changed
mysql> source /tmp/test.sql
mysql> source /tmp/drop.sql
六、测试恢复结果
mysql> show tables;
+—————-+
| Tables_in_test |
+—————-+
| t |
| t1 |
+—————-+
2 rows in set (0.00 sec)
mysql> select * from t;
+——+——+
| id | name |
+——+——+
| 1 | aaaa |
| 2 | bbbb |
| 3 | cccc |
| 4 | dddd |
+——+——+
4 rows in set (0.00 sec)
mysql> select count(*) from t1;
+———-+
| count(*) |
+———-+
| 79 |
+———-+
1 row in set (0.02 sec)

mysqlbinlog参数介绍

Dumps a MySQL binary log in a format usable for viewing or for piping to
the mysql command line client.
Usage: mysqlbinlog [options] log-files
-?, –help          Display this help and exit.
–base64-output[=name]
Determine when the output statements should be
base64-encoded BINLOG statements: ‘never’ disables it and
works only for binlogs without row-based events;
‘decode-rows’ decodes row events into commented SQL
statements if the –verbose option is also given; ‘auto’
prints base64 only when necessary (i.e., for row-based
events and format description events); ‘always’ prints
base64 whenever possible. ‘always’ is deprecated, will be
removed in a future version, and should not be used in a
production system.  –base64-output with no ‘name’
argument is equivalent to –base64-output=always and is
also deprecated.  If no –base64-output[=name] option is
given at all, the default is ‘auto’.
–character-sets-dir=name
Directory for character set files.
-d, –database=name List entries for just this database (local log only).
–debug-check       Check memory and open file usage at exit .
–debug-info        Print some debug info at exit.
–default-auth=name Default authentication client-side plugin to use.
-D, –disable-log-bin
Disable binary log. This is useful, if you enabled
–to-last-log and are sending the output to the same
MySQL server. This way you could avoid an endless loop.
You would also like to use it when restoring after a
crash to avoid duplication of the statements you already
have. NOTE: you will need a SUPER privilege to use this
option.
-F, –force-if-open Force if binlog was not closed properly.
(Defaults to on; use –skip-force-if-open to disable.)
-f, –force-read    Force reading unknown binlog events.
-H, –hexdump       Augment output with hexadecimal and ASCII event dump.
-h, –host=name     Get the binlog from server.
-l, –local-load=name
Prepare local temporary files for LOAD DATA INFILE in the
specified directory.
-o, –offset=#      Skip the first N entries.
-p, –password[=name]
Password to connect to remote server.
–plugin-dir=name   Directory for client-side plugins.
-P, –port=#        Port number to use for connection or 0 for default to, in
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/services, built-in default (3306).
–protocol=name     The protocol to use for connection (tcp, socket, pipe,
memory).
-R, –read-from-remote-server
Read binary logs from a MySQL server.
-r, –result-file=name
Direct output to a given file.
–server-id=#       Extract only binlog entries created by the server having
the given id.
–set-charset=name  Add ‘SET NAMES character_set’ to the output.
-s, –short-form    Just show regular queries: no extra info and no row-based
events. This is for testing only, and should not be used
in production systems. If you want to suppress
base64-output, consider using –base64-output=never
instead.
-S, –socket=name   The socket file to use for connection.
–start-datetime=name
Start reading the binlog at first event having a datetime
equal or posterior to the argument; the argument must be
a date and time in the local time zone, in any format
accepted by the MySQL server for DATETIME and TIMESTAMP
types, for example: 2004-12-25 11:25:56 (you should
probably use quotes for your shell to set it properly).
-j, –start-position=#
Start reading the binlog at position N. Applies to the
first binlog passed on the command line.
–stop-datetime=name
Stop reading the binlog at first event having a datetime
equal or posterior to the argument; the argument must be
a date and time in the local time zone, in any format
accepted by the MySQL server for DATETIME and TIMESTAMP
types, for example: 2004-12-25 11:25:56 (you should
probably use quotes for your shell to set it properly).
–stop-position=#   Stop reading the binlog at position N. Applies to the
last binlog passed on the command line.
-t, –to-last-log   Requires -R. Will not stop at the end of the requested
binlog but rather continue printing until the end of the
last binlog of the MySQL server. If you send the output
to the same MySQL server, that may lead to an endless
loop.
-u, –user=name     Connect to the remote server as username.
-v, –verbose       Reconstruct SQL statements out of row events. -v -v adds
comments on column data types.
-V, –version       Print version and exit.
–open-files-limit=#
Used to reserve file descriptors for use by this program.
Variables (–variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
——————————— —————————————-
base64-output                     (No default value)
character-sets-dir                (No default value)
database                          (No default value)
debug-check                       FALSE
debug-info                        FALSE
default-auth                      (No default value)
disable-log-bin                   FALSE
force-if-open                     TRUE
force-read                        FALSE
hexdump                           FALSE
host                              (No default value)
local-load                        (No default value)
offset                            0
plugin-dir                        (No default value)
port                              3306
read-from-remote-server           FALSE
server-id                         0
set-charset                       (No default value)
short-form                        FALSE
socket                            /var/run/mysqld/mysqld.sock
start-datetime                    (No default value)
start-position                    4
stop-datetime                     (No default value)
stop-position                     18446744073709551615
to-last-log                       FALSE
user                              (No default value)
open-files-limit                  64