马哥教育Linux-第07周作业

学号:N74058

1. 总结pg和mysql的优劣势。

PostgreSQL优势:
数据完整性:PostgreSQL提供了更强大的数据完整性控制功能,包括完整性约束、触发器和外键等。
复杂查询和大型数据处理:PostgreSQL可以处理更复杂的查询,并可以轻松处理大型数据集。
支持JSON数据类型:PostgreSQL支持存储、查询和操作JSON数据类型,这是一些现代应用程序所需要的。
开源性:PostgreSQL是完全开源的,它的代码可以被任何人查看、修改和使用。
扩展性:PostgreSQL可以通过添加扩展来扩展功能,这使得它可以轻松地适应不同的需求。

MySQL优势:
性能:MySQL在处理大量简单查询和事务处理方面具有良好的性能表现。
简单易用:MySQL相对于PostgreSQL而言更加简单易用,它的安装和配置都比较简单。
支持多种存储引擎:MySQL支持多种存储引擎,包括InnoDB、MyISAM、Memory等,使得它可以适应不同的应用场景。
社区支持:MySQL具有庞大的用户和开发者社区,这使得它可以得到广泛的支持和文档。
兼容性:MySQL可以与多种编程语言和操作系统兼容,包括PHP、Java、C++和Linux等。

2. 总结pg二进制安装和编译安装。

二进制安装
1.1 下载PostgreSQL二进制安装包
可以在PostgreSQL官网下载适用于CentOS 7.9的二进制安装包。选择与您的系统架构相应的安装包,比如选择x86_64架构的安装包。
1.2 运行安装程序并按照指示进行安装
下载完成后,解压缩二进制安装包并运行安装程序。按照指示进行安装。
1.3 配置PostgreSQL的环境变量和文件路径
安装完成后,需要将PostgreSQL的二进制文件路径添加到系统PATH环境变量中。编辑/etc/profile文件,在文件末尾添加以下内容:
# PostgreSQL
export PATH=$PATH:/usr/pgsql-xx/bin
其中,xx是安装的PostgreSQL版本号,比如11、12、13等。
1.4 启动PostgreSQL服务
可以使用systemctl命令启动PostgreSQL服务:
systemctl start postgresql-xx
其中,xx是安装的PostgreSQL版本号,比如11、12、13等。

编译安装
2.1 下载PostgreSQL源代码包
可以在PostgreSQL官网下载源代码包。选择与您的系统架构相应的源代码包,比如选择x86_64架构的源代码包。
2.2 安装编译工具和相关依赖
在CentOS 7.9系统上,可以使用以下命令安装编译工具和相关依赖:
yum groupinstall "Development Tools"
yum install readline-devel zlib-devel
2.3 配置编译环境
解压缩PostgreSQL源代码包后,进入源代码目录,运行configure脚本,配置编译环境:
如果需要进行更多的配置,可以使用configure脚本的选项。
2.4 编译源代码
配置完成后,运行make命令编译源代码:
编译过程可能需要一些时间,取决于您的系统配置和编译选项。
2.5 安装生成的二进制文件
编译完成后,运行make install命令安装生成的二进制文件:
./configure && make && make install
2.6 配置PostgreSQL的环境变量和文件路径
安装完成后,需要将PostgreSQL的二进制文件路径添加到系统PATH环境变量中。编辑/etc/profile文件,在文件末尾添加以下内容:
# PostgreSQL
export PATH=$PATH:/usr/local/pgsql/bin
2.7 启动PostgreSQL服务
可以使用以下命令启动PostgreSQL服务:
su - postgres -c '/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/logfile start'
这会以postgres用户身份启动PostgreSQL服务,其中-D选

3. 总结pg服务管理相关命令 pg_ctl 和pgsql命令选项及示例和不同系统的初始化操作
4. 总结pg数据库结构组织

1、数据库(Database):PostgreSQL支持多个数据库,每个数据库可以有多个表格。数据库是一个独立的实体,其中包含了所有相关的表格、视图、函数、索引等对象。
2、表格(Table):表格是存储数据的基本单元。每个表格包含多个列(column),每个列定义了表格中的一个字段。表格也可以包含索引(index)、约束(constraint)等对象。
3、列(Column):列定义了表格中的一个字段。每个列有一个数据类型,例如整数(integer)、字符型(character)、日期型(date)等。
4、行(Row):行是表格中的一个记录。每个记录都包含了表格中的每个字段的值。
5、约束(Constraint):约束是用于确保数据完整性和一致性的规则。PostgreSQL支持主键约束(primary key constraint)、外键约束(foreign key constraint)、唯一性约束(unique constraint)等。
6、索引(Index):索引是一种数据结构,用于加快数据的检索速度。PostgreSQL支持B树索引(B-tree index)、哈希索引(hash index)、GIN索引、GiST索引等。
7、视图(View):视图是虚拟的表格,由一个或多个表格的数据按照某种规则组合而成。视图可以用于简化复杂查询和隐藏底层表格的细节。
8、函数(Function):函数是一段可重用的代码,用于完成特定的任务。PostgreSQL支持存储过程(procedure)、触发器(trigger)、自定义函数(user-defined function)等。
9、模式(Schema):模式是数据库对象的逻辑分组。每个数据库可以包含多个模式,每个模式又可以包含多个表格、视图、函数等。模式可以用于将相关的对象组织到一起,以便更好地管理和控制访问。

5. 实现pg远程连接。输入密码和无密码登陆
6. 总结库,模式,表的添加和删除操作。表数据的CURD。同时总结相关信息查看语句。
7. 总结pg的用户和角色管理。
8. 添加mage用户,magedu模式,准备zabbix库,配置mage用户的默认模式magedu,要求mage用户给zabbix库有所有权限。
9. 总结pgsql的进程结构,说明进程间如何协同工作的。
10. 总结pgsql的数据目录中结构,说明每个文件的作用,并可以配上一些示例说明文件的作用。
11. 尝试将pgsql新版本的运行日志存储到数据库。
12. 图文并茂总结LSN和WAL日志相关概念
13. 实现WAL日志多种类型的备份,及数据还原。
14. 实现WAL日志完成主从流复制,要求在从节点上进行crontab数据备份,同时手工让主节点宕机,让从节点切换为主节点,并添加新的从节点。
15. 总结日志记录的内容包含什么

1、系统日志(System Log):包括内核日志、系统服务日志、登录日志等。系统日志记录了系统的运行状态、事件和错误信息,可用于排查系统问题和故障。
2、应用程序日志(Application Log):包括各种应用程序的日志,如Web服务器、数据库、邮件服务器等。应用程序日志记录了应用程序的运行状态、错误信息和调试信息,可用于排查应用程序问题和故障。
3、安全日志(Security Log):包括系统安全事件和用户活动日志。安全日志记录了系统的安全事件和用户的登录、注销、访问权限等信息,可用于审计和监控系统安全。
4、计划任务日志(Cron Log):包括计划任务的执行日志。计划任务日志记录了计划任务的执行情况,可用于检查计划任务是否正常执行。
5、内核转储日志(Core Dump Log):包括系统崩溃时产生的内核转储文件。内核转储日志记录了系统崩溃的原因和状态,可用于分析系统崩溃的原因和解决问题。
6、其他日志:还包括其他一些日志,如系统启动日志、网络日志、打印日志等。这些日志记录了系统和应用程序的各种事件和状态,可用于监控和管理系统。

16. 总结日志分类, 优先级别。图文并茂解释应用如何将日志发到rsyslog,并写到目标。
17. 总结rsyslog配置文件格式

rsyslog是默认的系统日志服务,它的配置文件通常位于/etc/rsyslog.conf,其格式如下:
1、全局配置(Global Configuration):配置文件的开头是全局配置段,用于设置全局参数,如默认日志文件、日志格式等。
2、模块配置(Module Configuration):在全局配置段之后,通常会列出每个模块的配置段,用于设置每个模块的参数和选项,如输入模块、输出模块等。
3、规则配置(Rule Configuration):在模块配置段之后,通常会列出各种规则的配置段,用于指定日志消息的处理方式,如过滤、转发、存储等。

rsyslog的配置文件格式使用基于关键字的语法,主要包括以下几个部分:
1、关键字(Keyword):配置文件中使用的关键字,如$ActionResumeInterval、$InputFileStateFile等。
2、属性(Properties):关键字的属性,如$InputFileName、$InputFileTag等。
3、值(Value):属性的值,如/var/log/messages、myapp等。
4、注释(Comment):以#开头的注释行,用于对配置文件进行说明和注释。

配置文件中使用$符号表示参数或变量,如$InputFileStateFile表示输入文件状态文件的路径。另外,rsyslog还支持通配符和正则表达式,用于匹配和过滤日志消息。

18.完成功能,sshd应用将日志写到rsyslog的local6分类,过滤所有级别,写入到/var/log/ssh.log。
18. 完成功能,将3个主机(要求主机名为ip)的ssh日志,通过rsyslog服务将ssh日志写入到集中的主机上的rsyslog服务,写入到/var/log/all-ssh.log文件
19. 总结/var/log/目录下常用日志文件作用。

/var/log/目录下存储了很多常用的日志文件,这些日志文件包含了丰富的信息,可以帮助管理员进行系统管理和故障排除。以下是/var/log/目录下常用日志文件的作用总结:
1、/var/log/messages:系统日志文件,记录了系统启动和关闭、服务启动和关闭、用户登录和注销、内核错误和警告等重要信息。
2、/var/log/secure:安全日志文件,记录了用户认证、授权、访问控制等安全相关的信息,可用于监控系统安全和审计用户活动。
3、/var/log/cron:计划任务日志文件,记录了计划任务的执行情况,可用于检查计划任务是否正常执行。
4、/var/log/boot.log:系统启动日志文件,记录了系统启动时的各种信息,可用于排查启动问题。
5、/var/log/dmesg:内核日志文件,记录了内核启动时的各种信息,可用于排查内核问题。
6、/var/log/httpd/access_log:Apache访问日志文件,记录了Apache服务器的访问日志,包括访问时间、请求方法、请求地址、响应状态码等信息。
7、/var/log/httpd/error_log:Apache错误日志文件,记录了Apache服务器的错误日志,包括请求错误、服务器错误、访问拒绝等信息。
8、/var/log/mysql/mysqld.log:MySQL服务器日志文件,记录了MySQL服务器的启动、关闭、数据库备份、错误等信息。

20. 总结journalctl命令的选项及示例

journalctl是系统中默认的日志查询工具,它可以查询系统日志、服务日志、内核日志等,支持各种过滤和格式化选项,以下是journalctl命令的选项及示例:

基本选项:
-a, --all:查询所有可用的日志来源。
-f, --follow:实时跟踪新日志的输出,类似于tail -f命令。
-n NUM, --lines=NUM:查询最近的NUM条日志,如-journalctl -n 10。

过滤选项:
-u UNIT, --unit=UNIT:查询指定服务的日志,如-journalctl -u sshd。
-p PRIORITY, --priority=PRIORITY:查询指定日志级别的日志,如-journalctl -p err。
--since TIME, --until TIME:查询指定时间范围内的日志,如-journalctl --since "2023-01-01 00:00:00"。
_SYSTEMD_UNIT=UNIT:查询指定服务的日志,可用于grep命令进行过滤。

输出格式选项:
-o FORMAT, --output=FORMAT:指定输出格式,如journalctl -o json。
-o cat:将日志按照原始格式输出。
-o verbose:将日志以详细格式输出。

示例:
查询系统日志:journalctl。
查询指定服务的日志:journalctl -u httpd。
查询指定时间范围内的日志:journalctl --since "2023-01-01 00:00:00"。
查询指定日志级别的日志:journalctl -p err。
实时跟踪日志输出:journalctl -f。
输出json格式的日志:journalctl -o json。
查询某个服务的日志,并使用grep命令进行过滤:journalctl _SYSTEMD_UNIT=httpd|grep "error"。

21. 完成将多个主机(要求主机名为ip)的nginx日志集中写入到mysql表中
22. 尝试使用logrotate服务切割nginx日志,每天切割一次,要求大于不超过3M, 保存90天的日志, 旧日志以时间为后缀,要求压缩。
23. 总结DAS, NAS, SAN区别,使用场景

DAS是一种直接连接到主机或服务器的存储设备,它通过SAS(Serial Attached SCSI)或SATA(Serial ATA)等接口与主机连接,通常是一种本地存储技术,因此只能被连接到单个服务器上。DAS适用于小型环境或不需要共享存储资源的环境,如个人电脑、工作站、小型办公室等。
NAS是一种通过网络连接的存储设备,它通过以太网或无线网络与网络中的多个设备共享存储空间,通常以NAS服务器的形式出现。NAS是一个独立的存储设备,提供文件共享、远程备份、打印服务器等功能。NAS适用于需要共享存储资源的环境,如中小型企业、分支机构、家庭等。
SAN是一种高速的存储网络,它将存储设备与主机连接,以Fibre Channel或iSCSI协议通信。SAN是一种基于存储块的存储技术,提供高性能、高可用性、高可靠性和灵活性,可用于存储关键应用程序的数据,如数据库、虚拟化环境等。SAN适用于大型企业、数据中心等需要高性能存储环境的场景。

24. 实现nfs共享/data/nfs目录,所有压缩为666用户。并配置其他虚拟机自动挂载。
25. 总结inotify原理,命令及使用
26. 总结rsync原理,命令及ssh命令和rsync协议使用。完成目录文件同步。
27. 总结sersync的配置,同时基于sersync替换inotify+rsync.
28. 配置LAMP要求 域名使用主从dns, dns解析到2个apache节点,apache和php在同一个节点,同时将wordpress的upload目录基于nfs挂载,同时基于rsync协议将网站同步到备份的nfs服务器, mariadb使用mycat读写分离并且要求后端为MHA集群。 架构规划图及解析一次请求和响应的流程和实践过程。同时将所有主机的apache, php, mariadb日志集中收集。
29. 总结 Redis多种安装方法和内核参数优化
30. 总结 Redis 常见指令和数据类型

posted @ 2023-04-25 09:54  Jack_Cui  阅读(56)  评论(0编辑  收藏  举报