理解ldap - OpenLDAP安装

生产服务器硬件配置需求 ldap服务对系统环境的要求不高,一般在生产场景,ldap服务应该最少是两台,这样某一台物理服务器岩机才不会因单点问题影响生产业务故障,对于硬件要求,本质上openldap使用硬件资源并不大,网上有两个帖子提出了openldap的硬件需求: 2003年openldap官网留言,我想安装一个 LDAP 服务器来验证邮件服务器的用户,目前有200个用户需要多少内存和CPU?[1] 1GHZ PIII/512MB 足以 运行于Ubuntu LXC 之上的openldap,用户150,000,sladp进程常驻内存为200-300MB,mdb数据库文件大小为377MB,10 并发平均响应时间为 9-11 毫秒 [13] 操作系统:Centos7/8 64bit。 操 作 系 统 其 它 CentOS-7.6 当前很稳定且免费的Linux版本。 网卡及IP资源 名 称 接 口 IP 用途 ldap主服务器01 eth0 10.0.0.17 外部管理IP,用于WAN数据转发。 eth1 10.0.0.17 备用管理IP,用于LAN内数据转发。 ldap从服务器02 eth0 10.0.0.8 管理IP,用于LAN数据转发。 eth1 10.0.0.18 外部管理IP,用于WAN数据转发。 Tips:内外网IP分配可采用最后8位相同的方式,这样使于管理。 openldap master服务安装 CentOS/Redhat 安装OpenLDAP组件 bash 1 2 3 4 5 6 yum install -y \ openldap \ openldap-servers \ openldap-clients \ openldap-devel \ compat-openldap Ubuntu18....

 ·  · 

ch08 - MySQL存储引擎

什么是存储引擎 在经清楚什么是存储引擎之前,我们先来个比喻,我们都知道录制一个视频文件,可以转换成不同的格式如mp4 avi wmv等,而存在我们电脑的磁盘上也会存在于不同类型的文件系统中如windows里常见的ntfs fat32,存在于linux常见的ext3 ext4 xfs,但是,给我们或者用户看到实际视频内容都是一样的。直观区别是,占用系统的空间大小与清晰程度可能不一样。 那么数据库表里的数据存储在数据库里及磁盘上和上述的视频格式及存储磁盘文件系统格式特征类似,也有很多中存储方式。 但是,对于用户和应用程序来说同样一张表的数据,无论用什么引擎来存储,用户看到的数据都是一样的。不同的引擎存储,引擎功能,占用的空间大小,读取性能等可能有区别。 MySQL最常用的存储引擎为:MyISAM和InnoDB。全文索引:目前MySQL5.5版本,myisam和inondb都已经支持。 MySQL存储引擎的架构 MySQL的存储引擎是MySQL数据库的重要组成部分,MySQL常用的表的引擎为MyISAM和InnoDB两种。MySQL的每种存储引擎在MySQL里是通过插件的方式使用的,MySQL可以同时支持多种存储引擎。下面是MySQL存储引擎体系结构简图: MyISAM引擎 MyISAM引擎是MySQL关系数据库管理系统的默认存储引擎(MySQL 5.5.5以前)。这种MySQL表存储结构从旧的ISAM代码扩展出许多有用的功能。在新版本MySQL中,InnoDB引擎由于其对事务参照完整性,以及更高的并发性等优点开始逐步的取代MyISAM引擎, “InnoDB is the default storage engine as of MySQL 5.5.5。MyISAM: The MySQL storage engine that is used the most in Web,data warehousing,and other application environments.MyISAM is supported in all MySQL configurations,an is the default storage engine prior to MySQL 5.5.5。” 查看MySQL5.1数据库默认引擎 bash 1 2 3 4 5 6 7 mysql> show create table test1\G *************************** 1....

 ·  · 

ch07 - 实现和MySQL非交互式对话

利用 mysql -e 参数查看 mysql 数据 bash 1 2 3 4 5 6 7 8 $ mysql -uroot -p111 -e 'use test;show tables;' +------------------------------+ | Tables_in_test | +------------------------------+ | 33hao_activity | | 33hao_activity_detail | | 33hao_address | +------------------------------+ 利用 mysql -e 参数查看SQL线程执行状态 bash 1 2 $ mysql -uroot -p111 -e 'show processlist;' kill 12; 查看完整的线程状态,此参数才查看慢查询语句是非常有用 解决方法: bash 1 2 3 4 root@localhost [test]>show variables like '%_timeout%'; # 设置 set global wait_timeout=60; set global interactive_timeout=60; 在配置文件里修改 conf set global wait_timeout=60; set global interactive_timeout=60; # 此参数设置后wait_timeout自动生效 其他方法 (1) PHP程序中,不适用持久链接,即 mysql_connect 而不是 pconnect(java调整连接池)...

 ·  · 

ch04 - MySQL数据库服务日志类型

错误日志 error log MySQL错误日志记录MySQL服务进程mysqld在启动/关闭或运行过程中遇到的错误信息 错误日志配置 在配置文件中调整方法,当然可以在启动时加入启动参数 bash 1 2 [mysqld_safe] log-error=/data/3306/mysql_3306.err 启动MySQL命令里加入 bash 1 2 3 4 5 6 7 8 9 10 /app/mysql/bin/mysqld_safe \ --defaults-file=/data/3306/my.cnf \ --log-error=/data/3306/mysql_3306.err MariaDB> show variables like "%log_error%"; +-------------------+---------------------------+ | Variable_name | Value | +-------------------+---------------------------+ | log_error | /data/3306/mysql_3306.err | +-------------------+---------------------------+ 遇到数据库启动不了 先把日志文件备份并清空启动一下mysql服务后再查看日志文件,看报有什么错误 bash 1 2 3 InnoDB: The error means mysqld does not have the access rights to InnoDB: the directory 然后查看mysql3306目录下文件权限 普通查询日志 general query log 普通查询日志 (general query log):记录客户端链接信息和执行的SQL语句信息。...

 ·  · 

ch06 - MySQL主从复制

Linux文件数据同步方案 在讲解MySQL主从复制之前,先回忆下,前面将结果的普通文件(磁盘上的文件)的同步方法。 文件级别的异机同步方案 scp/sftp/nc命令可以实现远程数据同步。 搭建ftp/http/svn/nfs服务器,然后在客户端上也可以把数据同步到服务器。 搭建samba文件共享服务,然后在客户端上也可以把数据同步到服务器。 利用rsync/csync2/union等均可以实现数据同步。 提示:union可实现双向同步,csync2可实现多机同步。 ​ 以上文件同步方式如果结合定时任务或innotify sersync等功能,可以实现定时以及实时的数据同步。 扩展思想:文件级别复制也可以利用mysql,mongodb等软件作为容器实现。 扩展思想:程序向两个服务器同时写数据,双写就是一个同步机制。 ​ 特点:简单、方便、效率和文件系统级别要差一些,但是被同步的节点可以提供访问。 软件的自身同步机制(mysql、oracle、mongdb、ttserver、redis…..),文件放到数据库,听不到从库,再把文件拿出来。 文件系统级别的异机同步方案 drbd基于文件系统同步,相当于网络RAID1,可以同步几乎任何业务数据。 mysql数据的官方推荐drbd同步数据,所有单点服务例如:NFS,MFS(DRBD),MySQL等度可以用drbd做复制,效率很高,缺点:备机服务不可用。 数据库同步方案 自身同步机制:mysql relication,(逻辑的SQL重写)物理复制方法drbd(丛库不提供读写)。 第三方drbd MySQL主从复制概述 MySQL的主从复制方案,和上述文件及文件系统级别同步是类似的,都是数据的传输。只不过MySQL无需借助第三方工具,而是其自带的同步复制功能,另外一点,MySQL的主从复制并不是磁盘上文件直接同步,而是逻辑的binlog日志绒布到本地在应用执行的过程 MySQL主从复制是一个异步的复制过程(虽然一般情况下感觉是实时的),数据将从一个MySQL数据库(Master)复制到另一个数据库(Slave),在 mater 与 Slave之 间实现整个主从复制的过程是由三个线程参与完成的。其中有两个线程( SQL和IO )在Slave端,另外一个线程(I/O)在Master端。 要实现MySQL的主从复制,首先必须打开 Master 端的 binlog 记录功能,否则就无法实现。因为整个复制过程实际上就是Slave从Master端获取Binlog日志,然后在Slave上以相同顺序逐自获取 binlog 日志中所记录的各种SQL操作。 要打开MySQL的binlog记录功能,可能通过在MySQL的配置文件 my.cnf 中的 mysqld 模块( [mysqld] )标识后的参数部分增加 “log-bin” 参数选项来实现,具体信息如下: bash 1 2 [mysqld] log-bin = /data/3307/mysql-bin 提示:log-bin需放置在[mysqld]标识后,否则会导致配置复制不成功。 MySQL数据可支持单向、双向、链式级联等不同场景的复制。在复制过程中,一台服务器充当主服务器(Master),而一个或多个其他的服务器充当从服务器(Slave)。 复制可以使单向:M==>S,也可以是双向 M<==>M,当然也可以多M环装同步等。 如果设置了链式级联复制,那么,从(slave)服务器本身除了充当从服务器外,也会同时充当其下面从服务器的主服务器。链式级联复制类似 A==>B==>C==>D 的复制形式。 下面是MySQL各种同步架构的逻辑图。 单向主从复制逻辑图,次架构只能在Master端进行数据写入。官方给出Slave最多9,工作中不要超过5 双向主主同步逻辑图,次架构可以再Master1端或Master2端进行数据写入 线性级联单向双主同步逻辑图,此架构只能在Master1端进行数据写入 缺陷:1 ==>3 之间会存在延迟 环装级联单向多主同步逻辑图,任意一个点都可以写入数据。...

 ·  ·