RAC安装

    

一,安装规划
1,本地磁盘规划:
创建/opt/oracle /opt/orabak /opt/oracrs三个目录,最好是每个目录是独立的文件系统。

2,IP规划:
#RAC01
172.27.1.85  GDSZ-DCS-SV01C-RAC01
172.27.250.85    GDSZ-DCS-SV01C-RAC01_base
172.27.1.185  GDSZ-DCS-SV01C-RAC01_vip

#RAC02
172.27.1.86  GDSZ-DCS-SV02C-RAC01
172.27.250.86    GDSZ-DCS-SV02C-RAC01_base
172.27.1.186  GDSZ-DCS-SV02C-RAC01_vip


#RAC03
172.27.1.87  GDSZ-DCS-SV03C-RAC01
172.27.250.87    GDSZ-DCS-SV03C-RAC01_base
172.27.1.187  GDSZ-DCS-SV03C-RAC01_vip

其中172.27.1.85为FABRIC网卡bond0地址,172.27.250.85为BASE网卡bond1地 址,172.27.1.185为VIP地址。其他节点类似。


3,DG规划
Disk /dev/sdb: 1275.6 GB, 1275605286912 bytes
255 heads, 63 sectors/track, 155083 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 422.3 GB, 422386335744 bytes
255 heads, 63 sectors/track, 51352 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 98.7 GB, 98784247808 bytes
255 heads, 63 sectors/track, 12009 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1         123      987966   83  Linux
/dev/sdd2             124         246      987997+  83  Linux
/dev/sdd3             247       12009    94486297+  83  Linux

sdd1-ocr disk(CRS 集群注册信息盘)
sdd2-voting disk(CRS锁盘)
sdd3- dg_ora(系统库表空间)
sdb-dg_data(业务库数据表空间)
sdc-dg_idx(业务库索引表空间)

raw /dev/raw/raw1 /dev/sdd1
raw /dev/raw/raw2 /dev/sdd2
raw /dev/raw/raw3 /dev/sdd3
raw /dev/raw/raw4 /dev/sdb
raw /dev/raw/raw5 /dev/sdc

chown root:oinstall /dev/raw/raw1
chown oracle:oinstall /dev/raw/raw2
chown oracle:dba /dev/raw/raw3
chown oracle:dba /dev/raw/raw4
chown oracle:dba /dev/raw/raw5

chmod 775 /dev/raw/raw1
chmod 775 /dev/raw/raw2
chmod 775 /dev/raw/raw3
chmod 775 /dev/raw/raw4
chmod 775 /dev/raw/raw5


4,各节点实例和系统库实例规划
RAC1:ORA1
RAC2:ORA2
RAC3:ORA3
系统库:ORA
两 者关系是各节点实例为系统库实例后加节点编号!!


二,准备工作
1,Xmanager服务的启动(ftp/telnet视具体情况启动)
2,创建名为dba的操作系统组
# groupdel dba
# groupadd -g 200 dba
3,创建名为oinstall的操作系统组
# groupdel oinstall
# groupadd -g 201 oinstall
4,创建名为oracle的操作系统用户
# userdel -rf oracle
# useradd -u 300 -g oinstall -G dba -d /home/oracle -s /bin/bash -m oracle
5,在各节点为oracle用户设置密码
# passwd oracle
6,oracle相关目录权限设置
# chown -R oracle:dba /opt/oracle
# chmod -R 770 /opt/oracle
# chown -R oracle:dba /opt/oracrs
# chmod -R 770 /opt/oracrs
# chown -R oracle:dba /opt/orabak
# chmod -R 770 /opt/orabak
7,oracle用户环境变量设置
vi /home/oracle/.profile


# Oracle Environment
export ORACLE_BASE=/opt/oracle/product/11g/db
export ORACLE_HOME=$ORACLE_BASE/product/11g/db
export ORA_CRS_HOME=/opt/oracrs
export ORACLE_SID=ORA01                    
export ORACLE_TERM=xterm
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib
export LD_LIBRARY_PATH
SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32
export SHLIB_PATH
# Set shell search paths:
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/sbin:$PATH:/usr/local/bin:$ORA_CRS_HOME/bin
# CLASSPATH must include the following JRE locations:
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export NLS_LANG=AMERICAN_AMERICA.UTF8
#下面这条是我实际安装时摸索出来的,不加则创建ASM实例时无法配置LSNR, 原因是LSNR配置文件的路径不正确
export TNS_ADMIN=/opt/oracle/product/11g/db/network/admin

8,配置/etc/hosts文件
#RAC01
172.27.1.85  GDSZ-DCS-SV01C-RAC01
172.27.250.85    GDSZ-DCS-SV01C-RAC01_base
172.27.1.185  GDSZ-DCS-SV01C-RAC01_vip

#RAC02
172.27.1.86  GDSZ-DCS-SV02C-RAC01
172.27.250.86    GDSZ-DCS-SV02C-RAC01_base
172.27.1.186  GDSZ-DCS-SV02C-RAC01_vip


#RAC03
172.27.1.87  GDSZ-DCS-SV03C-RAC01
172.27.250.87    GDSZ-DCS-SV03C-RAC01_base
172.27.1.187  GDSZ-DCS-SV03C-RAC01_vip

9,建立RAC各节点信任关系
在各RAC节点生成密钥文件
su - oracle
ssh-keygen -t rsa
ssh-keygen -t dsa
RAC1节点制作RAC1的RSA/DSA合成密钥文件
cd .ssh
cat id_rsa.pub >> authorized_keys
cat id_dsa.pub >> authorized_keys

将RAC1合成密钥文件上传到RAC2
scp authorized_keys GDSZ-DCS-SV02C-RAC01:/home/oracle/.ssh/
将RAC2的RSA/DSA密钥文件分别合成到 authorized_keys
cd .ssh
cat id_rsa.pub >> authorized_keys
cat id_dsa.pub >> authorized_keys

将RAC2合成密钥文件上传到RAC3
scp authorized_keys GDSZ-DCS-SV03C-RAC01:/home/oracle/.ssh/
将RAC3的RSA/DSA密钥文件分别合成到 authorized_keys
cd .ssh
cat id_rsa.pub >> authorized_keys
cat id_dsa.pub >> authorized_keys

将rac3上的authorized_keys文件复制到rac1、rac2
scp authorized_keys GDSZ-DCS-SV01C-RAC01:/home/oracle/.ssh/
scp authorized_keys GDSZ-DCS-SV02C-RAC01:/home/oracle/.ssh/

更新rac1的主机列表known_hosts
ssh GDSZ-DCS-SV01C-RAC01
ssh GDSZ-DCS-SV01C-RAC01_base

ssh GDSZ-DCS-SV02C-RAC01
ssh GDSZ-DCS-SV02C-RAC01_base

ssh GDSZ-DCS-SV03C-RAC01
ssh GDSZ-DCS-SV03C-RAC01_base


将rac1上的known_hosts文件拷贝至其他节点
cd .ssh
scp known_hosts GDSZ-DCS-SV02C-RAC01:/home/oracle/.ssh/
scp known_hosts GDSZ-DCS-SV03C-RAC01:/home/oracle/.ssh/

校验oracle用户的信任关系
在每个节点执行
ssh GDSZ-DCS-SV01C-RAC01
ssh GDSZ-DCS-SV02C-RAC01
ssh GDSZ-DCS-SV03C-RAC01
应该不需输入密码!

10,配置各RAC节点时钟同步
假设有一台主机作为时钟服务器A,则各RAC节点执行
/etc/init.d/ntp stop
ntpdate A


11,调整各RAC节点的系统参数(参考具体的文档,主要有三方面内容调整)
修改内核参数
加大SHELL对ORACLE用 户的最大进程数和打开文件数的限制
在root用户下设置操作系统的共享内存大小

12,DG创建并挂接裸设备,同时赋权
fdisk /dev/sdx
# vi /etc/init.d/after.local
modprobe raw
raw /dev/raw/raw1 /dev/sdd1
raw /dev/raw/raw2 /dev/sdd2
raw /dev/raw/raw3 /dev/sdd3
raw /dev/raw/raw4 /dev/sdb
raw /dev/raw/raw5 /dev/sdc

sleep 5

chown root:oinstall /dev/raw/raw1
chown oracle:oinstall /dev/raw/raw2
chown oracle:dba /dev/raw/raw3
chown oracle:dba /dev/raw/raw4
chown oracle:dba /dev/raw/raw5

sleep 5

chmod 775 /dev/raw/raw1
chmod 775 /dev/raw/raw2
chmod 775 /dev/raw/raw3
chmod 775 /dev/raw/raw4
chmod 775 /dev/raw/raw5

# chmod u+x /etc/init.d/after.local
# /etc/init.d/after.local

三,安装CRS
1,上传安装介质
将安装软件上传到rac1的/opt/orabak中,目录结构如下:
/opt/orabak/linux.x64_11gR1_clusterware.zip
解 压缩安装文件,并赋予权限。
【命令】
# cd /opt/orabak
# unzip /opt/orabak/linux.x64_11gR1_clusterware.zip
# chmod 777 -R /opt/orabak/clusterware
# chown oracle:dba -R /opt/orabak/clusterware
2, 创建Inventory目录
在RAC各节点上创建目录/opt/oracle/oraInventory,并使oracle:dba为其所有者。
【命 令】
# mkdir /opt/oracle/oraInventory
# chown oracle:dba /opt/oracle/oraInventory
# chmod 755 /opt/oracle/oraInventory
3,设置 DISPLAY环境变量
(1) 切换到oracle用户
# su - oracle
(2) 设置DISPLAY环境变量
如 果是直接连接到主机的终端上进行安装,执行:
$ export DISPLAY=localhost:0.0
本次,我通过在远程终端上进 行安装,执行:
$ export DISPLAY=172.27.250.247:0.0
4,集群安装校验(rac1上oracle执 行)
 cd /opt/orabak/clusterware
./runcluvfy.sh stage -pre crsinst -n GDSZ-DCS-SV01C-RAC01,GDSZ-DCS-SV02C-RAC01,GDSZ-DCS-SV03C-RAC01

5,启动Universal Installer安装界面
用oracle用户登陆节点1启动OUI进行安装
/opt/orabak/clusterware/runInstaller

安装过程中涉及填写各RAC节点信息,OCR/VOTING DISK盘位置指定(所以要求在其他两个节点也激活raw1/raw2)。
安 装即将结束时,会提示用root用户执行orainstRoot.sh和root.sh脚本。
新开一个SHELL窗口,在Rac中所有的节点下, 依次执行以下命令。
$ su – root
# cd /opt/oracle/oraInventory/
# ./orainstRoot.sh
# cd /opt/oracrs/
# ./root.sh


安装后在rac1检查
$ORA_CRS_HOME/bin/cluvfy stage -post crsinst -n GDSZ-DCS-SV01C-RAC01,GDSZ-DCS-SV02C-RAC01,GDSZ-DCS-SV03C-RAC01

oracle@GDSZ-DCS-SV01C-RAC01:/opt/orabak/clusterware> $ORA_CRS_HOME/bin/cluvfy stage -post crsinst -n GDSZ-DCS-SV01C-RAC01,GDSZ-DCS-SV02C-RAC01,GDSZ-DCS-SV03C-RAC01

Performing post-checks for cluster services setup

Checking node reachability...
Node reachability check passed from node "GDSZ-DCS-SV01C-RAC01".


Checking user equivalence...
User equivalence check passed for user "oracle".

Checking Cluster manager integrity...


Checking CSS daemon...
Daemon status check passed for "CSS daemon".

Cluster manager integrity check passed.

Checking cluster integrity...


Cluster integrity check passed


Checking OCR integrity...

Checking the absence of a non-clustered configuration...
All nodes free of non-clustered, local-only configurations.

Uniqueness check for OCR device passed.

Checking the version of OCR...
OCR of correct Version "2" exists.

Checking data integrity of OCR...
Data integrity check for OCR passed.

OCR integrity check passed.

Checking CRS integrity...

Checking daemon liveness...
Liveness check passed for "CRS daemon".

Checking daemon liveness...
Liveness check passed for "CSS daemon".

Checking daemon liveness...
Liveness check passed for "EVM daemon".

Checking CRS health...
CRS health check passed.

CRS integrity check passed.

Checking node application existence...

Checking existence of VIP node application (required)
Check failed.
Check failed on nodes:
        GDSZ-DCS-SV03C-RAC01,GDSZ-DCS-SV01C-RAC01,GDSZ-DCS-SV02C-RAC01

Checking existence of ONS node application (optional)
Check ignored.
Check failed on nodes:
        GDSZ-DCS-SV03C-RAC01,GDSZ-DCS-SV01C-RAC01,GDSZ-DCS-SV02C-RAC01

Checking existence of GSD node application (optional)
Check ignored.
Check failed on nodes:
        GDSZ-DCS-SV03C-RAC01,GDSZ-DCS-SV01C-RAC01,GDSZ-DCS-SV02C-RAC01


Post-check for cluster services setup was unsuccessful.
Checks did not pass for the following node(s):
        GDSZ-DCS-SV01C-RAC01,GDSZ-DCS-SV03C-RAC01,GDSZ-DCS-SV02C-RAC01


启动crs服务(以root用户在所有rac节点执行)
/etc/init.d/init.crs start

检查CRS是否安装成功
cd /opt/oracrs/bin
./crs_stat -t

GDSZ-DCS-SV01C-RAC01:/opt/oracrs # cd /opt/oracrs/bin
GDSZ-DCS-SV01C-RAC01:/opt/oracrs/bin # ./crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01


GDSZ-DCS-SV02C-RAC01:/opt/oracrs # cd /opt/oracrs/bin
GDSZ-DCS-SV02C-RAC01:/opt/oracrs/bin # ./crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01


GDSZ-DCS-SV03C-RAC01:/opt/oracrs # cd /opt/oracrs/bin
GDSZ-DCS-SV03C-RAC01:/opt/oracrs/bin # ./crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01
每个host节点必须有gsd/ons/vip 三个资源,如果gsd、ons、vip这3个节点应用资源已经成功的在RAC各个节点上启动了,则表明CRS已经安装成功。

 

四,ORACLE安装
1,上传安装介质
将安装软件上传到rac1的/opt/orabak中,目录结构如下:
/opt/orabak/linux.x64_11gR1_database.zip
解 压缩安装文件,并赋予权限。
【命令】
# cd /opt/orabak
# unzip /opt/orabak/linux.x64_11gR1_database.zip
# chmod 777 -R /opt/orabak/database
# chown oracle:dba -R /opt/orabak/database

2,启动Universal Installer安装界面
涉及到选择其他RAC节点,安装时不要建库,只需安装软件。快结束时执行 root.sh
新开一个SHELL窗口,在Rac中所有的节点下,依次执行以下命令。
$ su – root
# cd /opt/oracle/product/11g/db/
# ./root.sh


五,安装oracle补丁
1,上传介质
将安装软件拷贝到RAC各节点的/opt/orabak中:
/opt /orabak/p6890831_111070_Linux-x86-64.zip--crs补丁(解压后生成Disk1目录)
/opt /orabak/p9207257_111070_Linux-x86-64.zip--oracle补丁(解压后生成9207257目录)
/opt/orabak/p6880880_111000_Linux-x86-64.zip---Opatch
2, 安装crs补丁
2.1  停止CRS
以root用户登陆RAC各节点,执行以下命令。
# cd /opt/oracrs/install
# ./preupdate.sh

GDSZ-DCS-SV03C-RAC01:/opt/oracrs/install # ./preupdate.sh
Shutting down Oracle Cluster Ready Services (CRS):
Aug 07 16:04:21.338 | INF | daemon shutting down
Stopping resources.
This could take several minutes.
Successfully stopped Oracle Clusterware resources
Stopping Cluster Synchronization Services.
Shutting down the Cluster Synchronization Services daemon.
Shutdown request successfully issued.
Shutdown has begun. The daemons should exit soon.
Checking to see if Oracle CRS stack is down...
Oracle CRS stack is down now.

GDSZ-DCS-SV03C-RAC01:/opt/oracrs/bin # ./crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.

 

2.2  安装CRS补丁
以oracle用户登陆rac1,进入/opt/orabak/Disk1目录,执行安装程序。
$ export ORACLE_HOME=/opt/oracrs
$ cd /opt/orabak
$ cd Disk1
$./runInstaller

快结束时
新开一个SHELL窗口,在Rac中所有的节点下,依次执行以下命令。
$ su – root
# /opt/oracrs/bin/crsctl stop crs
# /opt/oracrs/install/root111.sh

 

3,安装Oracle 11.1.0.7.2补丁
3.1 升级opatch到11.1.0.8.1
安装/opt/orabak /p6880880_111000_Linux-x86-64.zip
 $opatch lsinventory
Invoking OPatch 11.1.0.8.1

Oracle Interim Patch Installer version 11.1.0.8.1
Copyright (c) 2010, Oracle Corporation.  All rights reserved.


3.2 安装9207257补丁
【以下操作需要在RAC所有节点上执行】
以root用户登陆各节点,在安装补丁前,需要将 RAC停掉。
# /etc/init.d/init.crs stop
# /opt/orabak/9207257/custom/scripts/prerootpatch.sh -crshome /opt/oracrs -crsuser oracle

GDSZ-DCS-SV01C-RAC01:/opt/orabak # /opt/orabak/9207257/custom/scripts/prerootpatch.sh -crshome /opt/oracrs -crsuser oracle
Checking to see if Oracle CRS stack is down...
Oracle CRS stack is down now.

scp p9207257_111070_Linux-x86-64.zip GDSZ-DCS-SV02C-RAC01:/opt/orabak
scp p9207257_111070_Linux-x86-64.zip GDSZ-DCS-SV03C-RAC01:/opt/orabak

以oracle用户登陆各节点,执行下列操作。
# su – oracle
$ cd /opt/orabak/9207257
$ custom/scripts/prepatch.sh -crshome /opt/oracrs
$ custom/server/9207257/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME
$ opatch napply -local -oh /opt/oracrs -id 9207257
$ opatch napply custom/server/ -local -oh $ORACLE_HOME -id 9207257
$ custom/scripts/postpatch.sh -crshome /opt/oracrs
$ custom/server/9207257/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME
以 root用户登陆各节点,执行以下命令。
# custom/scripts/postrootpatch.sh -crshome /opt/oracrs
此时RAC将被启动。


六,建立ASM实例
1,检查CRS是否启动正常
2,使用操作系统oracle用户调用DBCA进行安装
$ dbca
选择“Oracle Real Application Clusters database”
下面出现“Create a Database”和“Configure Automatic Storage Management”选择界面时选择“Configure Automatic Storage Management”

后面涉及选择所有RAC节点,设置SYS密码,选择裸设备创建DG时,按前面的规划建立dg_ora(/dev/raw /raw3),dg_data(/dev/raw/raw4),dg_idx(/dev/raw/raw5)

 

七,建立数据库

1,检查CRS是否启动正常
2,使用操作系统oracle用户调用DBCA进行安装
$ dbca
选择“Oracle Real Application Clusters database”
下面出现“Create a Database”和“Configure Automatic Storage Management”选择界面时选择“Create a database”

后面涉及选择所有RAC节点,选择“Custom Database”,指定数据库全局名和SID前缀,两个名字请保持一致,设置SYS/SYSTEM密码,选择ASM管理等


3,建库完成后所有节点的状态:
oracle@GDSZ-DCS-SV03C-RAC01:~> crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....01.inst application    ONLINE    ONLINE    gdsz...ac01
ora....02.inst application    ONLINE    ONLINE    gdsz...ac01
ora....03.inst application    ONLINE    ONLINE    gdsz...ac01
ora.ORA0.db    application    ONLINE    ONLINE    gdsz...ac01
ora....SM1.asm application    ONLINE    ONLINE    gdsz...ac01
ora....01.lsnr application    ONLINE    ONLINE    gdsz...ac01
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01
ora....SM2.asm application    ONLINE    ONLINE    gdsz...ac01
ora....01.lsnr application    ONLINE    ONLINE    gdsz...ac01
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01
ora....SM3.asm application    ONLINE    ONLINE    gdsz...ac01
ora....01.lsnr application    ONLINE    ONLINE    gdsz...ac01
ora....c01.gsd application    ONLINE    ONLINE    gdsz...ac01
ora....c01.ons application    ONLINE    ONLINE    gdsz...ac01
ora....c01.vip application    ONLINE    ONLINE    gdsz...ac01


所有节点执行:
oracle@GDSZ-DCS-SV03C-RAC01:~> sqlplus '/as sysdba'

SQL*Plus: Release 11.1.0.7.0 - Production on Sun Aug 8 17:32:30 2010

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


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

SQL> select status from v$instance;

STATUS
------------------------------------
OPEN

 


SQL> select status from v$instance;

STATUS
------------------------------------
OPEN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值