共计 3900 个字符,预计需要花费 10 分钟才能阅读完成。
这期内容当中丸趣 TV 小编将会给大家带来有关如何进行 mysql 备份平台及 django 实践,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
mysql 备份平台 –django 实践
一、mysql 备份平台
1.1、mysql 备份平台说明
1 功能:
实现界面化备份表、SQL 导出备份
2 方法:
利用 django,bootstrap,mysqldump,html 来搭建
利用 mysqldump 优先选择从库进行导出备份
3 适用场景:
上线前的备份,日常备份等
1.2、平台界面如下
1.2.1、最初界面
注:被屏蔽的为 IP 地址与端口,自己测试的时候更改即可
界面丑了点,主要只是作者本人所做,没有开发、前端等帮助,且只有 DBA 自己使用,就简单实用就行啦~ 您也可以找前端帮助美化~
1.2.2、检查库信息的界面
注:在此处输入库名,例如 my,点击检查库名对应记群号,即可获取此库对应的集群信息
即 1 号集群
1.2.3、SQL 备份方式
注:选择 SQL 备份方式,在输入框输入具体 SQL
下面确定集群号,输入 1,点击提交即可
因:html 不太熟悉,暂时不知如何点击 1@my 来确定集群,后期优化下
备份结果如图:
注:
备份地址为中控机的地址
表名不好获取,暂时为空
1.2.4、table 模式备份
注:选择 TABLE,选择 table 备份模式:
只导表结构,只导数据,表结构和数据全部
填入集群号 1
输入表名,多个表名以空格 分隔即可
例如:my_db my_cluster my_database
备份结果如图:
注:
即 3 张表都备份到中控机的地址
文件名:库名_表名_时间
二、具体实现
2.1、python2.7 安装
tar zvf Python-2.7.10.tar
cd Python-2.7.10
./configure –enable-shared –prefix=/usr/local/python27
make make install
cp /usr/local/python27/lib/libpython2.7.so.1.0 /usr/local/lib
cd /usr/local/lib
ln -s libpython2.7.so.1.0 libpython2.7.so
2.2、django 环境搭建
tar zxvf Django-1.11.3.tar.gzcd Django-1.11.3
python setup.py install
2.3、安装 MySQL-python
tar xvf MySQL-python-1.2.3.tarcd MySQL-python-1.2.3/
python setup.py build
python setup.py install
测试是否 ok
Python 2.7.5 (default, Nov 6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type help , copyright , credits or license for more information.
import django
import MySQLdb
2.4、数据库
1、创建好 mysql 数据库, 此处忽略
2、建立数据库 my,创建元信息表,具体可参考博客:mysql 多层元信息与查询实践(http://blog.itpub.net/28823725/viewspace-2142234/)
create user dumper@ 127.0.0.1 identified by 123456
grant select on *.* to dumper@ 127.0.0.1
grant show view on *.* to dumper@ 127.0.0.1
grant lock tables on *.* to dumper@ 127.0.0.1
grant trigger on *.* to dumper@ 127.0.0.1
查询用户
create user dba_read@ 127.0.0.1 identified by 123456
grant select on *.* to dba_read@ 127.0.0.1
注:次处只有一个 mysql,只做元信息库与测试备份库
4、构建数据:
insert into my_server values(1, 127.0.0.1 , 127.0.0.1 , lcl , 1 , idc1 , 2017-07-24 10:00:00 , A ,now());
insert into my_ip values(1, 127.0.0.1 , lcl , 1 , idc1 , 2017-07-24 10:00:00 , A ,now())
insert into my_cluster values(1, my ,6001, db info ,0,1,now(),now(), 1 ,10,10, 5.7.19 ,1,1, db info
insert into my_db values(1,1, 127.0.0.1 ,6001,1,now(),now(),1, w,r , Master ,1,1,0,1, /data/mysql/ , 1G , 5.7.19 , my , succ , db info
insert into my_database values(1,1, my , my , lcl ,1,1,now(),now(), dba , dba , succ , db info
2.5、django 详细
1 创建项目
cd /chunlei/django/
django-admin.py startproject dba_backup
会产生目录 dba_backup
cd /chunlei/django/dba_backup
ls
drwxr-xr-x. 3 root root 4096 Jul 24 17:18 dba_backup
-rwxrwxr-x. 1 root root 808 Jul 24 14:56 manage.py
2 设置配置文件
cd /chunlei/django/dba_backup/dba_backup
vi settings.py
ALLOWED_HOSTS = [可以访问的 IP 地址,也可以写 * 即不限制]
INSTALLED_APPS = [
django.contrib.admin ,
django.contrib.auth ,
django.contrib.contenttypes ,
django.contrib.sessions ,
django.contrib.messages ,
django.contrib.staticfiles ,
dba_backup ,
]
EMPLATES = [
{
BACKEND : django.template.backends.django.DjangoTemplates ,
DIRS : [/chunlei/chunlei/django/dba_backup/dba_backup/templates],
APP_DIRS : True,
OPTIONS : {
context_processors : [
django.template.context_processors.debug ,
django.template.context_processors.request ,
django.contrib.auth.context_processors.auth ,
django.contrib.messages.context_processors.messages ,
],
},
},
]
TIME_ZONE = Asia/Shanghai
3、设置 django 的 url 文件
from django.conf.urls import url
from django.contrib import admin
from dba_backup.views import sql_export_search_form
from dba_backup.views import sql_export_result
from dba_backup.views import sql_export_sql
urlpatterns = [
url(r ^admin/ , admin.site.urls),
url(r ^sql_export_search_form/$ ,sql_export_search_form),
url(r ^sql_export_result/$ , sql_export_result),
url(r ^sql_export_search_form/sql_export_sql/$ , sql_export_sql),
]
4、编写 django 的 view 文件
如附件
5、django 的 template 的网页文件
/chunlei/django/dba_backup/dba_backup
mkdir templates
文件如附件
6、启动 django
cd /chunlei/django/dba_backup
python manage.py runserver IP: 端口
7 测试使用
http://IP: 端口号 /sql_export_search_form/
具体使用方式如上面图即可
三、其他
3.1、优点
简单方便 DBA 备份,可以在上线前备份,或者日常备份
优先找备份库备份,防止影响主库性能
导出限制条数,防止影响从库性能
3.2、缺点
界面简单,后期可以优化下界面
代码不整洁,为刚学时所做,后期可以优化下
上述就是丸趣 TV 小编为大家分享的如何进行 mysql 备份平台及 django 实践了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。