溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何進(jìn)行mysql備份平臺(tái)及django實(shí)踐

發(fā)布時(shí)間:2021-11-16 09:50:50 來(lái)源:億速云 閱讀:483 作者:柒染 欄目:MySQL數(shù)據(jù)庫(kù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何進(jìn)行mysql備份平臺(tái)及django實(shí)踐,文章內(nèi)容豐富且以專(zhuān)業(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í)用就行啦~您也可以找前端幫助美化~
如何進(jìn)行mysql備份平臺(tái)及django實(shí)踐
 
1.2.2、檢查庫(kù)信息的界面
:在此處輸入庫(kù)名,例如my,點(diǎn)擊檢查庫(kù)名對(duì)應(yīng)記群號(hào),即可獲取此庫(kù)對(duì)應(yīng)的集群信息
即 1號(hào)集群
 如何進(jìn)行mysql備份平臺(tái)及django實(shí)踐
1.2.3、SQL備份方式
:選擇SQL備份方式,在輸入框輸入具體SQL
下面確定集群號(hào),輸入1,點(diǎn)擊提交即可
因:html不太熟悉,暫時(shí)不知如何點(diǎn)擊1@my  來(lái)確定集群,后期優(yōu)化下
 如何進(jìn)行mysql備份平臺(tái)及django實(shí)踐

備份結(jié)果如圖
注:
備份地址為中控機(jī)的地址 
表名不好獲取,暫時(shí)為空

 如何進(jìn)行mysql備份平臺(tái)及django實(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
 如何進(jìn)行mysql備份平臺(tái)及django實(shí)踐
備份結(jié)果如圖
注:
即3張表都備份到中控機(jī)的地址
文件名:庫(kù)名_表名_時(shí)間
 如何進(jìn)行mysql備份平臺(tái)及django實(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多層元信息與查詢(xún)實(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';
查詢(xún)用戶(hù)
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地址,也可以寫(xiě)*即不限制'] 
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>、編寫(xiě)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:端口
如何進(jìn)行mysql備份平臺(tái)及django實(shí)踐
<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)單,后期可以?xún)?yōu)化下界面
代碼不整潔,為剛學(xué)時(shí)所做,后期可以?xún)?yōu)化下

上述就是小編為大家分享的如何進(jìn)行mysql備份平臺(tái)及django實(shí)踐了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI