共計(jì) 3900 個(gè)字符,預(yù)計(jì)需要花費(fèi) 10 分鐘才能閱讀完成。
這期內(nèi)容當(dāng)中丸趣 TV 小編將會(huì)給大家?guī)?lái)有關(guān)如何進(jìn)行 mysql 備份平臺(tái)及 django 實(shí)踐,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
mysql 備份平臺(tái) –django 實(shí)踐
一、mysql 備份平臺(tái)
1.1、mysql 備份平臺(tái)說(shuō)明
1 功能:
實(shí)現(xiàn)界面化備份表、SQL 導(dǎo)出備份
2 方法:
利用 django,bootstrap,mysqldump,html 來(lái)搭建
利用 mysqldump 優(yōu)先選擇從庫(kù)進(jìn)行導(dǎo)出備份
3 適用場(chǎng)景:
上線前的備份,日常備份等
1.2、平臺(tái)界面如下
1.2.1、最初界面
注:被屏蔽的為 IP 地址與端口,自己測(cè)試的時(shí)候更改即可
界面丑了點(diǎn),主要只是作者本人所做,沒(méi)有開(kāi)發(fā)、前端等幫助,且只有 DBA 自己使用,就簡(jiǎn)單實(shí)用就行啦~ 您也可以找前端幫助美化~
1.2.2、檢查庫(kù)信息的界面
注:在此處輸入庫(kù)名,例如 my,點(diǎn)擊檢查庫(kù)名對(duì)應(yīng)記群號(hào),即可獲取此庫(kù)對(duì)應(yīng)的集群信息
即 1 號(hào)集群
1.2.3、SQL 備份方式
注:選擇 SQL 備份方式,在輸入框輸入具體 SQL
下面確定集群號(hào),輸入 1,點(diǎn)擊提交即可
因:html 不太熟悉,暫時(shí)不知如何點(diǎn)擊 1@my 來(lái)確定集群,后期優(yōu)化下
備份結(jié)果如圖:
注:
備份地址為中控機(jī)的地址
表名不好獲取,暫時(shí)為空
1.2.4、table 模式備份
注:選擇 TABLE,選擇 table 備份模式:
只導(dǎo)表結(jié)構(gòu),只導(dǎo)數(shù)據(jù),表結(jié)構(gòu)和數(shù)據(jù)全部
填入集群號(hào) 1
輸入表名,多個(gè)表名以空格 分隔即可
例如:my_db my_cluster my_database
備份結(jié)果如圖:
注:
即 3 張表都備份到中控機(jī)的地址
文件名:庫(kù)名_表名_時(shí)間
二、具體實(shí)現(xiàn)
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 環(huán)境搭建
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
測(cè)試是否 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、數(shù)據(jù)庫(kù)
1、創(chuàng)建好 mysql 數(shù)據(jù)庫(kù), 此處忽略
2、建立數(shù)據(jù)庫(kù) my,創(chuàng)建元信息表,具體可參考博客:mysql 多層元信息與查詢實(shí)踐(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
注:次處只有一個(gè) mysql,只做元信息庫(kù)與測(cè)試備份庫(kù)
4、構(gòu)建數(shù)據(jù):
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 詳細(xì)
1 創(chuàng)建項(xiàng)目
cd /chunlei/django/
django-admin.py startproject dba_backup
會(huì)產(chǎn)生目錄 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 設(shè)置配置文件
cd /chunlei/django/dba_backup/dba_backup
vi settings.py
ALLOWED_HOSTS = [可以訪問(wèn)的 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、設(shè)置 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 的網(wǎng)頁(yè)文件
/chunlei/django/dba_backup/dba_backup
mkdir templates
文件如附件
6、啟動(dòng) django
cd /chunlei/django/dba_backup
python manage.py runserver IP: 端口
7 測(cè)試使用
http://IP: 端口號(hào) /sql_export_search_form/
具體使用方式如上面圖即可
三、其他
3.1、優(yōu)點(diǎn)
簡(jiǎn)單方便 DBA 備份,可以在上線前備份,或者日常備份
優(yōu)先找備份庫(kù)備份,防止影響主庫(kù)性能
導(dǎo)出限制條數(shù),防止影響從庫(kù)性能
3.2、缺點(diǎn)
界面簡(jiǎn)單,后期可以優(yōu)化下界面
代碼不整潔,為剛學(xué)時(shí)所做,后期可以優(yōu)化下
上述就是丸趣 TV 小編為大家分享的如何進(jìn)行 mysql 備份平臺(tái)及 django 實(shí)踐了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。