如果你碰巧有一台旧的笔记本电脑或机器到处乱扔灰尘,你可能想重新利用它。用于分析处理(例如生成临时报告)的快速 SQL 数据库听起来不错吗?如果是这样,请继续阅读! 在本文中,我将向您展示如何清理旧笔记本电脑并将其重新用作专用数据库服务器,以便在 Rocky Linux 和 Docker 之上进行分析。 我将这款 Lenovo Thinkpad T440s 与 Intel® Core™ i7 处理器、8 GB DDR3L-SDRAM 和 256 GB SSD 一起使用: 为什么选择 Rocky Linux 和 Docker? Rocky Linux 是 的延续,它是一个与 Red Hat Enterprise Linux (RHEL) 兼容的开源企业操作系统。 CentOS 它提供了良好的安全性和管理功能,并且由于它基于 RHEL,因此它周围有一个庞大而活跃的社区。 Docker 是在 Linux 系统之上运行的虚拟化软件,无需虚拟化硬件。这优化了可用资源,同时保持了隔离环境的优势。 如果您愿意,您可以在您的日常机器上设置 Docker,但如果您有一台旧笔记本电脑,并且运行 Rocky Linux 所需的硬件最少,我建议您利用它。 在你开始之前 在开始之前,请确保备份旧机器中可能存在的所有重要文件。 使用 Google Drive、DropBox 或外置硬盘等在线工具。专门为此任务分配 1 或 2 小时。探索文件系统并避免以后出现不愉快的意外。 安装 Rocky Linux 我不会详细介绍如何安装 Rocky Linux。如果您想查看详细说明,请查阅 。 官方文档 但是,请确保在安装 GUI 中使用 DHCP(或以太网,如果您愿意)配置 Wi-Fi 连接。 你不需要创建额外的用户, 就足够了。此外,不要 。相反,我建议选择 并添加以下软件: root 使用 GUI 选项安装服务器 自定义操作系统 无头管理 安全工具 系统工具 按照安装说明完成该过程。 使用静态 IP 配置 Wi-Fi 连接 如果您在安装过程中配置了 Wi-Fi 连接,则必须执行一些额外的步骤。 使用 电缆将机器连接到路由器。 以太网 运行 并记下以太网连接名称。就我而言,它是 。 encli connection enp0s25 通过运行 启用连接(使用您的连接名称)。 nmcli connection up enp0s25 通过运行 安装缺少的 Wi-Fi 实用程序 yum install NetworkManager-wifi 断开以太网电缆。 通过运行 启动机器。 reboot 机器重新启动后,以 身份登录并通过运行 检查 Wi-Fi 连接是否正常。 root ping google.com 使用 安装网络管理 UI。 dnf install NetworkManager-tui 运行 并编辑 Wi-Fi 连接以使用手动静态 IP。我将服务器地址设置为 并使用 添加了从同一网络中的另一台(macOS)机器获得的网关和 DNS 服务器。在 Linux 上使用 或在 Windows 上使用 。这是一个例子: nmtui 192.168.1.200/24 ifconfig ip addr ipconfig 防止笔记本电脑在合上盖子时挂起 为避免笔记本电脑在合上盖子时自动进入暂停模式,请编辑 文件并设置以下属性(您可以使用 或使用 ): /etc/systemd/logind.conf vi yum install nano [Login] HandleLidSwitch=lock LidSwitchIgnoreInhibited=no 要在重新启动时保留以前的更改,请运行 。 systemctl restart systemd-logind.service 通过重新启动机器来仔细检查一切是否正常。 使用 SSH 连接到服务器 此时,您可以移动到您的日常机器并使用 SSH 连接到新服务器: ssh root@192.168.1.200 您还可以在客户端计算机上分配主机名。编辑 文件(类 Unix 机器)或 文件(在 Windows 上),并添加以下行(使用您想要的任何名称,但指定静态 IP 地址你之前配置的): /etc/hosts c:\Windows\System32\drivers\etc\hosts 192.168.1.200 pickanyname.local 如果要使用主机名而不是 IP 地址,则必须在用于连接服务器的每台计算机上执行此操作。在此之后,您将能够连接到服务器,如下所示: ssh root@pickanyname.local 安装 Docker 通过 SSH 连接到服务器后,通过运行以下命令安装 docker: yum install -y yum-utils yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce \ docker-ce-cli \ containerd.io \ docker-compose-plugin 要让 Docker 服务在机器重新启动时自动启动,请运行以下命令: systemctl enable docker.service systemctl start docker.service 安装数据库 准备好 Docker 后,可以轻松安装软件,同时保持服务器整洁。该软件在称为 的隔离环境中运行。您可以从自定义或即用型 创建容器。 容器 图像 图像是一个模板,其中包含有关如何创建容器的说明。当您不再希望容器出现在系统中时,您可以启动、重新启动、停止甚至删除容器。所有这一切都不会在您的主机操作系统(本文中的 Rocky Linux)中留下垃圾。 数据库是在隔离环境中运行的理想选择。执行以下命令以启动一个容器,该容器运行包含 ColumnStore 引擎的 MariaDB 服务器: docker run --detach \ --name mariadb-cs \ --restart unless-stopped \ --env MARIADB_ROOT_PASSWORD='password' \ --publish '3306:3306/tcp' \ --expose '3306' \ mariadb/columnstore 这将从 Docker Hub(由 Docker Inc. 维护的 Docker 映像的公共注册表)下载 映像。 MariaDB/columnstore 下载镜像后,Docker 会创建一个名为 的新容器并继续启动容器,从而有效地在端口 3306 上启动 MariaDB 数据库服务器。 MariaDB-cs 该命令还将端口暴露给外部世界,以便您可以连接到数据库,例如,从您的开发机器。 为分析准备演示数据库 您刚刚安装的,允许您在创建表时使用 MariaDB ColumnStore 存储引擎。例如: CREATE TABLE some_table( ... column definitions here ... ) ENGINE=ColumnStore; 这告诉 MariaDB 数据库使用 ColumnStore 引擎以列方式存储数据。该引擎专为大数据扩展而设计,可以处理 PB 级数据,让您无需定义和维护索引。这使得它非常适合对非常大的数据集进行临时查询。 您仍然可以在需要时使用适用于事务工作负载的默认 InnoDB 引擎。只需省略 选项。您可以在单个 SQL 语句中将使用 ColumnStore 的表与使用 InnoDB 的表连接起来。 ENGINE 您还可以使用事务节点 (InnoDB) 和分析节点 (ColumnStore) 之间的复制来启用混合事务分析处理 (HTAP) 工作负载。 尝试使用 ColumnStore 的最佳方法是使用现有数据集进行尝试。 检查这个 ,它将 500 万行加载到一个表中,您可以使用该表运行分析查询并亲自查看 ColumnStore 的性能。 Github 存储库