informix基础之第四章应用程序介绍

1.1 概述

INFORMIX数据库服务器提供了在 shell 提示符下直接执行管理任务功能的应用程序。 4-1 列出这些应用程序:

表1-1  提示符下直接执行管理任务功能的应用程序

应用程序名

主要功能

Oninit

初始化OnLine

Dbexport

将数据库卸出到ASCII 文件

Dbimport

建立数据库

Dbload

用命令文件装入数据

Dbschema

输出SQL 语句

Oncheck

检查,修复,显示

Onload

创建数据库或表

Onlog

显示逻辑日志内容

Onmode

改变方式和共享内存

Onparams

修改日志配置参数

Onspaces

修改blobspace Dbspace

Onstat

监控的运行

Ontape

日志登录,archive 创建和数据重装

Onunload

以页为单位传送二进制数据

 

以下对这些应用程序逐一简要说明,具体内容可参看相关资料。

1.2 oninit

1.2.1 功能说明

oninit 应用程序用于改变系统的运行模式。

数据库有六种工作模式,它们是:

离线( off-line 不运行状态

静模式( quiescent 在此模式下,用户不能连接到数据库,但可用 onstat 等命令查看数据库信息

在线( on-line 数据库运行状态

只读( read-only 只能读数据库但不能写

恢复( recovery 是一种临时状态,存在于从离线模式到静模式之间

关闭( shutdown 是一种临时状态,存在于从在线模式到静模式或离线模式

oninit 命令将在离线( off-line )状态的数据库启动为在线( on-line )模式,并初始化共享内存( shared memory ),在作初始化之前,应先设置环境变量 INFORMIXSERVER ,否则数据库不建立 sysmaster 表,必须以 root informix 注册才能执行本命令,本命令不但能初始化共享内存,还能初始化磁盘空间

1.2.2 使用说明

用户可以在shell 提示符下使用 oninit --  得到简单提示。

语法如下:

oninit { -[ipsy] }

其中主要选项说明如下:

-i 指定初始化磁盘空间,该操作将破坏该盘已有的所有数据。

-p 指示oninit  在初始化共享内存空间时不搜索和删除临时表。

-s 指示oninit  OnLine 初始化后处于静止方式。

-y 对所有提示信息自动响应“yes”

1.2.3 举例说明

下列命令首先让OnLine 脱机,然后初始化共享内存,并使 OnLine 仍处于静止方式。

Onmode  y

Oninit 

1.3 dbexport

1.3.1 功能简述

dbexport 应用程序将数据库卸出到 ASCII 文件。在其他 INFORMIX 环境下 dbimport 应用程序使用该 ASCII 模式文件重建数据库,用户可以通过编辑该模式文件来修改由 dbimport  生成的数据库。

dbexport 应用程序支持下列三种选择方 式:

将数据库及其模式文件卸出到磁盘。

将数据库及其模式文件卸出到磁带。

将模式文件卸出到磁盘以便用户检查和修改,将数据库的数据文件卸出到磁带。

使用此操作的用户必须具有DBA 存取权限或注册到 informix 或为 root 用户。在卸出数据过程中, dbexport 进程以排他方式封锁数据库。

1.3.2 使用说明

用户可以在shell 提示符下使用 dbexport --  得到简单提示。

语法如下:

dbexport  <database> [-X] [-c] [-q] [-d] [-ss] [{ -o <directory> | -t <tapedevice>  -b <blocksize> -s <tapesize> [-f <sql-command-file>] }]

其中主要选项说明如下:

-c   如果没有发生致命错误,则输出全部信息

-d 仅输出blob 描述符,不输出 blob 数据

-q 在标准输出设备上不显示错误信息,警告和所生成的SQL 数据定义语句

database 指定卸出的数据库名

-o directory 命名存储 ASCII 数据文件和模式文件的磁盘目录

-t  tapedevice 指定存储 ASCII 数据文件和模式文件的磁带设备路径

-b blocksize 指定磁带设备块大小(单位: KB

-s  tapesize 指定磁带所能存储的数据总量(单位: KB

-f  sql-command-file 指定存于磁盘上的模式文件

1.3.3 举例说明

将数据库stores5 卸出到磁带上,磁带每块大小为 16KB ,容量为 24000KB ,模式文件输出到 /tmp/stores5.imp

则使用如下命令:

dbexport stores5  杢  /dev/rmt0/ -b 16  杝  24000  杅  /tmp/stores5.imp 

将数据库stores5 卸出到目录 /usr/informix/export/stores5.exp  中:

使用如下命令:

dbexport stores5  杘  /usr/informix/export/stores5.exp 

1.4 dbimport

1.4.1 功能简述

dbimport 应用程序以 dbexport 应用程序生成的 ASCII 文件为输入,建立数据库并装入数据。该 ASCII 文件由两部分组成:用来重建数据库的模式文件,以及数据库数据的数据文件。

dbimport 应用程序所使用的 ASCII 文件来源可以是:

所有的输入文件都在磁盘上。

所有的输入文件都在磁带上。

模式文件在磁盘上,数据文件在磁带上。

使用该操作的用户对新创建的数据库具有DBA 特权。 dbimport 进程以封锁方式装入表,并在装入完成后释放锁。

1.4.2 使用说明

用户可以在shell 提示符下使用 dbimport --  得到简单提示。

语法如下:

dbimport  <database> [-X] [-c] [-q] [-d <dbspace>] [-l [{buffuered | <log-file>}][-ansi]][{ -i <dir> | -t <tapdev> [-b <blksz> -s <tapesz> ][-f <script-file>] }]

其中主要选项说明如下:

-c 指示dbimport  进程在没有发生致命错误的情况下完成装入工作。

-q 在标准输出设备上不显示错误信息和警告

database 指定要创建的数据库名

-b blksz 指定磁带设备块大小(单位:KB

-f script-file 指定磁盘上模式文件,以便dbimport 以其为输入创建数据库

-i dir 指定存储数据文件和模式文件的磁盘目录

-s tapesz 指定磁带所能存储的数据总量(单位:KB

-t tapedev 指定含有输入文件的磁带路径名

-ansi 创建与ANSI 相兼容的数据库

-d dbspace 命名用来生成数据库的数据空间

-l 为装入的数据库建立无缓冲事务日志登录

-l buffered 为装入的数据库建立有缓冲事务日志登录 

1.4.3 举例说明

例:

由磁带装入数据库,磁带每块大小为16KB ,磁带容量为 24 000KB 。模式文件在 /tmp/stores5.imp

可以使用如下命令:

dbimport stores5 – c – t /dev/rmt0 - b 16 - s 24000 –f /tmp/stores5.imp 

/usr/imformix/port  目录下的 stores5.exp  子目录中装入 stores5 数据库。假定模式文件为 /usr/imformix/port/stores5.exp/stores5.sql

可以使用如下命令:

dbimport stores5 – c - i /usr/imformix/port/stores5 .exp

例:

stores5  数据库由 /usr/informix/port/stores5.exp  目录下装入当前目录下。新建数据库为 ASNI 相容的数据库,其事务日志文件为 /usr/work/stores.lo

则可以使用如下命令:

dbimport stores5 – c - i /usr/informix/port/stores5.exp - ansi /usr/work/stores5.log

stores5 数据库由磁带装入名为 auckland 的数据库空间,并为其生成无缓冲式日志登录。不显示 SQL 语句的返回信息,且当发生致命错误时才发生致命错误才中止程序。

则可以使用如下命令:

dbimport stores5 -cq - d auckland -1 – t /dev/rmt0 – b - 16 – s 24000 

1.5 dbload

1.5.1 功能简述

dbload 应用程序的功能是将一至多个 ASCII 文件中的数据传送到一至多个已有的表中。

Dbload 应用程序装入数据时,索引会极大地影响装入速度。提高效率的做法是:在运行 dbload 装入数据之前删掉所有索引,完成之后再重建新的索引。

1.5.2 使用说明

用户可以在shell 提示符下使用 dbload --  得到简单提示。

语法如下:

dbload [-d dbname ] [-c cfilename] [-l logfile] [-e errnum] [-n nnum] [-i inum] [-s] [-p] [-r] [-k] [-X]

其中主要选项说明如下:

-d dbname 指定接收数据的数据库名

-c cfilename 指定指定dbload 命令文件的文件名

-l logfile 指定错误日志文件的文件名

-r 在装入数据期间允许其他用户修改表中数据(装入数据期间不封锁表)

-s 指示dbload  检查命令文件中语句的语法,而不插入数据

-i inum 指示dbload 忽略指定数目的行数

-n nnum 指示dbload 在插入指定数目的新行后提交操作

-e errnum 指定dbload  中止前可读入的坏行数

-p 如果坏行数超过了极限,给出提示信息,请用户指定解决方法

1.6 dbschema

1.6.1 功能简述

dbschema应用程序的功能是显示复制数据库或特定的表,视图,过程所需的 SQL 语句。

只有DBA 或对数据库具有 Connect 特权或 Resoure 特权的用户才能对该数据库运行 dbschema

1.6.2 使用说明

用户可以在shell 提示符下使用 dbschema --  得到简单提示。

语法如下:

dbschema [-t tabname] [-s user] [-p user] [-r rolename] [-f procname] [-hd tabname] 杁  dbname [-ss] [filename]

其中主要选项说明如下:

-t 指示表名

-d 指示所需数据库名

-s user 指示dbschema  显示由 user 所有的 CREATES SYNONYM 语句。

-p user 指示dbschema  输出为 user 授权的 GRANT 语句

-f procname 指定要dbschema  输出 SCREATE PROCEDURE 语句

1.6.3 举例说明

例:

dbschema  指定任选项 -s alice  ,执行结果如下:

CREATE SUNONYM "alice".cust FOR "alice".customer

1.7 oncheck

1.7.1 功能简述

oncheck 应用程序提供以下功能:

检查指定结构是否存在不一致性。

修复包含不一致性的索引结构。

显示结构信息。

oncheck 命令用于修复磁盘上损坏的索引和数据页,该命令也可用于检查并打印系统的数据结构。在使用 oncheck 时一定要当心,因为该命令的某些选项会对表加共享锁,例如: oncheck -pt

为防止对系统损坏,系统会对所有共享内存中的数据进行一致性检查。一旦发现数据页出现一致性错误或发现索引错误,系统将把问题和可能的解决方案(利用oncheck )写入消息日志文件,并返回 isam 错误代码 -105

如果发现一致性错误信息,用户应该立即关闭系统并按消息日志文件中的提示运行oncheck 。如果 oncheck 运行失败,则应尝试卸出表再重新装入;如果是索引的问题,则应先删除索引再重建之。如果所有这些步骤都失败了,只有根据原有的系统归档备份来恢复系统。

oncheck 仅能修复索引结构,在其他结构中发现不一致性,只能给出提示信息而不能自动修复。

任何用户都能执行检查任选项,但只有informix root 用户能够显示数据库的数据或启动索引修复,修复索引时, OnLine 必须处于静止方式。

1.7.2 使用说明

用户可以在shell 提示符下使用 oncheck --  得到简单提示。

语法如下:

oncheck [-clist] [-plist] [-qny][ { database:[:[owner.]table[ fragdbs|#index]] | TBLSpace number | Chunk number } { rowid| page number}]

其中各选项说明可以参看相关资料。

1.7.3 举例说明

oncheck  用于查看 extents 信息。

1.8 onload

1.8.1 功能简述

onload 应用程序用于在指定的 dbspace 中创建数据库或表,并从输入磁带装入数据,该输入磁带由 dbunload 应用程序创建。在装入数据期间可将一个 blobspace 中存储的 blob 移至另一个 blobspace 中去。

onload 所读入的磁带包含以磁盘页尺寸为单位的二进制数据。因此,接收数据的机器和用来生成磁带的机器必须具有相同的页尺寸。

1.8.2 使用说明

用户可以在shell  使用 onload --  得到简单提示。

语法如下:

onload [-l] [-t <tape device>] [-b <block size>] [-s <tape size>] [-d <Dbspace>] <database> [:[<ower>.]<table>][{-i <old index name> <new index name> }] [{ -fd old-Dbspace-name new-Dbspace-name}][{ -fi index-name old-Dbspace-name new-Dbsapce-name}]

主要选项说明如下:

-l 指定 onload 从环境变量 LTAPEDEV LTAPEBLK LTAPESIZE 中指定的参数为设备,大小,磁带大小,若使用了 -t -b -s 选项,则以 -t  朾 杝指定的参数为准。

-t 指定设备

-b 指定块大小

-s 指定磁带大小

-d 选项指定数据表将使用的数据空间

-i 选项将旧索引名转换成新索引名

-fd 选项将旧数据空间名转换成新数据空间名

1.9 onlog

1.9.1 功能简述

onlog应用程序的功能是显示 OnLine 逻辑日志文件的内容。如果想跟踪特定的事务或想看特定 onspace 的变动情况, onlog 的输出会非常有用。

1.9.2 使用说明

用户可以在shell 提示符下使用 onlog --  得到简单提示。

语法如下:

onlog [-l] [-q] [-b] [-d <tape device>] [-n <log file number>] [-u <user name>] [-t <TBLspace number>] [-x <transaction number>]

其中主要选项说明如下:

-l 尽可能多地显示每个日志文件的信息

-q 从不显示程序头

-d 从指定磁带设备中读入文件

-n 显示指定日志

-u 显示指定用户的日志

-t 显示指定表空间号日志

-x 显示指定事务号日志

1.10 onmode

1.10.1 功能简述

onmode 应用程序提高了以下功能:

改变 OnLine 的工作模式

强制生成检查点

立即改变该会话过程中 OnLine 共享内存的驻留空间

转换逻辑日志文件

撤销 OnLine  的数据库服务器进程

撤销 OnLine 的事务

只有注册为 root informix 的用户才能执行 onmode 

1.10.2 使用说明

用户可以在shell 提示符下使用 onmode --   得到简单提示。

语法如下:

onmode - abcDdFklMmnOpQRrSsuyZz

其中主要选项,根据其功能来说明如下:

改变工作模式

onmode  [-k]  [-m]  [-s]  [-u]

-k 转到离线( off-line )模式

-m 从静模式( quiescent )转到在线( on-line )模式

-s 从在线模式转到静模式,允许所有正进行的业务做完,但不允许新的连接

-u 从在线模式立即转到静模式,不等业务做完

设置检测点( checkpoint

onmode  -c

改变共享内存驻留

onmode  {-n|-r}

-n 立即停止共享内存的强制驻留

-r 立即开始共享内存的强制驻留

切换逻辑日志文件,切换到下一逻辑日志文件

onmode  -l

杀死数据库服务期(server  session

onmode  -z 服务期号

服务期号可由 onstat -n   命令获得。

杀死事务(transaction

onmode  -Z 事务地址

杀死一个分配在指定地址上的事务,地址 可由 onstat  -x  获得。

设置数据复制( data-replication )类型

onmode -d { standard|primary  数据服务名 |secondary  数据服务名 }

使用  -d  standard  选项,则切断数据复制模式,将当前数据库服务器转换成标准模式。

使用  -d  primary   选项,则试图连接指定的数据库服务器,若成功则将指定的数据库服务器设为基本服务器,且将数据复制开启(将基本数据库服务器置为 on-line ,将第二数据库服务器置为 read-only )。

使用  -d  secondary  选项,则试图连接指定的数据库服务器,若成功则将指定的数据库服务器设为第二服务器,且将数据复制开启。

增加共享内存

onmode  -a   段大小

段大小的单位为千字节

增加或删除虚拟处理器

onmode  -p  [+]  数字   {CPU|AIO|SHM|TLI|SOC}

 onmode  -p    -   数字 CPU

上一行为增加虚拟处理器,下一行为删除虚拟处理器,一次只能增加或删除一种类型的处理器。

改变决策支持( decision_support )参数

onmode  -D    优先级数

onmode  -M    千字节数

onmode  -Q    查询数

onmode  -S    搜索数

释放无用内存

onmode  -F

1.11 onparams

1.11.1 功能简述

onparams 应用程序用于增添或删除逻辑日志,或修改物理日志的大小与位置。

只有注册为root informix 的用户才能执行 onparams

1.11.2   使用说明

onparams { -a -dDbspace [-s size] | -d -1 logid [-y] | -p -s size [-d Dbspace][-y] }

其中主要参数说明如下:

-a 增加一个逻辑日志

-d 删除一个逻辑日志

-p 改变物理日志大小或位置

-y 对所有提示自动回答“ yes

1.12 onspaces

1.12.1 功能简述

onspaces 应用程序提供以下功能:

创建 blobspace dbspace

删除 blobspace dbspace

增加 chunk

修改 chunk 的状态

只有注册为 root informix 的用户才能执行 onspaces

1.12.2 使用说明

用户可以在 shell 提示符下使用  onspaces --  得到简单提示。

建立数据空间或临时数据空间

onspaces   -c -d   数据空间名   [-t]  -p  路径   -o  偏移  -s  大小

[ -m   路径    偏移 ]

t 选项指建立临时数据空间, 后的路径和偏移指镜相块的路径和偏移。

删除数据空间或临时数据空间

onspaces  -d  数据空间名

增加一个块

onspaces  -a   数据空间名   -p   路径名   -o  偏移   -s   大小  

[-m   路径    偏移 ]

删除一个块

onspaces  -d    数据空间名   -p   路径名   -o   偏移

开始镜像

onspaces  -m   数据空间名   [-p  路径  -o   偏移  -m  路径   偏移 |

 -f  文件名 ]

结束镜像

onspaces  -r  数据空间名

改变镜像块(mirrored chunk )状态

onspaces  -s  数据空间名   -p  路径   -o   偏移   { -D|-O}

改变一个镜像块的状态,-D 选项将其关闭( take down ), -O 选项将其重开( restore )并置于在线( on-line )状态。

设置DATASKIP 

onspaces -f  {OFF|ON}  {  数据空间表 }

DATASKIP 值设为  ON  OFF

1.12.3 举例说明

可以用如下命令创建数据空间:

onspaces -c -d datadbs1 -o 0 -p /dev/rrvol3 -s 60000

可以用如下方式创建临时数据空间:

onspaces -c -d tempdbs1 -t -o 0 -p /dev/rrvol5 -s 80000

1.13 onstat

1.13.1 功能简述

onstat 应用程序的功能是读取共享内存的结构,提供执行该命令那一瞬间的统计数据。在 onstat  显示输出的过程中,共享内存的内容可能会发生变化。执行该操作不封锁共享内存,因此不会影响操作运行。它是 informix 提供的一种交互式的系统监控工具。

1.13.2   使用说明

用户可以在shell 提示符下使用 onstat --  得到简单提示。

语法如下:

onstat [-abcdfghklmpstuxzBCDFRX][-i][-r seconds][-o file][infile]

其中主要选项说明如下:

-a 打印所有信息

-b 显示正在使用的缓冲区

-B 显示所有的缓冲区(不仅是正在使用的)

-c 显示ONCONFIG  文件内容,数据库首先检测你是否定义了环境变量 ONCONFIG ,若有则显示  $INFORMIX/etc/$ONCONFIG  文件的内容,若未定义,则显示 $INFORMIX/etc/onconfig 文件的内容,此文件包含了许多系统需要的定义和设置。

-C 显示B+ 树清除( B+ tree cleaner )情况

-d 显示每个数据空间(dbspace )的块( chunk )信息

-D 显示每个数据空间头50 个块的页( page )读写的情况

-F 显示每一种类型的写回磁盘(flush pages to disk )的统计数

-h 显示哈西链(hash chain )缓冲区信息

-i 进入onstat 的交互方式,可直接敲入 onstat 命令,使用 CTRL-d  退出交互方式

-k 显示活动锁(active lock )的信息

-l 显示物理日志和逻辑日志的信息

-m 显示20 个系统最近用到的系统信息日志

-o file 将当前共享内存段内容写入指定文件,缺省为 onstat.out

-p 显示各项统计数

-r seconds 按指定秒数定期执行本次onstat 命令,缺省为 5 秒,可用 CTRL-c DEL  键中止

-R 显示 LRU 队列, FLRU 队列, MLRU 队列的详细信息

-t 显示活动(active )的表空间( tblspace )信息

-u 显示用户情况

-x 显示事务(transaction )信息

-X 显示正在共享(sharing )和等待( waiting )缓冲区的线程( thread )的精确信息

-z 将所有的统计计数置0

1.14 ontape

1.14.1 功能简述

ontape应用程序提供以下功能:

申请逻辑日志 backup

启动逻辑日志文件连续 backup

创建 archive

执行数据重装

改变数据库日志登录状态

只有注册为 root informix 的用户才能执行 ontape

1.14.2 使用说明

用户可以在shell 提示符下使用 ontape --  的到简单提示。

语法如下:

ontape { -a | -c | -l | -p | -r [-D Dbspace-list] | -s [-L archive_level] [-A database_list] [-B database_list] [-N database_list] [-U database_list] }

根据功能分类说明如下:

改变日志记录( logging )的状态

ontape  [-s {-A|-B|-U}|-N ]  [ 数据库 ]

-s 选项初始化一个档案( archive

-A 选项将指定数据库状态设置为与  ANSI 兼容的日志记录方式

-B 选项将指定数据库状态设置为缓冲( buffer )的日志记录方式

-U 选项将指定数据库状态设置为非缓冲( unbuffer )的日志记录方式

-N 选项中止指定数据库的日志( logging

建立备份档案

首先说明备份级别,备份分为3 级,它们是:

备份所有有用的页

备份所有上次0 级备份后有变动的页

备份所有上次1 级备份后有变动的页

级备份是基础,它备份恢复数据恢复时需要的所有页,假设数据库数据遭到完全的破坏,它也能恢复备份时的全部数据,但时间较长。 1 级备份在 0 级的基础上,它备份的内容较少,但需要的时间较少, 2 级备份又次之。将三种备份结合起来能达到较好效果。下面是一个建议的备份时间表,可根据自己的情况建立备份时间表。

星期日 0级备份

星期二、四 1级备份

星期一、三、五、六 2级备份

在做备份前应做好以下事情:

a.  确保有足够的逻辑日志空间

b.  保留一份 ONCONFIG  文件的拷贝

c.  检验数据库一致性

d.  确保数据库在正确的状态下(在线模式或静模式)

e.  不做其他的管理事项

f.  不使用后台方式(background mode

g.  在磁带上贴好标签

开始一次备份:

       ontape  -s  [-L {0|1|2}]

       -L 选项指定备份级别

开始自动逻辑日志备份

ontape -a

本选项在一个逻辑日志文件满后自动备份

连续的逻辑日志备份

ontape  -c

本选项开始一次连续的逻辑日志备份,使用 CTRL-c  可中止

恢复备份数据

有时需要恢复备份的数据,恢复有三种方式,即冷恢复(cold restore )、热恢复(  warm restore )、混合恢复( mixed restore )。冷恢复在离线方式( off-line )恢复,热恢复在在线方式下( on-line )恢复,混合恢复则是先作冷恢复,再作热恢复。可以恢复全部数据,也可只恢复指定的数据空间:

ontape  -r  [-D [数据空间 ]]

1.15 onunload

1.15.1 功能简述

onunload 应用程序的功能是将数据库或表写到磁带上,该程序以二进制形式,以磁盘页为单位卸下数据,这种方式卸下的数据其效率高于 dbexport

读由onunload 创建的磁带使用 onload 应用程序。接收数据的机器和创建磁带的机器必须具有相同的页面大小。

只有具有数据库DBA 特权的用户才能卸下该数据库。只有表的属主或具有该表所在数据库的拥有 DBA 特权的用户才可以卸下该表。

卸下表时,只有与该表有关的数据页和索引页被卸下。为该表定义的存取权限和与表有关的同义词或视图未被卸到磁带上。

在卸下操作期间,onunload 以排他方式封锁新数据库或表。

1.15.2 使用说明

用户可以在 shell 提示符下使用  onunload --  得到简单提示。

语法如下:

onunload [-l] [-t <tape device>] [-b <block size>] [-s <tape size>] <database> [:[<owner>.]<table>]

其中主要选项说明如下:

-l 选项指定onunload  协出数据到变量  LTAPEDEV  LTAPEBLK  LTAPESIZE 中指定的参数为设备、块大小、磁带大小 , 若使用了  -t  -b, -s 选项,则以  -t  -b  -s  指定的为准

-t 指定设备

-b 指定块大小

-s 指定磁带大小

  

INFORMIX数据库服务器提供了在 shell 提示符下直接执行管理任务功能的应用程序。这些程序包括: Oninit, Dbexport, Dbimport, Dbload, Dbschema, Onckeck, Onload, Onlog, Onmode. Onparams, Onspaces, Onstat, Ontape. Onunload

习  题

4-1  如何在离线模式( off-line )即不运行状态下启动 INFORMIX 数据库?

4-2  如何关闭 INFORMIX 数据库,既由 on-line 模式转为 off-line 模式?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值