自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

因为吃过天津一家超好吃的八珍豆腐从而改名为八珍豆腐的博客

此八珍豆腐价位些高,异于传统做法,材料大都是肉,唯一的素是豆腐,菜至而豆腐埋在珍馐之下,本身是裹着薄面糊沁炸而成,油水未伤及半毫,嫩无豆腥,八珍本味极大的渗入,朵颐些许肉后,漏出的豆腐用瓷勺一蒯入口,肉入口乃为干硬,而豆腐则八味合一浸润裹挟着口腔,似曾相识

  • 博客(306)
  • 资源 (30)
  • 问答 (8)
  • 收藏
  • 关注

原创 Gbase 8s客户端与服务器的通信

Gbase 8s客户端与服务器的通信支持多种不同的方式:共享内存Shared memory、Stream pipe、TCP/IP(Socket、TLI)、IPX/SRX、DRDA。Gbase 8s完整的通信过程:客户端发起新连接请求,poll线程实时接收连接请求信息(服务名、用户名、密码等信息) 将新连接请求转交给listener线程处理 listener线程验证请求信息的有效性,如果有效,则为连接创建一个sqlexec线程 sqlexec线程直接与客户端进行通信已有连接通信...

2022-04-21 10:19:31 2571

原创 GBase8s ESQL/C 跨线程连接

如果多线程应用程序需要使用同一个连接, GBase8s ESQL/C应用程序必须管理连接。最简单的方式是将SET CONNECTION语句放到一个循环中。/* wait for connection: error -1802 indicates that the connection is in use */do{EXEC SQL SET CONNECTION :con_name;} while (SQLCODE == -1802)当SQLCODE不等于-1802,说明在..

2022-01-24 09:43:02 2940

原创 GBase 8s ESQLC创建线程安全的应用程序

GBase8s ESQL/C线程安全库GBase8s ESQL/C提供了静态和共享的线程安全库, 线程安全GBase ESQL/C应用程序中的每一个线程都可以拥有一个活跃的连接, 一个应用程序可以拥有多个线程。线程安全库中包含了线程安全函数。GBase ESQL/C支持POSIX线程库。在esql命令执行时, 提供-thread参数, esql将该参数传递给ESQL/C预处理器esqlc,根据-thread参数,esqlc生成线程安全的代码,确保多线程能够正常执行。ESQL/

2022-01-24 09:39:25 2443

原创 linux下 dpkg 如何强制安装

但是我试了并不奏效,依然报依赖错误,甚至我觉得得搞个apt-get 的本地源,直接装对吧,这个工具肯定可以帮忙把依赖一起装。话题回归,晚上散完步,回来想了想,还得是看看help 吧。对,就是这么简单的问题,起源于我刚刚想装几个deb包。听着su7发布会,我决定得写出来,以免其他人踩坑。就是非常易于理解,但是我网上搜都是第一个命令。因为本人不想看--help,于是就上网搜了。省流看最后那几行就行。

2024-03-28 19:44:08 567 2

原创 GBASE 8s下 让并发变得如鱼得水的锁[二]

的对象是一个数据页,当采用页级锁访问记录时,GBASE 8s会自动对访问的数据页进行加锁。封锁力度越大,如对整个数据库进行封锁,则将会对数据库中全部关系、记录进行封锁,系统。通常而言,在整个表或者表中的大部分数据需要更新时,使用表级锁的效率高。例如,一条记录上的锁只作用于该记录,一个关系上的锁作用于该关系中的所有记录。,或者进行一些管理事务(数据库重建、表重建),则为了获得较高的性能,可以采用。反之,封锁粒度越小,如对单个表或记录进行封锁,系统的。的能力要强一些,系统开销相对小一些,但是,系统的。

2023-08-07 15:20:34 211

原创 GBASE 8s下 让并发变得如鱼得水的锁[一]

数据库锁(++Database-Level Lock++)、表级锁(++Table-Level Lock++)、页级锁(++Page Lock++)、行级锁(++Row Lock++)以及索引(++Index Key++)等。可以把封锁看作是一种排队机制,将并行任务按照锁的先后顺序排队,把并行任务变成串行任务。GBASE 8s采用全局管理的封锁机制,在共享内存中分配一块内存集中标记锁的使用情况,在每个锁结构中保存锁的拥有者、锁定的对象、锁的类型。

2023-08-07 15:07:41 238

原创 Linux环境如何让git的push、pull、fetch等操作规避掉账号密码输入

你账号密码敲对了(手残党直接哭死了好吧,我还是那种领导在跟前我当场十指offline的体质)。3+的操作时常发生,一个人还好说只是耽搁了恰饭时间,要是领导在看你操作那可就是公开处刑了(悲)。为了保持主分支的代码一致性,一般大多会对本地的主分支进行更新操作(你要是直接在主分支改东西,请收下我的膝盖,就缺你这种勇士)。三次啊喂,名字长的譬如【bazhendoufu】恰巧密码当时又不懂事写的长了点,这简直是下班前的折磨。颜色一一对应,是在克隆代码的时候的操作,栽好树以后就能嘎嘎乘凉了。

2023-04-20 15:22:12 666 1

原创 Linux里如何修改git log最近一次commit的身份信息及邮箱

间隔不长,但产生的效果截然相反,眼睛里的高光消失,伴随着精神石化。屏幕上最新的你的改动,居然是XXX的名字!想着可以光明正大义正严词摸鱼到下班甚至周五,亦或是课程作业提前搞完不用操心这些东西,这是何等的快乐?构想起怎么把我的修改漂亮简洁的描述一下,然后!注:此操作只适合你commit了一次,多次我没试过,好像不行(主要是我也没干过那事)。让我猜猜,你刚刚写好了一个函数&功能,伴随着自信的。上去,这是我的宝贝代码,这比杀了我都难受(T ^ T)文件,里面你就看到那个刚刚悲伤的名字了,改了他!

2023-04-08 15:23:58 254

原创 GBASE 8s 赋予用户dbsecadm权限

grant dbsecadm to user [用户名];然后就可以使用安全标签的相关功能了。

2022-12-23 16:45:52 350

原创 GBASE 8s的load数据导入工具

Load是一种快速而简单的数据导入工具,但只支持特定的数据格式,通过固定字符(默认为“|”)的文本文件。其中delimiter定义分隔符,默认为“|”。另外,可以根据数据文件格式指定相应的字段信息。

2022-10-27 09:56:10 682

原创 GBASE 8s中的虚拟列

虚拟列是指使用表达式或函数进行定义的数据列。逻辑上,表的虚拟列与普通列具有相同的语法含 义,但虚拟列的值并不保存在任何物理存储介质上,而是在 SQL 的执行过程中,根据定义虚拟列 的表达式或函数进行计算而获得。向带虚拟列的表中插入数据 对虚拟列执行 INSERT 操作,需明确写出插入表的各字段名称。返回结果:报错误代码-981。

2022-10-27 09:50:45 230

原创 GBASE 8s中load&unload

load/unload 用于单表文本数据的装载和卸载,unload 导出表数据到指定文件, load 则将指定的文本文件数据插入到表。load 语句速度较快且较易于使用,但它只接受指定的数据格式。通常可将使 用 unload 语句准备好的数据用于 load。示例 1:导出表 test 的所有数据到 test.unl 文件。示例 2:将文本文件 test.unl 的数据导入到表。

2022-10-27 09:48:57 496

原创 GBASE 8s中dbschema 查看表结构

示例 1:导出库 testdb 的建库 SQL 语句到文本 testdb.sql。dbschema 工具输出创建表、视图或数据库所需的 SQL 语句。示例 2:导出 testdb 库中表 test 的建表语句。

2022-10-26 19:01:06 1200

原创 GBASE 8s中dbaccess 执行 sql

dbaccess 提供了用于输入、执行和调试结构化查询语言(SQL)语句与存储过程语言(SPL)例程的用户界面。

2022-10-26 18:59:35 866

原创 GBASE 8s中 onunload&onload

onunload导出库或库中单表到指定设备,默认导出到TAPEDEV指定的设备, 导出文件为二进制文件,不可跨版本或跨平台。onunload 和 onload 工具提供在相同平台上使用相同数据库服务器的计算机 之间移动数据的最快方法。示例 1:使用 onunload 导出表 test 到/data/test.dat。示例 2:使用 onload 导入表到 testdb,数据驻留于 datadbs。

2022-10-26 18:57:01 443

原创 GBASE 8s修改实例配置参数

GBASEDBTDIR/etc/$ONCONFIG 进行修改,并重启数据库后生效。对于不支持动态修改的参数,需要修改数据库配置文件。

2022-10-26 18:56:11 352

原创 GBASE 8s删除数据库

注意:无法删除当前有连接的活动数据库。

2022-10-26 18:53:23 490

原创 GBASE 8s启动数据库实例

使用 oninit -v 启动数据库实例:oninit -v最后为以下输出表示数据库已正常启动:

2022-10-26 18:52:12 596

原创 GBASE 8s关闭数据库实例

使用 onmode -ky 命令关闭数据库实例:onmode -ky使用 onstat -m 检查数据库日志出现以下输出,表示数据库已正常关闭:

2022-10-26 18:50:03 242

原创 GBASE 8s的外部表

对于一个普通的GBase 8s表,GBase 8s server负责其数据存储管理,有相应的DBSPACE、Chunk、extent、page等,可以创建相应的索引。然而,对于GBase 8s的外部表而言,其数据文件由操作系统管理,简单来讲外部表就是一个或者多个文件,GBase 8s数据库引擎提供对文件的SQL 接口访问。GBase 8s外部表具有多项功能。GBase 8s外部表的高性能数据导入、导出功能,可以应用在数据仓库ETL、应用数据采集、表重建、数据库迁移等业务场景中。

2022-10-26 17:51:38 140

原创 GBASE 8s的聚簇索引

对于数据的删除操作,可能导致在索引页中仅有一条记录,这时,该记录可能会被移至邻近的索引页中,原索引页将被回收,即所谓的“索引合并”。聚簇索引的数据按照顺序存放,对于查询一个范围值的SQL语句或者多个SQL语句,在需要查询相邻记录时,采用聚簇索引的I/O效率较高。由于聚簇索引要求表的记录按顺序存放,所以在插入、删除记录以及更新聚簇索引列的UPDATE操作时,需要进行数据的移动。聚簇索引也叫作聚集索引,创建有聚簇索引的表时,表中数据是按照聚簇索引的索引列顺序存储的。操作的表上创建聚簇索引。

2022-10-26 17:50:52 112

原创 GBASE 8s的分片表

GBase 8s的分片是用来处理数据量非常大的表和索引的技术。分片是GBase 8s数据库服务器提供的内部的一种把大表拆分为多个小表的管理方式,同时对外提供同一个表的管理方式,这样对表的访问者而言很透明。分片可以用将大表拆分为小表的方式进行管理,大大提高了GBase 8s的大数据量处理的性能。n 分片是指把一个表的数据分散到多个dbspaces中存储。n 在数据库内部,物理上把大表拆分为多个小表进行管理。n 在逻辑上对外提供一个表的访问接口。

2022-10-26 17:47:19 598

原创 GBASE 8s的onspaces工具

onspaces 功能可以创建dbspace或临时dbspace,命令选项如下所示。-o offset 初始chunk在设备中的偏移量,以KB计算。-p pathname 初始chunk所在的磁盘分区名或设备名。-d spacename 指定创建的新dbspace 的名称。-m pathname offset 镜像的路径名和偏移量。-s size 初始chunk的大小,以KB计算。-t 指定该dbspace为临时dbspace。-c 表明操作为创建dbspace。

2022-10-25 15:27:48 500

原创 GBASE 8s的DBSCHEMA工具

使用DBSCHEMA实用程序来显示分布和溢出信息。要显示为数据库中某个表所存储的分布信息,可使用–hd 选项加上该表的名称。如果指定了关键字ALL而不是表名,则显示数据库中所有表的分布信息。

2022-10-25 15:17:04 192

原创 GBASE 8s的DBLOAD数据导入工具

可以指定分批提交记录数,从而能有效处理大量数据的导入。它还会将导入失败的数据记录到指定文件中,帮助用户快速找到有问题的数据。tablename 定义导入的目的表;[(column) values]为可选项,f01 为文件的第一列,以此类推。“|”为分隔符号,这里为“|”,可以定义为其他的符号;拥有容错机制,可以用来重复导入数据,保持已有数据不变,只增加新增记录。-c 命令文件的名称(也叫作控制文件的名称)-i 从文件第几行开始,默认为第一行记录。-l 保存导入过程中失败的记录。-k 导入过程对表加排他锁。

2022-10-25 15:16:16 661

原创 GBASE 8s的DB_LOCALE环境变量的用途

(1)在客户机应用程序和数据库服务器之间交换字符数据时,如果DB_LOCALE环境变量(在客户机计算机上)的值与。),以确定如何在数据库的系统目录中存储字符信息。(4)在客户机应用程序尝试打开数据库时,数据库服务器将客户机应用程序传递的。(3)在确定如何设置服务器处理语言环境的数据库信息时,数据库服务器会使用。(5)当数据库服务器存取与语言环境相关的数据类型的列时,数据库服务器使用。(6)当数据库服务器创建新数据库时,它将检查数据库语言环境(环境变量的值与在数据库中存储的数据库语言环境进行比较。

2022-10-25 14:59:43 829

原创 GBASE 8s dbload 工具加载数据

以下示例将文本数据 test.unl 导入 test 表中,将 test1.unl 导入到 test1 表中, test 表列数为 2,test1 列数为 5。数据库名为 testdb,每次提交 10000 行,错误输 出到 err.log。dbload 工具将数据从一个或多个文本文件传送到一个或多个现有表中。dbload 工具使用灵活,但没有其他方法快,并且必须准备一个命令文件来控制输 入。dbload 的优势在于可分批提交需要导入的数据,从而避免长事务的发生。

2022-10-25 14:58:30 155

原创 GBASE 8s 正则表达式

z了解以上的正则需求后,我们就可以根据自己的需求来编写带有正则表达式的SQL语句。GBase 8s的正则表达式匹配与PHP、Perl这些脚本的类似。下表中的正则模式可应用于 REGEXP_LIKE 操作符中。{n,m} m 和 n 均为非负整数,其中n

2022-10-25 14:55:20 434

原创 GBASE 8s 时间/日期函数和操作符

返回经过表达式调整的日期时间值。返回表达式代表的日期时间值。返回当时日期的日期时间值。返回当时日期的日期时间值。返回表达式代表的间隔值。返回当前日期的日期值。

2022-10-25 14:14:15 434

原创 GBASE 8s 物理日志与检查点

(blocking checkpoints),它将阻塞(block)事务以使检查点完成,并避免物理日志溢出。在物理日志填充度达到 75% 时触发检查点。(transactions)持续生成物理日志数据而导致物理日志开始变得太满,那么数据库服务器执行。物理日志活动的速率可影响检查点性能。在检查点处理期间,如果因。

2022-10-25 14:08:04 101

原创 GBASE 8s并发事务

如果三个用户同时在储蓄系统中,同时进行他们各自的操作,即在储蓄系统的数据库中同时运行各自的事务,则这些事务就是在数据库中运行的并发事务,并发事务柏寒的操作就是并发操作。以银行系统为例,将一笔资金从银行的账号A转入银行账号B是一个操作序列(或操作集合),主要包括“由A转出X元”和“X元转入B”两个重要操作,这两个操作是不可分割的,否则,在“由A转出X元”操作之后,插入一个“账号B挂失的操作”这笔交易的资金将不知去向而造成数据丢失,并会由此引发很多问题。数据库管理系统用“事务”这个概念来描述这样的操作序列。

2022-10-25 14:06:48 275

原创 GBASE 8s IDS数据库系统中线程所包含的信息

在数据库服务器中运行着的某些线程需要访问名为RSAM的动态服务器层,该层用于处理磁盘I/O请求、索引管理、页面管理、缓冲区管理和数据复制。一些系统线程和全部的用户线程都需要RSAM线程控制块。进程中也有堆栈这一概念,但由于一个进程中运行着多个线程,因此每个线程也要有自己的堆栈。线程控制块包含有关线程的信息。数据库服务器中运行着的每个线程都有一个线程控制块。7、用户栈:线程执行的用户方法栈,用来保存线程当前执行的用户方法的信息。8、内核栈:线程执行的内核方法栈,用来保存线程当前执行的内核方法信息。

2022-10-25 14:04:38 352

原创 GBASE 8s ESQLC-数据类型-智能大对象-指针结构-ifx_lo_t

针对新的智能大对象,创建ifx_lo_t结构,并初始化,返回智能大对象文件描述符,用于操作智能大对象的数据。使用临时智能大对象,临时智能大对象是,创建成功,但是没有与数据库关联的智能大对象。, 是智能大对象的引用。语句不处理具体的智能大对象数据,数据库中的CLOB和BLOB列保存的是。程序打开智能大对象进行读写操作, 需要使用智能大对象的指针结构。将ifx_lo_t引用的智能大对象的数据拷贝到指定的文件中。将内存中用户定义的buffer中的数据,拷贝到智能大对象中。访问智能大对象,需要三种数据结构的配合。

2022-10-24 09:42:24 237

原创 GBASE 8s ESQLC-数据类型-智能大对象-文件描述符-fd

一个智能大对象文件描述符,类似于操作系统中的文件描述符。定位到智能大对象中指定的位置,并从该位置读取数据。创建并打开智能大对象,返回智能大对象文件描述符。定位到智能大对象指定的位置,并向该位置写入数据。关闭智能大对象,并释放智能大对象文件描述符。是一个整数,用来标识一个打开的智能大对象。打开智能大对象,返回智能大对象文件描述符。访问智能大对象,需要三种数据结构的配合。将操作系统中的文件内容拷贝到智能大对象。确定智能大对象的当前位置信息。定位到智能大对象指定的位置。截断智能大对象到指定的位置。

2022-10-24 09:40:42 119

原创 GBASE 8s ESQL/C的Ifx_lo_t 数据类型支持SQL数据类型BLOB和CLOB

预估的智能大对象的大小,单位为字节数,数据库服务器根据该值,来确定保存智能大对象需要的扩展(extents)数量。但是,意味着数据库服务器不能使用合适的扩展(extents)来保存智能大对象。理想情况下,分配扩展是一个扩展,包含所有的智能大对象的数据。中保存了创建时间的标记,该标记指示数据库服务器将适当的信息保存到智能大对象上。使用LO_LOG标记时,请确认系统日志足够大,能够保存智能大对象的变化信息。数据库服务器根据磁盘存储信息,更高效的保存智能大对象。预估的智能大对象的大小,单位为字节数。

2022-10-24 09:39:51 183

原创 GBASE 8s 物理日志信息显示

phybegin:物理日志开始位置,这里表示从第16个dbspace上的第53页开始。pages/io:写入页数除以写入次数,表示物理日志缓冲的效率。phypos:表示当前物理日志的位置,这里指向8971860页。buffer:缓冲区编号,P-1表示当前使用第一个缓冲区。physize:物理日志大小,这里是28275800页。phyused:已使用的物理日志页数。bufused:缓冲区已使用的页数。%used:物理日志已使用的百分比。bufsize:缓冲区总的页数。可通过onstat –l命令。

2022-09-27 14:47:21 314

原创 GBASE 8s 物理日志位置

数据库初始化磁盘空间的时候,物理日志放在root dbspace上,用户无法干预。为了提高性能,后续用户可以把物理日志挪到其他dbspace上,该dbspace最好和活动的表空间或者逻辑日志空间在不同的磁盘上。物理日志存储在dbspace空间中,而dbspace一般存储在磁盘上。PHYSFILE 物理日志大小参数,以KB 为单位。

2022-09-27 14:23:36 333

原创 GBASE 8s 物理日志缓冲区(Physical-log buffer)

物理日志缓冲区实际上是两个缓冲区。数据库服务器一次只使用两个物理日志缓冲区中的一个。此缓冲区是活动(或当前)物理日志缓冲区。在数据库服务器将当前物理日志缓冲区清空到磁盘之前,它把另一个缓冲区设为当前物理日志缓冲区并使用,以便该服务器可以在清空第一个缓冲区时继续写入。对于物理日志缓冲区的大小,默认值应为128Kb。使用小于 512 KB 的物理日志缓冲区只会影响性能,而不会影响事务完整性。数据库服务器使用物理日志缓冲区来容纳一些经过修改的数据库空间页的前映像(before-images)。

2022-09-27 14:18:48 1144

原创 GBASE 8s 添加逻辑日志文件

无论 DYNAMIC_LOGS 参数值为多少,您可以在当前日志文件后插入日志文件。添加新大小的日志文件不会更改 LOGSIZE 的值。• 当前逻辑日志文件之后(使用 onparams -a -i 命令)• 文件列表的末尾(使用 onparams -a 命令)1.可以使用 onparams 命令添加逻辑日志文件。

2022-09-27 14:18:05 445

原创 GBASE 8s 数据库存储规划

为了简化静态 表地管理,你可以将它们分离至一个专门的表空间中。而在最活跃的表中,则有更进一步的区分。一般来说,一个应用系统中的数据可以按其用途、使用层次等进行分类。同时对于不同类型的数据进行不同方式的管理。对于不同类型的表可以进行不同表空间的规划。我们需要根据应用系统的需求,创建大量的数据库表空间。一般来说,小的表往往作为相对静态的查找表。(这点和活动表与静态表的分离类似)可以把小表CATCH到缓存中,已提高性能。对于大多数应用系统来说,总是有一些比较经常被使用的表,这些表可以考虑从其他的表中分离出来。

2022-09-27 14:12:53 132

GBase 8s隔离级别

GBase 8s隔离级别

2021-12-30

GBase 8s并行操作产生的问题

GBase 8s并行操作产生的问题

2021-12-30

GBase 8s事务相关概念

GBase 8s事务相关概念

2021-12-30

Gbase 8s 数据库系统存储结构

Gbase 8s 数据库系统存储结构

2021-12-30

Gbase 8sdbaccess环境变量介绍

Gbase 8sdbaccess环境变量介绍

2021-12-30

Gbase 8sdbaccess工作模式介绍

Gbase 8sdbaccess工作模式介绍

2021-12-28

Gbase 8s运行模式介绍

Gbase 8s运行模式介绍

2021-12-28

Gbase 8s查询之连接查询

Gbase 8s查询之连接查询

2021-12-28

Gbase 8s查询之单表查询

Gbase 8s查询之单表查询

2021-12-28

Gbase 8s数据类型简介

Gbase 8s数据类型简介

2021-12-28

Gbase 8s内置函数之窗口函数

Gbase 8s内置函数之窗口函数

2021-12-28

Gbase 8s内置函数之聚合函数

Gbase 8s内置函数之聚合函数

2021-12-28

Gbase 8s内置函数之数学函数

Gbase 8s内置函数之数学函数

2021-12-28

Gbase 8s内置函数之其它函数

Gbase 8s内置函数之其它函数

2021-12-28

Gbase 8s内置函数之日期函数

Gbase 8s内置函数之日期函数

2021-12-28

Gbase 8s内置函数之字符串函数

Gbase 8s内置函数之字符串函数

2021-12-28

GBase8sMPP数据类型

GBase8sMPP数据类型

2021-12-25

GBase8sMPP数据分布策略

GBase8sMPP数据分布策略

2021-12-25

GBase8sMPP开发接口介绍

GBase8sMPP开发接口介绍

2021-12-25

GBase8sMPP单点事务处理

GBase8sMPP单点事务处理

2021-12-25

GBase8sMPP产品简介

GBase8sMPP产品简介

2021-12-25

GBase8sMPP产品架构

GBase8sMPP产品架构

2021-12-25

GBase 8s支持数据类型

GBase 8s支持数据类型

2021-12-25

GBase 8s同城双活高可用简介

GBase 8s同城双活高可用简介

2021-12-25

GBase 8s两地三中心高可用简介

GBase 8s两地三中心高可用简介

2021-12-25

GBase 8s产品性能

GBase 8s产品性能

2021-12-25

GBase 8s 高可用简介

GBase 8s 高可用简介

2021-12-25

GBase 8s 高可用集群适用方案对比

GBase 8s 高可用集群适用方案对比

2021-12-25

GBase 8s SSC集群简介

GBase 8s SSC集群简介

2021-12-25

GBase 8s HAC集群简介

GBase 8s HAC集群简介

2021-12-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除