成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

使用xtrabackup工具實現(xiàn)對MySQL數(shù)據(jù)庫備份

下文給大家?guī)碛嘘P使用xtrabackup工具實現(xiàn)對MySQL數(shù)據(jù)庫備份內(nèi)容,相信大家一定看過類似的文章。我們給大家?guī)淼挠泻尾煌??一起來看看正文部分吧,相信看完使用xtrabackup工具實現(xiàn)對MySQL數(shù)據(jù)庫備份你一定會有所收獲。

目前累計服務客戶數(shù)千家,積累了豐富的產(chǎn)品開發(fā)及服務經(jīng)驗。以網(wǎng)站設計水平和技術實力,樹立企業(yè)形象,為客戶提供成都網(wǎng)站建設、成都網(wǎng)站設計、網(wǎng)站策劃、網(wǎng)頁設計、網(wǎng)絡營銷、VI設計、網(wǎng)站改版、漏洞修補等服務。創(chuàng)新互聯(lián)公司始終以務實、誠信為根本,不斷創(chuàng)新和提高建站品質,通過對領先技術的掌握、對創(chuàng)意設計的研究、對客戶形象的視覺傳遞、對應用系統(tǒng)的結合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進步。

xtrabackup是由percona提供的MySQL數(shù)據(jù)庫備份工具,其備份速度快并且可靠;備份過程不會打斷正在執(zhí)行的事務;能夠基于壓縮等功能節(jié)約磁盤空間和流量;自動實現(xiàn)備份檢驗;還原速度快。

若需要安裝xtrabackup,可以移步其官方網(wǎng)站,在其官網(wǎng)上提供了多種安裝方式。

博文大綱:

  • 一、安裝xtrabackup及其插件
  • 二、xtrabackup完全備份+binlog增量備份
  • 三、xtrabackup完全備份+xtrabackup增量備份
  • 四、innobackupex全庫備份+innobackupex增量備份

注:二、三、四是三種不同的備份方案,在生產(chǎn)環(huán)境中選擇合適的一種即可。

一、安裝xtrabackup及其插件

1、yum安裝xtrabackup

參考官方文檔,在官方文檔上提供了各個版本的幫助說明。

[root@mysql ~]# yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm  
[root@mysql ~]# yum -y install percona-xtrabackup-24

xtrabackup中主要包含兩個工具:

  • xtrabackup:是用于熱備份innodb,xtradb表中數(shù)據(jù)的工具,支持在線熱備份,可以在不加鎖的情況下備份innodb數(shù)據(jù)表,不過該工具不能操作myisam引擎表。
  • innobackupex:是將xtrabackup進行封裝的perl腳本,能同時處理innodb和myisam,但在處理myisam時需要加一個讀鎖,由于操作myisam時需要加讀鎖,所以會堵塞線上服務的寫操作,而Innodb沒有這樣的限制。
2、下載并安裝percona-toolkit工具
[root@mysql test]# yum -y install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-TermReadKey.x86_64 perl-Digest-MD5
[root@mysql test]# wget https://www.percona.com/downloads/percona-toolkit/2.2.19/RPM/percona-toolkit-2.2.19-1.noarch.rpm
[root@mysql test]# rpm -ivh percona-toolkit-2.2.19-1.noarch.rpm

二、xtrabackup完全備份+binlog增量備份

1、創(chuàng)建備份目錄
[root@mysql test]# mkdir -p /opt/mysqlbackup/{full,inc}
# full:全備存放的目錄
# inc:增量備份存放的目錄
2、創(chuàng)建備份用戶
[root@mysql test]# mysql -uroot -p123.com
mysql> create user bakuser@'localhost' identified by '123.com';
mysql> revoke all privileges,grant option from 'bakuser'@'localhost';
mysql> grant reload,lock tables,replication client,process on *.* to bakuser@'localhost';
mysql> flush privileges;
3、完全備份
[root@mysql test]# innobackupex --user=bakuser --password=123.com /opt/mysqlbackup/full/
#當備份完成后將出現(xiàn)以下提示信息
.............  #忽略部分信息
200116 13:09:21 completed OK!

上述執(zhí)行相關解釋如下:

  • --user:指定連接數(shù)據(jù)庫的用戶名;
  • --password:指定連接數(shù)據(jù)庫的密碼;
  • --defaults-file:指定數(shù)據(jù)庫的配置文件my.cnf,innobackupex要從其中獲取datadir等信息,如果不指定,則會默認去搜索my.cnf這個文件,搜索順序和mysql啟動時的搜索順序一樣;
  • --database:指定要備份的數(shù)據(jù)據(jù)庫,這里指定的數(shù)據(jù)庫只對myisam表有效,對于innodb數(shù)據(jù)來說都是全備(所有數(shù)據(jù)庫中的innodb數(shù)據(jù)都進行了備份,不是只備份指定的數(shù)據(jù)庫,恢復時也一樣);
  • /opt/mysqlbackup/full:是備份文件的存放位置。
4、查看備份后的文件

使用xtrabackup工具實現(xiàn)對MySQL數(shù)據(jù)庫備份

各個文件存放的內(nèi)容如下:

  • backup-my.cnf:備份命令用到的配置選項信息;
  • ib_buffer_pool:buffer緩沖區(qū)相關的信息;
  • xtrabackup_checkpoints:這個文件很重要,保存的是備份類型(如完全或增量)、備份狀態(tài)(如是否已經(jīng)為perpared狀態(tài)(備份恢復前需要的狀態(tài))),和LSN(日志序列號)范圍信息,每個innodb頁(一般為16k大?。┒紩粋€日志序列號,LSN時整個數(shù)據(jù)庫系統(tǒng)同的系統(tǒng)版本號,每個頁面相關的LSN能夠表明此頁面最近是如何發(fā)生改變的。
  • xtrabackup_info:備份指令相關的信息。
5、通過二進制日志進行增量備份

在進行增量備份前,需要先查看到完全備份時binlog日志位置(position),如下:

[root@mysql 2020-01-17_10-39-52]# pwd
/opt/mysqlbackup/full/2020-01-17_10-39-52
[root@mysql 2020-01-17_10-39-52]# cat xtrabackup_binlog_info 
bin_log.000001  154
# 得到完全備份是備份到了bin_log.000001二進制日志中的154的位置

通過二進制日志進行增量備份:

在增量備份前,自行向數(shù)據(jù)庫中進行增刪改等操作,以便產(chǎn)生新的二進制日志。

[root@mysql ~]# mysqlbinlog --start-position=154 /usr/local/mysql/data/bin_log.000001 > /opt/mysqlbackup/inc/`date +%F`.sql
6、模擬數(shù)據(jù)丟失,以便還原數(shù)據(jù)
[root@mysql ~]# rm -rf /usr/local/mysql/data/*      #直接刪除本地所有數(shù)據(jù)

還原完全備份的大概流程如下:

  • 準備(prepare)一個完全備份,一般情況下,在備份完成后,數(shù)據(jù)還不能用于恢復操作,因為備份的數(shù)據(jù)中可能包含尚未提交的事務或已經(jīng)提交但尚未同步至數(shù)據(jù)文件中的事務。因此,此時數(shù)據(jù)文件仍處于不一致狀態(tài),“準備”的主要作用就是通過回滾未提交的事務及同步已提交的事務至數(shù)據(jù)文件也使得數(shù)據(jù)文件處于一致性狀態(tài)。在準備過程結束后,Innodb表數(shù)據(jù)已經(jīng)前滾到整個備份結束的點,而不是回滾到xtrabackup剛開始的點。

通過--apply-log選項可用于實現(xiàn)上述功能,命令如下:

[root@mysql ~]# innobackupex --apply-log /opt/mysqlbackup/full/2020-01-17_10-39-52/
[root@mysql 2020-01-17_10-39-52]# cat xtrabackup_checkpoints 
backup_type = full-prepared   #當準備工作完成后,備份目錄下的此文件內(nèi)容中的備份類型會為:full-prepared
from_lsn = 0
to_lsn = 2841752
last_lsn = 2841761
compact = 0
recover_binlog_info = 0
flushed_lsn = 2841761

注:/opt/mysqlbackup/full/2020-01-17_10-39-52/是備份文件所在目錄名稱,如果執(zhí)行正確,最后幾行輸出的信息如下:

使用xtrabackup工具實現(xiàn)對MySQL數(shù)據(jù)庫備份

在實現(xiàn)“準備”的過程中,innobackupex通常還可以使用“--user-memory”選項來指定其可以使用的內(nèi)存大小,默認為100M,如果有足夠的內(nèi)存,可以多劃分一些內(nèi)存給prepare的過程,以提高其完成速度。

在準備工作完成后,即可使用以下命令進行恢復:

[root@mysql ~]# innobackupex --copy-back /opt/mysqlbackup/full/2020-01-17_10-39-52/

確認數(shù)據(jù)已恢復:

使用xtrabackup工具實現(xiàn)對MySQL數(shù)據(jù)庫備份

完全備份的數(shù)據(jù)已經(jīng)恢復,但是需要注意權限的問題,恢復后的數(shù)據(jù)屬主及屬組都是當前用戶root,所以還需要更改其屬主及屬組,如下:

[root@mysql ~]# cd /usr/local/mysql/data/
[root@mysql data]# chown -R mysql.mysql .
[root@mysql data]# ll        #確認當前屬組與屬主
總用量 122924
drwxr-x--- 2 mysql mysql       90 1月  17 11:15 data1
-rw-r----- 1 mysql mysql      324 1月  17 11:15 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 1月  17 11:15 ibdata1
-rw-r----- 1 mysql mysql 50331648 1月  17 11:15 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 1月  17 11:15 ib_logfile1
-rw-r----- 1 mysql mysql 12582912 1月  17 11:15 ibtmp1
drwxr-x--- 2 mysql mysql     4096 1月  17 11:15 mysql
drwxr-x--- 2 mysql mysql     8192 1月  17 11:15 performance_schema
drwxr-x--- 2 mysql mysql     8192 1月  17 11:15 sys
-rw-r----- 1 mysql mysql       20 1月  17 11:15 xtrabackup_binlog_pos_innodb
-rw-r----- 1 mysql mysql      481 1月  17 11:15 xtrabackup_info
-rw-r----- 1 mysql mysql        1 1月  17 11:15 xtrabackup_master_key_id
[root@mysql ~]# systemctl restart mysqld   #在數(shù)據(jù)恢復后,需要重啟云服務器,否則數(shù)據(jù)不統(tǒng)一
7、查看數(shù)據(jù)庫中恢復后的數(shù)據(jù)
[root@mysql ~]# mysql -uroot -p123.com -e "select * from data1.t1;"

+------+------+
| id   | name |
+------+------+
|    1 | tom1 |
|    2 | tom2 |
|    3 | tom3 |
+------+------+
8、還原增量備份

為了防止還原時產(chǎn)生大量的二進制日志,在還原時最好臨時關閉二進制日志,如下:

[root@mysql ~]# mysql -uroot -p123.com -e 'set sql_log_bin=0;'    #臨時關閉二進制日志
[root@mysql ~]# mysql -uroot -p123.com < /opt/mysqlbackup/inc/2020-01-17.sql
#恢復二進制日志
[root@mysql ~]# mysql -uroot -p123.com -e 'set sql_log_bin=1;'  #開啟二進制日志
[root@mysql ~]# mysql -uroot -p123.com -e "select * from data1.t1;"
#確認數(shù)據(jù)恢復正確

+------+------+
| id   | name |
+------+------+
|    1 | tom1 |
|    2 | tom2 |
|    3 | tom3 |
|    4 | tom4 |
|    5 | tom5 |
+------+------+--+i

三、xtrabackup完全備份+xtrabackup增量備份

在第一個備份方案中,增量備份使用的是備份二進制日志,其實xtrabackup還支持進行增量備份,xtrabackup的備份原理如下:

在innodb內(nèi)部會維護一個redo日志我呢見,也可以叫做事務日志文件(transaction,事務日志),事務日志會存儲每個innodb表數(shù)據(jù)的記錄修改,當innodb啟動時,innodb會檢查數(shù)據(jù)文件和事務日志,并能執(zhí)行兩個步驟:它應用已經(jīng)提交的事務日志到數(shù)據(jù)文件,并將修改過但沒有提交的數(shù)據(jù)進行回滾操作。xtrabackup在啟動時會記住log sequence number(LSN),并且復制所有的數(shù)據(jù)文件,復制過程需要一些時間,所以這期間如果數(shù)據(jù)文件有改動,那么將會使數(shù)據(jù)庫處于一個不同的時間點。這時,xtrabackup會運行一個后臺進程,用于監(jiān)視事務日志,并從事務日志復制最新的修改,xtrabackup必須持續(xù)的做這個操作,是因為事務日志是會輪轉重復的寫入,并且事務日志可以被重用。所以xtrabackup自啟動開始,就不停的將事務日志中每個數(shù)據(jù)文件的修改都記錄下來。這就是xtrabackup的備份過程。

所以每個innodb的頁面都會包含一個LSN信息,每當相關的數(shù)據(jù)發(fā)生改變,相關的頁面LSN就會自動增長。這就是innodb表可以進行增量備份的基礎。xtrabackup基于innodb的crash-recovery功能,它會復制innodb的data file ,由于不鎖表,復制出來的數(shù)據(jù)是不一致的,在恢復的時候使用crash-recovery,使得數(shù)據(jù)恢復一致。

1、創(chuàng)建一個測試庫,并準備一張表插入幾行數(shù)據(jù)
mysql> create database test;
mysql> use test;
mysql> create table xx(id int,name varchar(20));
mysql> insert into xx values(1,'tom1');
mysql> insert into xx values(2,'tom2');
mysql> select * from xx;
+------+------+
| id   | name |
+------+------+
|    1 | tom1 |
|    2 | tom2 |
+------+------+
2、xtrabackup進行完全備份
[root@mysql ~]# xtrabackup --defaults-file=/etc/my.cnf --user=bakuser --password="123.com" --port=3306 --backup --target-dir=/opt/mysqlbackup/full/full_incre_$(date '+%F_%T')

上述各個指令解釋如下:

  • --defaults-file:指定數(shù)據(jù)庫的配置文件,如果使用該參數(shù),必須作為第一個參數(shù);
  • --user:指定連接數(shù)據(jù)庫的用戶名;
  • --password:指定連接數(shù)據(jù)庫的密碼;
  • --port:指定連接數(shù)據(jù)庫的端口號;
  • --backup:實施備份到target-dir;
  • --target-dir=name:備份文件的存放目錄路徑。innobackupex要從其中獲取datadir等信息;
  • --database:指定要備份的數(shù)據(jù)庫,這里指定的數(shù)據(jù)庫只對myisam和innodb表的表結構有效,對于innodb數(shù)據(jù)庫來說都是完全備份(恢復時也一樣)。
3、查看完全備份文件

使用xtrabackup工具實現(xiàn)對MySQL數(shù)據(jù)庫備份

4、進行第一次增量備份
#先插入新的數(shù)據(jù)
[root@mysql full]# mysql -uroot -p123.com -e "insert into test.xx values(3,'tom3');"
#再進行增量備份
[root@mysql full]# xtrabackup --defaults-file=/etc/my.cnf --user=bakuser --password="123.com" --port=3306 --backup --target-dir=/opt/mysqlbackup/inc/incre_$(date '+%F_%T') --incremental-basedir=/opt/mysqlbackup/full/full_incre_2020-01-17_14\:34\:39/

在上述指令中,--incremental-basedir是指定上次完整備份或者增量備份文件的位置(即如果是第一次增量備份則指向完全備份所在目錄,在執(zhí)行過增量備份之后再一次進行增量備份時,其--incremental-basedir應該指向上一次的增量備份所在的目錄)。

查看增量備份文件:

[root@mysql full]# ll /opt/mysqlbackup/inc/
總用量 0
drwxr-x--- 7 root root 274 1月  17 15:12 incre_2020-01-17_15:12:00
# 注:這里的增量備份只是針對innodb,對于myisam來說,還是完整備份。
5、進行第二次增量備份
#再插入新的數(shù)據(jù)
[root@mysql full]# mysql -uroot -p123.com -e "insert into test.xx values(4,'tom4');"
#進行第二次增量備份
[root@mysql full]# xtrabackup --defaults-file=/etc/my.cnf --user=bakuser --password="123.com" --port=3306 --backup --target-dir=/opt/mysqlbackup/inc/incre_$(date '+%F_%T') --incremental-basedir=/opt/mysqlbackup/inc/incre_2020-01-17_15\:12\:00/

注:第二次增量備份--incremental-basedir應該指向上一次增量備份文件的位置。

6、恢復完全備份以及增量備份

恢復數(shù)據(jù)的大概流程如下:

如果備份文件是tar包,解包命令為:tar -izxf  xxx.tar,這里必須使用-i參數(shù),表示忽略存檔中的0字節(jié)。
首先準備恢復完全備份:

[root@mysql ~]# xtrabackup --defaults-file=/etc/my.cnf --prepare --user=bakuser --password="123.com" --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_2020-01-17_14\:34\:39/

再準備恢復到第一次增量備份的時刻,如下:

[root@mysql ~]# xtrabackup  --defaults-file=/etc/my.cnf --prepare --user=bakuser --password='123.com' --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_2020-01-17_14\:34\:39/ --incremental-dir=/opt/mysqlbackup/inc/incre_2020-01-17_15\:12\:00/

再準備恢復第二次增量備份,如下:

[root@mysql ~]# xtrabackup  --defaults-file=/etc/my.cnf --prepare --user=bakuser --password='123.com' --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_2020-01-17_14\:34\:39/ --incremental-dir=/opt/mysqlbackup/inc/incre_2020-01-17_15\:20\:32/

然后停止MySQL數(shù)據(jù)庫:

[root@mysql ~]# systemctl stop mysqld

開始rsync數(shù)據(jù)文件:

[root@mysql ~]# cd /opt/mysqlbackup/full/full_incre_2020-01-17_14\:34\:39/
[root@mysql full_incre_2020-01-17_14:34:39]# rsync -rvt --exclude 'xtrabackup_checkpoints' --exclude 'xtrabackup_logfile' ./ /usr/local/mysql/data/

當數(shù)據(jù)恢復到mysql的data目錄以后,還需要確保所有數(shù)據(jù)文件的屬主和屬組均為正確的用戶,如我這里需要修改為mysql,如下:

[root@mysql full_incre_2020-01-17_14:34:39]# cd /usr/local/mysql/data/
[root@mysql data]# chown -R mysql.mysql .
#更改恢復后的數(shù)據(jù)屬組和屬主為mysql

確認數(shù)據(jù)已恢復:

[root@mysql data]# mysql -uroot -p123.com -e  "select * from test.xx;"
+------+------+
| id   | name |
+------+------+
|    1 | tom1 |
|    2 | tom2 |
|    3 | tom3 |
|    4 | tom4 |
+------+------+

四、innobackupex全庫備份+innobackupex增量備份

1、全庫備份
#準備測試數(shù)據(jù)
[root@mysql data]# mysql -uroot -p123.com -e  "select * from test.xx;"
+------+------+
| id   | name |
+------+------+
|    1 | tom1 |
|    2 | tom2 |
|    3 | tom3 |
+------+------+
#開始完全備份
[root@mysql ~]# innobackupex --defaults-file=/etc/my.cnf --user=bakuser --password='123.com' /opt/mysqlbackup/full/full_incre_$(date '+%F_%H%M%S') --no-timestamp

注:--no-timestamp選項來阻止命令自動創(chuàng)建一個以時間命名的目錄,然后即可自定義目錄了;

2、做一次增量備份
# 插入測試數(shù)據(jù)
[root@mysql ~]# mysql -uroot -p123.com -e  "insert into xx values(4,'tom4'),(5,'tom5');" test
#進行增量備份
[root@mysql ~]# innobackupex --incremental /opt/mysqlbackup/inc/incre_$(date +%Y%m%d_%H%M%S) --incremental-basedir=/opt/mysqlbackup/full/full_incre_2020-01-17_165254/ --user=bakuser --password='123.com' --no-timestamp
#  --incremental-basedir:指定的是上次完全備份或者增量備份的目錄
#由于這是第一次增量備份,所以就需要指定上次完全備份的目錄

[root@mysql ~]# ll /opt/mysqlbackup/inc/     #查看增量備份文件
總用量 0
drwxr-x--- 7 root root 274 1月  17 17:04 incre_20200117_170424
3、做第二次增量備份
#插入新的數(shù)據(jù)
[root@mysql ~]# mysql -uroot -p123.com -e  "insert into test.xx values(6,'tom6')";
#基于第一次增量備份的目錄文件做第二次增量備份
[root@mysql ~]# innobackupex --incremental /opt/mysqlbackup/inc/incre_$(date +%Y%m%d_%H%M%S) --incremental-basedir=/opt/mysqlbackup/inc/incre_20200117_170424/ --user=bakuser --password='123.com' --no-timestamp
4、查看增量備份文件
[root@mysql ~]# ll /opt/mysqlbackup/inc/
總用量 0
drwxr-x--- 7 root root 274 1月  17 17:04 incre_20200117_170424
drwxr-x--- 7 root root 274 1月  17 17:10 incre_20200117_171035
5、刪除數(shù)據(jù)文件,準備進行恢復
[root@mysql ~]# rm -rf /usr/local/mysql/data/*
#恢復完全備份目錄文件
[root@mysql ~]# innobackupex --apply-log --redo-only /opt/mysqlbackup/full/full_incre_2020-01-17_165254/
# 將第一次增量備份合并到全備目錄
[root@mysql ~]# innobackupex --apply-log --redo-only /opt/mysqlbackup/full/full_incre_2020-01-17_165254/ --incremental-dir=/opt/mysqlbackup/inc/incre_20200117_170424/
# 將第二次增量備份合并到全備目錄
[root@mysql ~]# innobackupex --apply-log --redo-only /opt/mysqlbackup/full/full_incre_2020-01-17_165254/ --incremental-dir=/opt/mysqlbackup/inc/incre_20200117_171035/
6、恢復數(shù)據(jù)庫
[root@mysql ~]# systemctl stop mysqld    #停止數(shù)據(jù)庫
#進行恢復
[root@mysql ~]# innobackupex --defaults-file=/etc/my.cnf --user=bakuser --password='123.com' --copy-back  /opt/mysqlbackup/full/full_incre_2020-01-17_165254/
7、修改恢復后的文件屬主及屬組
[root@mysql ~]# cd /usr/local/mysql/data/
[root@mysql data]# chown -R mysql.mysql .
8、啟動MySQL數(shù)據(jù)庫,確認數(shù)據(jù)已恢復
[root@mysql data]# systemctl start mysqld
[root@mysql data]# mysql -uroot -p123.com -e "select * from test.xx;"

+------+------+
| id   | name |
+------+------+
|    1 | tom1 |
|    2 | tom2 |
|    3 | tom3 |
|    4 | tom4 |
|    5 | tom5 |
|    6 | tom6 |
+------+------+

數(shù)據(jù)恢復成功。

五、附加——Xtrabackup的“流”及“備份壓縮”功能

Xtrabackup對備份的數(shù)據(jù)文件支持“流”功能,即可以將備份的數(shù)據(jù)通過STDOUT傳輸給tar程序進行歸檔,而不是默認的直接保存至某備份目錄中。要使用此功能,僅需要使用--stream選項即可。如下:

#進行完整備份
[root@mysql opt]# innobackupex --user=bakuser --password="123.com" --stream=tar /opt/mysqlbackup/full/ | gzip > /opt/mysqlbackup/full/full_`date +%F_%H%M%S`.tar.gz
#上述命令生成的備份文件如下:
[root@mysql full]# ll /opt/mysqlbackup/full/
總用量 640
-rw-r--r-- 1 root root 652578 1月  17 17:45 full_2020-01-17_174513.tar.gz

對于上文關于使用xtrabackup工具實現(xiàn)對MySQL數(shù)據(jù)庫備份,大家覺得是自己想要的嗎?如果想要了解更多相關,可以繼續(xù)關注我們的行業(yè)資訊板塊。

當前標題:使用xtrabackup工具實現(xiàn)對MySQL數(shù)據(jù)庫備份
文章路徑:http://jinyejixie.com/article16/posggg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈網(wǎng)站策劃、小程序開發(fā)云服務器營銷型網(wǎng)站建設、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
军事| 张北县| 余干县| 东宁县| 贡嘎县| 清水县| 绍兴市| 嫩江县| 沙雅县| 马尔康县| 阿坝县| 蓬溪县| 清远市| 阳谷县| 宁城县| 富源县| 冀州市| 广州市| 宜川县| 罗源县| 丽江市| 民勤县| 宣武区| 新巴尔虎右旗| 和林格尔县| 大名县| 鄂尔多斯市| 伊吾县| 博野县| 辽宁省| 孝义市| 农安县| 孟连| 连山| 清河县| 成安县| 临猗县| 岗巴县| 罗甸县| 临朐县| 盖州市|