Fork me on GitHub

Kafka操作小结

Kafka操作小结

kafka依赖zookeeper,所以要先安装zookeeper。

下载安装包
省略,解压即可食用,方便快捷

zookeeper安装

1、zoo.cfg参数解释

1
2
3
4
5
6
7
dataDir:数据目录
dataLogDir:日志目录
clientPort:客户端连接端口
tickTime:Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
initLimit:Zookeeper的Leader 接受客户端(Follower)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
syncLimit:表示 Leader 与 Follower 之间发送消息时请求和应答时间长度,最长不能超过多少个tickTime 的时间长度,总的时间长度就是 2*2000=4 秒。
server.A=B:C:D:其中A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

Discuz! X3.2 安装问题小记

Discuz 安装本来很简单,但是由于不熟悉和本身代码的问题,花了快一天才解决。现在将问题罗列如下:

Can’t connect to local MySQL server through socket

1
2
3
4
5
6
mysqli_connect() 不支持 advice_mysqli_connect
Discuz 安装完成后,后台打开Ucenter出现404
头像上传不能成功
Can’t connect to local MySQL server through socket
指定host使用的socket,格式如下:
$dbhost = ‘localhost:/temp/mysql.sock’;

Anemometer 展示示MySQL慢查询日志

安装部署
nginx,mysql,php环境可参考博客其他文章
Anemometer部署过程参考官网Quickstart

问题小结

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
配置多个数据源,只是指定不同db即可。
$conf['datasources']['192.168.1.87'] = array(
'host' => '192.168.1.87',
'port' => 3306,
'db' => 'slow_query_log',
'user' => 'ljd',
'password' => 'root123',
'tables' => array(
'global_query_review' => 'fact',
'global_query_review_history' => 'dimension'
),
'source_type' => 'slow_query_log'
);
$conf['datasources']['online'] = array(
'host' => '192.168.1.87',
'port' => 3306,
'db' => 'slow_online',
'user' => 'ljd',
'password' => 'root123',
'tables' => array(
'global_query_review' => 'fact',
'global_query_review_history' => 'dimension'
),
'source_type' => 'slow_query_log'
);

MySQL安装升级

mysql dba应该关注的网站

http://www.mysql.com/

1
2
mysql包的生命周期 Milestone Release(MR)>Release Candidate(RC)
>Generally Avaialble(GA)>Archived Version

为什么推荐选择MySQL官方版本

Oracle MySQL,Percona, MariaDB,Drizzle 推荐级别由前到后。
Oracle MySQL 官方MysSQL数据库版本,mysql5.6后将Percona的优化集成到官方版本。
Percona 使用XtraDB引擎。
MariaDB 核心代码相对较老。
Drizzle 采用C++语言重构各个模块,它与MySQL不兼容。

MySQL版本的选择及注意

推荐安装linux-generic,同时选择mysql5.6以上的版本。因为mysql5.6修复了5.5的好多bug。
线上使用注意从http://dev.mysql.com/downloads/mysql/下载并用md5sum校验文件的MD5值。

my.cnf配置文件注释

MySQL 5.6 & 5.7最优配置文件模板

http://www.innomysql.net/article/21730.html

my.cnf配置文件注释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
[client]
user=root
password=root
default-character-set=utf8mb4
[mysqld]
########basic settings########
server-id = 11
port = 3306
user = mysql
bind_address = 10.166.224.32
autocommit = 0
character_set_server=utf8mb4
skip_name_resolve = 1
max_connections = 800
max_connect_errors = 1000
datadir = /data/mysql_data
transaction_isolation = READ-COMMITTED
explicit_defaults_for_timestamp = 1
join_buffer_size = 134217728
sort_buffer_size = 33554432
tmp_table_size = 67108864
tmpdir = /tmp
max_allowed_packet = 16777216
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
interactive_timeout = 1800
wait_timeout = 1800
read_buffer_size = 16777216
read_rnd_buffer_size = 33554432
########log settings########
log_error = error.log
slow_query_log = 1
slow_query_log_file = slow.log
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
log_slow_slave_statements = 1
log_throttle_queries_not_using_indexes = 10
expire_logs_days = 90
long_query_time = 2
min_examined_row_limit = 100
########replication settings########
master_info_repository = TABLE
relay_log_info_repository = TABLE
log_bin = bin.log
sync_binlog = 1
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates
binlog_format = row
relay_log = relay.log
relay_log_recovery = 1
binlog_gtid_simple_recovery = 1
slave_skip_errors = ddl_exist_errors
########innodb settings########
innodb_page_size = 8192
innodb_buffer_pool_size = 6G
innodb_buffer_pool_instances = 8
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_lru_scan_depth = 2000
innodb_lock_wait_timeout = 5
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_flush_method = O_DIRECT
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
innodb_log_group_home_dir = /redolog/
innodb_undo_directory = /undolog/
innodb_undo_logs = 128
innodb_undo_tablespaces = 3
innodb_flush_neighbors = 1
innodb_log_file_size = 4G
innodb_log_buffer_size = 16777216
innodb_purge_threads = 4
innodb_large_prefix = 1
innodb_thread_concurrency = 64
innodb_print_all_deadlocks = 1
innodb_strict_mode = 1
innodb_sort_buffer_size = 67108864
########semi sync replication settings########
plugin_dir=/usr/local/mysql/lib/plugin
plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
loose_rpl_semi_sync_master_enabled = 1
loose_rpl_semi_sync_slave_enabled = 1
loose_rpl_semi_sync_master_timeout = 5000
[mysqld-5.7]
innodb_buffer_pool_dump_pct = 40
innodb_page_cleaners = 4
innodb_undo_log_truncate = 1
innodb_max_undo_log_size = 2G
innodb_purge_rseg_truncate_frequency = 128
binlog_gtid_simple_recovery=1
log_timestamps=system
transaction_write_set_extraction=MURMUR32
show_compatibility_56=on

iptables notes

1
2
3
4
5
INPUT:位于filter表,匹配目的ip是本机的数据包
FORWARD: 位于filter表,匹配穿越本机的数据包
PREROUTING: 位于 nat 表,用于修改目的地址(DNAT)
POSTROUTING:位于 nat 表,用于修改源地址(SNAT)
OUTPUT:位于filter表,匹配源ip是本机的数据包

清空

1
2
3
iptables -F 清空所有规则链(谨慎用,尤其是默认策略是DROP)
iptables -X 删除特定手工设置的链
iptables -Z 清空计数器

mysql表分区基础

表结构文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.frm 表结构文件
.par partition申明一个分区表
.ibd 数据索引文件 innodb引擎表
.MYD 数据文件 myisam表数据文件
.MYI 索引文件 myisam表索引文件
Myisam 存储引擎,它默认使用独立表空间
InnoDB 存储引擎,默认使用共享表空间,默认存到ibdata1
查看表空间设置
SHOW VARIABLES LIKE '%innodb_file_per_table%';
修改表空间设置(/ect/my.cnf)
innodb_file_per_table=1
查看mysql是否支持分区
show plugins;
or
show variables like '%part%';

mysql学习笔记之一

下载mysql安装包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
http://downloads.mysql.com/archives/community/
RPM Bundle
MySQL-client-5.6.16-1.el6.x86_64.rpm 客户端
MySQL-server-5.6.16-1.el6.x86_64.rpm 服务端
MySQL-devel-5.6.16-1.el6.x86_64.rpm 库和头文件
MySQL-shared-5.6.16-1.el6.x86_64.rpm 共享库
MySQL-shared-compat-5.6.16-1.el6.x86_64.rpm 兼容包
MySQL-embedded-5.6.16-1.el6.x86_64.rpm 嵌入式版本
MySQL-test-5.6.16-1.el6.x86_64.rpm 测试包
详细解释参考:http://dev.mysql.com/doc/refman/5.6/en/linux-installation-rpm.html
默认库的作用
Information_Schema提供了访问数据库元数据的方式。
元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。
Performance_Schema是MySQL较为底层的性能监控特性,提供一系列、具备自定义收集粒度的监控体系。