11204RAC+单实例DG应用PSU

编程入门 行业动态 更新时间:2024-10-11 07:25:02

11204RAC+单<a href=https://www.elefans.com/category/jswz/34/1771375.html style=实例DG应用PSU"/>

11204RAC+单实例DG应用PSU

目录

          • 0、核心步骤
          • 1、检查环境
          • 2、下载并上传PSU
          • 3、备份`GRID_HOME`、`ORACLE_HOME`
          • 4、更新`OPatch`
          • 5、备库打补丁
          • 6、主库打补丁
          • 7、备库重新恢复应用

0、核心步骤

1.主库禁用日志传送到备库
2.关闭备库,应用补丁,但不执行脚本(catpatch.sql等),启动到mount,不启用日志恢复
3.关闭主库,应用补丁,执行脚本(run catpatch/catbundle/catcpu等)
4.启动主库,重新开启日志传送到备库
5.备库开启日志恢复
6.检查补丁应用情况

1、检查环境

RAC一节点

[grid@racbj01 ~]$ crsctl status res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARC.dgONLINE  ONLINE       racbj01                                      ONLINE  ONLINE       racbj02                                      
ora.DATA.dgONLINE  ONLINE       racbj01                                      ONLINE  ONLINE       racbj02                                      
ora.LISTENER.lsnrONLINE  ONLINE       racbj01                                      ONLINE  ONLINE       racbj02                                      
ora.OCR.dgONLINE  ONLINE       racbj01                                      ONLINE  ONLINE       racbj02                                      
ora.asmONLINE  ONLINE       racbj01                  Started             ONLINE  ONLINE       racbj02                  Started             
ora.gsdOFFLINE OFFLINE      racbj01                                      OFFLINE OFFLINE      racbj02                                      
ora1workONLINE  ONLINE       racbj01                                      ONLINE  ONLINE       racbj02                                      
ora.onsONLINE  ONLINE       racbj01                                      ONLINE  ONLINE       racbj02                                      
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr1        ONLINE  ONLINE       racbj02                                      
ora.cvu1        ONLINE  ONLINE       racbj02                                      
ora.oc4j1        ONLINE  ONLINE       racbj02                                      
ora.racbj01.vip1        ONLINE  ONLINE       racbj01                                      
ora.racbj02.vip1        ONLINE  ONLINE       racbj02                                      
ora.racdb.db1        ONLINE  ONLINE       racbj01                  Open                2        ONLINE  ONLINE       racbj02                  Open                
ora.scan1.vip1        ONLINE  ONLINE       racbj02                      
[grid@racbj01 ~]$ srvctl status nodeapps
VIP racbj01vip is enabled
VIP racbj01vip is running on node: racbj01
VIP racbj02vip is enabled
VIP racbj02vip is running on node: racbj02
Network is enabled
Network is running on node: racbj01
Network is running on node: racbj02
GSD is disabled
GSD is not running on node: racbj01
GSD is not running on node: racbj02
ONS is enabled
ONS daemon is running on node: racbj01
ONS daemon is running on node: racbj02
[grid@racbj01 ~]$ lsnrctl statusLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 30-MAR-2021 15:47:51Copyright (c) 1991, 2013, Oracle.  All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                25-MAR-2021 14:32:08
Uptime                    5 days 1 hr. 15 min. 43 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/racbj01/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.107.174.164)(PORT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.107.174.167)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "racdb" has 1 instance(s).Instance "racdb1", status READY, has 1 handler(s) for this service...
Service "racdbXDB" has 1 instance(s).Instance "racdb1", status READY, has 1 handler(s) for this service...
The command completed successfully

备库检查

SQL> select process,client_process,THREAD#,sequence#,status from v$managed_standby;PROCESS 		    CLIENT_PROCESS		THREAD#  SEQUENCE# STATUS
--------------------------- ------------------------ ---------- ---------- ------------------------------------
ARCH			    ARCH			      2 	65 CLOSING
ARCH			    ARCH			      0 	 0 CONNECTED
ARCH			    ARCH			      1    141 CLOSING
ARCH			    ARCH			      1    140 CLOSING
ARCH			    ARCH			      1    143 CLOSING
ARCH			    ARCH			      1    142 CLOSING
ARCH			    ARCH			      2 	64 CLOSING
ARCH			    ARCH			      2 	66 CLOSING
RFS			   		UNKNOWN			      0 	 0 IDLE
RFS			    	UNKNOWN			      0 	 0 IDLE
RFS			    	ARCH			      0 	 0 IDLE
RFS			    	ARCH			      0 	 0 IDLE
RFS			    	LGWR			      1    144 IDLE
RFS			    	UNKNOWN			      0 	 0 IDLE
RFS			    	LGWR			      2 	67 IDLE
MRP0			    N/A 			      2 	67 APPLYING_LOG
RFS			    	UNKNOWN			      0 	 0 IDLE17 rows selected.
SQL> select database_role,open_mode from v$database;DATABASE_ROLE					 OPEN_MODE
------------------------------------------------ ------------------------------------------------------------
PHYSICAL STANDBY				 READ ONLY WITH APPLY

主库建一个测试表,查看是否实时同步

SYS@racdb1> create table t1 (id int,name varchar2(20));Table created.SYS@racdb1> insert into t1 values(1,'zhangsan');1 row created.SYS@racdb1> commit;Commit complete.SYS@racdb1> select * from t1;ID NAME
---------- ------------------------------------------------------------1 zhangsan

备库查询

SQL> select * from t1;ID NAME
---------- ------------------------------------------------------------1 zhangsan

每个节点的gridOracle执行下面的命令,以下输出就是没有打过补丁,为了节省篇幅,每个节点的输出就不都粘贴出来了

[grid@racbj01 ~]$ $ORACLE_HOME/OPatch/opatch lspatches
There are no Interim patches installed in this Oracle Home.
[grid@racbj01 ~]$ $ORACLE_HOME/OPatch/opatch lsinventory
Oracle Interim Patch Installer version 11.2.0.3.4
Copyright (c) 2012, Oracle Corporation.  All rights reserved.Oracle Home       : /u01/app/11.2.0/grid
Central Inventory : /u01/app/oraInventoryfrom           : /u01/app/11.2.0/grid/oraInst.loc
OPatch version    : 11.2.0.3.4
OUI version       : 11.2.0.4.0
Log file location : /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2021-03-30_16-28-06PM_1.logLsinventory Output file location : /u01/app/11.2.0/grid/cfgtoollogs/opatch/lsinv/lsinventory2021-03-30_16-28-06PM.txt--------------------------------------------------------------------------------
Installed Top-level Products (1): Oracle Grid Infrastructure 11g                                       11.2.0.4.0
There are 1 products installed in this Oracle Home.There are no Interim patches installed in this Oracle Home.Rac system comprising of multiple nodesLocal node = racbj01Remote node = racbj02--------------------------------------------------------------------------------OPatch succeeded.
2、下载并上传PSU

通常情况下GI PSU包含 DB PSUDB PSU包含 CPU
实际情况以readme为准
这里我们应用最新的PSUGI PSU31718723(当前时间20210330
三个节点分别执行

[root@racbj01 ~]# mkdir /u01/soft
[root@racbj01 ~]# chown -R oracle:oinstall /u01/soft

三个节点执行,不都列出了,注意这里的权限是root,一会要改成grid:oinstall

[oracle@racbj01 ~]$ cd /u01/soft/
[oracle@racbj01 soft]$ ll
total 1406064
-rw-r--r-- 1 root root 1319414278 Mar 30 12:19 p31718723_112040_Linux-x86-64.zip
-rw-r--r-- 1 root root  120388005 Sep  9  2020 p6880880_112000_Linux-x86-64.zip
3、备份GRID_HOMEORACLE_HOME

备份之前要先关闭实例和集群(一个一个来,不要影响业务)

srvctl stop instance -d databasename -n hostname
crsctl stop crs

删除gridoracle用户下的audit文件(审计文件)和xml文件(alert日志的xml格式)
grid

cd $ORACLE_HOME/rdbms/audit
find . -mtime +7 -name "*.aud" | xargs rm -rf 
cd $ORACLE_BASE/diag/asm/+asm/+ASM1/alert/
find . -mtime +7 -name "*.xml" | xargs rm -rf 

oracle

cd $ORACLE_HOME/rdbms/audit
find . -mtime +7 -name "*.aud" | xargs rm -rf 
cd $ORACLE_BASE/diag/rdbms/racdb/racdb1/alert/
find . -mtime +7 -name "*.xml" | xargs rm -rf 

三个节点备份GRID_HOMEORACLE_HOME,节省篇幅,只粘贴一个节点的结果,单实例dg没有grid就不用做相应的操作
备份gi_home时间有点长,耐心等待

[root@racbj02 ~]# cd /u01/app/11.2.0
[root@racbj02 ~]# tar -pzcvf gihome.tar.gz grid

备份ora_home

[root@racbj02 ~]# cd /u01/app/oracle/product/11.2.0
[root@racbj02 ~]# tar -pzcvf orahome.tar.gz db_1
4、更新OPatch

备份原来的OPatch,安装需要的OPatch版本,只列一个节点,所有节点都要操作

[root@racbj01 ~]# mv /u01/app/11.2.0/grid/OPatch/ /u01/app/11.2.0/grid/OPatch_bak
[root@racbj01 ~]# mv /u01/app/oracle/product/11.2.0/db_1/OPatch/ /u01/app/oracle/product/11.2.0/db_1/OPatch_bak
[root@racbj01 ~]# chmod 755 /u01/soft/p6880880_112000_Linux-x86-64.zip 
[root@racbj01 ~]# unzip /u01/soft/p6880880_112000_Linux-x86-64.zip -d /u01/app/11.2.0/grid
[root@racbj01 ~]# unzip /u01/soft/p6880880_112000_Linux-x86-64.zip -d /u01/app/oracle/product/11.2.0/db_1/
[root@racbj01 ~]# chown -R grid:oinstall /u01/app/11.2.0/grid/OPatch
[root@racbj01 ~]# chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1/OPatch

验证一下OPatch版本

[grid@racbj01 ~]$ /u01/app/11.2.0/grid/OPatch/opatch version
OPatch Version: 11.2.0.3.25OPatch succeeded.
[oracle@racbj01 ~]$ /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch version
OPatch Version: 11.2.0.3.25OPatch succeeded.
5、备库打补丁

RAC+DG的环境中打PSU补丁,首先要在DG的备库端进行PSU补丁的安装,停止并shutdown所有standby数据库、停监听、关EM,然后打补丁,打完补丁之后不要执行catbundle.sql psu apply脚本。这个脚本应该在生产端执行然后通过redo传递至灾备端。
在主库上暂停向备库传日志

SYS@racdb2> alter system set log_archive_dest_state_2=defer scope=both sid='*';System altered.

备库停库停监听

SQL> shu immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
[oracle@173adg 11.2.0]$ lsnrctl stop

解压PSU

[root@173adg soft]# chown -R oracle:oinstall p31718723_112040_Linux-x86-64.zip
[oracle@173adg soft]$ unzip p31718723_112040_Linux-x86-64.zip 

检测与当前环境是否冲突

[oracle@173adg soft]$ cd 31537677/
[oracle@173adg 31718723]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 11.2.0.3.25
Copyright (c) 2021, Oracle Corporation.  All rights reserved.PREREQ sessionOracle Home       : /u01/app/oracle/product/11.2.0/dbhome_1
Central Inventory : /u01/app/oraInventoryfrom           : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
OPatch version    : 11.2.0.3.25
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2021-03-30_18-13-43PM_1.logInvoking prereq "checkconflictagainstohwithdetail"Prereq "checkConflictAgainstOHWithDetail" passed.OPatch succeeded.

备库手动打补丁

[oracle@173adg soft]$ $ORACLE_HOME/OPatch/opatch napply -local /u01/soft/31537677/ -oh $ORACLE_HOME
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.Composite patch 31537677 successfully applied.
OPatch Session completed with warnings.
Log file location: /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2021-03-30_18-22-56PM_1.logOPatch completed with warnings.

上面的警告是一个内部bug可以忽略,参考
.html
备库

[oracle@173adg soft]$ $ORACLE_HOME/OPatch/opatch lspatches
31537677;Database Patch Set Update : 11.2.0.4.201020 (31537677)OPatch succeeded.
[oracle@173adg soft]$ $ORACLE_HOME/OPatch/opatch lsinventory
--太长了,粘贴一部分,结果就是应用补丁成功了22195465, 18440047, 19211433, 21515534, 20331945, 22686674, 1838453718607546, 17254374, 18315328, 31172207, 23115139, 28790634, 2139422516360112, 22195477, 17726838, 18510194, 17571306, 24766121, 1730227721842740, 17551709, 26910644, 17634921, 28566241, 25489607, 16538760--------------------------------------------------------------------------------OPatch succeeded.

备库启动数据库到mount状态,启动监听

SQL> startup mount;
ORACLE instance started.Total System Global Area 8.0973E+10 bytes
Fixed Size		    2261968 bytes
Variable Size		 1.1006E+10 bytes
Database Buffers	 6.9793E+10 bytes
Redo Buffers		  171487232 bytes
Database mounted.
[oracle@173adg soft]$ lsnrctl start

如果主库是单实例的话,下面就是停主库,停监听,打补丁,执行脚本了,启动主库监听,启动传日志,然后打开备库的实时应用,验证没问题就可以了
alter system set log_archive_dest_state_X=enable scope=bothsid=’*’

我们这里主要讨论主库是RAC
RAC节点一修改权限(其他节点也要执行)

[root@racbj01 ~]# chown -R grid:oinstall /u01/soft/p31718723_112040_Linux-x86-64.zip 

解压

[grid@racbj01 ~]$ unzip /u01/soft/p31718723_112040_Linux-x86-64.zip -d /u01/soft
6、主库打补丁

Oracle 11g 新特性 --Online Patching (Hot Patching 热补丁)说明

这里看一下RAC的Patch。如果是RAC的GI升级,或者是PSR,还是需要停机的。因为GI的升级需要停掉整个CRS。 但对数据库独立patch则可以采取滚动方式来安装。

GRID_HOMEORACLE_HOME都在本地并且没有配置ACFS就可以gi和oracle一起升级
节点一

[grid@racbj01 soft]$ echo $ORACLE_HOME
/u01/app/11.2.0/grid

root用户执行

[root@racbj01 ~]# /u01/app/11.2.0/grid/OPatch/opatch auto /u01/soft/31718723/
Executing /u01/app/11.2.0/grid/perl/bin/perl /u01/app/11.2.0/grid/OPatch/crs/patch11203.pl -patchdir /u01/soft -patchn 31718723 -paramfile /u01/app/11.2.0/grid/crs/install/crsconfig_paramsThis is the main log file: /u01/app/11.2.0/grid/cfgtoollogs/opatchauto2021-03-31_11-12-52.logThis file will show your detected configuration and all the steps that opatchauto attempted to do on your system:
/u01/app/11.2.0/grid/cfgtoollogs/opatchauto2021-03-31_11-12-52.report.log2021-03-31 11:12:52: Starting Clusterware Patch Setup
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_paramsStopping RAC /u01/app/oracle/product/11.2.0/db_1 ...
Stopped RAC /u01/app/oracle/product/11.2.0/db_1 successfullypatch /u01/soft/31718723/29938455/custom/server/29938455  apply successful for home  /u01/app/oracle/product/11.2.0/db_1 
patch /u01/soft/31718723/31537677  apply successful for home  /u01/app/oracle/product/11.2.0/db_1 Stopping CRS...
Stopped CRS successfullypatch /u01/soft/31718723/29938455  apply successful for home  /u01/app/11.2.0/grid 
patch /u01/soft/31718723/31537677  apply successful for home  /u01/app/11.2.0/grid 
patch /u01/soft/31718723/29509309  apply successful for home  /u01/app/11.2.0/grid Starting CRS...
Installing Trace File Analyzer
CRS-4123: Oracle High Availability Services has been started.Starting RAC /u01/app/oracle/product/11.2.0/db_1 ...
Started RAC /u01/app/oracle/product/11.2.0/db_1 successfullyopatch auto succeeded.

看一下log有没有问题,然后grid用户和Oracle用户执行opatch lspatchesopatch lsinventory,没有问题的话RAC二节点开始打补丁
RAC二节点(没有问题,输出跟上面一样,就不粘贴了)

[root@racbj02 ~]# /u01/app/11.2.0/grid/OPatch/opatch auto /u01/soft/31718723/

其中一个节点执行注册到数据库就行

[root@racbj01 ~]# su - oracle
[oracle@racbj01 ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@racbj01 admin]$ sqlplus /nolog
@> conn / as sysdba
Connected.
SYS@racdb1> @catbundle.sql psu apply
SYS@racdb1> quit
SELECT *FROM dba_registry_history


下面没有invaild

SELECT *FROM dba_registry


编译一下无效对象

SQL> @utlrp.sql
输出很长,前边略.......
DOC>#ERRORS DURING RECOMPILATION
---------------------------461 row selected.Function created.PL/SQL procedure successfully completed.Function dropped.PL/SQL procedure successfully completed.
7、备库重新恢复应用

主库(其中一个节点执行就行)

SYS@racdb2> alter system set log_archive_dest_state_2=enable scope=both sid='*';System altered.

备库

SQL> alter database recover managed standby database using current logfile disconnect from session;Database altered.

备库alert
开始了介质恢复

alter database recover managed standby database using current logfile disconnect from session
Attempt to start background Managed Standby Recovery process (racdb)
Wed Mar 31 16:04:10 2021
MRP0 started with pid=39, OS id=31918 
MRP0: Background Managed Standby Recovery process started (racdb)started logmerger process
Wed Mar 31 16:04:15 2021
Managed Standby Recovery starting Real Time Apply
Parallel Media Recovery started with 32 slaves
Waiting for all non-current ORLs to be archived...
All non-current ORLs have been archived.
Media Recovery Log /u01/app/oracle/arch2_69_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_148_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_149_1067800873.arc
Completed: alter database recover managed standby database using current logfile disconnect from session
Media Recovery Log /u01/app/oracle/arch1_150_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_70_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_151_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_71_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_72_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_73_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_152_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_153_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_154_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_155_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_74_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_156_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_157_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_75_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_76_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_77_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_78_1067800873.arc
Wed Mar 31 16:04:25 2021
Media Recovery Log /u01/app/oracle/arch2_79_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_158_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_159_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_160_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_80_1067800873.arc
Media Recovery Waiting for thread 1 sequence 161 (in transit)
Recovery of Online Redo Log: Thread 1 Group 11 Seq 161 Reading mem 0Mem# 0: /u01/app/oracle/redo/group_11.320.1068138875Mem# 1: /u01/app/oracle/oradata/group_11.2952.1068138875
Media Recovery Waiting for thread 2 sequence 81 (in transit)
Recovery of Online Redo Log: Thread 2 Group 14 Seq 81 Reading mem 0Mem# 0: /u01/app/oracle/redo/group_14.323.1068138891Mem# 1: /u01/app/oracle/oradata/group_14.2958.1068138891

打开备库

SQL> alter database recover managed standby database cancel;Database altered.SQL> alter database open read only;Database altered.SQL> alter database recover managed standby database using current logfile disconnect from session;Database altered.

查看备库状态

SQL> select process,client_process,thread#,sequence#,status from v$managed_standby;PROCESS 		    CLIENT_PROCESS		THREAD#  SEQUENCE# STATUS
--------------------------- ------------------------ ---------- ---------- ------------------------------------
ARCH			    ARCH			      2 	80 CLOSING
ARCH			    ARCH			      0 	 0 CONNECTED
ARCH			    ARCH			      1    158 CLOSING
ARCH			    ARCH			      1    148 CLOSING
ARCH			    ARCH			      1    159 CLOSING
ARCH			    ARCH			      2 	69 CLOSING
ARCH			    ARCH			      1    160 CLOSING
ARCH			    ARCH			      1    155 CLOSING
RFS			        ARCH			      0 	 0 IDLE
RFS			    	UNKNOWN			      0 	 0 IDLE
RFS			    	UNKNOWN			      0 	 0 IDLE
RFS			    	LGWR			      1    161 IDLE
RFS			    	ARCH			      0 	 0 IDLE
RFS			    	UNKNOWN			      0 	 0 IDLE
RFS			    	LGWR			      2 	81 IDLE
RFS			    	UNKNOWN			      0 	 0 IDLE
MRP0			    N/A 			      1    161 APPLYING_LOG
RFS			    	UNKNOWN			      0 	 0 IDLE18 rows selected.

更多推荐

11204RAC+单实例DG应用PSU

本文发布于:2024-03-15 02:05:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1737869.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实例   RAC   DG   PSU

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!