数据库安装前工作

数据库安装前工作

前期沟通

整体介绍

硬件环境,了解到手的硬件资源是否满足部署需要。
软件环境,确定操作系统版本和数据库版本情况。
实例参数确定,了解源端库信息,确保实例可用。

硬件环境对接

在这里插入图片描述

启用设备上的写入缓存

Windows:设备管理器-磁盘驱动器-展开驱动程序-右键属性-策略-启用设备上的写入缓存
在这里插入图片描述
Linux:

[root@~]# hdparm -W 1 /dev/sda

参数1:开启
参数0:关闭
建议关闭

软件环境对接

操作系统版本
cat /etc/os-release
数据库版本标识
查看软件授权许可证
操作系统查询:
cat /etc/issue   --(iSoft3.0/Kylin6.0/CentOS6.0/KylinOS4.0/NFS3.0)
lsb_release -a|grep "Description"   --(iSoft3.0/Kylin6.0/CentOS6.0/KylinOS4.0)
cat /etc/os-release | grep "PRETTY_NAME"   --(iSoft4.0/Kylin7.0/CentOS7.0/KylinOS4.0/ KylinOS10/NFS3.0/NFS4.0)
cat /etc/.productinfo   --(Kylin6.0/Kylin7.0/KylinOS10)
nkvers   --(Kylin7.0/KylinOS10)
内核查询:
cat /proc/version   --(iSoft3.0/iSoft4.0/Kylin6.0/Kylin7.0/CentOS6.0/CentOS7.0/KylinOS4.0/KylinOS10)
uname -r   --(iSoft3.0/iSoft4.0/Kylin6.0/Kylin7.0/CentOS6.0/CentOS7.0/KylinOS4.0/KylinOS10)
uname -a   --(iSoft3.0/iSoft4.0/Kylin6.0/Kylin7.0/CentOS6.0/CentOS7.0/KylinOS4.0/KylinOS10)
系统位数查询:
getconf LONG_BIT   --(iSoft3.0/iSoft4.0/Kylin6.0/Kylin7.0/CentOS6.0/CentOS7.0/KylinOS4.0/KylinOS10)
系统架构:
uname -m   --(iSoft3.0/iSoft4.0/Kylin6.0/Kylin7.0/CentOS6.0/CentOS7.0/KylinOS4.0/KylinOS10)
CPU型号:
lscpu   --(Intel/鲲鹏/飞腾/龙芯)
cat /proc/cpuinfo|grep name|cut -f2 -d:|uniq -c   --(Intel/飞腾/龙芯)
CPU个数:
cat /proc/cpuinfo|grep "physical id"|sort|uniq|wc -l   --(Intel)
lscpu | grep "CPU(s):"   --(鲲鹏)
lscpu | grep "座:"   --(鲲鹏)
lscpu | grep "Socket(s):"   --(Intel/飞腾/龙芯)
CPU核数:
cat /proc/cpuinfo|grep "cores" |uniq   --(Intel)
lscpu | grep "Core(s) per socket:"   --(Intel/鲲鹏/龙芯)
lscpu | grep "每个座的核数:"   --(飞腾/鲲鹏)
数据库版本标识:
企业版:ent 安全版:sec 根据查询信息比对数据库软件授权许可证

实例参数确认

在这里插入图片描述

环境检查及修改

环境检查之前先跳到创建数据库用户步骤,创建数据库的专用用户。

操作系统时间检查

操作系统时间不正确会有以下问题:

  1. 试用授权产品,会导致试用授权过期,无法使用;
  2. 集群自动切换场景,会可能导致集群检测节点服务异常,引发误切换;
  3. 数据库运行日志、数据库服务日志、归档日志、备份集等时间记录错误,导致相关分析、排查工作难度增大。

修改命令如下:

##手动修改时间方法,手动不是长久之计,最好还是加入时间服务中
date -s "yyyy-mm-dd HH:MM:SS"

安全软件防护

不同防护软件,影响的情况不同,常见如下:

  1. 360软件,会将达梦数据库后台服务判断为非法的服务,会自动清理该数据库服务(windows环境)。
  2. 奇安信网神终端安全管理系统,会自动防护端口。

修改方法:
沟通添加白名单或直接卸载、关闭软件。

关闭SELinux

参数文件介绍:
SELinux是安全增强型linux系统,它是一个linux内核模块,也是linux的一个安全子系统。
关闭SELinux的意义:
SELinux,是用来加强安全性的一个组件,但非常容易出错且难以定位,它在本来已经很安全的Linux上,凌驾于root权限之上,设置了很多额外的条条框框;
如果了解这些条条框框,那还好,但如果不了解,那SELinux可能并没有帮什么忙,却给带来很多不确定因素。
操作命令:
SELinux一共有3种状态,分别是Enforcing,Permissive和Disabled状态。
Enforcing:强制模式。代表SELinux在运行中,且已经开始限制domain/type之间的验证关系
Permissive:宽容模式。代表SELinux在运行中,不过不会限制domain/type之间的验证关系,即使验证不正确,进程仍可以对文件进行操作。不过如果验证不正确会发出警告
Disabled:关闭模式。SELinux并没有实际运行可以通过setenforce命令来设置前面两种状态,而如果想修改为disable状态,需要修改配置文件,同时重启系统。
永久关闭SELinux需修改配置文件:cat /etc/selinux/config,修改 SELINUX=disabled

[root@localhost ~]#vim /etc/selinux/config 
SELINUX=disabled      #修改为disabled

在这里插入图片描述

防火墙检查

添加端口到白名单:
查看防火墙端口开放情况:
##redhat 7/8、centos7
firewall-cmd --zone=public --list-ports
##redhat 6
iptables -L

Redhat6添加端口到防火墙(iptables):

##修改系统文件,永久更改,需重启防火墙服务:
[root@~]# vi /etc/sysconfig/iptables
##添加5236端口到防火墙
-A INPUT -p tcp -m tcp --dport 5236 -j ACCEPT 
##保存后重启防火墙
[root@~]# service iptables save;service iptables restart;

Redhat7/8或者Centos7添加端口到防火墙(Firewall):

##添加(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=5236/tcp --permanent 
##重新载入
firewall-cmd --reload
##查看5236端口是否在防火墙,返回yes或no
firewall-cmd --zone=public --query-port=5236/tcp
##删除
firewall-cmd --zone=public --remove-port=5236/tcp --permanent

修改命令:

##关闭防火墙
[root@~]# systemctl stop firewalld 
--关闭开机自启
[root@~]# systemctl disable firewalld

检查网络

检查命令如下:

##拷贝一个文件到远程服务器的/opt目录下
[root@~]# scp -r xxx dmdba@ip:/opt/
##拷贝一个文件,指定端口到远程服务器的/opt目录下
[root@~]# scp -r -P端口 xxx dmdba@ip:/opt/
##网络配置以及速度是否正常
ethtool eth0
##查看网络信息
sar -n DEV 1 100

ethtool eth0

[root@centos-dm opt]# ethtool eth0
Settings for eth0:
	Link detected: yes

在这里插入图片描述
测试命令如下:
1.服务器大于1台时使用,测试服务器间网络性能情况,上传netperf、netserver文件至服务器,并增加执行权限,其中netserver需复制到每台服务器。

chmod +x netperf netserver

2.在每台服务器均启动netserver服务并确认进程存在

./netserver -p 12306
ps -ef|grep netserver

3.在其中一台服务器使用netperf测试至所有服务器,并记录测试结果。

[root@localhost ~]# ./netperf -H 172.16.93.12 -p 12306 -f M -l 60

磁盘规划及挂载

磁盘规划:
当条件有限只能使用单块盘的情况下,建议通过创建不同的LV搞多个挂载点。如果使用多块盘的则尽量一块盘一个挂载点,多块磁盘对于数据目录有利于磁盘空间的分配,而且可以数据分离处理,不会占用彼此资源。
其中归档、备份和数据分开存储,备份也可以存放到nas上,实现异地备份。

  1. 磁盘写入数据时会产生较少的资源占用和冲突,有利于提高数据库的性能。
  2. 可以很容易的监测各类的使用和剩余空间。
  3. 避免减少误删或者磁盘毁坏造成的损失。
  4. 不会抢占数据库的磁盘使用空间。

磁盘格式:
针对磁盘格式主要常用的为ext4、xfs,以下为优缺点:

  1. 数据完全性:

采用XFS文件系统,当意想不到的宕机发生后,首先,由于文件系统开启了日志功能,所以磁盘上的文件不再会意外宕机而遭到破坏了。

  1. 传输特性:

XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。

  1. 可扩展性:

XFS是一个全64-bit的文件系统,可以支持上百万T字节的存储空间。
磁盘挂载:

##是否自动挂载
cat /etc/fstab
##查看实际挂载盘
lsblk	

注意:磁盘是否使用uuid挂载

操作命令:
##查看未挂载的磁盘
df -h
fdisk -l

在这里插入图片描述
在这里插入图片描述
*图中显示磁盘已经挂载到系统中,若磁盘没有挂载到系统中需要如下操作

创建磁盘分区
fdisk /dev/vdb

n表示新建一个分区
p表示分区类型为主分区(e表示逻辑分区)
分区数量为1(范围为1-4个)
w表示写入分区表
在这里插入图片描述

格式化分区
mkfs -t ext4 /dev/vdb1

在这里插入图片描述

挂载硬盘
mkdir /dmdata
mount /dev/vdb1 /dmdata/

设置开机启动自动挂载
编辑/etc/fstab,在最后添加/dev/vdb1 /dmdata ext4 defaults 0 0
其中第一个0表示不会备份此文件系统,第二个0表示fsck不会检查此文件系统
在这里插入图片描述

mkdir /dmbak
mount /dev/vdc1 /dmbak/
mkdir /dmarch
mount /dev/vdd1 /dmarch/
/etc/fstab文件如下:
/dev/vdc1 /dmbak ext4 defaults 0 0
/dev/vdd1 /dmarch ext4 defaults 0 0

在这里插入图片描述
在这里插入图片描述
注:重启验证开机启动自动挂载没有问题

检查磁盘IO

测试的意义:
传统关系型数据库的最大瓶颈之一就在于磁盘的读写速率上,因此检测磁盘的IO速率是十分必要的。
实操如下:
测试方式有dd命令、nmon测试工具、OSW测试工具等,可以优先使用便捷的dd来检测。
dd bs=32k count=20k if=/dev/mapper/VolGroup-lv_root of=/opt/dmdbms/test oflag=dsync
参数注释:

  1. bs=设置块的读写大小。
  2. if=文件名:输入文件名。
  3. of=文件名:输出文件名。
  4. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
  5. oflag指定写的方式,dsync读写数据采用同步IO。
    在这里插入图片描述

检查磁盘调度算法

常见的磁盘调度算法:
CFQ ,中文名称完全公平调度器,CFQ是内核默认选择的I/O调度器。它将由进程提交的同步请求放到多个进程队列中,然后为每个队列分配时间片以访问磁盘。
Deadline(截止时间调度程序)实现了四个队列,其中两个分别处理正常read和write,另外两个处理超时read和write的队列,按请求创建时间排序,如果有超时的请求出现,就放进这两个队列,调度算法保证超时(达到最终期限时间)的队列中的请求会优先被处理,防止请求被饿死。
检查及修改:

##通过lsblk命令找到数据盘对应的物理盘
[root@~]# lsblk

注意下图中数据盘对应的物理盘是vdc,则应检查vdc磁盘的调度算法
在这里插入图片描述

##检查vdc磁盘的调度算法
[root@~]# cat /sys/block/vdc/queue/scheduler

在这里插入图片描述
Centos6永久修改

##修改内核引导参数,加入elevator= deadline
[root@~]# vi /boot/grub/menu.lst
##更改到如下内容
kernel /boot/vmlinuz-2.6.32-504.el6 ro root=LABEL=/ elevator=deadline rhgb quiet

Centos7永久修改
修改内核引导参数,加入elevator=调度程序名

grubby --update-kernel=ALL --args="elevator=deadline"
reboot

关闭Swap

关闭意义:
在Linux下,SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。
数据库系统一般都对响应延迟比较敏感,如果使用swap代替内存,数据库服务性能必然不可接受。
关闭命令:
临时修改

##临地关闭swap分区,重启后失效
[root@~]# swapoff -a
永久修改
##永久关闭swap分区
[root@~]# sed -ri 's/.*swap.*/#&/' /etc/fstab  
##重启操作系统
[root@~]# reboot
##再次确认
[root@~]# free -m

Swap的关闭需要视情况而定,内存充裕(较大)关闭,内存太小不关闭。

检查NUMA是否关闭

关闭的意义:
NUMA架构是为了解决多CPU下内存访问冲突,简单来说不在将整个物理内存作为一个整体,而是根据不同的CPU区分不同的内存块儿,如2颗CPU每颗CPU使用64G内存。
当NUMA参数zone_reclaim_mode在设置为1时,内核将要求多路CPU尽量从距离较近的系统内存节点(服务器的整体内存在numa架构下将被分成若干个节点)分配内存而不是在整个服务器可访问内存的范围内进行内存分配,因此在较高内存占用压力下内存申请会触发内存频繁回收整理的机制严重影响了系统整体性能(长期处于内核态sys很高)。进而可能导致SQL卡顿问题的发生。
检查NUMA状态

dmesg | grep -i numa

下图为开启状态
在这里插入图片描述
关闭命令如下:

##编辑grub文件,如下图所示加上:numa=off
[root@~]# vi /etc/default/grub

在这里插入图片描述

##重新生成/etc/grub2.cfg 配置文件:
[root@~]# grub2-mkconfig -o /etc/grub2.cfg

在这里插入图片描述

##重启操作系统
[root@~]# reboot
##重启之后进行确认
[root@~]# dmesg | grep -i numa

在这里插入图片描述

禁用透明大页

引言:
在khugepaged进行扫描进程占用内存,并将4kPage交换为Huge Pages的这个过程中,对于操作的内存的各种分配活动都需要各种内存锁,直接影响程序的内存访问性能。并且,这个过程对于应用是透明的,在应用层面不可控制,对于专门为4k page优化的程序来说,可能会造成随机的性能下降现象。
关闭命令:

##查看是否启用透明大页
[root@~]# cat /sys/kernel/mm/transparent_hugepage/enabled	
[always]表示透明大页启用  [never]表示透明大页禁用

在这里插入图片描述
上图即启用状态,需要禁用
永久修改:

--编辑grub文件,如下图所示加上:transparent_hugepage=never
[root@~]# vi /etc/default/grub

在这里插入图片描述

--重新生成/etc/grub2.cfg 配置文件:
[root@~]# grub2-mkconfig -o /etc/grub2.cfg

在这里插入图片描述

##重启操作系统
[root@~]# reboot
##再次确认
[root@~]# cat /sys/kernel/mm/transparent_hugepage/enabled

在这里插入图片描述
已经禁用

调整sysctl.conf参数

参数文件介绍:
/etc/sysctl.conf是一个允许改变正在运行中的Linux系统的接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改内核参数永久生效。
调整项介绍:
配置参数overcommit_memory表示系统的内存分配策略可以选值为0,1,2。
0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2,表示内核允许分配超过所有物理内存和交换空间总和的内存。
操作命令:
永久生效
用root用户编辑配置文件编辑/etc/sysctl.conf

[root@dm~]# vim /etc/sysctl.conf

修改vm.overcommit_memory=0
然后执行sysctl -p 使配置文件生效
在这里插入图片描述
在这里插入图片描述

调整limits.conf参数

参数文件介绍:
在Linux和 HP-UNIX 等系统中,操作系统默认会对程序使用操作系统资源进行限制。如果不取消对应的限制,那么数据库的性能将会受到影响。
调整项介绍:

  1. core file size建议设置为unlimited。并将core文件目录放到大的空间目录存放。
  2. data seg size建议设置为1048576以上或unlimited,此参数过小将导致数据库启动失败。
  3. file size建议设置unlimited,此参数过小导致数据库安装或初始化失败。
  4. open files建议设置为 65536 以上或 unlimited。
  5. virtual memory建议设置为1048576以上或 unlimited,此参数过小将导致数据库启动失败。
  6. max user processes 最大线程数这个参数建议修改为10240。

操作命令:

--编辑limits.conf文件
[root@~]# vi /etc/security/limits.conf
##在最后面添加以下内容
dmdba soft nproc 10240
dmdba hard nproc 10240
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba hard data unlimited
dmdba soft data unlimited
dmdba hard fsize unlimited
dmdba soft fsize unlimited
dmdba soft core unlimited
dmdba hard core unlimited
[dmdba@~]# ulimit -a ##确认是否生效

在这里插入图片描述

调整system.conf参数

参数文件介绍:
system.conf为系统和服务管理的配置文件,当运行系统实例时,systemd将读取这个配置文件system.conf,相反读取user.conf。这些配置文件获得一些设置基本管理控制的操作。
达梦数据库服务注册为系统服务的进程,如通过systemctl或者service方式设定随机自启动的数据库服务,其能打开的最大文件描述符、proc数量等不受limits.conf控制,需要修改/etc/systemd/system.conf文件才有效果。
调整项介绍:
DefaultLimitNOFILE:用户默认最大打开文件数
DefaultLimitNPROC:用户默认最大进程数
操作命令:

##编辑配置文件/etc/systemd/system.conf
[root@dm~]# vim /etc/systemd/system.conf
##添加配置:
DefaultLimitNOFILE=65536
DefaultLimitNPROC=10240

在这里插入图片描述
保存退出后需要重启服务器才能生效

调整nproc.conf参数

参数文件介绍:
nproc是操作系统级别对每个用户创建的进程数的限制。文件路径为/etc/security/limits.d文件名略有不同,其中麒麟10是nproc.conf;centos6是90-nproccentos,centos7是20-nproc.conf。
/etc/security/limits.conf 可配置限制文件打开数,系统进程等资源在该文件配置中写的最大用户进程数是受/etc/security/limits.d/proc.conf配置上限影响的。
调整项介绍:

  1. soft表示软限制
  2. hard表示硬限制
  3. nproc进程数
  4. nofile文件数
    在这里插入图片描述
    操作命令:
##编辑配置文件/etc/security/limits.d/nproc.conf
[root@dm~]# vi /etc/security/limits.d/nproc.conf
##添加配置:
dmdba soft nproc 65536
dmdba hard nproc 65536

在这里插入图片描述
如果是在/etc/security/limits.conf 修改最大用户进程数,那就注掉/etc/security/limits.d/90-nproc.conf文件中的内容即可。

调整profile参数

参数文件介绍:
此文件涉及系统的环境,即环境变量相关。这里修改会对所有用户起作用,刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下,~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个。/etc/profile全局(公有)配置,不管是哪个用户,登录时都会读取该文件。
调整项介绍:
调整dmdba用户下得环境变量文件.bash_profile
1>LD_LIBRARY_PATH主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。
2>PATH环境变量定义了用于进行命令和程序查找的目录。 PATH中的目录使用冒号分隔
3>DM_HOME定义达梦数据库得软件目录
操作命令:

su - dmdba
vi .bash_profile
export DM_HOME="/dm8"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

保存文件后执行source .bash_profile 生效
在这里插入图片描述

创建数据库用户

创建数据库用户的意义:
1)数据库运行依赖该用户。
2)普通用户不能修改系统关键配置文件,查看其他用户的文件则需要相应的权限,关机指令都需要以root身份执行。防止使用root权限过大导致误操作及一些纠纷。
创建用户组和用户:

[root@~]# groupadd dinstall -g 2001
[root@~]# useradd -g dinstall dmdba -u 1001
[root@~]# passwd dmdba
[root@~]# <输入密码>
[root@~]# <再次输入密码>
##变更目录用户及组:(后续安装之后执行)
[root@~]# chown dmdba.dinstall /opt/dmdbms -R
[root@~]# chmod 777 /opt/dmdbms -R

CPU超线程检查

超线程简介:
超线程技术把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,让单个处理器就能使用线程级的并行计算,进而兼容多线程操作系统和软件。超线程技术充分利用空闲CPU资源,在相同时间内完成更多工作。
超线程:
需根据数据库本身是否需要开启或关闭来决定如何操作,一般在BIOS中进行开启/关闭操作。
检查命令:
通过解析/proc/cpuinfo文件内容来判定是否开启超线程,如服务器开启了超线程则下述公式计算结果等于2,否则等于1。
计算公式:系统的cpu线程数/(物理CPU个数*每个物理CPU的逻辑核数)

##系统的cpu线程数:
cat /proc/cpuinfo | grep "processor" | wc -l
##物理CPU个数:
cat /proc/cpuinfo | grep "physical id" | sort|uniq | wc -l
##每个物理CPU的逻辑核数:
cat /proc/cpuinfo | grep "core id"|sort -u|wc -l

例如下面机器的计算结果等于24/212=1,则没有开启
在这里插入图片描述
下方机器的计算结果等于2/1
1=2,则开启
在这里插入图片描述

麒麟v10 SP1版本检查RemoveIPC参数设置

参数介绍
根据官方文档logind.conf(5)中对RemoveIPC参数的描述,该参数会控制当前用户在完全注销时,是否删除属于用户自己的Systemd V和POSIX IPC对象。接受布尔参数。如果启用该参数,则在用户的最后一个会话终止后,用户可能不会使用IPC资源。这包括System V信号量、共享内存和消息队列,以及POSIX共享内存和消息队列。请注意,根用户和其他系统用户的IPC对象不受此设置的影响。默认为“是”。
systemd-logind服务在版本243-17.se.1至243-31.se.p03中对RemoveIPC的默认值配置进行了修改,由原来的默认为yes,调整为了no。
/etc/systemd/logind.conf配置文件是Systemd的一部分,Systemd是自由软件,客户可以重新分发或修改它,该文件在编译时会携带默认值,客户可通过编译logind.conf来满足自己的需求。此现象并非BUG问题,而是不同的配置在不同用户场景下的需要按照需求进行变化,用户按需进行配置即可。
通过调研redhat的changlog可以发现,之前版本的redhat对于RemoveIPC的默认值设置也同样是yes,通过后续调整置为no。
检查修改:
检查RemoveIPC参数设置,要求为no :

systemctl show systemd-logind  | grep -i removeipc

参数修改
如果不是no,用以下方法调整:
修改/etc/systemd/logind.conf配置文件中的RemoveIPC参数,将#注释去掉,并修改yes为no

nano /etc/systemd/logind.conf

在这里插入图片描述

##重启服务
systemctl daemon-reload
systemctl restart systemd-logind

调整login

简介:
limits.conf文件实际是Linux PAM(插入式认证模块),突破系统的默认限制,对系统访问资源有一定保护作用,当用户访问服务器时,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理
limits.conf 和sysctl.conf区别在于limits.conf是针对用户,而sysctl.conf是针对整个系统参数配置。
修改操作系统参数命令:

[root@~]# vi /etc/pam.d/login
session  required  /lib64/security/pam_limits.so
session  required  pam_limits.so

在这里插入图片描述
感谢各位!
技术博客社区地址
https://eco.dameng.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值