首页 > 数据库 >数据库备份和Shell基础测试及AWK(运维)

数据库备份和Shell基础测试及AWK(运维)

时间:2023-08-29 18:34:07浏览次数:44  
标签:Shell 运维 备份 命令 AWK MySQL test 服务器 数据库

数据库备份和Shell基础测试及AWK(运维)_MySQL

第一题:使用MySQL命令进行备份和恢复的步骤如下:

  1. 备份test库:使用mysqldump命令备份test库,并将备份写入一个.sql文件中。命令示例:mysqldump -u 用户名 -p 密码 test > backup.sql
  2. 恢复备份:使用mysql命令将备份文件中的数据恢复到test库中。命令示例:mysql -u 用户名 -p 密码 test < backup.sql

第二题:MySQL主从复制的原理是将一个MySQL数据库服务器(主服务器)上的数据自动复制到另一个MySQL服务器(从服务器)上。 主从复制的步骤如下:

  1. 在主服务器上开启二进制日志(binlog)功能,记录数据库更新操作。
  2. 设置从服务器连接到主服务器,并将主服务器的binlog传输到从服务器。
  3. 从服务器接收到主服务器传输的binlog,并将其应用到从服务器的数据库中,实现数据同步。

第三题:冷备份和热备份是数据库备份的两种方式。 冷备份是在数据库关闭的情况下进行备份,备份期间数据库不可用。冷备份的优点是可以保证数据一致性,备份速度较快。缺点是备份期间数据库不可用,对业务造成影响。

热备份是在数据库运行的情况下进行备份,备份期间数据库仍可读写。热备份的优点是备份期间对业务无影响,数据库持续可用。缺点是备份过程可能影响数据库性能,备份速度相对较慢。

第四题:MySQL binlog(二进制日志)有三种日志录入格式:STATEMENT、ROW和MIXED。

  • STATEMENT格式:以SQL语句的形式记录二进制日志,记录的是执行的SQL语句。优点是日志文件相对较小,缺点是在一些特定情况下,例如使用非确定性函数、触发器等,可能会导致数据不一致。
  • ROW格式:以行的形式记录二进制日志,记录的是行级别的改变。优点是能够确保数据一致性,缺点是日志文件相对较大。
  • MIXED格式:结合了STATEMENT和ROW格式,根据具体情况选择合适的格式进行记录。

第五题:当MySQL数据库的CPU飙升到500%,可以考虑以下处理方法:

  1. 查看当前数据库连接数和数据库操作情况,使用SHOW FULL PROCESSLIST命令。
  2. 检查数据库的性能参数配置,例如innodb_buffer_pool_size、query_cache_size等是否合理配置。
  3. 检查当前数据库的慢查询和高并发查询,尝试优化这些查询,例如添加合适的索引。
  4. 检查是否有异常或错误的查询语句占用了大量CPU资源,及时修复或优化这些查询。
  5. 可以考虑升级数据库服务器的硬件,增加CPU核心数或内存容量。
  6. 如有必要,可以使用数据库性能监控工具进行更详细的分析和调优。

第六题:数据库备份的正确做法包括以下几个方面:

  1. 定期进行备份,确保数据的安全性。
  2. 使用合适的备份策略,根据业务需求选择全量备份或增量备份。
  3. 备份数据的完整性,保证备份的数据能够准确恢复。
  4. 将备份数据保存在安全可靠的位置,防止数据丢失或遭到破坏。
  5. 测试备份的可恢复性,确保备份数据能够成功恢复。
  6. 配置合适的备份工具和参数,确保备份的效率和可靠性。
  7. 与业务需求相结合,根据数据的重要性和变化频率,灵活调整备份策略和频率。

第七题:数据库事务有四大特性,即ACID:

  1. 原子性(Atomicity):事务中的操作要么全部执行成功,要么全部回滚,不会部分执行。
  2. 一致性(Consistency):事务执行前后数据库的状态保持一致,符合一定的业务规则和约束。
  3. 隔离性(Isolation):事务间的操作相互隔离,各个事务之间互不影响,保证数据的独立性。
  4. 持久性(Durability):事务提交后,对数据库的改变是永久的,即使发生故障也不会丢失。

第八题:以下是一个bash脚本,用于查找最后创建时间是3天前,后缀是*.log的文件并删除:

#!/bin/bash
find /path/to/directory -name "*.log" -type f -mtime +3 -delete

/path/to/directory替换为要查找的目录路径,保存脚本为.sh文件,通过命令chmod +x script.sh赋予执行权限,然后执行脚本即可删除符合条件的文件。

第九题:以下是一个bash脚本,将某目录下大于100K的文件移动至/tmp目录下:

#!/bin/bash
find /path/to/source -type f -size +100k -exec mv {} /tmp \;

/path/to/source替换为要查找的目录路径,保存脚本为.sh文件,通过命令chmod +x script.sh赋予执行权限,然后执行脚本即可将符合条件的文件移动至/tmp目录。

第十题:MySQL主从延迟的原因包括以下几种:

  1. 网络延迟:主从服务器之间的网络传输延迟导致数据同步延迟。
  2. 主库负载过高:主库的负载过高导致数据同步速度变慢。
  3. 从库配置不足:从库的硬件配置不足导致同步速度跟不上主库写入速度。
  4. 大事务:主库上发生的大事务可能会导致复制延迟,因为事务必须完全复制到从库才能进行提交。

第十一题:判断MySQL主从延迟可以通过以下方法:

  1. 使用SHOW SLAVE STATUS命令查看从库的状态信息,其中Seconds_Behind_Master字段显示了从库与主库的延迟时间(单位为秒)。
  2. 监控主从复制的延迟情况,可以使用监控工具或脚本定时查询Seconds_Behind_Master字段的值,并根据条件判断延迟是否达到预期的阈值。

第十二题:MySQL备份和恢复的方法包括以下几种:

  1. 使用mysqldump命令进行备份和恢复:通过导出和导入SQL文件的方式进行备份和恢复。
  2. 使用物理备份和恢复工具(如Percona XtraBackup):可以进行全量备份和增量备份,并支持快速恢复。
  3. 使用主从复制:将主库作为备份源,通过复制从库来实现备份和恢复。
  4. 使用第三方备份工具:如MySQL Enterprise Backup、mydumper等。

第十三题:数据库的几个缓存服务器包括:

  1. Redis:开源的内存数据库,支持键值对存储和多种数据结构操作,具有高速读写和持久化功能。
  2. Memcached:开源的分布式内存对象缓存系统,用于加速动态数据库驱动的网站。
  3. Aerospike:高性能的分布式NoSQL数据库,具有灵活的数据模型和多种查询方式。
  4. Couchbase:基于Memcached和CouchDB的混合型缓存数据库,具有高性能和灵活性。
  5. Hazelcast:开源的分布式内存数据网格,提供分布式数据存储和计算能力。

第十四题:' 和 " 引号的区别如下:

  • 单引号('):字符串中的内容会被原样输出,不会进行变量替换或转义字符处理。
  • 双引号("):字符串中的内容会进行变量替换和转义字符处理。

例如,在双引号中可以使用$var格式来引用变量,而在单引号中直接输出$var字符。

第十五题:$?表示上一个命令的退出状态(返回码)。

  • 如果命令执行成功,退出状态为0。
  • 如果命令执行失败,退出状态为非零值,通常用于表示不同类型的错误。

通过检查$?的值,可以判断上一个命令是否执行成功,从而根据情况采取相应的处理。

第十六题:使用awk列出UID小于100的用户,可以通过以下命令实现:

awk -F: '$3 < 100 { print $1 }' /etc/passwd

该命令将以:为分隔符,以第3个字段(UID)小于100的行中的第1个字段(用户名)进行输出。

第十七题:获取一个文件每一行的第三个元素,可以使用以下命令:

awk '{ print $3 }' 文件名

文件名替换为你要处理的文件名,该命令将输出文件中每一行的第三个元素。

第十八题:以下是一个bash脚本,用于查找指定网段内存活的IP,并将结果保存到一个文件中:

#!/bin/bash
subnet="192.168.0"
for i in {1..255}; do
ip=$subnet.$i
if ping -c 1 -w 1 $ip >/dev/null; then
echo $ip >> alive_ips.txt
fi
done

subnet变量替换为指定的网段,保存脚本为.sh文件,通过命令chmod +x script.sh赋予执行权限,执行脚本后,存活的IP地址将被追加到alive_ips.txt文件中。

第十九题:Shell循环语句有以下几种:

  1. for循环:用于指定一个列表,然后对列表中的每个元素执行特定的操作。
  2. while循环:在指定条件为真(非零)的情况下执行一系列命令。
  3. until循环:在指定条件为假(零)的情况下执行一系列命令。
  4. select循环:用于创建菜单,让用户进行选择。
  5. foreach循环:用于遍历指定对象的集合。

第二十题:以下是一个shell脚本,用于将1到10的数字相加:

#!/bin/bash
sum=0
for ((i=1; i<=10; i++)); do
sum=$((sum + i))
done
echo $sum

第二十一题:使用sed修改test.txt文件的第23行中的"test"为"tset",可以使用以下命令:

sed -i '23s/test/tset/' test.txt

该命令将在文件test.txt的第23行中将"test"替换为"tset",并将修改写入原文件。

第二十二题:except是一个Python语言中的关键字,用于捕获和处理异常,用法和作用如下:

  • 用法:except关键字后跟一个异常类型,用于捕获指定类型的异常。
  • 作用:当try语句块中发生指定类型的异常时,对应的except语句块将被执行,用于处理异常情况,防止程序终止并提供错误处理逻辑。


标签:Shell,运维,备份,命令,AWK,MySQL,test,服务器,数据库
From: https://blog.51cto.com/SongR/7279116

相关文章

  • 龙蜥白皮书精选:SysAK—大规模复杂场景的系统运维利器
    文/系统运维SIG01概述SysAK(SystemAnalyseKit)是龙蜥社区系统运维SIG,通过对过往百万服务器运维经验进行抽象总结,而提供的一个全方位的系统运维工具集,可以覆盖系统的日常监控、线上问题诊断和系统故障修复等常见运维场景。工具的整体设计上,力图让运维工作回归简单,让系统运维人员......
  • DevOps 运维平台审计开发
    过期提醒过期配置页通知消息:......
  • Prometheus监控运维实战十: 主机监控指标
    在上一篇文章中我们学习了如何通过node-exporter获取主机监控信息。但安装好监控只是第一步,我们还需要知道哪些监控指标是我们需要关注的。本文将对Prometheus相关的主机监控指标进行介绍。一.CPU监控CPU负载node_load1node_load5node_load15 以上三个指标为主机的CPU平均......
  • 为什么自动化运维难以推广
    从价值流的角度去分析:devops为何能做到高度自动化,而自动化运维难以推广,因为devops是从价值流出发,是服务于最终用户的,提升最终用户获得价值的效率,有巨大的推动力。而自动化运维只是从运维内部来推动,帮助运维团队提升工作效率,说白了直接受益者还是运维内部,客户感知不强烈。从价值角......
  • 纯水设备智能运维管理系统,远程监控,故障预警
    纯水设备适用于生产纯净水的设备,一般包括原水处理设备、海水淡化设备、地下水处理设备、超滤设备等,在电子、化工、食品、医药、海水淡化等领域应用广泛。为增强纯水设备的生产管理与故障预警能力,数之能提供设备智能运维管理系统,旨在提高纯水设备的管理效率和可靠性。包括以下功能: ......
  • FTP传文件容易丢失且运维管理难,是否有好的替代传输产品?
    文件传输协议(FTP),诞生于1971年,自20世纪70年代发明以来,FTP已成为传输大文件的不二之选。内置有操作系统的FTP可提供一个相对简便、看似免费的文件交换方法,因此得到广泛使用。后来由于FTP缺乏足够的安全性,市场中也引入了其他的协议,比如文件传输安全协议(FTPS)和安全的文件传输协议(S......
  • 智慧电力运维物联网平台
    我们构建软硬件结合的生态系统,打造电力设备物联平台,实现软件、硬件、平台、云数据一体化。在硬件领域通过自主研发推出了一系列电力领域的硬件设备,包括:智能电力测控终端、智能电力采集终端等产品。在软件领域,我们搭建电力设备物联平台。传统电力行业设备接入我们的电力设备物联平......
  • 1.5 编写自定位ShellCode弹窗
    在笔者上一篇文章中简单的介绍了如何运用汇编语言编写一段弹窗代码,虽然简易ShellCode可以被正常执行,但却存在很多问题,由于采用了硬编址的方式来调用相应API函数的,那么就会存在一个很大的缺陷,如果操作系统的版本不统或系统重启过,那么基址将会发生变化,此时如果再次调用基址参数则会......
  • 1.6 编写双管道ShellCode
    本文将介绍如何将CMD绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道、启动进程、传输数据等方面对这个功能进行详细讲解。此外,本文还将通过使用汇编语言一步步来实现这个可被注入的ShellCode后门,并以此提高代码通用性。......
  • 系统运维的工作具体做什么?(每天的工作----------掌握)
    系统运维日常巡检都做什么原创 六便士IT 六便士IT 2023-07-2511:00 发表于陕西收录于合集#Linux运维34个系统运维日常巡检是确保服务器和系统正常运行的关键活动。它涉及对硬件、软件和网络进行定期检查,以发现潜在问题并采取相应的措施。以下是系统运维日常巡检的一......