TEM 安装与功能测试
作者: jackyks 原文来源:https://tidb.net/blog/2f2a7030
1、创建私有网络
在腾讯云服务器控制台,私有网络中创建,选择区域、设置 IP 网段。
区域:上海八区
IP:172.16.16.0/24

2、创建安全组在腾讯云服务器控制台,新建安全组,并放通全部端口。


3、安装 TEM(1)选择新创建的私有网络和安全组

私有网络:可用区选择正确,才可以找到刚创建的私有网络
安全组:开放了所有端口(生产环境不建议放通所有)
(2)其余选择默认配置

TEM 入口域名:没有配置
(3)安装前需确认账户余额

充值完成,即可开始安装
(4)开始安装

约 10 分钟,安装完成

查看 TEM 默认的帐号、密码

4、访问 TEM
(1)在 实例 - 公网 IP,查看公网 IP

(2)通过公网 IP,登录 TEM


5、在 TEM 中添加主机
因为没有单独购买云主机,所以将 TEM 主机同时作为 TiDB 集群的主机来使用。
被控主机要安装 TiUP 组件。
(1)添加凭证设置 - 凭证 - 添加凭证(CVM 主机的账号和密码)


(2)在被控主机上安装 TiUP 组件(即 TEM 主机)
通过 SecureCRT 登录腾讯云主机(公网 IP、root 账号和密码),安装 TiUP 组件。


(3)添加中控机

(4)添加共享主机

6、创建 TiDB 集群(1)设置集群基础配置
选择刚添加的中控机
选择共享模式
(2)规划集群节点将 PD、TiDB、TiKV 均安装在了同一台主机上

(3)未配置参数模板(自动选择默认参数)

(4)创建 TiDB 集群

约 5 分钟,集群创建完成

7、创建数据库、表并插入数据
-- 创建数据库<br>CREATE DATABASE IF NOT EXISTS company_db;<br>USE company_db;
-- 部门表<br>CREATE TABLE departments (<br>dept_id INT PRIMARY KEY AUTO_INCREMENT,<br>dept_name VARCHAR(50) NOT NULL,<br>location VARCHAR(100) NOT NULL,<br>budget DECIMAL(12,2) NOT NULL<br>);
-- 员工表<br>CREATE TABLE employees (<br>emp_id INT PRIMARY KEY AUTO_INCREMENT,<br>first_name VARCHAR(50) NOT NULL,<br>last_name VARCHAR(50) NOT NULL,<br>email VARCHAR(100) UNIQUE NOT NULL,<br>hire_date DATE NOT NULL,<br>salary DECIMAL(10,2) NOT NULL,<br>dept_id INT,<br>manager_id INT,<br>FOREIGN KEY (dept_id) REFERENCES departments(dept_id),<br>FOREIGN KEY (manager_id) REFERENCES employees(emp_id)<br>);
-- 项目表<br>CREATE TABLE projects (<br>project_id INT PRIMARY KEY AUTO_INCREMENT,<br>project_name VARCHAR(100) NOT NULL,<br>start_date DATE NOT NULL,<br>end_date DATE,<br>budget DECIMAL(12,2) NOT NULL,<br>dept_id INT,<br>FOREIGN KEY (dept_id) REFERENCES departments(dept_id)<br>);
-- 员工项目关联表<br>CREATE TABLE employee_projects (<br>emp_id INT,<br>project_id INT,<br>hours_worked DECIMAL(5,2) NOT NULL,<br>role ENUM('Manager', 'Developer', 'Analyst', 'Tester') NOT NULL,<br>PRIMARY KEY (emp_id, project_id),<br>FOREIGN KEY (emp_id) REFERENCES employees(emp_id),<br>FOREIGN KEY (project_id) REFERENCES projects(project_id)<br>);
-- 工资历史表<br>CREATE TABLE salary_history (<br>history_id INT PRIMARY KEY AUTO_INCREMENT,<br>emp_id INT NOT NULL,<br>old_salary DECIMAL(10,2) NOT NULL,<br>new_salary DECIMAL(10,2) NOT NULL,<br>change_date DATE NOT NULL,<br>reason VARCHAR(255),<br>FOREIGN KEY (emp_id) REFERENCES employees(emp_id)<br>);
-- 插入部门数据<br>INSERT INTO departments (dept_name, location, budget) VALUES<br>('Engineering', 'New York', 1000000.00),<br>('Marketing', 'Chicago', 750000.00),<br>('Sales', 'Los Angeles', 900000.00),<br>('HR', 'Boston', 500000.00),<br>('Finance', 'San Francisco', 850000.00);
-- 插入员工数据<br>INSERT INTO employees (first_name, last_name, email, hire_date, salary, dept_id, manager_id) VALUES<br>('John', 'Doe', '
john.doe@company.com', '2018-06-15', 75000.00, 1, NULL),<br>('Jane', 'Smith', '
jane.smith@company.com', '2019-03-10', 85000.00, 1, 1),<br>('Robert', 'Johnson', '
robert.j@company.com', '2020-11-22', 65000.00, 1, 1),<br>('Emily', 'Williams', '
emily.w@company.com', '2021-05-30', 72000.00, 2, NULL),<br>('Michael', 'Brown', '
michael.b@company.com', '2017-09-05', 90000.00, 2, 4),<br>('Sarah', 'Davis', '
sarah.d@company.com', '2022-01-15', 60000.00, 3, NULL),<br>('David', 'Miller', '
david.m@company.com', '2019-08-12', 80000.00, 3, 6),<br>('Lisa', 'Wilson', '
lisa.w@company.com', '2020-04-18', 68000.00, 4, NULL),<br>('James', 'Taylor', '
james.t@company.com', '2021-07-22', 55000.00, 5, NULL),<br>('Linda', 'Anderson', '
linda.a@company.com', '2018-12-01', 95000.00, 5, 9);
-- 插入项目数据<br>INSERT INTO projects (project_name, start_date, end_date, budget, dept_id) VALUES<br>('Website Redesign', '2023-01-15', '2023-06-30', 50000.00, 1),<br>('Mobile App', '2023-02-01', '2023-08-31', 75000.00, 1),<br>('Marketing Campaign', '2023-03-01', '2023-05-31', 30000.00, 2),<br>('Sales Training', '2023-01-10', '2023-03-15', 15000.00, 3),<br>('HR Portal', '2023-04-01', '2023-09-30', 45000.00, 4),<br>('Financial System', '2023-02-20', '2023-12-31', 100000.00, 5);
-- 插入员工项目数据<br>INSERT INTO employee_projects (emp_id, project_id, hours_worked, role) VALUES<br>(1, 1, 120.50, 'Manager'),<br>(2, 1, 180.25, 'Developer'),<br>(3, 1, 150.75, 'Tester'),<br>(2, 2, 200.00, 'Manager'),<br>(3, 2, 175.50, 'Developer'),<br>(4, 3, 95.25, 'Manager'),<br>(5, 3, 145.75, 'Analyst'),<br>(6, 4, 80.00, 'Manager'),<br>(7, 4, 120.50, 'Analyst'),<br>(8, 5, 100.25, 'Manager'),<br>(9, 6, 220.75, 'Manager'),<br>(10, 6, 190.25, 'Developer');
-- 插入工资历史数据<br>INSERT INTO salary_history (emp_id, old_salary, new_salary, change_date, reason) VALUES<br>(1, 70000.00, 75000.00, '2023-01-01', 'Annual raise'),<br>(2, 80000.00, 85000.00, '2023-01-01', 'Promotion'),<br>(3, 60000.00, 65000.00, '2023-01-01', 'Performance increase'),<br>(5, 85000.00, 90000.00, '2023-01-01', 'Annual raise'),<br>(7, 75000.00, 80000.00, '2023-01-01', 'Annual raise'),<br>(10, 90000.00, 95000.00, '2023-01-01', 'Promotion');

8、SQL 语句测试(1)使用窗口函数查询每个部门的工资排名
(2)使用 GROUP_CONCAT 列出每个项目的参与者

(3)使用日期函数查询员工雇佣周年

(4)查询工时最高的员工 - 项目组合

9、查看 SQL 执行状况

10、数据闪回测试(1)删除表

(2)创建闪回任务

(3)查看数据恢复

表数据已正常恢复。
总结
1、TEM 界面非常简洁、直观,在界面中可以清晰的看到集群中主机 CPU、内存等资源利用状况。
2、通过 TEM 创建 TiDB 集群非常方便,可 3-5 分钟内快速完成集群创建。
3、在 TiDB 集群中,通过概览可以清晰看到节点数、版本、核心指标、告警等指标,对运维非常友好。
4、通过扩容功能,可以非常快速对 PD、TiDB、TiKV 进行水平扩容。
5、TiDB 集群的参数在 Web 界面中直观展示,同时可以通过 TEM 快速进行参数修改。
6、数据闪回功能很实用,创建完闪回任务后,可以将集群、数据库、表快速恢复。
7、测试环境将 TEM、PD、TiDB、TiKV 全部安装在同一台主机中,但主机资源消耗非常小,在此环境下,SQL 执行效率依然非常高。
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/58231d8cbbee16ca23aa82567】。文章转载请联系作者。
评论