openEuler数据库服务器搭建:MySQL与PostgreSQL部署完整指南
【免费下载链接】docsTo build and enrich documentation for openEuler project.项目地址: https://gitcode.com/openeuler/docs
在openEuler操作系统中搭建数据库服务器是企业级应用部署的关键环节。本文为您提供openEuler数据库服务器搭建的完整指南,涵盖MySQL和PostgreSQL两大主流数据库的安装、配置、优化和管理全流程,帮助您快速构建稳定高效的数据库环境。
数据库选型与架构解析
PostgreSQL架构深度解析
PostgreSQL采用经典的多进程架构设计,其核心组件包括客户端连接、会话服务进程和辅助子进程三大模块。客户端通过连接驱动器与数据库建立通信,会话服务进程处理用户请求和SQL执行,而辅助子进程则负责后台管理功能。
PostgreSQL的主要进程包括:
- Postmaster进程:数据库实例总控进程,负责启动和关闭实例
- Postgres常驻进程:管理后端连接,侦听5432端口
- SysLogger进程:系统日志记录
- BgWriter进程:后台写入器,异步刷脏页
- WALWriter进程:预写日志写入器
- AutoVacuum进程:自动清理过期数据
- PgStat进程:统计信息收集
- CheckPoint进程:检查点管理
MariaDB/MySQL逻辑架构
MariaDB作为MySQL的分支,完全兼容MySQL API和命令行,同时提供了更好的新特性。其逻辑架构采用分层设计:
MariaDB架构包含:
- 客户端层:应用程序连接接口
- 服务器核心层:授权插件、解析器、优化器
- 存储引擎层:支持InnoDB、MEMORY、TokuDB等多种引擎
- 数据存储层:磁盘、内存等物理资源
环境准备与基础配置
系统环境配置
在开始数据库部署前,需要进行以下基础环境配置:
关闭防火墙(测试环境)
systemctl stop firewalld systemctl disable firewalld禁用SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config创建专用用户组
# PostgreSQL用户 groupadd postgres useradd -g postgres postgres passwd postgres # MySQL/MariaDB用户 groupadd mysql useradd -g mysql mysql passwd mysql数据盘配置优化
对于性能敏感场景,建议使用独立的数据盘:
NVMe SSD配置示例
# 创建文件系统 mkfs.xfs /dev/nvme0n1 # 创建数据目录 mkdir /data # 挂载数据盘 mount -o noatime,nobarrier /dev/nvme0n1 /data # 权限设置 chown -R postgres:postgres /data/PostgreSQL数据库部署实战
一键安装PostgreSQL
安装PostgreSQL服务器
# 配置本地yum源 dnf clean all dnf makecache # 安装PostgreSQL dnf install postgresql-server初始化与启动
初始化数据库
# 切换到postgres用户 su - postgres # 初始化数据目录 /usr/bin/initdb -D /data/启动数据库服务
/usr/bin/pg_ctl -D /data/ -l /data/logfile start验证服务状态
ps -ef | grep postgres数据库基础管理
登录数据库
/usr/bin/psql -U postgres设置管理员密码
ALTER USER postgres WITH PASSWORD 'YourSecurePassword123';创建新数据库
CREATE DATABASE appdb;MySQL/MariaDB数据库部署
快速安装MariaDB
安装MariaDB服务器
dnf install mariadb-server服务启动与安全配置
启动MariaDB服务
systemctl start mariadb安全初始化
/usr/bin/mysql_secure_installation登录验证
mysql -u root -p数据库性能优化指南
MySQL性能调优框架
硬件层优化配置
BIOS优化设置
- 关闭SMMU(鲲鹏服务器特有)
- 禁用CPU预取功能
- 调整电源管理模式为性能模式
NUMA绑核优化
numactl -C 0-90 -i 0-3 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &操作系统级优化
调度参数调优
# 在/etc/grub2-efi.cfg添加 sched_steal_node_limit=4 # 启用STEAL调度模式 echo STEAL > /sys/kernel/debug/sched_features大页内存配置
# 配置2MB大页 echo 8192 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages数据库参数深度调优
MySQL核心参数配置示例
[mysqld] innodb_buffer_pool_size = 230G innodb_buffer_pool_instances = 16 innodb_log_file_size = 1500M innodb_log_files_in_group = 32 innodb_flush_method = O_DIRECT innodb_io_capacity = 20000 innodb_io_capacity_max = 40000 innodb_page_cleaners = 16 table_open_cache_instances = 32 table_open_cache = 30000关键参数说明
innodb_buffer_pool_size:设置为物理内存的60-70%innodb_log_file_size:根据写入负载调整,建议1-2GBinnodb_flush_method:使用O_DIRECT减少操作系统缓存开销innodb_io_capacity:根据磁盘IOPS能力设置
高级功能与维护
数据库备份恢复
PostgreSQL备份
pg_dump -h 192.168.1.100 -p 5432 -U postgres -W appdb > backup.sqlMySQL备份
mysqldump -u root -p --all-databases > full_backup.sql监控与故障排查
进程监控
# PostgreSQL进程监控 ps -ef | grep postgres # MySQL进程监控 ps -ef | grep mysql连接数监控
-- PostgreSQL SELECT count(*) FROM pg_stat_activity; -- MySQL SHOW PROCESSLIST;安全最佳实践
访问控制策略
PostgreSQL访问控制
-- 创建只读用户 CREATE ROLE readonly WITH LOGIN PASSWORD 'SecurePass123'; GRANT CONNECT ON DATABASE appdb TO readonly; GRANT USAGE ON SCHEMA public TO readonly; GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;MySQL权限管理
-- 创建应用用户 CREATE USER 'appuser'@'192.168.1.%' IDENTIFIED BY 'StrongPassword!'; GRANT SELECT, INSERT, UPDATE, DELETE ON appdb.* TO 'appuser'@'192.168.1.%';定期维护任务
PostgreSQL维护
# 定期清理 /usr/bin/vacuumdb --all --analyze # 重建索引 /usr/bin/reindexdb --allMySQL维护
-- 优化表 OPTIMIZE TABLE important_table; -- 分析表统计信息 ANALYZE TABLE important_table;故障排除指南
常见问题解决
服务启动失败
- 检查端口占用:
netstat -tlnp | grep 5432 - 验证数据目录权限
- 查看日志文件:
/data/logfile或/var/log/mariadb/mariadb.log
连接问题排查
- 检查防火墙规则
- 验证pg_hba.conf或my.cnf配置
- 测试网络连通性
性能问题诊断
慢查询分析
-- PostgreSQL SELECT * FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10; -- MySQL SHOW FULL PROCESSLIST;资源瓶颈定位
- CPU使用率:
top或htop - 内存使用:
free -h - 磁盘IO:
iostat -x 1
总结与建议
openEuler为数据库服务器提供了稳定可靠的基础环境。通过本文的完整指南,您可以:
- 快速部署:掌握PostgreSQL和MySQL的安装配置流程
- 性能优化:了解从硬件到应用层的全方位调优策略
- 安全管理:实施企业级的安全访问控制
- 运维监控:建立完善的监控和维护体系
建议在生产环境中:
- 使用独立的数据存储设备
- 配置定期备份策略
- 实施监控告警机制
- 定期进行安全审计
通过遵循这些最佳实践,您可以在openEuler上构建高性能、高可用的数据库服务器,为业务应用提供坚实的数据支撑。
更多信息:https://ar.openeuler.org/ar/
【免费下载链接】docsTo build and enrich documentation for openEuler project.项目地址: https://gitcode.com/openeuler/docs
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考