亚洲 欧洲 日韩 综合色天使,久久国产Av无码一区二区老太,人妻醉酒被下药迷昏带到诊所 ,亚州老熟女A片AV色欲小说

mds文件是什么文件(mds文件如何打開)

mysqldump 和 mydumper 是我們常用的兩個邏輯備份工具。

無論是 mysqldump 還是 mydumper 都是將備份數(shù)據(jù)通過 INSERT 的方式寫入到備份文件中。

恢復(fù)時,myloader( mydumper 中的恢復(fù)工具 ) 是多線程導(dǎo)入,而且是一個 INSERT 語句中包含多條記錄,多個 INSERT 操作批量提交?;旧?,凡是我們能想到的,有助于提升導(dǎo)入速度的,myloader 都會使用或有選項提供。

單就恢復(fù)速度而言,可以說,myloader 就是邏輯恢復(fù)工具的天花板。

既然如此,還有辦法能繼續(xù)提升邏輯恢復(fù)工具的恢復(fù)速度么?畢竟,備份的恢復(fù)速度直接影響著災(zāi)難發(fā)生時數(shù)據(jù)庫服務(wù)的 RTO。

答案,有!

這個就是官方在 MySQL Shell 8.0.21 中推出的 Dump & Load 工具。

與 myloader 不一樣的是,MySQL Shell Load 是通過 LOAD DATA LOCAL INFile 命令是用來導(dǎo)入數(shù)據(jù)的。

而 LOAD DATA 操作,按照官方文檔的說法,比 INSERT 操作快 20 倍。

下面,我們看看 MySQL Shell Dump & Load 的具體用法和實現(xiàn)原理。

本文主要包括以下幾部分:

  1. 什么是 MySQL Shell。
  2. MySQL Shell的安裝。
  3. MySQL Shell Dump & Load的使用。
  4. util.dumpInstance的關(guān)鍵特性。
  5. util.loadDump的關(guān)鍵特性。
  6. util.dumpInstance的備份流程。
  7. util.dumpInstance的參數(shù)解析。
  8. util.loaddump的參數(shù)解析。
  9. 使用 MySQL Shell Dump & Load時的注意事項。

什么是 MySQL Shell

MySQL Shell 是 MySQL 的一個高級客戶端和代碼編輯器,是第二代 MySQL 客戶端。第一代 MySQL 客戶端即是我們常用的 mysql。

相比于 mysql,MySQL Shell 不僅支持 SQL,還具有以下關(guān)鍵特性:

  1. 支持 Python 和 JavaScript 兩種語言模式?;诖?,我們可以很容易地進(jìn)行一些腳本開發(fā)工作。
  2. 支持 AdminAPI。AdminAPI 可用來管理 InnoDB Cluster、InnoDB ClusterSet 和 InnoDB ReplicaSet。
  3. 支持 X DevAPI。X DevAPI 可對文檔( Document )和表( Table )進(jìn)行 CRUD(Create,Read,Update,Delete)操作。

除此之外,MySQL Shell 還內(nèi)置了很多實用工具,包括:

  • checkForServerUpgrade:檢測目標(biāo)實例能否升級到指定版本。
  • dumpInstance:備份實例。
  • dumpSchemas:備份指定庫。
  • dumpTables:備份指定表。
  • loadDump:恢復(fù)通過上面三個工具生成的備份。
  • exportTable:將指定的表導(dǎo)出到文本文件中。只是支持單表,效果同 SELECT INTO OUTFILE 一樣。
  • importTable:將指定文本的數(shù)據(jù)導(dǎo)入到表中。
  • 在線上,如果我們有個大文件需要導(dǎo)入,建議使用這個工具。它會將單個文件進(jìn)行拆分,然后多線程并行執(zhí)行 LOAD DATA LOCAL INFILE 操作。不僅提升了導(dǎo)入速度,還規(guī)避了大事務(wù)的問題。
  • importJSON:將 JSON 格式的數(shù)據(jù)導(dǎo)入到 MySQL 中,比如將 MongoDB 中通過 mongoexport 導(dǎo)出的數(shù)據(jù)導(dǎo)入到 MySQL 中。

在使用時注意:

  1. 通過 dumpInstance,dumpSchemas,dumpTables 生成的備份只能通過 loadDump 來恢復(fù)。
  2. 通過 exportTable 生成的備份只能通過 importTable 來恢復(fù)。

下面,我們重點說說 Dump & Load 相關(guān)的工具,包括 dumpInstance,dumpSchemas,dumpTables 和 loadDump。

MySQL Shell 的安裝

MySQL Shell 下載地址:https://dev.mysql.com/downloads/shell/。

同 MySQL 一樣,提供了多個版本的下載。這里使用 Linux 二進(jìn)制版本( Linux – Generic )。

# cd /usr/local/
# wget https://dev.mysql.com/get/Downloads/MySQL-Shell/mysql-shell-8.0.29-linux-glibc2.12-x86-64bit.tar.gz
# tar xvf mysql-shell-8.0.29-linux-glibc2.12-x86-64bit.tar.gz 
# ln -s mysql-shell-8.0.29-linux-glibc2.12-x86-64bit mysql-shell
# export PATH=$PATH:/usr/local/mysql-shell/bin

MySQL Shell Dump & Load 的使用

util.dumpInstance(outputUrl[, options])

備份實例。

其中,outputUrl 是備份目錄,其必須為空。options 是可指定的選項。

首先,看一個簡單的示例。

# mysqlsh -h 10.0.20.4 -P3306 -uroot -p
mysql-js> util.dumpInstance('/data/backup/full',{compression: "none"})
Acquiring global read lock
Global read lock acquired
Initializing - done
1 out of 5 schemas will be dumped and within them 1 table, 0 views.
4 out of 7 users will be dumped.
Gathering information - done
All transactions have been started
Locking instance for backup
Global read lock has been released
Writing global ddl files
Writing users DDL
Running data dump using 4 threads.
NOTE: Progress information uses estimated values and may not be accurate.
Writing schema metadata - done
Writing DDL - done
Writing table metadata - done
Starting data dump
101% (650.00K rows / ~639.07K rows), 337.30K rows/s, 65.89 MB/s
Dump duration: 00:00:01s
Total duration: 00:00:01s
Schemas dumped: 1
Tables dumped: 1
Data size: 126.57 MB
Rows written: 650000
Bytes written: 126.57 MB
Average throughput: 65.30 MB/s

命令中的 /data/backup/full 是備份目錄,compression: "none" 指的是不壓縮,這里設(shè)置為不壓縮主要是為了方便查看數(shù)據(jù)文件的內(nèi)容。線上使用建議開啟壓縮。


接下來我們看看備份目錄中的內(nèi)容。

# ll /data/backup/full/
total 123652
-rw-r----- 1 root root      273 May 25 21:13 @.done.json
-rw-r----- 1 root root      854 May 25 21:13 @.json
-rw-r----- 1 root root      240 May 25 21:13 @.post.sql
-rw-r----- 1 root root      288 May 25 21:13 sbtest.json
-rw-r----- 1 root root 63227502 May 25 21:13 sbtest@sbtest1@0.tsv
-rw-r----- 1 root root      488 May 25 21:13 sbtest@sbtest1@0.tsv.idx
-rw-r----- 1 root root 63339214 May 25 21:13 sbtest@sbtest1@@1.tsv
-rw-r----- 1 root root      488 May 25 21:13 sbtest@sbtest1@@1.tsv.idx
-rw-r----- 1 root root      633 May 25 21:13 sbtest@sbtest1.json
-rw-r----- 1 root root      759 May 25 21:13 sbtest@sbtest1.sql
-rw-r----- 1 root root      535 May 25 21:13 sbtest.sql
-rw-r----- 1 root root      240 May 25 21:13 @.sql
-rw-r----- 1 root root     6045 May 25 21:13 @.users.sql

其中,

  • @.done.json:會記錄備份的結(jié)束時間,備份集的大小。備份結(jié)束時生成。
  • @.json:會記錄備份的一些元數(shù)據(jù)信息,包括備份時的一致性位置點信息:binlogFile,binlogPosition 和 gtidExecuted,這些信息可用來建立復(fù)制。
  • @.sql,@.post.sql:這兩個文件只有一些注釋信息。不過在通過 util.loadDump 導(dǎo)入數(shù)據(jù)時,我們可以通過這兩個文件自定義一些 SQL。其中,@.sql 是數(shù)據(jù)導(dǎo)入前執(zhí)行,@.post.sql 是數(shù)據(jù)導(dǎo)入后執(zhí)行。
  • sbtest.json:記錄 sbtest 中已經(jīng)備份的表、視圖、定時器、函數(shù)和存儲過程。
  • *.tsv:數(shù)據(jù)文件。我們看看數(shù)據(jù)文件的內(nèi)容。
  • # head -2 sbtest@sbtest1@0.tsv 1 6461363 68487932199-96439406143-93774651418-41631865787-96406072701-20604855487-25459966574-28203206787-41238978918-19503783441 22195207048-70116052123-74140395089-76317954521-98694025897 2 1112248 13241531885-45658403807-79170748828-69419634012-13605813761-77983377181-01582588137-21344716829-87370944992-02457486289 28733802923-10548894641-11867531929-71265603657-36546888392
  • TSV 格式,每一行儲存一條記錄,字段與字段之間用制表符(\t)分隔。
  • sbtest@sbtest1.json:記錄了表相關(guān)的一些元數(shù)據(jù)信息,如列名,字段之間的分隔符(fieldsTerminatedBy)等。
  • sbtest@sbtest1.sql:sbtest.sbtest1 的建表語句。
  • sbtest.sql:建庫語句。如果這個庫中存在存儲過程、函數(shù)、定時器,也是寫到這個文件中。
  • @.users.sql:創(chuàng)建賬號及授權(quán)語句。默認(rèn)不會備份 mysql.session,mysql.session,mysql.sys 這三個內(nèi)部賬號。


util.dumpschemas(schemas, outputUrl[, options])

備份指定庫的數(shù)據(jù)。

用法同 util.dumpInstance 類似。其中,第一個參數(shù)必須為數(shù)組,即使只需備份一個庫,如,

util.dumpSchemas(['sbtest'],'/data/backup/schema')

支持的配置大部分與 util.dumpInstance 相同。

從 MySQL Shell 8.0.28 開始,可直接使用 util.dumpInstance 中的 includeSchemas 選項進(jìn)行指定庫的備份。


util.dumpTables(schema, tables, outputUrl[, options])

備份指定表的數(shù)據(jù)。

用法同 util.dumpInstance 類似。其中,第二個參數(shù)必須為數(shù)組,如,

util.dumpTables('sbtest',['sbtest1'],'/data/backup/table')

支持的配置大部分與 util.dumpInstance 相同。

從 MySQL Shell 8.0.28 開始,可直接使用 util.dumpInstance 中的 includeTables 選項進(jìn)行指定表的備份。


util.loadDump(url[, options])

導(dǎo)入通過 dump 命令生成的備份集。如,

# mysqlsh -S /data/mysql/3307/data/mysql.sock
mysql-js> util.loadDump("/data/backup/full",{loadUsers: true})
Loading DDL, Data and Users from '/data/backup/full' using 4 threads.
Opening dump...
Target is MySQL 8.0.27. Dump was produced from MySQL 8.0.27
Scanning metadata - done
Checking for pre-existing objects...
Executing common preamble SQL
Executing DDL - done
Executing view DDL - done
Starting data load
2 thds loading - 100% (126.57 MB / 126.57 MB), 11.43 MB/s, 0 / 1 tables done
Recreating indexes - done
Executing user accounts SQL...
NOTE: Skipping CREATE/ALTER USER statements for user 'root'@'localhost'
NOTE: Skipping GRANT statements for user 'root'@'localhost'
Executing common postamble SQL
2 chunks (650.00K rows, 126.57 MB) for 1 tables in 1 schemas were loaded in 10 sec (avg throughput 13.96 MB/s)
0 warnings were reported during the load.

命令中的 /data/backup/full 是備份目錄,loadUsers: true 是導(dǎo)入賬號,默認(rèn)不會導(dǎo)入。

util.dumpInstance 的關(guān)鍵特性

util.dumpInstance 的關(guān)鍵特性如下:

  1. 多線程備份。并發(fā)線程數(shù)由 threads 決定,默認(rèn)是 4。
  2. 支持單表 chunk 級別的并行備份,前提是表上存在主鍵或唯一索引。
  3. 默認(rèn)是壓縮備份。
  4. 支持備份限速。可通過 maxRate 限制單個線程的數(shù)據(jù)讀取速率。

util.loadDump 的關(guān)鍵特性

util.loadDump 的關(guān)鍵特性如下:

  1. 多線程恢復(fù)。并發(fā)線程數(shù)由 threads 決定,默認(rèn)是 4。
  2. 支持?jǐn)帱c續(xù)傳功能。
  3. 在導(dǎo)入的過程中,會在備份目錄生成一個進(jìn)度文件,用于記錄導(dǎo)入過程中的進(jìn)度信息。
  4. 文件名由 progressFile 指定,默認(rèn)是 load-progress.<server_uuid>.progress。
  5. 導(dǎo)入時,如果備份目錄中存在 progressFile,默認(rèn)會從上次完成的地方繼續(xù)執(zhí)行。如果要從頭開始執(zhí)行,需將 resetProgress 設(shè)置為 true。
  6. 支持延遲創(chuàng)建二級索引。
  7. 支持邊備份,邊導(dǎo)入。
  8. 通過 LOAD DATA LOCAL INFILE 命令來導(dǎo)入數(shù)據(jù)。
  9. 如果單個文件過大,util.loadDump 在導(dǎo)入時會自動進(jìn)行切割,以避免產(chǎn)生大事務(wù)。

util.dumpInstance 的備份流程

util.dumpInstance 的備份流程如下圖所示。

mds文件是什么文件(mds文件如何打開)

不難看出,util.dumpInstance 的備份流程與 mysqldump 大致相同,不同的地方主要體現(xiàn)在以下兩點:

  1. util.dumpInstance 會加備份鎖。備份鎖可用來阻塞備份過程中的 DDL。
  2. util.dumpInstance 是并行備份,相對于 mysqldump 的單線程備份,備份效率更高。

util.dumpInstance 的參數(shù)解析

util.dumpInstance 的參數(shù)可分為如下幾類:

過濾相關(guān)

以下是過濾相關(guān)的選項。

  • excludeSchemas:忽略某些庫的備份,多個庫之間用逗號隔開,如,
  • excludeSchemas: ["db1", "db2"]
  • includeSchemas:指定某些庫的備份。
  • excludeTables:忽略某些表的備份,表必須是 schema.table 的格式,多個表之間用逗號隔開,如,
  • excludeTables: ["sbtest.sbtest1", "sbtest.sbtest2"]
  • includeTables:指定某些表的備份。
  • events:是否備份定時器,默認(rèn)為 true。
  • excludeEvents:忽略某些定時器的備份。
  • includeEvents:指定某些定時器的備份。
  • routines:是否備份函數(shù)和存儲過程,默認(rèn)為 true。
  • excludeRoutines:忽略某些函數(shù)和存儲過程的備份。
  • includeRoutines:指定某些函數(shù)和存儲過程的備份。
  • users:是否備份賬號信息,默認(rèn)為 true。
  • excludeUsers:忽略某些賬號的備份,可指定多個賬號。
  • includeUsers:指定某些賬號的備份,可指定多個賬號。
  • triggers:是否備份觸發(fā)器,默認(rèn)為 true。
  • excludeTriggers:忽略某些觸發(fā)器的備份。
  • includeTriggers:指定某些觸發(fā)器的備份。
  • ddlOnly:是否只備份表結(jié)構(gòu),默認(rèn)為 false。
  • dataOnly:是否只備份數(shù)據(jù),默認(rèn)為 false。


并行備份相關(guān)

  • chunking:是否開啟 chunk 級別的并行備份功能,默認(rèn)為 true。
  • bytesPerChunk:每個 chunk 文件的大小,默認(rèn) 64M。
  • threads:并發(fā)線程數(shù),默認(rèn)為 4。


OCI甲骨文云)相關(guān)

  • ocimds:是否檢查備份集與 MySQL Database Service(甲骨文云的 MySQL 云服務(wù),簡稱 MDS )的兼容性,默認(rèn)為 false,不檢查。如果設(shè)置為 true,會輸出所有的不兼容項及解決方法。不兼容項可通過下面的 compatibility 來解決。
  • compatibility:如果要將備份數(shù)據(jù)導(dǎo)入到 MDS 中,為了保證與后者的兼容性,可在導(dǎo)出的過程中進(jìn)行相應(yīng)地調(diào)整。具體來說:
  • create_invisible_pks:對于沒有主鍵的表,會創(chuàng)建一個隱藏主鍵:my_row_id BIGINT UNSIGNED AUTO_INCREMENT INVISIBLE PRIMARY KEY。隱藏列是 MySQL 8.0.23 引入的。
  • force_innodb:將表的引擎強(qiáng)制設(shè)置為 InnoDB。
  • ignore_missing_pks:忽略主鍵缺失導(dǎo)致的錯誤,與 create_invisible_pks 互斥,不能同時指定。
  • skip_invalid_accounts:忽略沒有密碼,或者使用了 MDS 不支持的認(rèn)證插件的賬號。
  • strip_definers:去掉視圖、存儲過程、函數(shù)、定時器、觸發(fā)器中的 DEFINER=account 子句。
  • strip_restricted_GRANTs:去掉 MDS 中不允許 GRANT 的權(quán)限。
  • strip_tablespaces:去掉建表語句中的 TABLESPACE=xxx 子句。
  • osBucketName,osNamespace,ociConfigFile,ociProfile,ociParManifest,ociParExpireTime:OCI 對象存儲相關(guān)。


其它選項

  • tzUtc:是否設(shè)置 TIME_ZONE = '+00:00',默認(rèn)為 true。
  • consistent:是否開啟一致性備份,默認(rèn)為 true。若設(shè)置為 false,則不會加全局讀鎖,也不會開啟事務(wù)的一致性快照。
  • dryRun:試運(yùn)行。此時只會打印備份信息,不會執(zhí)行備份操作。
  • maxRate:限制單個線程的數(shù)據(jù)讀取速率,單位 byte,默認(rèn)為 0,不限制。
  • showProgress:是否打印進(jìn)度信息,如果是 TTY 設(shè)備(命令行終端),則為 true,反之,則為 false。
  • defaultCharacterSet:字符集,默認(rèn)為 utf8mb4。
  • compression:備份文件的壓縮算法,默認(rèn)為 zstd。也可設(shè)置為 gzip 或 none(不壓縮)。

util.loadDump 的參數(shù)解析

util.loadDump 的參數(shù)可分為如下幾類:

過濾相關(guān)

  • excludeEvents:忽略某些定時器的導(dǎo)入。
  • excludeRoutines:忽略某些函數(shù)和存儲過程的導(dǎo)入。
  • excludeSchemas:忽略某些庫的導(dǎo)入。
  • excludeTables:忽略某些表的導(dǎo)入。
  • excludeTriggers:忽略某些觸發(fā)器的導(dǎo)入。
  • excludeUsers:忽略某些賬號的導(dǎo)入。
  • includeEvents:導(dǎo)入指定定時器。
  • includeRoutines:導(dǎo)入指定函數(shù)和存儲過程。
  • includeSchemas:導(dǎo)入指定庫。
  • includeTables:導(dǎo)入指定表。
  • includeTriggers:導(dǎo)入指定觸發(fā)器。
  • includeUsers:導(dǎo)入指定賬號。
  • loadData:是否導(dǎo)入數(shù)據(jù),默認(rèn)為 true。
  • loadDdl:是否導(dǎo)入 DDL 語句,默認(rèn)為 true。
  • loadUsers:是否導(dǎo)入賬號,默認(rèn)為 false。注意,即使將 loadUsers 設(shè)置為 true,也不會導(dǎo)入當(dāng)前正在執(zhí)行導(dǎo)入操作的用戶。
  • ignoreExistingObjects:是否忽略已經(jīng)存在的對象,默認(rèn)為 off。


并行導(dǎo)入相關(guān)

  • backgroundThreads:獲取元數(shù)據(jù)和 DDL 文件內(nèi)容的線程數(shù)。備份集如果存儲在本地,backgroundThreads 默認(rèn)和 threads 一致。
  • threads:并發(fā)線程數(shù),默認(rèn)為 4。
  • maxBytesPerTransaction:指定單個 LOAD DATA 操作可加載的最大字節(jié)數(shù)。默認(rèn)與 bytesPerChunk 一致。這個參數(shù)可用來規(guī)避大事務(wù)。


斷點續(xù)傳相關(guān)

  • progressFile:在導(dǎo)入的過程中,會在備份目錄生成一個 progressFile,用于記錄加載過程中的進(jìn)度信息,這個進(jìn)度信息可用來實現(xiàn)斷點續(xù)傳功能。默認(rèn)為 load-progress.<server_uuid>.progress。
  • resetProgress:如果備份目錄中存在 progressFile,默認(rèn)會從上次完成的地方繼續(xù)執(zhí)行。如果要從頭開始執(zhí)行,需將 resetProgress 設(shè)置為 true。該參數(shù)默認(rèn)為 off。


OCI 相關(guān)

osBucketName,osNamespace,ociConfigFile,ociProfile。


二級索引相關(guān)

  • deferTableIndexes:是否延遲(數(shù)據(jù)加載完畢后)創(chuàng)建二級索引??稍O(shè)置:off(不延遲),fulltext(只延遲創(chuàng)建全文索引,默認(rèn)值),all(延遲創(chuàng)建所有索引)。
  • loadIndexes:與 deferTableIndexes 一起使用,用來決定數(shù)據(jù)加載完畢后,最后的二級索引是否創(chuàng)建,默認(rèn)為 true。


其它選項

  • analyzeTables:表加載完畢后,是否執(zhí)行 ANALYZE TABLE 操作。默認(rèn)是 off(不執(zhí)行),也可設(shè)置為 on 或 histogram(只對有直方圖信息的表執(zhí)行)。
  • characterSet:字符集,無需顯式設(shè)置,默認(rèn)會從備份集中獲取。
  • createInvisiblePKs:是否創(chuàng)建隱式主鍵,默認(rèn)從備份集中獲取。這個與備份時是否指定了 create_invisible_pks 有關(guān),若指定了則為 true,反之為 false。
  • dryRun:試運(yùn)行。
  • ignoreVersion:忽略 MySQL 的版本檢測。默認(rèn)情況下,要求備份實例和導(dǎo)入實例的大版本一致。
  • schema:將表導(dǎo)入到指定 schema 中,適用于通過 util.dumpTables 創(chuàng)建的備份。
  • showMetadata:導(dǎo)入時是否打印一致性備份時的位置點信息。
  • showProgress:是否打印進(jìn)度信息。
  • skipBinlog:是否設(shè)置 sql_log_bin=0 ,默認(rèn) false。這一點與 mysqldump、mydumper 不同,后面這兩個工具默認(rèn)會禁用 Binlog。
  • updateGtidSet:更新 GTID_PURGED??稍O(shè)置:off(不更新,默認(rèn)值), replace(替代目標(biāo)實例的 GTID_PURGED), append(追加)。
  • waitDumpTimeout:util.loadDump 可導(dǎo)入當(dāng)前正在備份的備份集。處理完所有文件后,如果備份還沒有結(jié)束(具體來說,是備份集中沒有生成 @.done.json),util.loadDump 會報錯退出,可指定 waitDumpTimeout 等待一段時間,單位秒。

MySQL Shell Dump & Load 的注意事項

1. 表上存在主鍵或唯一索引才能進(jìn)行 chunk 級別的并行備份。字段的數(shù)據(jù)類型不限。不像 mydumper,分片鍵只能是整數(shù)類型。

2. 對于不能進(jìn)行并行備份的表,目前會備份到一個文件中。如果該文件過大,不用擔(dān)心大事務(wù)的問題,util.loadDump 在導(dǎo)入時會自動進(jìn)行切割。

3. util.dumpInstance 只能保證 InnoDB 表的備份一致性。

4. 默認(rèn)不會備份 information_schema,mysql,ndbinfo,performance_schema,sys。

5. 備份實例支持 MySQL 5.6 及以上版本,導(dǎo)入實例支持 MySQL 5.7 及以上版本。

6. 備份的過程中,會將 BLOB 等非文本安全的列轉(zhuǎn)換為 Base64,由此會導(dǎo)致轉(zhuǎn)換后的數(shù)據(jù)大小超過原數(shù)據(jù)。導(dǎo)入時,注意 max_allowed_packet 的限制。

7. 導(dǎo)入之前,需將目標(biāo)實現(xiàn)的 local_infile 設(shè)置為 ON。

如果本文對你有幫助,別忘記給我個3連 ,點贊,轉(zhuǎn)發(fā),評論,,咱們下期見。

收藏 等于白嫖,點贊才是真情。

原文 https://www.cnblogs.com/ivictor/p/16326495.html

本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 sumchina520@foxmail.com 舉報,一經(jīng)查實,本站將立刻刪除。
如若轉(zhuǎn)載,請注明出處:http://www.qjsdgw.cn/41887.html