您好,登錄后才能下訂單哦!
小編給大家分享一下Oracle 安裝前 runcluvfy.sh腳本怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Oracle 官方建議在安裝Oracle Grid Infrastructure前運行此腳本,來檢查各個節點是否滿足GI安裝的官方要求.
在部署Grid Infrastructure的過程中使用,我們不光要學會怎么用這個腳本,更應該明白其中的一些原理。
runcluvfy.sh將功能在shell中實現,并和GI的安裝介質一起提供給用戶,使得用戶在數據庫和CLUSTER安裝之前就可以利用這個工具的功能。
先看一下腳本的基本用法
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose
語法說明:
-pre: 該選項主要檢查是否滿足安裝的需要。
-post:該選擇主要檢查安裝后組件是否正常。
-n:該選項用于指定節點列表,這里指定了2個節點。
-verbose:該選項用于輸出詳細的驗證信息。
-fixup:這是Oracle 11gR2中新增加的一個參數。利用這個參數,可以產生一個名為runfixup.sh的腳本。
runfixup.sh腳本中包含一系列的操作系統命令,利用這個腳本可以對操作系統進行一定的修改,使其滿足安裝條件。
完成系統進行校驗之后,以root用戶的身份執行腳本runfixup.sh,就可以解決操作系統中一些尚不滿足安裝條件的情況。
附一個我的測試庫的輸出結果
crmdb1:/oracle@grid> ./runcluvfy.sh stage -pre crsinst -n crmdb1,crmdb2 -verbose
Performing pre-checks for cluster services setup
Checking node reachability...
Check: Node reachability from node "crmdb1"
Destination Node Reachable?
------------------------------------ ------------------------
crmdb2 yes
crmdb1 yes
Result: Node reachability check passed from node "crmdb1"
Checking user equivalence...
Check: User equivalence for user "oracle"
Node Name Status
------------------------------------ ------------------------
crmdb2 passed
crmdb1 passed
Result: User equivalence check passed for user "oracle"
Checking node connectivity...
Checking hosts config file...
Node Name Status
------------------------------------ ------------------------
crmdb2 passed
crmdb1 passed
Verification of the hosts config file successful
Interface information for node "crmdb2"
Name IP Address Subnet Gateway Def. Gateway HW Address MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
eth0 192.168.1.5 192.168.1.0 0.0.0.0 132.64.196.1 78:58:60:B1:26:38 1500
eth2 132.64.196.45 132.64.196.0 0.0.0.0 132.64.196.1 9C:37:F4:01:02:06 1500
Interface information for node "crmdb1"
Name IP Address Subnet Gateway Def. Gateway HW Address MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
eth0 192.168.1.4 192.168.1.0 0.0.0.0 132.64.196.1 78:58:60:B1:26:04 1500
eth2 132.64.196.44 132.64.196.0 0.0.0.0 132.64.196.1 E4:35:C8:7C:03:AB 1500
Check: Node connectivity of subnet "192.168.1.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
crmdb2[192.168.1.5] crmdb1[192.168.1.4] yes
Result: Node connectivity passed for subnet "192.168.1.0" with node(s) crmdb2,crmdb1
Check: TCP connectivity of subnet "192.168.1.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
crmdb1:192.168.1.4 crmdb2:192.168.1.5 passed
Result: TCP connectivity check passed for subnet "192.168.1.0"
Check: Node connectivity of subnet "132.64.196.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
crmdb2[132.64.196.45] crmdb1[132.64.196.44] yes
Result: Node connectivity passed for subnet "132.64.196.0" with node(s) crmdb2,crmdb1
Check: TCP connectivity of subnet "132.64.196.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
crmdb1:132.64.196.44 crmdb2:132.64.196.45 passed
Result: TCP connectivity check passed for subnet "132.64.196.0"
Interfaces found on subnet "132.64.196.0" that are likely candidates for VIP are:
crmdb2 eth5:132.64.196.45
crmdb1 eth5:132.64.196.44
Interfaces found on subnet "192.168.1.0" that are likely candidates for a private interconnect are:
crmdb2 eth0:192.168.1.5
crmdb1 eth0:192.168.1.4
Checking subnet mask consistency...
Subnet mask consistency check passed for subnet "192.168.1.0".
Subnet mask consistency check passed for subnet "132.64.196.0".
Subnet mask consistency check passed.
Result: Node connectivity check passed
Checking multicast communication...
Checking subnet "192.168.1.0" for multicast communication with multicast group "230.0.1.0"...
Check of subnet "192.168.1.0" for multicast communication with multicast group "230.0.1.0" passed.
Checking subnet "132.64.196.0" for multicast communication with multicast group "230.0.1.0"...
PRVG-11134 : Interface "132.64.196.44" on node "crmdb1" is not able to communicate with interface "132.64.196.45" on node "crmdb2"
Checking subnet "132.64.196.0" for multicast communication with multicast group "224.0.0.251"...
Check of subnet "132.64.196.0" for multicast communication with multicast group "224.0.0.251" passed.
Check of multicast communication passed.
Checking ASMLib configuration.
Node Name Status
------------------------------------ ------------------------
crmdb2 passed
crmdb1 passed
Result: Check for ASMLib configuration passed.
Check: Total memory
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 504.6577GB (5.29171932E8KB) 1.5GB (1572864.0KB) passed
crmdb1 504.6577GB (5.29171932E8KB) 1.5GB (1572864.0KB) passed
Result: Total memory check passed
Check: Available memory
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 402.1997GB (4.21736976E8KB) 50MB (51200.0KB) passed
crmdb1 401.8191GB (4.2133782E8KB) 50MB (51200.0KB) passed
Result: Available memory check passed
Check: Swap space
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 31.25GB (3.2767996E7KB) 16GB (1.6777216E7KB) passed
crmdb1 31.25GB (3.2767996E7KB) 16GB (1.6777216E7KB) passed
Result: Swap space check passed
Check: Free disk space for "crmdb2:/tmp"
Path Node Name Mount point Available Required Status
---------------- ------------ ------------ ------------ ------------ ------------
/tmp crmdb2 /tmp 28.5234GB 1GB passed
Result: Free disk space check passed for "crmdb2:/tmp"
Check: Free disk space for "crmdb1:/tmp"
Path Node Name Mount point Available Required Status
---------------- ------------ ------------ ------------ ------------ ------------
/tmp crmdb1 /tmp 28.4948GB 1GB passed
Result: Free disk space check passed for "crmdb1:/tmp"
Check: User existence for "oracle"
Node Name Status Comment
------------ ------------------------ ------------------------
crmdb2 passed exists(501)
crmdb1 passed exists(501)
Checking for multiple users with UID value 501
Result: Check for multiple users with UID value 501 passed
Result: User existence check passed for "oracle"
Check: Group existence for "oinstall"
Node Name Status Comment
------------ ------------------------ ------------------------
crmdb2 passed exists
crmdb1 passed exists
Result: Group existence check passed for "oinstall"
Check: Group existence for "dba"
Node Name Status Comment
------------ ------------------------ ------------------------
crmdb2 passed exists
crmdb1 passed exists
Result: Group existence check passed for "dba"
Check: Membership of user "oracle" in group "oinstall" [as Primary]
Node Name User Exists Group Exists User in Group Primary Status
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 yes yes yes no failed
crmdb1 yes yes yes no failed
Result: Membership check for user "oracle" in group "oinstall" [as Primary] failed
Check: Membership of user "oracle" in group "dba"
Node Name User Exists Group Exists User in Group Status
---------------- ------------ ------------ ------------ ----------------
crmdb2 yes yes yes passed
crmdb1 yes yes yes passed
Result: Membership check for user "oracle" in group "dba" passed
Check: Run level
Node Name run level Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 5 3,5 passed
crmdb1 5 3,5 passed
Result: Run level check passed
Check: Hard limits for "maximum open file descriptors"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
crmdb2 hard 65536 65536 passed
crmdb1 hard 65536 65536 passed
Result: Hard limits check passed for "maximum open file descriptors"
Check: Soft limits for "maximum open file descriptors"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
crmdb2 soft 65536 1024 passed
crmdb1 soft 65536 1024 passed
Result: Soft limits check passed for "maximum open file descriptors"
Check: Hard limits for "maximum user processes"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
crmdb2 hard 16384 16384 passed
crmdb1 hard 16384 16384 passed
Result: Hard limits check passed for "maximum user processes"
Check: Soft limits for "maximum user processes"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
crmdb2 soft 16384 2047 passed
crmdb1 soft 16384 2047 passed
Result: Soft limits check passed for "maximum user processes"
Check: System architecture
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 x86_64 x86_64 passed
crmdb1 x86_64 x86_64 passed
Result: System architecture check passed
Check: Kernel version
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 2.6.32-696.el6.x86_64 2.6.9 passed
crmdb1 2.6.32-696.el6.x86_64 2.6.9 passed
Result: Kernel version check passed
Check: Kernel parameter for "semmsl"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 6010 6010 250 passed
crmdb1 6010 6010 250 passed
Result: Kernel parameter check passed for "semmsl"
Check: Kernel parameter for "semmns"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 769280 769280 32000 passed
crmdb1 769280 769280 32000 passed
Result: Kernel parameter check passed for "semmns"
Check: Kernel parameter for "semopm"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 6010 6010 100 passed
crmdb1 6010 6010 100 passed
Result: Kernel parameter check passed for "semopm"
Check: Kernel parameter for "semmni"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 128 128 128 passed
crmdb1 128 128 128 passed
Result: Kernel parameter check passed for "semmni"
Check: Kernel parameter for "shmmax"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 270989756416 270989756416 4294967295 passed
crmdb1 270989756416 270989756416 4294967295 passed
Result: Kernel parameter check passed for "shmmax"
Check: Kernel parameter for "shmmni"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 4096 4096 4096 passed
crmdb1 4096 4096 4096 passed
Result: Kernel parameter check passed for "shmmni"
Check: Kernel parameter for "shmall"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 132318976 132318976 2097152 passed
crmdb1 132318976 132318976 2097152 passed
Result: Kernel parameter check passed for "shmall"
Check: Kernel parameter for "file-max"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 6815744 6815744 6815744 passed
crmdb1 6815744 6815744 6815744 passed
Result: Kernel parameter check passed for "file-max"
Check: Kernel parameter for "ip_local_port_range"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 between 9000.0 & 65500.0 between 9000.0 & 65500.0 between 9000.0 & 65500.0 passed
crmdb1 between 9000.0 & 65500.0 between 9000.0 & 65500.0 between 9000.0 & 65500.0 passed
Result: Kernel parameter check passed for "ip_local_port_range"
Check: Kernel parameter for "rmem_default"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 262144 262144 262144 passed
crmdb1 262144 262144 262144 passed
Result: Kernel parameter check passed for "rmem_default"
Check: Kernel parameter for "rmem_max"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 4194304 4194304 4194304 passed
crmdb1 4194304 4194304 4194304 passed
Result: Kernel parameter check passed for "rmem_max"
Check: Kernel parameter for "wmem_default"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 262144 262144 262144 passed
crmdb1 262144 262144 262144 passed
Result: Kernel parameter check passed for "wmem_default"
Check: Kernel parameter for "wmem_max"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 1048576 1048576 1048576 passed
crmdb1 1048576 1048576 1048576 passed
Result: Kernel parameter check passed for "wmem_max"
Check: Kernel parameter for "aio-max-nr"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
crmdb2 1048576 1048576 1048576 passed
crmdb1 1048576 1048576 1048576 passed
Result: Kernel parameter check passed for "aio-max-nr"
Check: Package existence for "make"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 make-3.81-23.el6 make-3.80 passed
crmdb1 make-3.81-23.el6 make-3.80 passed
Result: Package existence check passed for "make"
Check: Package existence for "binutils"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 binutils-2.20.51.0.2-5.46.el6 binutils-2.15.92.0.2 passed
crmdb1 binutils-2.20.51.0.2-5.46.el6 binutils-2.15.92.0.2 passed
Result: Package existence check passed for "binutils"
Check: Package existence for "gcc(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 gcc(x86_64)-4.4.7-18.el6 gcc(x86_64)-3.4.6 passed
crmdb1 gcc(x86_64)-4.4.7-18.el6 gcc(x86_64)-3.4.6 passed
Result: Package existence check passed for "gcc(x86_64)"
Check: Package existence for "libaio(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 libaio(x86_64)-0.3.107-10.el6 libaio(x86_64)-0.3.105 passed
crmdb1 libaio(x86_64)-0.3.107-10.el6 libaio(x86_64)-0.3.105 passed
Result: Package existence check passed for "libaio(x86_64)"
Check: Package existence for "glibc(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 glibc(x86_64)-2.12-1.209.el6 glibc(x86_64)-2.3.4-2.41 passed
crmdb1 glibc(x86_64)-2.12-1.209.el6 glibc(x86_64)-2.3.4-2.41 passed
Result: Package existence check passed for "glibc(x86_64)"
Check: Package existence for "compat-libstdc++-33(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 compat-libstdc++-33(x86_64)-3.2.3-69.el6 compat-libstdc++-33(x86_64)-3.2.3 passed
crmdb1 compat-libstdc++-33(x86_64)-3.2.3-69.el6 compat-libstdc++-33(x86_64)-3.2.3 passed
Result: Package existence check passed for "compat-libstdc++-33(x86_64)"
Check: Package existence for "elfutils-libelf(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 elfutils-libelf(x86_64)-0.164-2.el6 elfutils-libelf(x86_64)-0.97 passed
crmdb1 elfutils-libelf(x86_64)-0.164-2.el6 elfutils-libelf(x86_64)-0.97 passed
Result: Package existence check passed for "elfutils-libelf(x86_64)"
Check: Package existence for "elfutils-libelf-devel"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 elfutils-libelf-devel-0.164-2.el6 elfutils-libelf-devel-0.97 passed
crmdb1 elfutils-libelf-devel-0.164-2.el6 elfutils-libelf-devel-0.97 passed
Result: Package existence check passed for "elfutils-libelf-devel"
Check: Package existence for "glibc-common"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 glibc-common-2.12-1.209.el6 glibc-common-2.3.4 passed
crmdb1 glibc-common-2.12-1.209.el6 glibc-common-2.3.4 passed
Result: Package existence check passed for "glibc-common"
Check: Package existence for "glibc-devel(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 glibc-devel(x86_64)-2.12-1.209.el6 glibc-devel(x86_64)-2.3.4 passed
crmdb1 glibc-devel(x86_64)-2.12-1.209.el6 glibc-devel(x86_64)-2.3.4 passed
Result: Package existence check passed for "glibc-devel(x86_64)"
Check: Package existence for "glibc-headers"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 glibc-headers-2.12-1.209.el6 glibc-headers-2.3.4 passed
crmdb1 glibc-headers-2.12-1.209.el6 glibc-headers-2.3.4 passed
Result: Package existence check passed for "glibc-headers"
Check: Package existence for "gcc-c++(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 gcc-c++(x86_64)-4.4.7-18.el6 gcc-c++(x86_64)-3.4.6 passed
crmdb1 gcc-c++(x86_64)-4.4.7-18.el6 gcc-c++(x86_64)-3.4.6 passed
Result: Package existence check passed for "gcc-c++(x86_64)"
Check: Package existence for "libaio-devel(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 libaio-devel(x86_64)-0.3.107-10.el6 libaio-devel(x86_64)-0.3.105 passed
crmdb1 libaio-devel(x86_64)-0.3.107-10.el6 libaio-devel(x86_64)-0.3.105 passed
Result: Package existence check passed for "libaio-devel(x86_64)"
Check: Package existence for "libgcc(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 libgcc(x86_64)-4.4.7-18.el6 libgcc(x86_64)-3.4.6 passed
crmdb1 libgcc(x86_64)-4.4.7-18.el6 libgcc(x86_64)-3.4.6 passed
Result: Package existence check passed for "libgcc(x86_64)"
Check: Package existence for "libstdc++(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 libstdc++(x86_64)-4.4.7-18.el6 libstdc++(x86_64)-3.4.6 passed
crmdb1 libstdc++(x86_64)-4.4.7-18.el6 libstdc++(x86_64)-3.4.6 passed
Result: Package existence check passed for "libstdc++(x86_64)"
Check: Package existence for "libstdc++-devel(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 libstdc++-devel(x86_64)-4.4.7-18.el6 libstdc++-devel(x86_64)-3.4.6 passed
crmdb1 libstdc++-devel(x86_64)-4.4.7-18.el6 libstdc++-devel(x86_64)-3.4.6 passed
Result: Package existence check passed for "libstdc++-devel(x86_64)"
Check: Package existence for "sysstat"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 sysstat-9.0.4-33.el6 sysstat-5.0.5 passed
crmdb1 sysstat-9.0.4-33.el6 sysstat-5.0.5 passed
Result: Package existence check passed for "sysstat"
Check: Package existence for "pdksh"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 missing pdksh-5.2.14 failed
crmdb1 missing pdksh-5.2.14 failed
Result: Package existence check failed for "pdksh"
Check: Package existence for "expat(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
crmdb2 expat(x86_64)-2.0.1-13.el6_8 expat(x86_64)-1.95.7 passed
crmdb1 expat(x86_64)-2.0.1-13.el6_8 expat(x86_64)-1.95.7 passed
Result: Package existence check passed for "expat(x86_64)"
Checking for multiple users with UID value 0
Result: Check for multiple users with UID value 0 passed
Check: Current group ID
Result: Current group ID check passed
Starting check for consistency of primary group of root user
Node Name Status
------------------------------------ ------------------------
crmdb2 passed
crmdb1 passed
Check for consistency of root user's primary group passed
Starting Clock synchronization checks using Network Time Protocol(NTP)...
NTP Configuration file check started...
The NTP configuration file "/etc/ntp.conf" is available on all nodes
NTP Configuration file check passed
Checking daemon liveness...
Check: Liveness for "ntpd"
Node Name Running?
------------------------------------ ------------------------
crmdb2 no
crmdb1 yes
Result: Liveness check failed for "ntpd"
PRVF-5508 : NTP configuration file is present on at least one node on which NTP daemon or service is not running.
Result: Clock synchronization check using Network Time Protocol(NTP) failed
Checking Core file name pattern consistency...
Core file name pattern consistency check passed.
Checking to make sure user "oracle" is not in "root" group
Node Name Status Comment
------------ ------------------------ ------------------------
crmdb2 passed does not exist
crmdb1 passed does not exist
Result: User "oracle" is not part of "root" group. Check passed
Check default user file creation mask
Node Name Available Required Comment
------------ ------------------------ ------------------------ ----------
crmdb2 0022 0022 passed
crmdb1 0022 0022 passed
Result: Default user file creation mask check passed
Checking consistency of file "/etc/resolv.conf" across nodes
Checking the file "/etc/resolv.conf" to make sure only one of domain and search entries is defined
File "/etc/resolv.conf" does not have both domain and search entries defined
Checking if domain entry in file "/etc/resolv.conf" is consistent across the nodes...
domain entry in file "/etc/resolv.conf" is consistent across nodes
Checking if search entry in file "/etc/resolv.conf" is consistent across the nodes...
search entry in file "/etc/resolv.conf" is consistent across nodes
Checking file "/etc/resolv.conf" to make sure that only one search entry is defined
All nodes have one search entry defined in file "/etc/resolv.conf"
Checking all nodes to make sure that search entry is "localdomain.localdomain" as found on node "crmdb2"
All nodes of the cluster have same value for 'search'
Checking DNS response time for an unreachable node
Node Name Status
------------------------------------ ------------------------
crmdb2 failed
crmdb1 failed
PRVF-5636 : The DNS response time for an unreachable node exceeded "15000" ms on following nodes: crmdb2,crmdb1
File "/etc/resolv.conf" is not consistent across nodes
Check: Time zone consistency
Result: Time zone consistency check passed
Pre-check for cluster services setup was unsuccessful on all the nodes.
以上是“Oracle 安裝前 runcluvfy.sh腳本怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。