写点什么

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


http:// 公网 IP:32000




5、在 TEM 中添加主机


  • 因为没有单独购买云主机,所以将 TEM 主机同时作为 TiDB 集群的主机来使用。

  • 被控主机要安装 TiUP 组件。


(1)添加凭证设置 - 凭证 - 添加凭证(CVM 主机的账号和密码)




(2)在被控主机上安装 TiUP 组件(即 TEM 主机)


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


curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
复制代码




(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)使用窗口函数查询每个部门的工资排名


SELECT first_name, last_name, salary, dept_name,       RANK() OVER (PARTITION BY dept_id ORDER BY salary DESC) AS salary_rankFROM employeesJOIN departments USING (dept_id);
复制代码


(2)使用 GROUP_CONCAT 列出每个项目的参与者


SELECT p.project_name,        GROUP_CONCAT(CONCAT(e.first_name, ' ', e.last_name) SEPARATOR ', ') AS participantsFROM projects pJOIN employee_projects ep ON p.project_id = ep.project_idJOIN employees e ON ep.emp_id = e.emp_idGROUP BY p.project_id;
复制代码



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


SELECT first_name, last_name, hire_date,       DATE_ADD(hire_date, INTERVAL 5 YEAR) AS fifth_anniversaryFROM employees;
复制代码



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


SELECT e.first_name, e.last_name, p.project_name, ep.hours_workedFROM employee_projects epJOIN employees e ON ep.emp_id = e.emp_idJOIN projects p ON ep.project_id = p.project_idORDER BY ep.hours_worked DESC LIMIT 1;
复制代码



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 执行效率依然非常高。


发布于: 刚刚阅读数: 2
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TEM安装与功能测试_安装 & 部署_TiDB 社区干货传送门_InfoQ写作社区