cetus/doc/Admin.md
2018-03-06 14:00:39 +08:00

285 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Admin手册
## 写在前面
**有配置修改均能动态生效,配置更改后请务必修改原始配置文件,以确保下次重启时配置能够保留。**
## 后端配置
### 查看后端
`SELECT * FROM backends`
查看后端信息。
| backend_ndx | address | state | type | uuid | connected_clients |
|------------:|---------------------|-------|------|------|------------------:|
| 1 | 10.120.240.252:3309 | up | rw | NULL | 0 |
| 2 | 10.120.240.254:3310 | up | ro | NULL | 20 |
结果说明:
* backend_ndx: 后端序号,按照添加顺序排列;
* address: 后端地址IP:PORT格式
* state: 后端状态(unknown|up|down|maintaining|delete)
* type: 读写类型(rw|ro)
* uuid: 暂时无用;
* connected_clients: 客户查看后端连接状态端连接的数量(正在处理请求的连接)。
```
状态说明
unknown: 后端初始状态,还未建立连接;
up: 能与后端正常建立连接;
down: 与后端无法联通(如果开启后端状态检测能连通后自动变为UP);
maintaining: 后端正在维护,无法建立连接或自动切换状态(此状态由管理员手动设置);
delete: 后端已被删除,无法再建立连接。
```
### 查看后端连接状态
`SELECT CONN_DETAILS FROM backends`
查看每个用户占用和空闲的后端连接数。
| backend_ndx | username | idle_conns | total_used_conns |
|------------:|---------------|-----------:|-----------------:|
| 1 | lott_quanzi | 2 | 0 |
| 1 | zjhpettest | 11 | 0 |
结果说明:
* backend_ndx: 后端序号;
* username: 用户名;
* idle_conns: 空闲连接数;
* total_used_conns: 正在使用的连接数。
### 添加后端
`ADD MASTER [ip:port]`
添加一个读写类型的后端。
>ADD MASTER 127.0.0.1:3307
`ADD SLAVE [ip:port]`
添加一个只读类型的后端。
>ADD SLAVE 127.0.0.1:3360
`INSERT INTO backends VALUES ("ip:port", "ro|rw")`
添加一个后端,同时指定读写类型。
>INSERT INTO backends values ("127.0.0.1:3306", "rw");
### 删除后端
`REMOVE BACKEND [backend_ndx]`
`DELETE FROM BACKENDS where backend_ndx = [backend_ndx]`
删除一个指定序号的后端。
>remove backend 1
`DELETE FROM BACKENDS where address = '[IP:PORT]'`
删除一个指定地址的后端。
>delete from backends where address = '127.0.0.1:3306'
### 修改后端
`UPDATE BACKENDS set type|state=[value] where address|backend_ndx=[value]`
修改后端类型或状态。
>update backends set type="rw" where address="127.0.0.1:3306"
>update backends set state="up" where backend_ndx=1
## 基本配置
### 获取基本配置
`config get common`
能获取的配置包括:
* check_slave_delay: 是否启用从库延迟检查0为不检查
* slave_delay_down: 从库延迟大于该时间时设置从库状态为DOWN单位
* slave_delay_recover: 从库延迟小于等于该时间时设置从库状态为UP单位
### 修改基本配置
`config set common.[option] = [value]`
例如
>config set common.slave_delay_down = 3
## 连接池配置
### 获取连接池配置
`config get pool`
能获取的配置包括:
* max_pool_size: 连接池最大连接数,超出后将不再维持超出部分的连接
* default_pool_size: 默认连接数量,连接数达到此值之前会一直新建连接
* master_preferred: 设置为1时仅访问主库(读写)
* max_resp_len: 允许每个后端返回数据的最大值
### 修改连接池配置
`config set pool.[option] = [value]`
修改某项配置
>config set pool.max_pool_size = 200
## 查看连接信息
### 查看当前连接的详细信息
`SHOW CONNECTIONLIST`
将当前全部连接的详细内容按表格显示出来。
| User | Host | Server | db | Command | Time | Trans | State | Info |
|---------------|----------------------|--------|------------------|---------|------|-------|------------|------|
| ddz_develop | 10.120.241.198:53728 | NULL | ddz_tower_test | Sleep | 0 | N | READ_QUERY | NULL |
| mail | 10.120.241.183:37960 | NULL | tech_mail_new_db | Sleep | 0 | N | READ_QUERY | NULL |
结果说明:
* User: 用户名;
* Host: 客户端的IP和端口;
* Server: 后端地址;
* db: 数据库名称;
* Command: 执行的sql"Sleep"代表当前空闲;
* Time: 已执行的时间;
* Trans: 是否在事务中;
* State: 连接当前的状态,"READ_QUERY"代表在等待获取命令;
* Info: 暂未知。
## 用户/密码管理
### 密码查询
`SELECT * FROM user_pwd WHERE user=[username]`
查询某个用户的后端密码。
**注意由于密码是非明文的,仅能显示字节码。**
>select * from user_pwd where user="root";
`SELECT * FROM app_user_pwd WHERE user=[username]`
查询某个用户连接proxy的密码同样是非明文。
>select * from app_user_pwd where user="test";
### 密码添加/修改
`UPDATE user_pwd SET password=[password1] WHERE user=[username]`
添加或修改特定用户的后端密码(如果该用户不存在则添加,已存在则覆盖)。
**需要Flush config生效**
>update user_pwd set password="123456" where user="test";
>flush config;
`UPDATE app_user_pwd SET password=[password1] WHERE user=[username]`
添加或修改特定用户连接Proxy的密码(如果该用户不存在则添加,已存在则覆盖)。
**需要Flush config生效**
>update app_user_pwd set password="123456" where user="root";
>flush config;
### 密码删除
`DELETE FROM user_pwd where user=[username]`
删除特定用户的后端密码。
**需要Flush config生效**
>delete from user_pwd where user="root"
>flush config;
`DELETE FROM app_user_pwd where user=[username]`
删除特定用户连接Proxy的密码。
**需要Flush config生效**
>delete from app_user_pwd where user="root"
>flush config;
### 查看未提交的修改
`SHOW CHANGES`
查看已修改但未flush的变更。
### 清除未提交的修改
`CLEAR CHANGES`
清除已修改但未flush的变更。
## IP许可
### 查看IP许可
`SHOW ALLOW_IP admin|proxy`
查看Admin或者Proxy的IP许可。
若列表为空,则代表没有任何限制。
### 增加IP许可
`ADD ALLOW_IP admin|proxy [[user@]IP]`
增加一个IP许可。(不要加引号)
* Admin: 仅能配置IP不能限制用户(Admin有效用户只有一个)
* Proxy: 仅配置IP代表允许该IP来源所有用户的访问配置User@IP代表允许该IP来源的特定用户访问。
>add allow_ip admin 127.0.0.1
>add allow_ip proxy test@127.0.0.1
### 删除IP许可
`DELETE ALLOW_IP admin|proxy [[user@]IP]`
删除一个IP许可。(不要加引号)
>delete allow_ip admin 127.0.0.1
>delete allow_ip proxy test@127.0.0.1
## 远程管理
### 重载分库配置
`reload shard`
需要"remote-config = true"和"disable-threads = false"启动选项。
从远端配置库中重载Shard配置。
### 保存配置到本地文件
`SAVE SETTINGS [FILE]`
保存当前配置到指定路径的本地文件中。
>save settings /tmp/proxy.cnf