Python服务器运维笔记:第一章数据库精讲 - 1.1.11 数据库管理

前言:本文是学习网易微专业的《python全栈工程师》 中的《服务器运维开发工程师》专题的课程笔记,欢迎学习交流。同时感谢老师们的精彩传授!

一、课程目标

  • 服务器帐号管理
  • mysql日志配置
  • 数据库备份与恢复

二、详情解读

2.1.服务器帐号管理
2.1.1.用户授权(DCL)

对已存在用户授权:

mysql>>>grant privileges_type on dbname.tablename to username@host

创建新用户并授权:

mysql>>>grant privileges_type on dbname.tablename to username@host identified by 'password'

privileges_type说明:

参数 说明
all privileges 所有权限
select 读取权限
delete 删除权限
update 更新权限
create 创建权限
drop 删除数据库、数据表权限
2.1.2.用户管理

例子1:为已存在的用户创建可以操作mycms的所有权限

mysql>>>grant all privileges on mycms.* to lxp@localhost

例子2:创建新用户wxp,只能本地localhost访问,拥有对mycmsusers表查询操作:

mysql>>>grant select on mycms.users to wxp@localhost identified by '123456'
2.2.日志配置
2.2.1.日志类型与配置

日志类型:
1、错误日志 - 记录数据库启动与停止,以及运行过程中发生的错误。
2、二进制日志 - 记录了所有 ddldml的语句,不包括select语句,即数据发生变化的过程。
3、通用日志 - 记录了客户端的所有语句,一般情况下不开启。
4、慢查询日志 - 记录了数据库查询超过一定时间的语句。

日志配置:

# my.cnf
# 开启通用日志
general_log = 1
# 通用日志地址
general_log_file = /usr/local/mysql/logs/general.log
# 开启慢查询日志
slow_query_log = 1
# 慢查询日志地址
slow_query_log_file = /usr/local/mysql/logs/slow.log
# 慢查询阀值
long_query_time = 5
log_output = FILE
# 二进制,二进制日志是备份里非常重要的日志,需要配置好,防止数据库崩溃,无法恢复数据。
--log-bin = "server_1_bin"
server_id = 1
2.3.数据库备份

数据库备份是日常运维的一部分,很多数据需要定期的备份,比如一天一备份,或者一周一备份,完全看数据库更改的频度。如果希望数据库备份越接近越好,则需要频繁地备份;如果数据库没有什么访问量,则可以一周备份一次。

通常是使用一个定时任务来完成备份。一般在做数据库迁移或者升级时,都需要提前进行数据库备份。防止数据库迁移或升级失败时无法恢复数据。

数据库备份使用mysqldump命令:
1、备份database库的tablename

shell>>> mysqldump -u account -p database tablename1 tablename2 > mycms.sql

示例:
1、备份mycms库的users

shell>>> mysqldump -u root -p mycms users > mycms.sql

2、备份database库中所有表

shell>>>mysqldump -u -root -p mycms > mycms.sql

说明:
1)、shell表示:上面所有的命令都是shell终端中执行的,而不是mysql客户端中执行的。
2)、最后的>表示:将数据备份到当前目录下的mycms.sql文件中,也可以备份到指定目录下的文件中。

备份多个数据库:
1、备份database库的tablename

shell>>>mysqldump -u account -p --databases database1 dtabase2 > datafile.sql

示例:
1、备份mycms,test数据库

shell>>>mysqldump -u root -p --databases mycms test > my.sql

2、备份database库中所有库

shell>>>mysqldump -u root -p --all-databases > mycms.sql
2.4.数据备份恢复
2.4.1.数据库备份与恢复注意事项

备份时应当注意,备份期间,数据不应该发生变化,以保证数据一致性:

mysqldump -u -p -l -F

在参数上加上 -l,备份期间只能读不能写。
在参数上加上-F,生成新的日志,这样在恢复数据时,可以恢复备份之后的数据
在这里插入图片描述

2.4.2.完全恢复

完全恢复数据分为两步:
Step1 - 将备份文件中的数据导入数据库:

mysql dbname < backupfile -u account -p

Step2 - 恢复备份之后到当前的数据(二进制日志):

mysqlbinlog binlog文件| mysql dbname -u root -p
2.5.基于时间点恢复

如果二进制日志中记录了一些误操作,那么基于日志恢复,也会执行这些误操作,所以无法恢复误操作。所以必须跳过误操作:
1.mysqlbinlog --stop-datetime="......" logfile|mysql -u -p
2. mysqlbinlog --start-dastetime="......" logfile|mysql -u -p

三、课程小结

  • 01 用户授权
  • 02 日志配置
  • 03 数据备份
  • 04 日志时间点恢复
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章