Oracle數據庫11g中DataGuard物理備用數據庫搭建與配置

    Oracle Data Guard是由Oracle公司提供的一套高可用性數據庫解決方案。Data Guard可以確保企業(yè)數據的高可用性,并實現數據保護和災難恢復。Data Guard提供了一套綜合創(chuàng)建、維護、管理和監(jiān)視一個或多個備用數據庫的服務,使得用戶能夠輕松地應對Oracle生產數據庫的災難發(fā)生和數據損壞。Data Guard將維護的備用數據庫保持為和主數據庫(生產數據庫)的數據和事物的一致性,當主數據庫意外當機或者不可用時,Data Guard可以將任何一臺備用數據庫切換為主數據庫,從而最大限度的減少數據庫服務器當機的時間。

創(chuàng)新互聯(lián)建站專注于企業(yè)網絡營銷推廣、網站重做改版、準格爾網站定制設計、自適應品牌網站建設、H5網站設計、電子商務商城網站建設、集團公司官網建設、成都外貿網站制作、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為準格爾等各大城市提供網站開發(fā)制作服務。

Data Guard原理
   

利用重做日志實現從生產庫(主)到備用數據庫的實時備份(備庫通過應用主庫上的數據變化來保持數據的同步),主備服務器可以互相切換(即將其中一臺提升為主服務器)。

Data Guard架構

  • Primary Database(主數據庫):  即一個生產數據庫,在Data Guard中其主要角色的作用,是大多數應用程序訪問的數據庫。

  • Standby Database(備數據庫):  Standby數據庫是主數據的備份副本,備用數據庫可以是物理備用數據庫或邏輯備用數據庫,即以下兩種類型

    - Physical standby database: 物理備用數據庫(使用Redo Apply技術),主要用于災難恢復。
    - Logical standby database:  邏輯備用數據庫(使用SQL Apply技術),除了用于災難恢復外,還可以提供數據查詢、分析等服務

Data Guard數據保護模式

Data Guard可以運行以三種不同的模式運行。

Maximum protection(最大保護): 確保主數據庫發(fā)生故障時不會發(fā)生數據丟失。在所有重做數據寫入到本地在線重做日志和至少一個備用數據庫的備用重做日志之前,不允許事務的提交。如果由于故障不能將主數據庫的重做日志寫入到至少一個備用數據庫的備用重做日志,則主數據庫將關閉。

Maximum availability(最高可用性): 提供最高級別的數據保護,而不會影響主數據庫的可用性。與最大保護模式一樣,在恢復事物所需的重做日志寫入本地聯(lián)機重做日志和至少一個備用數據庫的備用重做日志之前,事務不會提交。最大保護模式不同的是,在主數據庫發(fā)生故障時不會將其重做日志寫入備用數據庫的重做日志。相反,主數據庫以最大的性能模式下運行。

Maximum performance(最高性能): 默認模式。提供最高級別的數據保護,但不影響主數據庫的性能。

環(huán)境準備

在我的測試環(huán)境中,我準備了兩臺CentOS7.4虛擬機,并同時都安裝了Oracle11gR2的11.2.0.4.0企業(yè)版的數據庫軟件,其中只有主服務器創(chuàng)建一個數據庫實例,備用服務器僅安裝Oracle數據庫軟件。

主數據庫:
OS: CentOS7.4
Hostname:     hmdb11dg-db1
Oracle Version:  11.2.0.4.0
Oracle SID:     HMDG(使用DBCA工具創(chuàng)建的一個數據庫)

備數據庫:
OS: CentOS7.4
Hostname:     hmdb11dg-db2
Oracle Version:  11.2.0.4.0
Oracle SID:    HMDG2
注意: 在開始之前,備用服務上還沒有將要與主服務器同步備份的數據庫實例

主數據庫的設置

1. 啟用歸檔日志

檢查主數據是否處于歸檔日志模式

SQL> SELECT log_mode FROM v$database;

LOG_MODE
------------
ARCHIVELOG

如果是NOARCHIVELOG模式,則將其修改為ARCHIVELOG模式

SQL> SHUTDOWN IMMEDIATE; 
SQL> STARTUP MOUNT; 
SQL> ALTER DATABASE ARCHIVELOG; 
SQL> ALTER DATABASE OPEN;

2. 啟用強制日志

SQL> ALTER DATABASE FORCE LOGGING;
SQL> SELECT name,force_logging FROM v$database;

NAME      FOR
--------- ---
HMDG      YES

3. 創(chuàng)建密碼文件

如果密碼文件不存在,則創(chuàng)建一個密碼文件,備用服務器使用主服務器的密碼文件。Data Guard配置中的每個數據庫的所有用戶密碼必須完全相同。

$ orapwd file=/tmp/orapwHMDG password=hm_201802 entries=20

4. 創(chuàng)建備用重做日志

備用重做日志文件的大小要與當前主數據庫的在線重做日志文件大小完全匹配。

確定備用重做日志文件組的數量,建議的數量:(每個線程最大的日志數 + 1) * 最大線程數

SQL> SELECT * FROM v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE      MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS         FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------------- ------------- --------- ------------ ---------
     1        1          40  104857600       512        1 YES
INACTIVE        769491 06-FEB-18       813871 07-FEB-18

     2        1          41  104857600       512        1 NO
CURRENT         813871 07-FEB-18   2.8147E+14

     3        1          39  104857600       512        1 YES
INACTIVE        742672 06-FEB-18       769491 06-FEB-18

#下面創(chuàng)建8組備用重做日志
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 '/u01/app/oracle/oradata/HMDG/redo04.log' SIZE 500M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 '/u01/app/oracle/oradata/HMDG/redo05.log' SIZE 500M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 '/u01/app/oracle/oradata/HMDG/redo06.log' SIZE 500M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 '/u01/app/oracle/oradata/HMDG/redo07.log' SIZE 500M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 8 '/u01/app/oracle/oradata/HMDG/redo08.log' SIZE 500M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 9 '/u01/app/oracle/oradata/HMDG/redo09.log' SIZE 500M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 10 '/u01/app/oracle/oradata/HMDG/redo10.log' SIZE 500M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 11 '/u01/app/oracle/oradata/HMDG/redo11.log' SIZE 500M;

#驗證
SQL> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;

    GROUP#    THREAD#  SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------
     4        0           0 YES UNASSIGNED
     5        0           0 YES UNASSIGNED
     6        0           0 YES UNASSIGNED
     7        0           0 YES UNASSIGNED
     8        0           0 YES UNASSIGNED
     9        0           0 YES UNASSIGNED
    10        0           0 YES UNASSIGNED
    11        0           0 YES UNASSIGNED

8 rows selected.

5. 開啟閃回日志

SQL> alter database flashback on;
SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------
YES

6. Oracle監(jiān)聽配置

主備數據庫必須配置注冊靜態(tài)監(jiān)聽服務(listener.ora配置)

#主數據庫
$ cat /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = hmdb11dg-db1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = HMDG.DB)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = HMDG)
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle


#備數據庫
$ cat /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = hmdb11dg-db2)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = HMDG2.DB)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = HMDG2)
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

7. 主備數據庫TNS別名連接信息配置

修改兩臺服務器上的$ORACLE_HOME/network/admin/tnsnames.ora配置文件,主備使用相同的配置

HMDG =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = hmdb11dg-db1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = HMDG.DB)
    )
  )

HMDG2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = hmdb11dg-db2)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = HMDG2.DB)
    )
  )

8. 測試使用TNS別名連接數據庫

[oracle@hmdb11dg-db1 ~]$ sqlplus system/hm_123456@HMDG

SQL*Plus: Release 11.2.0.4.0 Production on Wed Feb 7 16:07:54 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

9. 主數據庫初始化參數設置

檢查DB_NAME和DB_UNIQUE_NAME參數設置,在我的例子中,主數據庫的DB_NAME和DB_UNIQUE_NAME值都為HMDG。DB_NAME是主備所有節(jié)點都使用相同的值,即使用主的DB_NAME值,DB_UNIQUE_NAME必須是全局唯一的值,即每一個節(jié)點值都不同

SQL> SHOW PARAMETER DB_NAME

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
db_name                  string     HMDG
SQL> SHOW PARAMETER DB_UNIQUE_NAME

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                 string     HMDG

#設置DB_UNIQUE_NAME參數值
SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=HMDG SCOPE=SPFILE;

確定備庫的DB_UNIQUE_NAME之后,接下來首先我們設置LOG_ARCHIVE_CONFIG參數

SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(HMDG,HMDG2)' SCOPE=SPFILE;

配置主數據庫本地歸檔日志的位置和遠程備用數據重做日志的位置,注意LOG_ARCHIVE_DEST_1為本地的參數設置,LOG_ARCHIVE_DEST_2為遠程節(jié)點的設置

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/oradata/HMDG VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=HMDG' SCOPE=SPFILE;

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=HMDG2 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=HMDG2' SCOPE=SPFILE;

設置LOG_ARCHIVE_DEST_STATE_1和LOG_ARCHIVE_DEST_STATE_2的值為ENABLE

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE SCOPE=SPFILE;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=SPFILE;

設置LOG_ARCHIVE_FORMAT和LOG_ARCHIVE_MAX_PROCESSES參數為合適的值,并且REMOTE_LOGIN_PASSWORDFILE必須設置為'EXCLUSIVE'

SQL> ALTER SYSTEM SET LOG_ARCHIVE_FORMAT = '%t_%s_%r.arc' SCOPE = SPFILE;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES = 30 SCOPE = SPFILE;
SQL> ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE SCOPE = SPFILE;

接下來設置與備用數據庫相關的參數值,確保主數據庫已經準備好切換為備數據庫

SQL> ALTER SYSTEM SET FAL_SERVER=HMDG2 SCOPE = SPFILE; 
SQL> ALTER SYSTEM SET FAL_CLIENT=HMDG SCOPE = SPFILE; 
SQL> ALTER SYSTEM SET DB_FILE_NAME_CONVERT='HMDG2','HMDG' SCOPE = SPFILE;
SQL> ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/HMDG2/','/u01/app/oracle/oradata/HMDG/' SCOPE = SPFILE; 
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE = SPFILE;

設置完主數據庫初始化參數后,需要重新啟動數據庫配置才生效

SQL> shutdown immediate
SQL> startup

SQL> show parameter standby_file_management

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
standby_file_management          string     AUTO

10. 生成一個PFILE參數文件

在設置了主數據庫初始化參數之后,我們可以手動生成一個主服務器的PFILE參數文件

SQL> CREATE PFILE FROM SPFILE;

查看$ORACLE_HOME/dbs/目錄下生成的initHMDG.ora文件

$ cat initHMDG.ora
HMDG.__db_cache_size=234881024
HMDG.__java_pool_size=33554432
HMDG.__large_pool_size=1962934272
HMDG.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
HMDG.__pga_aggregate_target=150994944
HMDG.__sga_target=3137339392
HMDG.__shared_io_pool_size=0
HMDG.__shared_pool_size=872415232
HMDG.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/HMDG/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/oradata/HMDG/control01.ctl','/u01/app/oracle/fast_recovery_area/HMDG/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_file_name_convert='HMDG2','HMDG'
*.db_name='HMDG'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=10737418240
*.db_unique_name='HMDG'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=HMDGXDB)'
*.fal_client='HMDG'
*.fal_server='HMDG2'
*.log_archive_config='DG_CONFIG=(HMDG,HMDG2)'
*.log_archive_dest_1='LOCATION=/u01/app/oracle/oradata/HMDG VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=HMDG'
*.log_archive_dest_2='SERVICE=HMDG2 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=HMDG2'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=30
*.log_file_name_convert='/u01/app/oracle/oradata/HMDG2/','/u01/app/oracle/oradata/HMDG/'
*.memory_target=3277848576
*.open_cursors=300
*.processes=5000
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=5505
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'

11. 備份主數據庫

為通過手動同步主數據庫的原始數據文件創(chuàng)建備份,如果你使用的是RMAN 的DUPLICATE來恢復備用數據庫,則不需要執(zhí)行次步驟。

[oracle@hmdb11dg-db1 ~]$ rman target = /
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

12. 創(chuàng)建備用數據庫的控制文件和PFILE文件

創(chuàng)建備用數據庫控制文件

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/HMDG2.ctl';

創(chuàng)建備用數據庫的PFILE文件

SQL> CREATE PFILE='/tmp/initHMDG2.ora' FROM SPFILE;

備用數據庫服務器設置

1. 備用數據庫上創(chuàng)建必要的目錄

$ mkdir /u01/app/oracle/admin
$ mkdir /u01/app/oracle/admin/HMDG2
$ mkdir /u01/app/oracle/admin/HMDG2/{adump,dpdump,pfile,scripts}

$ mkdir -p /u01/app/oracle/oradata/HMDG2
$ mkdir -p /u01/app/oracle/fast_recovery_area/HMDG2

2. 將控制文件、參數文件和密碼文件從主服務器上復制到備用服務器上

#控制文件
$ scp oracle@hmdb11dg-db1:/tmp/HMDG2.ctl /u01/app/oracle/oradata/HMDG2/control01.ctl   
$ cp /u01/app/oracle/oradata/HMDG2/control01.ctl /u01/app/oracle/fast_recovery_area/HMDG2/control02.ctl

#密碼文件
$ scp oracle@hmdb11dg-db1:/tmp/orapwHMDG /u01/app/oracle/product/11.2.0/db_1/dbs/orapwHMDG2

#參數文件
$ scp oracle@hmdb11dg-db1:/tmp/initHMDG2.ora /u01/app/oracle/product/11.2.0/db_1/dbs/
initHMDG2.ora

3. 修改備用數據庫初始化參數

修改備用服務器的PFILE文件$ORACLE_HOME/dbs/initHMDG.ora

...
*.audit_file_dest='/u01/app/oracle/admin/HMDG2/adump'
*.control_files='/u01/app/oracle/oradata/HMDG2/control01.ctl','/u01/app/oracle/fast_recovery_area/HMDG2/control02.ctl
*.db_name='HMDG'
*.db_unique_name='HMDG2'
*.db_file_name_convert='HMDG','HMDG2'
*.log_archive_config='DG_CONFIG=(HMDG,HMDG2)'
*.log_archive_dest_1='LOCATION=/u01/app/oracle/oradata/HMDG2 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=HMDG2'
*.log_archive_dest_2='SERVICE=HMDG LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=HMDG'
*.fal_client='HMDG'
*.fal_server='HMDG2
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=30
*.log_file_name_convert='/u01/app/oracle/oradata/HMDG/','/u01/app/oracle/oradata/HMDG2/'
...

創(chuàng)建備用數據庫(DUPLICATE)

使用備庫的PFILE文件以NOMOUNT模式啟動備用數據庫實例

$ sqlplus / as sysdba
SQL> STARTUP NOMOUNT PFILE='/u01/app/oracle/product/11.2.0/db_1/dbs/initHMDG2.ora';

創(chuàng)建SPFILE文件

SQL> CREATE SPFILE FROM PFILE;

使用RMAN將主數據庫復制到備用數據庫,以sys用戶連接,并使用DUPLICATE復制主庫到備庫

$ rman TARGET sys/hm_123456@HMDG AUXILIARY sys/hm_123456@HMDG2

使用以下DUPLICATE語句復制主庫

DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE;

在RMAN復制過程中如果沒有產生任何錯誤,接下來就可以立即開啟日志重做應用

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
或者
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

取消申請恢復命令

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

在主上強制主數據庫上的日志切換器將當前的重做日志組歸檔

SQL> ALTER SYSTEM SWITCH LOGFILE;

在備上查詢日志應用情況

SQL> select sequence#, first_time, applied from v$archived_log order by sequence#;

 SEQUENCE# FIRST_TIM APPLIED
---------- --------- ---------
       100 08-FEB-18 YES
       101 08-FEB-18 YES
       102 08-FEB-18 IN-MEMORY

在主上執(zhí)行日志切換

ALTER SYSTEM SWITCH LOGFILE;

再查看備上日志應用

SQL> select sequence#, first_time, applied from v$archived_log order by sequence#;

 SEQUENCE# FIRST_TIM APPLIED
---------- --------- ---------
       100 08-FEB-18 YES
       101 08-FEB-18 YES
       102 08-FEB-18 YES
       103 08-FEB-18 IN-MEMORY

主備切換

1. 主數據庫

在當前主數據庫中查詢主備狀態(tài)

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
--------------------
TO STANDBY

當主數據庫的狀態(tài)為TO STANDBY時,表示可以切換到備用數據庫

主上執(zhí)行

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;

-- 在備切換為主時,將舊的主啟動為備用數據庫
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

2. 備數據庫

在備上確定當前切換狀態(tài)

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; 
SWITCHOVER_STATUS 
----------------- 
TO_PRIMARY 
1 row selected


備上執(zhí)行

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
-- 確認打開數據庫
SQL> ALTER DATABASE OPEN;
-- 或者
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

分享題目:Oracle數據庫11g中DataGuard物理備用數據庫搭建與配置
文章地址:http://muchs.cn/article36/ghigpg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供做網站、商城網站App設計、營銷型網站建設定制開發(fā)、動態(tài)網站

廣告

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

外貿網站建設