oracle 11g RAC 的一些基本概念(二)

quorum failgroup disk (1) 当前状态: 当前+SYS有4块盘,normal redundancy,存放ocr&vote。 目标: 将+SYS修改为3块盘,normal redundancy,并且一个是quorum failgroup。然后冗余OCR到+DATA。 操作步骤简要: 1、从+SYS中删除2块盘 alter diskgroup sys drop regular disk 'SYS_0002','SY 阅读详情

集群的相关概念


配置Active/active集群


    在这种模式下,所有的节点都能提供服务(不会有用户请求在standby上被闲置的情况)。大部分案例中,集群成员的硬件配置都是相同的,避免可能的性能问题,也更容易实现负载均衡。Active/active集群需要更复杂的管理软件来管理所有资源,比如磁盘和内存需要在所有节点间进行同步。更常见的,一个私有网络被用做心跳连接。集群管理软件必须能够检测到节点问题,比如节点故障或者集群通讯问题
    脑裂(split-brain)是集群中的一个糟糕的情况:集群中的所有集群正在工作的时候,内部通讯被断开。这种情况下,集群被分成了几个部分,每个部分的集群软件都会尝试去接管其他节点的资源,因为在它看来,别的节点发生了故障。可能会出现以下问题:如果应用能够正常连接集群的这些部分,因为此时这些集群部分不同步,可能会有不同的数据会被写入到磁盘中。脑裂对集群的危害显而易见,集群软件的供应商必须提供方案来解决这个问题
    oracle的集群软件(11g中的Grid Infrastructure),使用一个仲裁设备(quorum device),称作voting disk,来决定集群中的成员。集群中的所有节点共享一个voting disk,当一个节点不能向内部网络和voting disk发送心跳时,它就会被逐出集群。若一个节点不能和其他节点通讯,但依然能连接到voting disk,集群在这种情况下将进行投票,并发出指令将该节点剔除。这个投票使用的是STONITH方式,软件将发出一个请求,使被踢出的节点自动重启。当需要重启的节点hung住的时候,重启指令变得不可用,这种情况比较棘手。幸运的是,若硬件允许,Grid Infrastructure可以支持IPMI(智能平台管理接口),可以向一个节点发出结束指令。当一个节点故障或被踢出集群,剩余的节点能够接管用户服务请求。

配置Active/passive集群


    一个active/passive集群工作方式与active/active不同。一个active/passive集群中的成员硬件配置依然应该一致或基本一致,但同一时间两个节点中只有一个节点能处理用户请求。集群管理软件会不断地监控集群中资源的健康状况,当一个资源失败,集群管理软件会尝试将该资源重启数次,若还是无效,备用节点将进行接管。
    根据安装时的选项,集群的资源可以分配在共享存储或文件系统上,后者在资源failover的时候也会进行一次failover。使用共享文件系统比使用非共享的文件系统更有优势,后者在重新挂载到standby节点上以前可能需要进行fsck(8)检测。Veritas集群套件、Sun(Oracle)集群和IBM的HACMP就可用作安装active/passive集群的集群管理工具。
    鲜为人知的是,使用Oracle Grid Infrastructure来安装一个active/passive集群非常简单,利用Grid Infrastructure的应用程序接口和作为集群逻辑卷管理器的Oracle ASM,可以轻松地不间断监控一个单实例oracle数据库。当一个节点发生故障,数据库会自动迁移到备用节点。根据初始化参数fast_start_mttr_target和恢复集的大小,这个故障切换可能非常迅速。不过,作为failover过程的一部分,用户的数据库连接将被断开。
    Active/passive模式可以通过将active_instance_count参数设置为1来打开,但仅当节点数为2时才有效。

配置Shared-All架构


    一个所有节点同时访问共享存储和数据的集群被称为shared-all或者shared-everything结构。Oracle RAC就是基于shared-everything架构:一个数据库位于共享存储中,通过集群各个节点上运行的实例来访问。在Oracle术语中,一个实例由内存结构和一些进程组成。对应的,数据库存储在磁盘中的数据文件里。在RAC中,实例的故障并不意味着该实例管理的数据的丢失。在一个节点发生故障后,集群中的另一个实例将会进行实例恢复,所有剩余节点都将继续服务。使用高可用技术,例如FCF或TAF,可以将实例失效对用户造成的影响降到最低。故障节点最后将重新加入集群并分担工作量。

配置Shared-Nothing架构


  在一个shared-nothing数据库集群中,每个节点有它私有的独立存储,其他节点不能访问。数据库被集群中的节点分割成几个部分,返回的查询结构集是各个节点结果集的结合。丢失一个节点会导致对应的数据无法访问。因此,一个shared-noting集群经常被实施成一些单独的active/passive或者active/active集群来增强可用性。MySQL的集群就是基于shared-nothing架构。


RAC的主要概念


集群节点


    集群由单独的节点组成,在Oracle RAC中,允许的节点数和集群版本有关,公开文档中说明Oracle 10.2集群软件支持100个节点,而10.1支持63个实例。即使当个节点发生故障后,基于RAC上的应用能继续运行,还是应该花点精力来确认数据库服务器中的单个组件不会出现单点故障(SPOF)。
    采购新的硬件时应该采用可热插拔的组件,比如内置磁盘和风扇,另外,服务器的电力供给、主机总线适配器、网卡和硬盘都应该做了冗余。可能的话,最好做一个逻辑绑定,比如硬盘硬件RAID或软件RAID、网卡绑定、存储网络的多路径。在数据中心也应该注意:要使用不间断的电源供应、足够的散热措施、服务器的专业上架。最好还能有个远程的lights-out管理控制台,当一个节点不知道由什么原因挂起,可能迫切需要进行故障排除或者重启。

内部互联


    集群内部互联是Oracle RAC的特征之一。它不仅使得集群在不同实例间传递数据块时突破block pinging算法的限制,它还可用作心跳和常规通讯。连接失败将导致集群的重组来避免脑裂发生,Grid Infrastructure将使一个或多个节点重启。可以为RAC和Grid Infrastructure配置一个单独的连接,这种情况下你需要配置RAC来使用正确的连接。这个连接始终应该是私有的,不应该受到其他网络的干扰。RAC用户可以使用两种技术来实现内部互联:以太网和Infiniband。


使用基于以太网的内部互联


    使用10G以太网作为集群内部互联可能是目前使用最多的,集群的后台进程使用TCP/IP进行通信。Cache Fusion(用来保持缓存的一致性)使用另一种通信方式:UDP(UserData该ramProtocol)。UPD和TCP同属于传输层,后者面向连接,使用显式的通讯握手来保证网络数据包按顺序到达,并转发失败的数据包。UDP则不包含状态,它是一个发完就忘(fire-and-forget)协议。UDP只是简单发送一个数据包到目的地。UDP比起TCP而言主要的好处是它比较轻便。
    注意:两节点集群间应该避免使用交叉线来直连,集群的内部通讯必须经过交换,交叉电缆的使用应该被明确禁止!
    使用jumbo frames可以使集群内部通信的效率和性能得到提升。Ethernet Frames可以使用不同的大小,一般被限制在1500byte字节(MTU值)。框架大小决定了单个以太网框架能够传送多少数据,一个框架承受越大的数据负荷,服务器和交换机需要做的工作就越少,提供了更高的通讯效率。许多交换机允许在一个框架中容纳比标准MTU值更大的字节数(1500-9000),也叫jumbo frame。注意jumbo frames是不能路由的,因此它不能被使用在公共网络上。当决定使用jumbo frames时,一定要确定集群中的所有节点使用同样的MTU。
    刚才说过数据库服务器的相关组件应该有一个容易,网卡也是其中之一。多个网络端口可以在linux中使用bonding技术绑成一个逻辑单位,和很多其他操作系统不同,linux中网卡的绑定不需要购买其他软件就能实现。
    

使用基于Infiniband的内部互联


    Infiniband常被用来实现远程内存直接访问(RDMA remote direct memory access architecture)。这是一个高速互联,常与高性能计算(HPC)环境联系在一起。RDMA可以在集群的节点间使用并行、直接、内存到内存的传输,它需要专门的RDMA适配器、交换机和软件。它还能避免基于以太网的实现中的CPU处理和环境转换的开支。在linux中有两种途径来实现Infiniband互联。第一种叫做IP over Infiniband(IPoIB),它采用IB架构作为链路控制层,使用封装的方法实现IP和IB报文的转换,从而使在以太网运行的程序可以直接运行在Infiniband上。另一个方法就是使用基于Infiniband的 Reliable Datagram Sockets,oracle 1.2.0.3开始支持这个方法。RDS可以通过Open Fabric Enterprise Distribution(OFED)在linux和windows上实现。RDS的重要特征是低延迟、低开销和高带宽。Oracle数据库服务器和Exadata存储服务器使用了Infiniband,为集群内的通讯提供高达40Gb/s的带宽,这是以太网所不可能做到的。Infiniband为高性能展现了巨大的优势,但它的成本同样非常高昂。

Clusterware/Grid Infrastructure


    Grid Infrastructure与操作系统紧密结合,并提供以下服务:节点间连接;维护集群成员;消息传送;集群逻辑卷管理;隔离(fencing)
************************************************************************************************************************************************************************************************
I/O隔离:
当集群系统出现"脑裂"问题的时候,我们可以通过"投票算法"来解决谁获得集群控制权的问题。 但是这样是不够的,我们还必须保证被赶出去的结点不能操作共享数据。  这就是IO Fencing 要解决的问题。

IO Fencing实现有硬件和软件2种方式:
软件方式:对于支持SCSI Reserve/Release 命令的存储设备, 可以用SG命令来实现。 正常的节点使用SCSI Reserve命令"锁住"存储设备, 故障节点发现存储设备被锁住后,就知道自己被赶出了集群,也就是说自己出现了异常情况, 就要自己进行重启,以恢复到正常状态。 这个机制也叫作 Sicide(自杀). Sun 和Veritas 使用的就是这种机制。
硬件方式:STONITH(Shoot The Other Node in the Head), 这种方式直接操作电源开关,当一个节点发生故障时,另一个节点如果能侦测到,就会通过串口发出命令,控制故障节点的电源开关,通过暂时断电,而又上电的方式使故障节点被重启动, 这种方式需要硬件支持。
************************************************************************************************************************************************************************************************



    各个版本的Oracle集群软件的命名如下:

进程结构


    安装结束后,会产生一些后台进程来确保集群正常工作并能够与外部通讯。其中的一些有序linux平台的要求需要以root用户权限来启动。比如,网络配置的改动就需要更高的权限。其他后台进程将以grid软件所在系统用户的权限来运行。下面的表格介绍主要的一些后台进程
后台进程说明
Oracle高可用服务 (OHAS)OHAS是服务器启动后打开的第一个Grid Infrastructure组件。它被配置为以init(1)打开,并负责生成agent进程。
Oracle AgentGrid Infrastructure使用两个oracle代理进程。第一个,概括起来说,负责打开一些需要访问OCR和VOTING文件的资源。它由OHAS创建。
第二个代理进程由CRSD创建,负责打开所有不需要root权限来访问的资源。这个进程以Grid Infrastructure所属用户的权限运行,并且负责在RAC11.1中racg所做的工作。
Oracle Root Agent和 Oracle 代理进程类似,有两个Root 代理进程被创建。 最初的代理进程由OHAS引发,它为linux系统中需要更高权限的资源提供初始化。创建的主要后台进程是CSSD和CRSD。反过来,CRSD将触发另一个root代理。这个代理将打开需要root权限、主要和网络相关的资源
集群就绪服务进程
(CRSD)
集群软件的后台主要进程,使用oracle集群注册信息来管理集群中的资源
集群同步服务进程
(CSSD)
管理集群的配置和节点成员
Oracle进程监控
(OPROCD)
oprocd在11.1版本中负责 I/O 隔离。它是在10.2.0.4补丁集中为linux系统引入的。在这个补丁集以前,内核hangcheck-timer 模块来做类似的任务。有趣的是,oprocd以前常被用在非linux平台中。Grid Infrastructure用cssdagent进程来替换了oprocd进程。
事件管理器(EVM)EVM负责发布Grid Infrastructure创建的事件
集群时间同步服务(CTSS)CTSS服务是一个可选项,通过网络时间协定服务器为集群提供时间同步,这个时间同步对RAC很重要。它可以运行在两种模式下:观望或者活动。当NTP被激活的时候,它运行在观察模式,若没有启动NTP,它将根据主节点同步所有节点的时间。
Oracle警告服务(ONS)负责通过快速应用框架发布事件的主要后台进程。



    在RAC11.2中,Grid Infrastructure的启动顺序有了明显变化。代替直接通过inittab(5)打开CRS、CSS、EVM,OHAS进程现在主要负责创建agent进程,监控其他节点的健康状况,和打开集群资源。在非Oracle管理进程中,NTP是一个特殊的角色,在每个集群中,它需要提供时钟同步,Grid Infrastructure也不例外。
    以下是11.2中Grid Infrastructure的一些主要后台进程:




配置网络组件


    Grid Infrastructure需要一些IP地址来正常工作:每个主机配备一个公共网络地址;每个主机有一个私有网络地址;每个主机一个虚拟IP地址(未被指派);1-3个未指派的IP地址用于Single Client Access Name特性;若使用了Grid即插即用,还需要一个未使用的虚拟IP分配给Grid命名服务。
    节点虚拟IP是Oracle集群的最有用的功能之一。它们需要和公共IP配置在一个网段内,并作为Grid Infrastructure中的集群资源来维护。在9i中的时候,当一个节点发生故障,该公共IP无法响应连接请求。当一个客户端会话尝试连接到这个故障节点时,它必须等待到连接超时,这可能是一个漫长的过程。有了虚拟IP,那就快多了:当一个节点故障,Grid Infrastructure将该节点的虚拟IP地址failover到集群中的另一个节点上。当一个客户端会话连接到故障节点的虚拟IP,Grid Infrastructure知道这个节点不能正常工作,会让它连接到集群中的下一个节点。另一个需求是1-3个IP地址,不管集群有多大,这个要求是Grid Infrastructure中新增的,这种地址类型称为SCAN(single client access name)。SCAN在Grid Infrastructure升级或安装时创建并配置,在执行安装以前,你需要将这些SCAN IP地址添加到DNS中来循环解析。如果你使用Grid命名服务(GNS),你需要在公共网络上为它分配一个虚拟IP地址。



摘自Pro Oracle database 11g RAC on linux
【RAC】Oracle 11g RAC安装及配置(二) 紧接上篇Oracle RAC安装及配置(一),继续进行RAC的配置,本篇演示对ASM磁盘的管理及数据库软件的安装。 一 ASM配置 1、运行命令,打开ASM配置窗口 [grid@node2 ~]$ asmca 2、切换至磁盘组,并创建FRA磁盘组 3、创建FRA后 二 数据库软件安装 1、环境变量设置 --Node1和Node 阅读详情

相关推荐

【Oracle】Oracle RAC如何预防脑裂及预防脑裂的三个配置

Oracle RAC如何预防脑裂及预防脑裂的三个配置

tttzzzqqq2018的博客 1090

Oracle 11g RAC 的一些基础知识

Oracle 11g RAC 的一些基础知识 转自: http://hi.baidu.com/chjzhs/item/6f2f24dd9c115fe0785daa26 总的来说,Oracle 11g R2  RAC提供了以下功能: 高可用:shared-everything 模式保证了单节点的故障不会停止服务,集群中的其他节点将快速接管 可扩展性:多节点

db commando 2760

Oracle 11g RAC集群部署手册(二)

为确保Oracle ASM上Oracle Clusterware文件的高可用性,需要在三个独立的故障组中为Oracle Clusterware文件分配至少。对于在集群中使用ASM作为共享存储的系统,强烈建议安装ASMLib,因为它能带来性能和可管理性方面的优势。有关最新可用的PSU以及其他推荐补丁的信息,可在My Oracle Support的ExtNote:756671.1中查询。将显示单位从柱面切换为扇区。对于后续PSU的安装(针对已配置的GI),必须遵循相应PSU的README中包含的安装说明。

Sebastien23的博客 444

确保 Oracle RAC 环境下的高可用性与负载均衡及脑裂问题处理方法

是 Oracle 提供的一种高可用性和可扩展性的数据库解决方案。高可用性:单点故障的避免,节点故障时自动转移服务。可扩展性:通过添加更多节点提升系统性能和容量。负载均衡:分散数据库操作负载,提高资源利用率。脑裂(Split-Brain)是指集群中的节点因网络分区或其他故障,导致集群分裂为多个独立的子集,每个子集独立运行,可能出现数据不一致和资源竞争的问题。在 Oracle RAC 中,脑裂可能导致数据损坏和服务不可预测的行为。

weixin_38428874的博客 1038

Jetson Orin NX上CAN总线调试全攻略:从硬件焊接到开机自启动(附常见问题解决方案)

本文详细介绍了在NVIDIA Jetson Orin NX开发板上进行CAN总线调试的全过程,包括硬件焊接、驱动配置、通信测试和开机自启动设置。针对常见问题如信号接反、波特率设置等提供了实用解决方案,帮助开发者快速实现稳定的CAN总线通信。

c2d3e4f的博客 1076

comsol移动网格_comsol模拟移动的纳秒脉冲激光烧蚀材料,温度场分布,结果总不理想,求助大佬!!...

本人comsol新手一枚,希望大家多多指点研究课题:纳秒脉冲激光刻蚀材料表面想用comsol模拟刻蚀过程中的温度场分布,脉宽为300ns,重复频率100kHz,光斑移动速度为5000mm/s,光斑直径50um,激光功率10W,材料种类为:有机涂层,属性如下目前,采用的是一个移动的高斯面光源x脉冲函数,脉冲函数我用的是一个周期性方波:周期性拓展后,画出来的脉冲图,不知道为什么在0~1s的区间内只有1...

weixin_33288893的博客 4742

【RAC】oracle 11g RAC两个机器重启后节点二能找到asm磁盘,节点一没有找到

     oracle 11g RAC两个机器重启后节点二能找到asm磁盘,节点一没有找到 [root@rac1 ~]# oracleasm scandisks Reloading disk partitions: done Cleaning any stale ASM disks... Scanning system for ASM disks... Instantiating disk "D...

debimeng 3427

RT-Thread网络编程:基于STM32F407的TCP客户端实现(含完整代码解析)

本文详细介绍了在STM32F407平台上,基于RT-Thread操作系统和LWIP协议栈实现工业级可靠TCP客户端的完整过程。内容涵盖底层ETH驱动配置、Socket编程、连接保活与断线重连机制、数据收发协议设计以及资源管理,提供了可应用于实际项目的健壮代码框架与调试技巧。

weixin_29184371的博客 492

linux下Oracle11g RAC搭建(二)

linux下Oracle11g RAC搭建(二) 安装前配置 网络的配置 IP占用测试 进入windows下,执行cmd,使用ping命令验证网段是否被占用。 注:用哪个网段都行,一定保证不要被其它设备占用即可。 ping 192.168.4.71 ping 192.168.4.72 ping 192.168.4.73 ping 192.168.4.74 ping 19

深蓝@黄炎龙 2483

感应加热电源设计避坑指南:半桥LC串联谐振的5个关键问题

本文深入解析半桥LC串联谐振在感应加热电源设计中的5个关键问题,包括均压电阻选型、功率管驱动时序、谐振频率补偿等实战经验。通过真实故障案例和解决方案,帮助工程师避开常见设计陷阱,提升电路稳定性和效率,特别适合从事桥感应加热电源开发的工程师参考。

weixin_27013291的博客 510

如何利用GMS构建地下水数值模拟模型?

第一步:点图中三维网格的图标然后点Grid→Create Grid这个界面是用于创建一个有限差分网格的设置窗口。它允许你定义网格在三维空间中的范围、分辨率以及其他相关属性。这个界面提供了一个直观的方式来定义一个三维的有限差分网格,你需要指定每个维度上的范围、划分的单元格数量,以及一些控制单元格大小分布和网格方向的参数。这个网格通常会被用于数值模拟,例如地下水流模拟。在点击 "OK" 之前,请务必仔细检查所有参数是否符合你的建模需求。1. X-Dimension (X 轴维度)2. Y-Dimension (

weixin_44259522的博客 2093

Oracle 11g RAC集群删除节点和重建(二)

Oracle 11g RAC集群删除节点和重建

oradh的专栏 239

4、基于抽象解释的静态分析器中的跟踪分区与ASTRÉE分析器解析

本博客探讨了基于抽象解释的静态分析器中的跟踪分区技术,并深入解析了ASTRÉE分析器的工作原理和应用。通过示例程序说明了跟踪分区如何提升分析精度,减少误报,以及ASTRÉE如何利用多种数值抽象域(如八角形域、浮点区间线性形式等)来处理复杂的嵌入式C程序。此外,还讨论了ASTRÉE的模块化设计、循环展开优化、用户断言与自动细化的局限性等内容,为保障嵌入式软件的安全性和可靠性提供了理论与实践支持。

kotlin6android的博客 117

Oracle 11g R2 RAC 删除节点详解(二)

接上篇,首先依旧是服务器相关介绍 服务器环境 序号 名称 版本 1 Oracle Linux Enterprise-R6-U8-Server-x86_64 2 Grid Insfrastructure 112040_Linux-x86-64

moscot_wu的博客 1526

SAP:QUERY中SQ02增加选择屏幕权限控制

【代码】SAP:QUERY中SQ02增加选择屏幕权限控制。

weixin_43734184的博客 2325

大厂硬件笔试机试题ASIC设计方向-卷3

本文提供了30道硬件工程师机试题目,涵盖数字逻辑、模拟电路、CMOS和信号处理等核心领域。选择题和判断题均配有详细解析,重点考察Verilog编程、CMOS特性、触发器设计、采样定理等知识点。题目难度适中但覆盖面广,如Verilog中阻塞/非阻塞赋值的区别、CMOS静态功耗来源、Nyquist采样定理、通用逻辑门判断等。备考建议强调掌握逻辑门设计、Verilog时序电路编写和CMOS特性理解。这些题目反映了华为等大厂硬件机试的典型考查内容,通过系统复习可有效提升机试成绩,为后续面试奠定基础。

启芯硬件的博客 544

Oracle 11g RAC集群PSU补丁安装(二)

1、要提前安装Perl模块Env包(yum install perl-Env -y),否则会在第一步rootcrs.pl -unlock时报错,如下:2、linux 7上安装psu报如下错误:DOC 2071922.1文章表示,可以忽略3、下面错误可以忽略,官方提示:(这个是linux 6 和linux 7都会报错)

oradh的专栏 282

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

oracle11gr2 rac centos,Centos6.5 + Oracle 11g r2 + nfs搭建RAC环境二

以下检查,最好在二台机器上都进行操作;检查crs状态:[[emailprotected]~]$crsctlcheckcrsCRS-4638:OracleHighAvailabilityServicesisonlineCRS-4537:ClusterReadyServicesisonlineCRS-4529:ClusterSynchronizationServic...

weixin_39830175的博客 144

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

2节点oracle11grac,linux下Oracle11g RAC搭建(二)

linux下Oracle11g RAC搭建(二)一、安装前配置网络的配置IP占用測试进入windows下。运行cmd,使用ping命令验证网段是否被占用。注:用哪个网段都行,一定保证不要被其他设备占用就可以。ping 192.168.4.71ping 192.168.4.72ping 192.168.4.73ping 192.168.4.74ping 192.168.4.75私有网卡预分配:nod...

weixin_30055951的博客 165

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Oracle 11G RAC 安装图示(二)

weixin_33858485的博客 98

虚拟机Linux6下安装Oracle 11G RAC(二)安装集群和DBMS

虚拟机Linux6下安装Oracle 11G RAC(一)安装准备 虚拟机Linux6下安装Oracle 11G RAC(三)创建数据磁盘组和实例 在上一篇文章中介绍了装RAC的准备工作,接下来开始正式安装了。 1.安装集群 要在grid用户下安装,在1节点上解压安装包,用chown -R grid:oinstall命令修改解压后文件的属主。 如果用Xmanager的话,执行who命...

XavierSuen的博客 1352
上一篇: ORACLE AWR简介
下一篇: oracle 11g RAC 的一些基本概念(三)
小灰狼W
博客等级 码龄18年 908粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值