信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 7200|回复: 31

Oracle数据库存储方式如何认识并应用好它呢

[复制链接]

1868

主题

1878

帖子

1万

积分

积分
10928
发表于 2017-9-7 19:52:28 | 显示全部楼层 |阅读模式

软件教程首图:

软件教程分类:Oracle基础教程 

软件图文教程视频教程分类:软件图文教程 

软件教程难易程度:软件初级教程 

软件教程发布日期:2017-09-07

软件教程关键字:Oracle数据库存储方式如何认识并应用好它呢

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件定制网站 网址:http://www.postbbs.com

软件教程详细描述
本帖最后由 群发软件 于 2017-9-7 19:58 编辑

一,表空间 tablespace
    系统表空间       一定要online
    辅助表空间
    回滚表空间       一定要online
    临时表空间
    应用表空间
    SELECT * FROM Database_Properties      记录db级的一些参数的缺省值
    如缺省表空间,缺省临时表空间,缺省表空间类型
    1,创建表空间:
    create tablespace ts datafile '/u1/oradata/a/ts.dbf' size 10M
    extent management local autoallocate    也可为unifom size 1M
    segment space management auto;      也可为manual
    创建临时表空间:
    create temporary tablespace mytemp tempfile '/u1/oradata/a/mytemp.dbf' size 10M
    extent management local uniform size 1M
    segment space management manual;
    临时表空间只可以用uniform size 和 manual
    设定表空间为DB的默认表空间
    alter database default tablespace ts
    设定某临时表空间为DB的默认表空间
    alter database temporary tablespace mytemp
    查 Database_Properties发现默认表空间改变
    2,临时表空间组 (10g新特性)
    用于解决同一用户多个会话表空间争用问题
    创建临时表空间组(添加组员):
    alter tablespace mytemp tablespace group g1;
    alter tablespace mytemp2 tablespace group g1;
    产生一个组后产生一个数据字典:SELECT * FROM Dba_Tablespace_Groups 可查
    将用户的临时表空间设置成该临时表空间组
    alter user scott temporary tablespace g1
    将DB默认的临时表空间设为该临时表空间
    alter database default temporary tablespace g1;
    将临时表空间成员从临时表空间组中删除
    alter tablespace mytemp tablespace group '';
    v$tempfile 和 dba_temp_files区别?
    v$tempfile 在控制文件中,mount状态可读。dba_temp_files在数据文件中
    设计这两个功能相近的数据字典是为了恢复方便
    3,辅助表空间,
    SELECT * FROM v$sysaux_occupants;  可查看辅助表空间有哪些工具
    二,数据块
    标准块:大小和db_block_size一样的块
    非标准块:大小和db_block_size不一样的块
    块的大小
    块小:每一块中的记录少,并发概率小,但是块比较多,查询速度慢
    块大:并发概率大,但是查询速度快
    若建表是块大小已经比较大了,事后发现并发量太大如和做?
    调整pct_free
    复合型:
    在内存中每个块的缓冲区大小show parameter cache_size可查
    若内存中默认cache_size 为8k有一个表的块大小是16k,则需要在内存中开辟一段空间,器
    cache_size为16k。所以 cache中既有8k的空间又有16k的空间,所以称为复合型
    alter system set db_32k_cache_size=20M    把32k的cache设置为20M大小
    可用dump oracle最底层剖析来分析
    三,对象管理
    1,表:
    分类:
    a,normal 对表
    b,分区表(方便维护,可以提高性能)
    c,索引组织表(IOT)
    d,簇表  会减少链接的代价:当需要两个表连接时会生成一个簇表,查询时减少链接代价
    表的属性:    SELECT * FROM Dba_Tables;
    logging :默认写日志,参照表空间的属性
    initextent:不指定默认和表空间一致
    pct_free
    pct_used
    ini_trans   事务槽的初始长度
    max_trans   事务槽的最大长度
    事务槽位于块头下面,当块中记录被修改了事务槽就记录一条,如事务槽最大长度为200
    那么当修改第201次记录且之前事务都没结束时会报错
    创建表时指定事务槽大小:
    create table aaa(a int) max_trans=3;
    rowid 逻辑地址:rowid是不存在任何块中,存在索引中
    前6位:对象ID(表或索引)     Dba_Objects
    7-9位:对象所在文件ID        Dba_Data_Files      v$datafile
    10-15位:数据块ID,针对数据文件的
    16-18位:块内行号
    SELECT dbms_rowid.rowid_object(ROWID) AS obj#,
    dbms_rowid.rowid_relative_fno(ROWID) AS file#,
    dbms_rowid.rowid_block_number(ROWID) AS block#,
    dbms_rowid.rowid_row_number(ROWID) AS row#
    FROM scott.dept;
    查dept表中所有记录的rowid
    rowid 如何映射到块内的行的?
    通过查询索引,查到要查信息的rowid。通过rowid的信息查找到块以及块内的行号,若块中那
    行记录曾经alter并且新记录没有记录在原来的部位,则原来的部位会记录一个偏移量,从而找到该
    记录的新位置
    消除碎片的方法:
    (1)move   (8i,9i)
    alter table ts move TBSNAME;
    show parameter user_segment 可查
    注意:move时全表锁,做完后重建索引
    (2)shink  (10g新特性)
    原理:先排序后释放空间
    要先让表有行移动的功能:
    alter table test1 enable row movement
    排序:
    alter table test1 shink space compact
    释放空间:
    alter table test1 shink space
    shink过程不会引发行级触发器,但索引要重建
    (3)exp imp  备份恢复技术
    面试题:如何清空一个大表?
    若delete from  要写日志
    若truncate 只在数据字典中标记,并不删除数据释放区间;
    所以要删除一个大表应该先回落HWL在系统空闲的时候在释放空间:
    所以先truncate
    然后系统空闲时 alter table scott.tab1 deallocate unused keep 100m  释放到还剩100m
    alter table scott.tab1 deallocate unused keep 0m    完全释放
    建表时设定不记录日志:
    create table scott.tab as select * from dba.objects nologging;
    删除表并释放空间:
    truncate table scott.tab1 reuse storage
    2,索引:
    在无索引的情况下:要查找empno=7369的人的name时,要全表扫描,即使找到一个还是要继
   dPIAAAAAAAAA&bo=KwJeAQAAAAADEEM!.jpg
  其实,我前面一篇讲表空间的时候就介绍了数据库的结构,只是那个图只是简单的层次关系,这张图片看上去挺封复杂的,只要关注几个概念就行了。
Database(数据库) :数据库是按照数据结构来组织、存储和管理数据的仓库。
Tablespaces(表空间) :表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的对象是表, 所以称作表空间。
Segments (段): 段是表空间的重要组织结构,段是指占用数据文件空间的通称,或数据库对象使用的空间的集合;段可以有表段、索引段、回滚段、临时段和高速缓存段等。
extents (盘区):是数据库存储空间分配的一个逻辑单位,它由连续数据块所组成。第一个段是由一个或多个盘区组成。当一段中间所有空间已完全使用,oracle为该段分配一个新的范围。
Data Block (数据块):是oralce 管理数据文件中存储空间的单位,为数据库使用的I/O的最小单位,其大小可不同于操作系统的标准I/O块大小。

(Storage Clause Precedence)存储规范优先

dPIAAAAAAAAA&bo=fwEbAQAAAAADEFE!.jpg
  Oracle 在存储控制上可以分为三个方式。oracle缺省级别、表空间级别、段级别,可以理解中央、省级、县级。从中央到地方的法规条例。比如为了发展经济,对于招商引资的规范。中央规定可以实行招商引资,某省比较穷,为了吸引投资商,规定降低企业所得税。某县为了吸引资源,可以规定对于投资商土地免费使用5年,不征收土地使用税。那么某投资商来本县后首先适用县级规定。
具体规定:
1、不管你在哪个层面上修改存储方式,修改的参数是对未来要分配的存储extents (盘区)起作用。
2、一些参数只能在指定的级别上进行修改。有些参数只能表空间级别设置,有些参数只能在段级别设置。


Types of segments (段的类型)                                                                        

  因为关于表空间的一些基本知识我在另一节里做过专门介绍,这里我们认识一下段都有哪些常见类型。
dPIAAAAAAAAA&bo=VAEYAQAAAAADEHk!.jpg
Table :
  对于一个只有几百条几千条数据,一个学校的学生成绩表,那么一张表就是一个segments 。
Table partition :
  如果一张表非常大,里面存储了几千万条、上亿条记录,那么对这一张表进行操作,效率就非常低了。分区表是将大表的数据分成称为分区的许多小的子集。假如一张表是存放中国13亿人口信息的表,那么这么多条记录是有规律的,可以基于某一个字段将其分开。那么可以根据省级行政区可以划分34个分区,每个分区实际上就是一个独立的表,但在逻辑上这些分区又同属于一张表。
如果一张表是普通的表,只点一个segments;如果一张表是partition的表,可能占多个segments。
Cluster :
  Oracle中普通的表称为堆表(heap table),堆表中的数据是无序存放的,往往在使用一段时间后,数据就变得非常无序。如下图所示,索引中相同的key对应的数据存放在不同的block中,这时,如果要通过索引查询某个key的数据,就需要访问很多不同的block,代价非常高。
我们发现很多表与表,他们的数据有相关性,因为我们访问一个表里的数据,往往要访问另一些表里的数据。我们可以把这些数据物理上存储在一块。
Index
索引是与表和聚集相关的一种选择结构,就当于我们一本书的目录,可以快快速的定位某章某节的页数。索引可以建立在一个表的一列或多列上,那就可以大大提高对表的查询。那么一个index也可能会占一个多个segments 。

dPIAAAAAAAAA&bo=RAEZAQAAAAADEGg!.jpg
Index-organized table :
  索引组织表(IOT),就是存储在一个索引结果中的表。存储在堆中的表是无组织的(也就是说,只要有可用的空间,数据可放在任何地方),IOT中 暗则按主键存储和排序。对你的应用来说,IOT表和一个“常规”表并无差别。使用堆组织表时,我们必须为表和表主键上的索引分别留出空间。而IOT不存在主键的空间开销,因为所引就是数据,数据就是所引。
  IOT带来的好处不仅节约磁盘空间的占用,更重要的是大幅度降低了I/O,减少了访问缓冲区缓存(尽管从缓冲区缓存获取数据比硬盘要快得多,但缓冲区缓存并不是免费,而且也绝不是廉价的。第个缓冲区缓存获取都需要缓冲区缓存的多个闩,而闩是串行化设备,会限制应用的扩展能力)
Index partition
      对于table有partition ,那么对一个大的index有也partition 。
  分区所引可以分为全局分区索引与本地分区索引,其中本地索引又可以分为本地前缀索引和本地非前缀索引。
本地索引的分区和其对应的表分区数量相等,因此每个表分区都对应着相应的索引分区。使用本地索引,不需要指定分区范围因为索引对于表而言是本地的,当本地索引创建时,Oracle会自动为表中的每个分区创建独立的索引分区。
全局索引以整个表的数据为对象建立索引,索引分区中的索引条目既可能是基于相同的键值但是来自不同的分区,也可能是多个不同键值的组合。 全局索引既允许索引分区的键值和表分区键值相同,也可以不相同。全局索引和表之间没有直接的联系,这一点和本地索引不同。
Undo segment
回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。
Temporary segment   
当Oracle处理一个查询时,经常需要为SQL语句的解析与执行的中间结果(intermediate stage)准备临时空间。Oracle会自动地分配被称为临时段(temporary segment)的磁盘空间。例如,Oracle在进行排序操作时就需要使用临时段。当排序操作可以在内存中执行,或Oracle设法利用索引就执行时,就不必创建临时段。
dGsBAAAAAAAA&bo=OAEKAQAAAAADEAc!.jpg
LOB segment
Large  object (LOB) 大大的对象,我们知道数据库不但可以存数据,有些可以存储视频声音图片等文件,对于这种类型的文件一个大小几MB,几十MB很正常。当然,有些数据库是不支持LOB数据块的,可以在表里存一个指针,来指向某个文件下的视频声音文件。
Nested table
嵌套表,表中表,和LOB思想很类似,就是在表里存一个指针,指针指向另外一张表。
Bootstrap segment
关于引导段,暂时没找到相关解释。^_^


Extent alloc & dealloc(盘区分配与释放)                        

  盘区是段下面的一个存储单位,一个盘区在物理上是一段连续的数据块。

dGoBAAAAAAAA&bo=*gFCAQAAAAADEIk!.jpg
一个数据文件有一个文件头,点用了若干个数据块,这这个文件头里记录着盘区的分配与释放的信息。在这个文件中有些盘区是被使用的,有些盘区是空闲的。
什么时候创建盘区:
创建
扩展
改变(改大)
什么时候释放盘区:
删除
改变(改小)


Database Block(数据库块)                                    

最小单位的输入/输出
数据块由操作系统中的一个或多个块组成
数据块是表空间的基本单位
DB_BLOCK_SIZE 文件来表示缺省块的大小

查看oracle 块的大小:
[ora10@localhost dbs]$ strings spfileora10.ora | grep -i db_block*.db_block_size=8192  (8KB)

  在早期的数据库中,oracle只支持一种数据块的大小。从9i版本支持了改变大小的设置。但也不是任用户随便改动的,规定范围在2KB到32KB之间,必须是倍数增加的,也就是2KB\4KB\8KB\16KB\32KB 五种大小。
  需要注意的是,块大小的设置是在数据库创建时候设置的,一旦设置好是不可更改的。类似于我们磁盘的存储格式,FAT16、FAT32、NTFS.... ,要想改变存储格式只能数数据全部格式化掉。
dNAAAAAAAAAA&bo=mwE.jpg

Hearder : 块头记录一些控制信息,帮助oracle定位这个块,块与块之间的串联信息。
Free space :处于重现状态的这空间。
Data :已经写入数据的空间。数据存放数据的方式是自底往上的,就像现实中的一个箱子。

Orcale 是如何管理数据的存储的                                    

High-Water Mark
dGsBAAAAAAAA&bo=fwGKAQAAAAADEMA!.jpg
对一一个新建立的表,表中包含很多数据块,water mark 原始指向表中的第一个数据块。
water mark随着插入的数据“向前”移动。当把插入的数据删除掉一些,water mark 并不会“向后”移动。也就是water mark 的位置表示历史的最高水位。

那么我们要想插入一些数据时,oralce是按什么样的规则输选择插入位置呢?

dD8BAAAAAAAA&bo=VAGjAAAAAAADEMM!.jpg
  首先会先查找灰色的,灰色部分表示就已经插入数据的块,但这些块并不是已经被完全占满了,有些或多或少的都会留下一些空间,关于留空间的规则,后面细说。如果插入一个很小的数据,灰色被占的数据块中可以完全插入的,就会被插在这一部分。
  如果数据比较大,查找了所有被占用块都无法插入,那么将会选择“曾经”插入过数据的空白块进行插入,也就是上图浅灰色部分。
  如果数据非常大,曾经插入数据的空白块都无法插入,那么只好动用从未被插入过数据的空白块进行插入。当然water mark 也就会“向前”移动。

OK下面就来具体分析,每个数据块,是否允许插入数据的规则。

dD8BAAAAAAAA&bo=KwKhAQAAAAADIIw!.jpg
  块头(数据块的头)不在百分比的范围内,当剩余空间大于20%的时候,那这个块就是纳入freelist中,当我要插入一条数据时,freelist是会扫描这个块的,检查其它是否可以存放要插入的数据。当小于20%的这间时,说明这个块已经满了,会从freelist中去掉,插入数据时不作为扫描的对象。
  一个小于20%空闲的块会从freelist上摘除,那么一个块在什么情况下会被重新挂到freelist上呢?对于一个已经从freelist上摘除的块,可以能由于删除更新操作,其空间会得到释放,当占用空间小于40%时,也就是空闲空间大于60%时,这个块被有认为是空间的块又会被重现挂到freelist上。


  从逻辑上讲,数据存储在段(通常是表)中;从物理上讲,数据存储在数据文件(datafile)中。表空间(tablespace)实体是二者的象,一个表空间可能包含多个段,并由多个数据文件组成。段和数据文件没有直接关系。数据文件可以作为文件系统中的文件存在,从10 g版本开始,也可以作为自动存储管理(Automatic Storage  Management,ASM)设备上的文件存在。
  www.2cto.com  
一、Oracle数据存储模型

  将逻辑存储与物理存储分开是关系数据库范例的必要部分。关系数据库范例表明:编程人员只处理逻辑结构,而让数据库去管理到物理结构的映射。这意味着,可以重新组织物理存储,也可以将整个数据库移动到完全不同的硬件和操作系统上,而应用程序意识不到任何更改。
  如下图展示Oracle存储模型,逻辑结构在左,物理结构在右。
  www.2cto.com   20130304100524850.jpg


1、Oracle数据库逻辑结构
(1)DATABASE:一个数据库可划分为多个称为表空间的逻辑存储单元。

(2)TABLESPACE:只能属一个数据库,包括一个或多个文件。

(3)SEGMENT:存在于表空间中,包含一个或多个区。
包括:表段、表分区段、索引段、索引分区段、临时段、撤销段、BLOB、CLOB
  高水位
    PCTFREE和PCTUSED
  行迁移和行链接
  INITRANS和MAXTRANS

(4)EXTENT:由相邻的数据块的组成,这意味着每个区只能存在于一个数据文件中。

(5)BLOCK:是数据库中最小的I/O单元,db_block_size


2、Oracle数据库物理结构
(1)、OS文件
  A、仅属于一个表空间
  B、是构成表空间的基础文件

(2)、OS块
  A、tune2fs -l /dev/sda1
  B、扇区:512字节 操作系统一次IO的大小

3、表空间、表、区、块及文件号的关系由视图dba_extents展显出来
gyj@OCM> create tablespace tp1 datafile'/u01/app/oracle/oradata/ocm/tp1.dbf' size 100M,'/u01/app/oracle/oradata/ocm/tp2.dbf' size 100M EXTENT MANAGEMENT LOCAL UNIFORMSIZE  1M;
gyj@OCM> alter user gyj defaulttablespace tp1;
gyj@OCM> conn gyj/gyj
gyj@OCM> create table t10 (id int,namevarchar2(100));
gyj@OCM> begin
2  for i in 1 .. 200000 loop
3  insert into t10values(i,'gyj'||i);
4  commit;
5  end loop;
6  end;
7  /
gyj@OCM> col tablespace_name for a10
gyj@OCM> col segment_name for a10
gyj@OCM> selecttablespace_name,segment_name,extent_id,file_id,block_id,bytes,blocks fromdba_extents where segment_name='T10' order by extent_id;

TABLESPACE SEGMENT_NA  EXTENT_ID FILE_ID  BLOCK_ID  BYTES BLOCKS
---------- ---------- ---------- -------------------- ---------- ----------
TP1 T10  0  6  128 1048576  128
TP1 T10  1  7  128 1048576  128
TP1 T10  2  6  256 1048576  128
TP1 T10  3  7  256 1048576  128
TP1 T10  4 6 384  1048576  128

二、表空间类型
1、普通表空间:系统表空间与非系统表空间

2、临时表空间

3、回滚表空间

三、创建空间
CREATE TABLESPACE TP25 DATAFILE'/u01/app/oracle/oradata/ocp/tp2501.dbf' SIZE 50M,
'/u01/app/oracle/oradata/ocp/tp2502.dbf' size50M
AUTOEXTEND ON next 10M MAXSIZE 2G,
'/u01/app/oracle/oradata/ocp/tp2503.dbf' size50M
--EXTENT MANAGEMENT DICTIONARY
AUTOEXTEND ON next 10M MAXSIZE 2G
EXTENT MANAGEMENT LOCAL UNIFORM SIZE  2M
SEGMENT SPACE MANAGEMENT AUTO;

CREATE TABLESPACE TP21 DATAFILE'/u01/app/oracle/oradata/ocp/tp2501.dbf' SIZE 50M
EXTENT MANAGEMENT DICTIONARY;

create tablespace tp22 datafile'/u01/app/oracle/oradata/ocp/tp22_1.dbf' size10M,'/u01/app/oracle/oradata/ocp/tp22_2.dbf' size 10M EXTENT MANAGEMENT LOCAL;

四、删除表空间
1.删除没有对象的表空间
drop tablespace tp1;

2、删除有对象的表空间,但不删除物理文件
drop tablespace tp1 including contents;

3、删除有对象的表空间和删除物理文件
drop tablespace tp20 including contents and datafiles cascadeconstraints;

五、管理表空间中的空间
1、区管理方式(8i的默认空间管理是DMT,9I的默认空间管理是LMT)
  (1)数据字典管理
   SYS.UET$    ――具有描述已用的区的行
   SYS.FET$    ――具有描述可用区的行

  (2)本地管理
  a.统一
   b.自动
    alter system dump datafile 5 block 2;
   alter system dump datafile 5 block 3;

   (3)本地管理表空间的优势
    a.不需要执行递归空间管理操作
    b.不记录数据字典表中的的空闲空间,可以减少争用
    c.可自动跟踪相邻的空闲空间无需合并空闲空间
    d.系统自动确定本地管理区的大小
    e.对区位图进行更改不会生成还原信息,国为这些更改并不更新数据字典中的表(表空间限额信息等特殊情况除外)

  (4)可以使用下面的PL/SQL程序,将任何字典管理的表空间转换成为本地管理:
    Executedbms_space_admin.tablespace_migrage_to_local(‘tablespacename’);

2、段管理方式
  (1)SSM:自动管理方式(BMB段:BitmapManagedSegments),使用位图管理段中的数据块空闲空间,大并发量。

  (2)MSSM:手工管理方式(FreeList),使用空闲列表来管理段中的数据块空闲空间,串行操作容易引起段头的争用。
--dump段头信息

(3)OMF(OracleManaged Files)管理
  ①设置参数
   DB_CREATE_FILE_DEST
   DB_CREATE_ONLINE_LOG_DEST_n
   DB_RECOVERY_FILE_DEST
  ②创建表空间
  ALTERSYSTEM SET DB_CREATE_FILE_DEST = '/u01/oradata';
   CREATETABLESPACE tbs_1;

六、临时表空间
1、数据库默认的临时表空间
sys@OCM> select * fromdatabase_properties where property_name='DEFAULT_TEMP_TABLESPACE';
sys@OCM> alter databasedefault temporary tablespace temp1;

2、创建临时表空间或临时表空间组
(1)创建临时表空间
 CREATE TEMPORARY TABLESPACE temp1 TEMPFILE'/u01/app/oracle/oradata/ocp/temp1.dbf' SIZE 10m;

(2)创建临时表空间组
 CREATE TEMPORARY TABLESPACE temp1 TEMPFILE'/u01/app/oracle/oradata/ocp/temp1.dbf' SIZE 10M TABLESPACE GROUP group1;
CREATE TEMPORARY TABLESPACE temp2 TEMPFILE'/u01/app/oracle/oradata/ocp/temp2.dbf' SIZE 10M TABLESPACE GROUP group1;

3、收缩临时表空间和临时文件
(1)方法一收缩临时表空间
  gyj@OCM>  alter tablespace TEMP shrink space keep 10M;

 Tablespace altered.

(2)方法三收缩临时表空间的某个文件
sys@OCM>alter tablespace temp shrink tempfile'/u01/app/oracle/oradata/ocm/temp01.dbf' keep 10M;

Tablespace altered.

(3)方法三重新定义临时文件的大小
gyj@OCM> alter database tempfile'/u01/app/oracle/oradata/ocm/temp01.dbf' resize 100M;

Database altered.

3、删除临时表空间
(1)查临时表空间
sys@OCM> selecttablespace_name,file_name,bytes/1024/1024 file_size,autoextensible fromdba_temp_files;

TABLESPACE_NAME  FILE_NAME FILE_SIZE AUT
-------------------------------------------------------------------------------- ---------- ---
TEMP  /u01/app/oracle/oradata/ocm/temp01.dbf  10.9921875 YES

(2)彻底删除临时表空间 
sys@OCM> drop tablespace temp includingcontents and datafiles cascade constraints;

(3)删除临时表空间某个文件
sys@OCM>alter database tempfile'/u01/app/oracle/oradata/orcl/temp02.dbf' drop;-

七、监控表空间
gyj@OCM> set line 200 pagesize 9999
gyj@OCM> select b.tablespace_name,round(sum(b.bytes)/1024/1024,0) sum_MB,round(sum(nvl(a.bytes,0))/1024/1024,0)
2  free_MB,round((sum(b.bytes)-sum(nvl(a.bytes,0)))/sum(b.bytes),4)*100use_precent
3  from (selecttablespace_name,file_id,sum(bytes) bytes from dba_free_space group bytablespace_name,file_id ) a,dba_data_files b
4  where a.file_id(+)=b.file_idand a.tablespace_name(+)=b.tablespace_name
5  group by b.tablespace_name;
order by use_precent;

TABLESPACE  SUM_MB FREE_MB  USE_PRECENT
---------- -----------  ---------------  ---------------------
TP1  200  193  3.5
UNDOTBS1 145  18  87.84
SYSAUX  520  29  94.45
USERS  5  1  81.25
SYSTEM  680  4  99.39
EXAMPLE  100  21  78.75

八、扩大数据库的方式
1、创建新表空间

 2、在表空间添加文件
 sys@OCM> alter tablespace tp1 add datafile'/u01/app/oracle/oradata/ocm/tp3.dbf' size 10M;

 Tablespace altered

 3、增加文件大小
  sys@OCM> alter database datafile'/u01/app/oracle/oradata/ocm/tp3.dbf' resize 20M;

  Database altered.
  www.2cto.com  
  4、动态扩展数据文件
  (1)查数据文件的自动扩展
  sys@OCM> col file_name for a50;
  sys@OCM> select file_name,autoextensiblefrom dba_data_files;

  FILE_NAME  AUT
  -----------------------------------------------------
  /u01/app/oracle/oradata/ocm/users01.dbf  YES
  /u01/app/oracle/oradata/ocm/undotbs01.dbf  YES
  /u01/app/oracle/oradata/ocm/sysaux01.dbf  YES
  /u01/app/oracle/oradata/ocm/system01.dbf  YES
  /u01/app/oracle/oradata/ocm/example01.dbf  YES
  /u01/app/oracle/oradata/ocm/tp1.dbf NO
  /u01/app/oracle/oradata/ocm/tp2.dbf  NO
  /u01/app/oracle/oradata/ocm/tp3.dbf  NO

  (2)把tp3.dbf文件改成自动扩展
   sys@OCM> alter database datafile'/u01/app/oracle/oradata/ocm/tp3.dbf'autoextend on next 2M maxsize 2048M;

   Database altered.

  (3)再次确认tp3.dbf文件是否自动扩展
   sys@OCM> select file_name,autoextensiblefrom dba_data_files;

   FILE_NAME  AUT
   -----------------------------------------------------
 /u01/app/oracle/oradata/ocm/users01.dbf  YES
 /u01/app/oracle/oradata/ocm/undotbs01.dbf  YES
 /u01/app/oracle/oradata/ocm/sysaux01.dbf  YES
 /u01/app/oracle/oradata/ocm/system01.dbf  YES
 /u01/app/oracle/oradata/ocm/example01.dbf  YES
 /u01/app/oracle/oradata/ocm/tp1.dbf  NO
 /u01/app/oracle/oradata/ocm/tp2.dbf  NO
 /u01/app/oracle/oradata/ocm/tp3.dbf  YES


回复

使用道具 举报

0

主题

632

帖子

630

积分

积分
630
发表于 2017-9-8 12:43:00 | 显示全部楼层
。几天就做好了。很满意!

回复 支持 反对

使用道具 举报

1

主题

608

帖子

594

积分

积分
594
发表于 2017-9-9 11:15:45 | 显示全部楼层
效,沟通愉快!不错的店家!!!

回复 支持 反对

使用道具 举报

0

主题

604

帖子

608

积分

积分
608
发表于 2017-9-9 12:24:15 | 显示全部楼层
,虽然不是我想要的效果,但是也在努力去做了。

回复 支持 反对

使用道具 举报

1

主题

2204

帖子

565

积分

积分
565
发表于 2017-9-9 12:28:15 | 显示全部楼层
的很满意,装修完后跟文案沟通,态度非常好,积极帮我做修改,很满意

回复 支持 反对

使用道具 举报

0

主题

660

帖子

654

积分

积分
654
发表于 2017-9-11 04:17:28 | 显示全部楼层
心,服务态度非常好,很亲切,很有耐心,不管是什么问题,都能耐心解答,这样的客服必须表扬一下!价格也合理,期待后面也能顺利,我觉得这个还不错

回复 支持 反对

使用道具 举报

0

主题

605

帖子

589

积分

积分
589
发表于 2017-9-11 23:40:34 | 显示全部楼层
使用了,很好很稳定!客服和技术人员服务耐心细致,赞一个!这个价格也特别实在,性价比很高

回复 支持 反对

使用道具 举报

0

主题

612

帖子

602

积分

积分
602
发表于 2017-9-15 03:26:43 | 显示全部楼层
,服务亲切,客服指导很有耐心。设计很漂亮,很贴切,值得推荐啦!

回复 支持 反对

使用道具 举报

0

主题

602

帖子

594

积分

积分
594
发表于 2017-9-15 18:38:51 | 显示全部楼层
都说颜值很重要,开始我还不太相信,等到店铺装修好了,看到的那一刻,觉得确实大气不一般,整体的风格和感觉都是我想要的,希望生意越来越好

回复 支持 反对

使用道具 举报

0

主题

601

帖子

582

积分

积分
582
发表于 2017-9-16 23:59:10 | 显示全部楼层
支持支持

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
信息发布软件AIWROK软件找图区分页面变化和卡死状态
AIWROK软件找图区分页面变化和卡死状态
信息发布软件AIWROK苹果系统Map 数据管理[map]小结
AIWROK苹果系统Map 数据管理[map]小结 方法一:add(添加键值对)[/backcolor]方法二:delete(删除指定键值对)[/backcolor]方法三:clear(清空所有键值对)[/backcolor]方法四:get(根据键获取值)[/backcolor]方法五:getAllValue(获取所有值)[/backcolor]方法六:toString(转换为字符串)[/backcolor]完整示例:
信息发布软件AIWROK软件用图找图示例templateMat方法
AIWROK软件用图找图示例templateMat方法
信息发布软件苹果JS代码运行时[selfRunTime]小结
苹果JS代码运行时[selfRunTime]小结 方法一:stop 停止运行[/backcolor]方法二:runOnUIThread ui 线程中运行函数[/backcolor]
信息发布软件苹果系统专用H5创建一个绿色文件
苹果系统专用H5创建一个绿色文件
信息发布软件AIWROK软件技术分享苹果IOS系统获取外部IP
AIWROK软件技术分享苹果IOS系统获取外部IP
信息发布软件AIWROK软件安卓总结图像视觉处理[opencv]方法
AIWROK软件安卓总结图像视觉处理[opencv]方法 方法1:getcolorNum:获取区域颜色数量 方法2:gradientProcessing:计算梯度 方法3:invertColor:颜色翻转 方法4:openImg:开运算 方法5:removeSmallObjects:去杂点 方法7:shapeSplit:分隔提取 方法8:shapeSplitEx:cv 文件分隔提取 方法9:templateMatch:模板匹配 方法10:threshold:二值化 方法11:toGray:转灰度图 方法12:
信息发布软件AIWROK软件start.js简单H5直接调用
信息发布软件AIWROK苹果系统简单的UI界面分享一下
信息发布软件图像视觉处理[opencv]小结3
图像视觉处理[opencv]小结3 方法1:findImageOneSift:找图(SIFT 算法) 方法2:findImagesEx:cv 文件找图 方法3:findMultiColor:找色 方法4:findMultiColorEx:cv 文件多点找色 方法5:gaussianBlur:高斯滤波 方法6:getAllShap:获取所有 Shape 方法7:getContours:获取轮廓图
信息发布软件AIWROK软件图像视觉处理[opencv]小结2
AIWROK软件图像视觉处理[opencv]小结2 方法 1:coverageArea:图片抹除方法2:dilateImage:图像膨胀 方法3:drawRect:Shape 绘制 方法4:erodeImage:图像腐蚀 方法5:filtersEx:cv 文件滤镜 方法6:findImageOneKAZE:找图(KAZE 算法)
信息发布软件AIWORK软件图像视觉处理[opencv]小结1
AIWORK软件图像视觉处理[opencv]小结1// 1. HSV颜色变换:对图像进行HSV通道的颜色变换,可调整色相、饱和度、对比度// 参数说明:输入图像(Mat)、色相参数(int)、饱和度参数(int)、对比度参数(int)// 返回值:处理后的Mat图像function hsvTransform() { // 截取屏幕区域(432,768)大小、100质量的图像并转为Mat格式 var mat = screen.screenShot(432, 768, 100).getMat(); // 调用HSV变换:色相17、饱和度17、对比度17
信息发布软件浏览器H5方法小结
浏览器H5方法小结
信息发布软件AIWROK软件漂亮对接H5简单示例
AIWROK软件漂亮对接H5简单示例
信息发布软件AIWROK软件线程优先级示例
AIWROK软件线程优先级示例
信息发布软件AIWORK软件在屏幕底部显示实时日志可以移动
AIWORK软件在屏幕底部显示实时日志可以移动
信息发布软件安卓HID贝塞尔曲线手势操作示例
安卓HID贝塞尔曲线手势操作示例
信息发布软件安卓端与H5页面交互的完整实现
安卓端与H5页面交互的完整实现
信息发布软件苹果系统里如何使用OCR进行文本识别并执行点击操作
苹果系统里如何使用OCR进行文本识别并执行点击操作
信息发布软件AIWROK软件列表控件 [uiList] 实例演示
AIWROK软件列表控件 实例演示
信息发布软件安卓列表控件 [uiList] 方法小结
安卓列表控件 方法小结 方法 1:add方法 2:addArray方法 3:clear方法 4:delete方法 5:execSQL方法 6:exportData方法 7:exportTxt方法 8:findByID方法 9:getColumnCount方法 10:getColumnIndex方法 11:getColumnName方法 12:getColumnNames方法 13:getCount方法 14:getCursorSetp方法 15:getPosition方法 16:getString方法 17:getStringl方法 18:importData方法 19:isLast方法 20:move方法 21:moveNext方法
信息发布软件安卓版AIWROK软件APP操作类小结合集
安卓版AIWROK软件APP操作类小结合集 方法 1:代理模式获取当前 activity 地址[/backcolor]方法 2:getAllApp 获取所有 app[/backcolor]方法 3:getAppName 获取 APP 名字[/backcolor]方法 4:getCurrentActivity 无障碍获取当前 activity 地址[/backcolor]方法 5:getLocalAppName 获取自己 APP 名字(AIWORK 打包)[/backcolor]方法 6:getLocalVerName 获取自己版本号(AIWORK 打包)[/backcolor]方法 7:getMemory
信息发布软件AIWROK软件苹果点击开始按钮运行最简单的封装脚本例子
AIWROK软件苹果点击开始按钮运行最简单的封装脚本例子 另外主脚本.js封装的:
信息发布软件安卓toast吐司的各种方法应用实例
安卓toast吐司的各种方法应用实例
信息发布软件AIWROK软件支持悬浮窗自由定位和拖拽功能
AIWROK软件支持悬浮窗自由定位和拖拽功能
信息发布软件AIWROK软件安卓工具箱悬浮窗
AIWROK软件安卓工具箱悬浮窗
信息发布软件安卓通过floatUI创建悬浮窗H5界面
安卓通过floatUI创建悬浮窗H5界面
信息发布软件安卓专用吐司toast倒计时到指定时间并显示剩余时间
安卓专用吐司toast倒计时到指定时间并显示剩余时间
信息发布软件aiwrok软件适用于安卓环境下的外网IP获取工具实例
aiwrok软件适用于安卓环境下的外网IP获取工具实例
信息发布软件苹果系统激活模式投屏
1.安装AK-Runner链接下载https://www.pgyer.com/akrunner或者扫码下载AK-Runner.ipa2.安装后需要信任证书找到 设置 --通用---VPN与设备管理3.激活AK-Runner激活需要pc,首先下载激活器📎AK-Runner激活器.zip新手机需要爱思助手协助开启开发者模式,开启过的可以忽略。(爱思助手最好使用最新版)打开爱思助手按照提示操作即可,打开实时投屏。能获取到屏幕信息即可。如果没有出现可能是手机没有开启开发者模式,参考爱思助手
信息发布软件AIWROK软件全部硬件HID按键码小结集合
AIWROK软件全部硬件HID按键码小结集合 方法真实示例:
信息发布软件IOS苹果系统创建具有现代H5视觉效果的界面
IOS苹果系统创建具有现代H5视觉效果的界面
信息发布软件IOS苹果示例如何使用不同的UI风格创建直接运行脚本的按钮
IOS苹果示例如何使用不同的UI风格创建直接运行脚本的按钮
信息发布软件AIWROK苹果IOS线条类[Line]复杂示例
AIWROK苹果IOS线条类[Line]复杂示例
信息发布软件AIWROK软件苹果IOS线条实作简单示例
AIWROK软件苹果IOS线条实作简单示例
信息发布软件AIWROK软件IOS苹果线条类[Line]方法小结
AIWROK软件IOS苹果线条类[Line]方法小结 . 线条宽度设置方法2. 线条高度设置方法3. 线条颜色设置方法实用演示例子:
信息发布软件AIWROK软件苹果IOS吐司toast.show方法小结
AIWROK软件苹果IOS吐司toast.show方法小结 实例呈现:
信息发布软件AIWROK软件苹果IOS系统图色视觉[opencv]方法小结
AIWROK软件苹果IOS系统图色视觉[opencv]方法小结 方法 1:OCR 识别(指定区域)方法 2:获取图像 Base64 编码方法 3:获取 Mat 对象方法 4:Mat 转 Image方法 5:Base64 转 Image方法 6:读取图片文件为 Image方法 7:释放图像资源实战示例子:
信息发布软件AIWROK软件苹果IOS系统图色视觉[opencv]方法小结
AIWROK软件苹果IOS系统图色视觉[opencv]方法小结 方法 1:cv 文件找图(模版匹配 cv 找图)方法 2:cv 文件 OCR(模版匹配 OCR)方法 3:模版匹配(通过模版匹配找到目标对象)方法 4:找多图方法 5:转灰度图(图像转灰度图)方法 6:裁切图片(从大图中截图裁切图片)方法 7:二值化方法 8:颜色翻转实战实例:
信息发布软件AIWROK软件苹果IOS系统随机数[RJrxn1afZqW7yjf2NK]方法小结
AIWROK软件随机数[RJrxn1afZqW7yjf2NK]方法小结 📌GQGqcAlZv2随机字符📌WBJqf91s7J随机整数📌LtUqFOGkc6随机小数📌随机布尔值生成函数📌随机数组元素选择函数使用示例表 📌随机日期使用示例表使用示例表使用示例表📌随机UUID生成函数函数说明表使用示例表📌随机密码 / 验证码随机密码 / 验证码生成函数及使用说明[/backcolor]函数说明表[/backcolor]使用示例表[/back
信息发布软件AIWROK软件苹果系统里的事件[event]方法小结
AIWROK软件苹果系统里的事件[event]方法小结 方法 1:截屏开始方法 2:截屏暂停方法 3:截屏恢复实战示例:
信息发布软件AWIROK苹果系统屏幕类[screen]方法小结
AWIROK苹果系统屏幕类[screen]方法小结 方法 1:lockScreen(锁定屏幕缓存)方法 2:unLockScreen(解锁锁屏幕缓存)方法 3:isOpenShortcut(是否开启快照截屏)方法 4:getScreenWidth(获取屏幕宽度)方法 5:getScreenHeight(获取屏幕高度)方法 6:ocr(识别支持设定区域)方法 7:screenShot(截图缩放,记得调用 close 释放图像)方法 8:screenShotFull(全尺寸截图,记得调用 close 释放图像)实战实例子:单独 OCR
信息发布软件AIWROK软无任何苹果IOS系统配置[config]方法小结
AIWROK软无任何苹果IOS系统配置[config]方法小结 getConfig 获取配置📌setConfig设置配置实际示例:
信息发布软件AIWROK软件安卓日志窗口[logWindow]方法小结总汇集合
AIWROK软件安卓日志窗口[logWindow]方法小结总汇集合 clear 清理日志📌close关闭日志窗口📌setAlpha设置透明度📌setClickModel设置可点模式,就是无法穿透桌面📌setColor设置日志字体颜色📌setDrag设置为手动拖拽模式setHeight设置高度📌setNoClickModel设置为不可点,穿透桌面📌setPosition设置位置📌setSize设置日志字体大小setTitle设置标题📌setWidth 设置
信息发布软件AIWROK安卓类日志类[print]方法小结总汇集合
AIWROK安卓类日志类方法小结总汇集合 print.log:输出调试 / 日志信息2. print.err:输出错误信息3. print.time:启动计时4. print.timeEnd:结束计时并返回时长5. print.warn:输出警告信息完整的示例:
信息发布软件AIWROK软件苹果IOS快捷指令代理服务[shortAgent]方法小结
AIWROK软件苹果IOS快捷指令代理服务[shortAgent]方法小结 openApp启动app📌appopenUrl打开网址或者Scheme📌openSelf自启动📌screenShot代理截屏📌getTopApp 获取顶端app(I0S18+)特别示例:
信息发布软件AIWROK系统安卓找字OCR___方法小结总汇集合
AIWROK系统安卓找字OCR___方法小结总汇集合 findIncludeText查询包含文字🔍🔢findIncludeTexts查询包含文字多目标🔍🔢findSimilarText模糊查询🔍🔢findText查询文字🔍🔢getAllDetect 获取所有目标🔍🔢getAllString 获取所有字符串🔍🔢getJson 获取json对象🔍🔢getJsonString 获取json字符串🔍🔢MLKitOcr文字
信息发布软件AIWROK软件toast_显示方法小结
AIWROK软件toast_显示方法小结 toast.setAlpha___设置透明度toast.setPoint___设置位置toast.setSize___设置字号toast.setTextColor___设置文字颜色toast.showLong___显示长吐司toast.show___显示吐司特别案例:示例二:示例三倒计时到指定时间并显示剩余时间(红色文字):
信息发布软件AIWROK软件苹果系统方法快捷指令[shortcut]方法小结
AIWROK软件苹果系统方法快捷指令[shortcut]方法小结 openApp启动app(需要前台运行)📌openUrl打开网页(需要前台运行)📌runShortcut打开快捷指令(需要前台运行)
信息发布软件AIWROK软件苹果IOS矩形类[rect]方法小结
AIWROK软件苹果IOS矩形类[rect]方法小结 getLeft 获取左边界📌getRight获取右边界📌getTop获取上边界📌getBottom 获取下边界📌getWidth 获取宽度📌getHeight 获取高度📌getCenterX 获取中心X坐标📌getCenterY 获取中心Y坐标📌inRect 判断点是否在矩形内📌set设置矩形的边界📌toString输出字符串📌getRandX生成随机X坐标📌getRandY生成随
信息发布软件AIWROK软件IOS系统里脚本项目[project]方法小结
AIWROK软件IOS系统里脚本项目方法小结 📌getCodePath 获取代码完整目录📌getPluginsPath 获取插件完整目录📌getResourcesPath 获取资源完整目录📌getCard 获取卡密📌getVersion 获取脚本版本调用示例代码:
信息发布软件IOS功能苹果AIWROK软件剪贴板类[clipboard]方法小结
IOS功能苹果AIWROK软件剪贴板类[clipboard]方法小结 copyToClipboard 复制到剪贴板📌copyToClipboardPIP复制到剪贴板📌readFromClipboard 从剪贴板读取示例方法实用:
信息发布软件AIWROK软件IOS苹果系统检测目标类[Detect]方法方法小结
AIWROK软件IOS苹果系统检测目标类[Detect]方法方法小结 📌score 获取检测分数📌getRect 获取检测区域📌clickRandom随机点击📌click点击示例演示:
信息发布软件AIWROK苹果IOS系统里的打印[print]方法小结
AIWROK苹果IOS系统里的打印方法小结 📌now返回本次脚本运行所有日志📌last 返回上次脚本运行所有日志📌showPip 显示画中画,必须前台📌hidePip 隐藏画中画,必须前台log日志📌log日志📌warn警告err 错误📌debug 调试简写printl示例方法演示:
信息发布软件AIWROK软件超多功能越全HID小结方法大放送
AIWROK软件超多功能越全HID小结方法大放送 ⌨️📌back:back 键⌨️📌backspace 键盘back删除键⌨️📌click:点击坐标⌨️📌clickPercent:点击百分比坐标⌨️📌clicks:连续点击⌨️📌clicksV2:连续点击 v2(可设置按下时长)⌨️📌connetBLE:连接蓝牙 HID(必须先完成配对)⌨
信息发布软件AIWROK软件苹果找图YoloV5目标检测[YoloV5]方法小结
AIWROK软件苹果找图YoloV5目标检测[YoloV5]方法小结 📌detectPercent预测📌loadModel 加载模型📌close释放模型
信息发布软件📱⌨️最全的AIWROK软件安卓 HID方法集合小结A
信息发布软件示例苹果IOS系统简单展示一下H5界面AIWORK WebView 示例
示例苹果IOS系统简单展示一下H5界面AIWORK WebView 示例
信息发布软件用AIWROK软件IOS苹果系统创建一个黄色主题风格的 WebView 示例H5
用AIWROK软件IOS苹果系统创建一个黄色主题风格的 WebView 示例H5printl('//🍎交流QQ群711841924');// 创建一个黄色主题风格的 WebView 示例function createYellowThemedWebViewExample() { // 创建 WebView 实例 var web = new WebView(); // 显示界面 web.show(); // 加载黄色主题风格的 HTML 内容 web.loadHtml(`<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UT
信息发布软件苹果创建一个蓝色主题风格的 WebView 示例H5
苹果创建一个蓝色主题风格的 WebView 示例H5 演示了如何创建和操作 WebView 控件。代码中使用了注释的方式避免了实际的 URL 加载和界面关闭,以确保安全性和功能性。以下是代码的详细说明: function createYellowThemedWebViewExample() {...}:定义了一个名为 createYellowThemedWebViewExample 的函数,用于创建一个带有黄色主题风格的 WebView 示例。var web = new WebView();:创建了一个新的 WebView 实例。web.show()
信息发布软件AIWROK软件苹果IOS控件[WebView]方法小结
AIWROK软件苹果IOS控件[WebView]方法小结 📌show显示界面📌loadFile 加载本地文件📌loadHtml 加载 HTML内容📌dismiss关闭界面📌loadUrl加载网页URL完整演示例子:
信息发布软件AIWROK苹果部分功能UI-水平容器[Horizontal]方法小结
AIWROK苹果部分功能UI-水平容器[Horizontal]方法小结 📌addView添加子控件📌removeView移除视图📌clearAllViews清空所有视图📌getViewCount 获取视图数量📌setSpacing设置控件间距📌setBackgroundColor设置背景颜色📌setAlignment 设置对齐方式示例子 1 风格:示例风格 2:
信息发布软件AIWROK软件苹果IOS里的UI-输入框类[Input]方法小结
AIWROK软件苹果IOS里的UI-输入框类方法小结 📌setText 设置输入框文本📌getText 获取输入框文本 📌setlD设置控件ID📌setDefultText 设置默认值📌setTextColor设置文本颜色📌setFontSize设置字体大小📌setBackgroundColor 设置背景颜色📌setWidth设置输入框宽度📌setHeight 设置输入框高度📌setPlaceholder 设置占位符文本📌setTextAlignment 设
信息发布软件AIWROK软件苹果IOS系统Ul-空白站位[Space]方法小结
AIWROK软件苹果IOS系统Ul-空白站位[Space]方法小结 📌setHeight设置高度📌setWidth设置宽度📌setBackgroundColor 设置背景颜色完整示例:
信息发布软件AIWROK软件苹果IOS系统里UI-界面视图[IOSView]方法小结
苹果IOS系统里UI-界面视图方法小结 📌show显示界面📌dismiss关闭📌UIaddView添加📌getView获取view视图📌setBackgroundColor 设置背景颜色完整示例:

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2025-11-5 05:56 , Processed in 0.285111 second(s), 56 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表