本次測試使用XtraBackup備份MySQL數(shù)據(jù)庫
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供隰縣網(wǎng)站建設(shè)、隰縣做網(wǎng)站、隰縣網(wǎng)站設(shè)計、隰縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、隰縣企業(yè)網(wǎng)站模板建站服務,十多年隰縣做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。版本:XtraBackup2.4.5+MySQL5.7.16
下載地址:https://www.percona.com/downloads/XtraBackup/
1、安裝XtraBackup
本次為了方便,使用解壓版本進行安裝,直接解壓就可以用了。
使用過程中可能會遇到缺少perl依賴包的問題,我的方法是直接操作把鏡像包里的perl都安裝了,yum install -y perl*
2、簡介
XtraBackup主要包括兩個備份工具xtrabackup和innobackupex。其中innobackupex對xtrabackup進行了封裝。本次只介紹innobackupex備份MySQL
3、全量備的操作方法
1)創(chuàng)建備份
#創(chuàng)建存儲備份數(shù)據(jù)的目錄 [root@rhel7 ~]# mkdir /mysqlbackup #開始備份 [root@rhel7 ~]# innobackupex --user=root --password=123456 /mysqlbackup 161213 12:27:13 innobackupex: Starting the backup operation IMPORTANT: Please check that the backup run completes successfully. At the end of a successful backup run innobackupex prints "completed OK!". 161213 12:27:13 version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup' as 'root' (using password: YES). Failed to connect to MySQL server: DBI connect(';mysql_read_default_group=xtrabackup','root',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at - line 1314. 161213 12:27:13 Connecting to MySQL server host: localhost, user: root, password: set, port: 0, socket: (null) Using server version 5.7.16 innobackupex version 2.4.5 based on MySQL server 5.7.13 Linux (x86_64) (revision id: e41c0be) xtrabackup: uses posix_fadvise(). xtrabackup: cd to /usr/local/mysql/data xtrabackup: open files limit requested 0, set to 1024 xtrabackup: using the following InnoDB configuration: xtrabackup: innodb_data_home_dir = . xtrabackup: innodb_data_file_path = ibdata1:12M:autoextend xtrabackup: innodb_log_group_home_dir = ./ xtrabackup: innodb_log_files_in_group = 2 xtrabackup: innodb_log_file_size = 50331648 InnoDB: Number of pools: 1 161213 12:27:13 >> log scanned up to (2671643) xtrabackup: Generating a list of tablespaces InnoDB: Allocated tablespace ID 2 for mysql/plugin, old maximum was 0 161213 12:27:13 [01] Copying ./ibdata1 to /mysqlbackup/2016-12-13_12-27-13/ibdata1 161213 12:27:14 >> log scanned up to (2671643) 161213 12:27:15 [01] ...done 161213 12:27:15 >> log scanned up to (2671643) 161213 12:27:15 [01] Copying ./mysql/plugin.ibd to /mysqlbackup/2016-12-13_12-27-13/mysql/plugin.ibd 161213 12:27:15 [01] ...done ...... 161213 12:27:16 [01] Copying ./wl/zx.ibd to /mysqlbackup/2016-12-13_12-27-13/wl/zx.ibd 161213 12:27:16 [01] ...done 161213 12:27:16 >> log scanned up to (2671643) 161213 12:27:16 Executing FLUSH NO_WRITE_TO_BINLOG TABLES... 161213 12:27:16 Executing FLUSH TABLES WITH READ LOCK... 161213 12:27:16 Starting to backup non-InnoDB tables and files 161213 12:27:16 [01] Copying ./mysql/db.opt to /mysqlbackup/2016-12-13_12-27-13/mysql/db.opt 161213 12:27:16 [01] ...done ...... 161213 12:27:18 [01] Copying ./wl/wl.frm to /mysqlbackup/2016-12-13_12-27-13/wl/wl.frm 161213 12:27:18 [01] ...done 161213 12:27:18 [01] Copying ./wl/zx.frm to /mysqlbackup/2016-12-13_12-27-13/wl/zx.frm 161213 12:27:18 [01] ...done 161213 12:27:18 Finished backing up non-InnoDB tables and files 161213 12:27:18 Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS... xtrabackup: The latest check point (for incremental): '2671634' xtrabackup: Stopping log copying thread. .161213 12:27:18 >> log scanned up to (2671643) 161213 12:27:18 Executing UNLOCK TABLES 161213 12:27:18 All tables unlocked 161213 12:27:18 [00] Copying ib_buffer_pool to /mysqlbackup/2016-12-13_12-27-13/ib_buffer_pool 161213 12:27:18 [00] ...done 161213 12:27:18 Backup created in directory '/mysqlbackup/2016-12-13_12-27-13' 161213 12:27:18 [00] Writing backup-my.cnf 161213 12:27:18 [00] ...done 161213 12:27:18 [00] Writing xtrabackup_info 161213 12:27:18 [00] ...done xtrabackup: Transaction log of lsn (2671634) to (2671643) was copied. 161213 12:27:19 completed OK! #在指定的目錄下生成了一個時間目錄 [root@rhel7 ~]# ls -l /mysqlbackup/ total 4 drwxr-x---. 7 root root 4096 Dec 13 12:27 2016-12-13_12-27-13 [root@rhel7 ~]# du -sm /mysqlbackup/* 90 /mysqlbackup/2016-12-13_12-27-13注意:innobackupex會去讀取my.cnf文件中的[mysqld]和[xtrabackup]部分,也可以使用--defaults-file指定參數(shù)文件。
2)恢復全備的數(shù)據(jù)
備份的數(shù)據(jù)不能直接使用,需要先做prepare操作(可以理解為應用日志的過程,commit的事務提交,未commit的事務回滾)
#使用--apply-log應用日志, [root@rhel7 ~]# innobackupex --apply-log /mysqlbackup/2016-12-13_12-27-13/ 161213 12:36:24 innobackupex: Starting the apply-log operation IMPORTANT: Please check that the apply-log run completes successfully. At the end of a successful apply-log run innobackupex prints "completed OK!". innobackupex version 2.4.5 based on MySQL server 5.7.13 Linux (x86_64) (revision id: e41c0be) xtrabackup: cd to /mysqlbackup/2016-12-13_12-27-13/ xtrabackup: This target seems to be not prepared yet. InnoDB: Number of pools: 1 xtrabackup: xtrabackup_logfile detected: size=8388608, start_lsn=(2671634) xtrabackup: using the following InnoDB configuration for recovery: xtrabackup: innodb_data_home_dir = . xtrabackup: innodb_data_file_path = ibdata1:12M:autoextend xtrabackup: innodb_log_group_home_dir = . xtrabackup: innodb_log_files_in_group = 1 xtrabackup: innodb_log_file_size = 8388608 xtrabackup: using the following InnoDB configuration for recovery: xtrabackup: innodb_data_home_dir = . xtrabackup: innodb_data_file_path = ibdata1:12M:autoextend xtrabackup: innodb_log_group_home_dir = . xtrabackup: innodb_log_files_in_group = 1 xtrabackup: innodb_log_file_size = 8388608 xtrabackup: Starting InnoDB instance for recovery. xtrabackup: Using 104857600 bytes for buffer pool (set by --use-memory parameter) InnoDB: PUNCH HOLE support not available InnoDB: Mutexes and rw_locks use GCC atomic builtins InnoDB: Uses event mutexes InnoDB: GCC builtin __sync_synchronize() is used for memory barrier InnoDB: Compressed tables use zlib 1.2.3 InnoDB: Number of pools: 1 InnoDB: Not using CPU crc32 instructions InnoDB: Initializing buffer pool, total size = 100M, instances = 1, chunk size = 100M InnoDB: Completed initialization of buffer pool InnoDB: page_cleaner coordinator priority: -20 InnoDB: Highest supported file format is Barracuda. InnoDB: Log scan progressed past the checkpoint lsn 2671634 InnoDB: Doing recovery: scanned up to log sequence number 2671643 (0%) InnoDB: Doing recovery: scanned up to log sequence number 2671643 (0%) InnoDB: Database was not shutdown normally! InnoDB: Starting crash recovery. InnoDB: Creating shared tablespace for temporary tables InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... InnoDB: File './ibtmp1' size is now 12 MB. InnoDB: 96 redo rollback segment(s) found. 1 redo rollback segment(s) are active. InnoDB: 32 non-redo rollback segment(s) are active. InnoDB: Waiting for purge to start InnoDB: 5.7.13 started; log sequence number 2671643 xtrabackup: starting shutdown with innodb_fast_shutdown = 1 InnoDB: FTS optimize thread exiting. InnoDB: Starting shutdown... InnoDB: Shutdown completed; log sequence number 2671671 InnoDB: Number of pools: 1 xtrabackup: using the following InnoDB configuration for recovery: xtrabackup: innodb_data_home_dir = . xtrabackup: innodb_data_file_path = ibdata1:12M:autoextend xtrabackup: innodb_log_group_home_dir = . xtrabackup: innodb_log_files_in_group = 2 xtrabackup: innodb_log_file_size = 50331648 InnoDB: PUNCH HOLE support not available InnoDB: Mutexes and rw_locks use GCC atomic builtins InnoDB: Uses event mutexes InnoDB: GCC builtin __sync_synchronize() is used for memory barrier InnoDB: Compressed tables use zlib 1.2.3 InnoDB: Number of pools: 1 InnoDB: Not using CPU crc32 instructions InnoDB: Initializing buffer pool, total size = 100M, instances = 1, chunk size = 100M InnoDB: Completed initialization of buffer pool InnoDB: page_cleaner coordinator priority: -20 InnoDB: Setting log file ./ib_logfile101 size to 48 MB InnoDB: Setting log file ./ib_logfile1 size to 48 MB InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 InnoDB: New log files created, LSN=2671671 InnoDB: Highest supported file format is Barracuda. InnoDB: Log scan progressed past the checkpoint lsn 2672140 InnoDB: Doing recovery: scanned up to log sequence number 2672149 (0%) InnoDB: Doing recovery: scanned up to log sequence number 2672149 (0%) InnoDB: Database was not shutdown normally! InnoDB: Starting crash recovery. InnoDB: Removed temporary tablespace data file: "ibtmp1" InnoDB: Creating shared tablespace for temporary tables InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... InnoDB: File './ibtmp1' size is now 12 MB. InnoDB: 96 redo rollback segment(s) found. 1 redo rollback segment(s) are active. InnoDB: 32 non-redo rollback segment(s) are active. InnoDB: Waiting for purge to start InnoDB: 5.7.13 started; log sequence number 2672149 xtrabackup: starting shutdown with innodb_fast_shutdown = 1 InnoDB: FTS optimize thread exiting. InnoDB: Starting shutdown... InnoDB: Shutdown completed; log sequence number 2672168 161213 12:36:30 completed OK! #查看prepare后數(shù)據(jù)目錄的大小 [root@rhel7 ~]# ls -l /mysqlbackup/ total 4 drwxr-x---. 7 root root 4096 Dec 13 12:36 2016-12-13_12-27-13 [root@rhel7 ~]# du -sm /mysqlbackup/* 206 /mysqlbackup/2016-12-13_12-27-13prepare完成后恢復數(shù)據(jù)到原MySQL的數(shù)據(jù)目錄
注意:MySQL的數(shù)據(jù)目錄必須為空,MySQL服務也必須停止,否則恢復會報錯(除非恢復部分備份)
#創(chuàng)建一個測試庫zx [root@rhel7 ~]# mysql -uroot -p123456 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.16 Source distribution Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test | | wl | +--------------------+ 6 rows in set (0.10 sec) mysql> create database zx; Query OK, 1 row affected (0.00 sec) mysql> exit Bye #停止MySQL數(shù)據(jù)庫并創(chuàng)建新的data目錄 [root@rhel7 ~]# service mysqld stop Shutting down MySQL.. SUCCESS! [root@rhel7 ~]# cd $MYSQL_HOME [root@rhel7 mysql]# ls bin COPYING data docs include lib man mysql-test README share support-files [root@rhel7 mysql]# mv data data_bak [root@rhel7 mysql]# mkdir data #恢復數(shù)據(jù) [root@rhel7 mysql]# innobackupex --copy-back /mysqlbackup/2016-12-13_12-27-13/ 161213 13:03:50 innobackupex: Starting the copy-back operation IMPORTANT: Please check that the copy-back run completes successfully. At the end of a successful copy-back run innobackupex prints "completed OK!". innobackupex version 2.4.5 based on MySQL server 5.7.13 Linux (x86_64) (revision id: e41c0be) 161213 13:03:50 [01] Copying ib_logfile0 to /usr/local/mysql/data/ib_logfile0 161213 13:03:50 [01] ...done 161213 13:03:51 [01] Copying ib_logfile1 to /usr/local/mysql/data/ib_logfile1 161213 13:03:51 [01] ...done 161213 13:03:52 [01] Copying ibdata1 to /usr/local/mysql/data/ibdata1 161213 13:03:54 [01] ...done 161213 13:03:55 [01] Copying ./mysql/plugin.ibd to /usr/local/mysql/data/mysql/plugin.ibd 161213 13:03:55 [01] ...done 161213 13:03:55 [01] Copying ./mysql/servers.ibd to /usr/local/mysql/data/mysql/servers.ibd 161213 13:03:55 [01] ...done 161213 13:03:55 [01] Copying ./mysql/help_topic.ibd to /usr/local/mysql/data/mysql/help_topic.ibd 161213 13:03:55 [01] ...done 161213 13:03:55 [01] Copying ./mysql/help_category.ibd to /usr/local/mysql/data/mysql/help_category.ibd 161213 13:03:55 [01] ...done ....... 161213 13:03:57 [01] Copying ./ibtmp1 to /usr/local/mysql/data/ibtmp1 161213 13:03:57 [01] ...done 161213 13:03:57 completed OK! #修改data目錄下的權(quán)限 [root@rhel7 mysql]# chown mysql:mysql -R data #啟動MySQL數(shù)據(jù)庫查看恢復是否成功 [root@rhel7 mysql]# service mysqld start Starting MySQL. SUCCESS! [root@rhel7 mysql]# mysql -uroot -p123456 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.16 Source distribution Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test | | wl | +--------------------+ 6 rows in set (0.00 sec) #數(shù)據(jù)恢復成功,測試數(shù)據(jù)庫zx不見了。4.增量備份的操作步驟
1)創(chuàng)建備份,增量備份需要有一個全量備份做基礎(chǔ),所以先做一個全量備份再做增量備份
#創(chuàng)建全備 [root@rhel7 mysql]# innobackupex --user=root --password=123456 /mysqlbackup/ [root@rhel7 mysql]# ls -l /mysqlbackup/ total 4 drwxr-x---. 8 root root 4096 Dec 13 13:10 2016-12-13_13-10-48 #刪除一個測試庫 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test | | wl | | zx | +--------------------+ 7 rows in set (0.00 sec) mysql> drop database zx; Query OK, 0 rows affected (0.07 sec) #創(chuàng)建增量備份(基于全備) [root@rhel7 mysql]# innobackupex --user=root --password=123456 --incremental /mysqlbackup/ --incremental-basedir=/mysqlbackup/2016-12-13_13-10-48/ ...... [root@rhel7 mysql]# ls -l /mysqlbackup/ total 8 drwxr-x---. 8 root root 4096 Dec 13 13:10 2016-12-13_13-10-48 drwxr-x---. 7 root root 4096 Dec 13 13:16 2016-12-13_13-16-17 [root@rhel7 mysql]# du -sm /mysqlbackup/* 90 /mysqlbackup/2016-12-13_13-10-48 3 /mysqlbackup/2016-12-13_13-16-17 #刪除一個測試庫 mysql> drop database wl; Query OK, 0 rows affected (0.07 sec) #創(chuàng)建增量備份(基于上次增量備份) [root@rhel7 mysql]# innobackupex --user=root --password=123456 --incremental /mysqlbackup/ --incremental-basedir=/mysqlbackup/2016-12-13_13-16-17/ ...... [root@rhel7 mysql]# ls -l /mysqlbackup/ total 12 drwxr-x---. 8 root root 4096 Dec 13 13:10 2016-12-13_13-10-48 drwxr-x---. 7 root root 4096 Dec 13 13:16 2016-12-13_13-16-17 drwxr-x---. 6 root root 4096 Dec 13 13:18 2016-12-13_13-18-30 [root@rhel7 mysql]# du -sm /mysqlbackup/* 90 /mysqlbackup/2016-12-13_13-10-48 3 /mysqlbackup/2016-12-13_13-16-17 4 /mysqlbackup/2016-12-13_13-18-302)恢復增量備份
同全量備份一樣恢復里也需要prepare
#全量備份的prepare --redo-only表示只提交commit的事務 [root@rhel7 mysql]# innobackupex --apply-log --redo-only /mysqlbackup/2016-12-13_13-10-48/ #第一次增量備份prepare [root@rhel7 mysql]# innobackupex --apply-log --redo-only /mysqlbackup/2016-12-13_13-10-48/ --incremental-dir=/mysqlbackup/2016-12-13_13-16-17/ #最后一次增量備份prepare 不再需要redo-only參數(shù) [root@rhel7 mysql]# innobackupex --apply-log /mysqlbackup/2016-12-13_13-10-48/ --incremental-dir=/mysqlbackup/2016-12-13_13-18-30/ #停止MySQL服務創(chuàng)建新的data目錄 [root@rhel7 mysql]# service mysqld stop Shutting down MySQL.. SUCCESS! [root@rhel7 mysql]# rm -rf data [root@rhel7 mysql]# mkdir data #恢復數(shù)據(jù) [root@rhel7 mysql]# innobackupex --copy-back /mysqlbackup/2016-12-13_13-10-48/ #修改data目錄權(quán)限 [root@rhel7 mysql]# chown mysql:mysql -R data #啟動MySQL服務并驗證 [root@rhel7 mysql]# service mysqld start Starting MySQL... SUCCESS! [root@rhel7 mysql]# mysql -uroot -p123456 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.16 Source distribution Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test | | wl | +--------------------+ 6 rows in set (0.00 sec) mysql> show tables in wl; Empty set (0.00 sec) #測試庫zx沒有了,wl庫還在,但是庫里的表已經(jīng)沒有了。前邊只是提供了簡單的恢復方法,如果數(shù)據(jù)庫備份之后運行了一段時間,數(shù)據(jù)庫宕機了,如果只恢復備份的數(shù)據(jù)那就會丟失一部分數(shù)據(jù)。那這部分數(shù)據(jù)要怎么恢復呢。答案就是應用binlog。
在啟用binlog的數(shù)據(jù)庫中,備份完成后日志中會輸出關(guān)于binlog的信息,生成的備份目錄中也會有一個xtrabackup_binlog_info文件保存?zhèn)浞輹r的binlog位置。
161214 10:24:34 Executing UNLOCK TABLES 161214 10:24:34 All tables unlocked 161214 10:24:34 [00] Copying ib_buffer_pool to /mysqlbackup//2016-12-14_10-24-27/ib_buffer_pool 161214 10:24:34 [00] ...done 161214 10:24:34 Backup created in directory '/mysqlbackup//2016-12-14_10-24-27' #binlog位置 MySQL binlog position: filename 'mysql-bin.000001', position '154' 161214 10:24:34 [00] Writing backup-my.cnf 161214 10:24:34 [00] ...done 161214 10:24:34 [00] Writing xtrabackup_info 161214 10:24:34 [00] ...done xtrabackup: Transaction log of lsn (2677865) to (2677874) was copied. 161214 10:24:34 completed OK! [root@rhel7 2016-12-14_10-24-27]# ls -l total 77876 -rw-r-----. 1 root root 425 Dec 14 10:24 backup-my.cnf -rw-r-----. 1 root root 307 Dec 14 10:24 ib_buffer_pool -rw-r-----. 1 root root 79691776 Dec 14 10:24 ibdata1 drwxr-x---. 2 root root 4096 Dec 14 10:24 mysql drwxr-x---. 2 root root 8192 Dec 14 10:24 performance_schema drwxr-x---. 2 root root 8192 Dec 14 10:24 sys drwxr-x---. 2 root root 87 Dec 14 10:24 test -rw-r-----. 1 root root 21 Dec 14 10:24 xtrabackup_binlog_info -rw-r-----. 1 root root 113 Dec 14 10:24 xtrabackup_checkpoints -rw-r-----. 1 root root 469 Dec 14 10:24 xtrabackup_info -rw-r-----. 1 root root 2560 Dec 14 10:24 xtrabackup_logfile #記錄binlog位置的文件 [root@rhel7 2016-12-14_10-24-27]# cat xtrabackup_binlog_info mysql-bin.000001 154有了這個binlog日志位置就可以應用binlog恢復備份到宕機時間的數(shù)據(jù)
mysqlbinlog --start-position=154 mysql-bin.000001 | mysql -uroot -p123456
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞標題:使用XtraBackup備份MySQL數(shù)據(jù)庫-創(chuàng)新互聯(lián)
分享地址:http://jinyejixie.com/article14/deddde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、面包屑導航、動態(tài)網(wǎng)站、網(wǎng)站策劃、網(wǎng)站設(shè)計、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容