郑州的网站建设公司,网站建设试题卷,seo产品,广西网站开发文章目录 1 段1.1 简介1.1.1 定义1.1.2 分类 1.2 段空间的管理模式1.2.1 手工段空间管理#xff08;Manual Segment Space Management#xff09;1.2.2 自动段空间管理#xff08;Auto Segment Space Management#xff09; 1.3 段空间的手工管理#xff08;Manual Segmen… 文章目录 1 段1.1 简介1.1.1 定义1.1.2 分类 1.2 段空间的管理模式1.2.1 手工段空间管理Manual Segment Space Management1.2.2 自动段空间管理Auto Segment Space Management 1.3 段空间的手工管理Manual Segment Space Management1.3.1 查看空闲列表1.3.2 手工指定空闲列表的数量 1.4 段空间自动管理Auto Segment Space Management1.4.1 查看位图块和段头块 2 区2.1 简介2.1.1 定义2.1.2 查看 extent 的信息 2.2 创建 extent2.2.1 自动创建 extent2.2.2 建表时手工指定 extent 大小 2.3 扩展与回收2.3.1 扩展 extent2.3.2 手工回收 extent2.3.3 删除数据后回收 extent2.3.4 执行 truncate 和 drop 命令收缩 extent 2.4 extent 空间分配算法 1 段
1.1 简介
1.1.1 定义
段是由一个或多个数据区构成的它不是存储空间的分配单位而是一个独立的逻辑存储结构用于存储表、索引或簇等占用空间的数据对象 Oracle 也把这种占用空间的数据对象统一称为段。 当一个段被创建时区间Extent就被分配随着后续的不断使用一个段的空间可以以区为单位不断扩展。 一个段只属于一个特定的数据对象每当创建一个具有独立段的数据对象时 Oracle 将为它创建一个段。段是为特定的数据对象如表、索引、回滚等分配的一系列数据区。 段是逻辑结构中更高层次的组织单位用于存储和管理数据。一个表或索引在磁盘上对应一个或多个段。
一个段只能存放在一个表空间中但是可分布在属于这个表空间中的多个数据文件中。段内包含的数据区可以不连续并且可以跨越多个文件使用段的目的是用来保存特定对象。
1.1.2 分类
可以使用数据字段 dba_segments 查看 Oracle 段的类型
SQL select distinct segment_type from dba_segments;一个 Oracle 数据库通常有以下 几种类型的段
数据段也称为表段数据段中保存的是表中的数据记录。在创建数据表时 Oracle 系统将为表创建数据段。当表中的数据量增大时数据段的大小自然也随着变大数据段的增大过程是通过向其添加新的数据区来实现的。当创建一个表时系统自动创建一个以该表的名字命名的数据段。
查询users 表空间中所有表的名称、大小
SQL select OWNER, SEGMENT_NAME, BYTES/1024/1024 size_MBfrom dba_segmentswhere segment_typeTABLE and tablespace_nameUSERS;索引段索引段中包含了用于提高系统性能的索引信息。一旦建立索引系统自动创建一个以该索引的名字命名的索引段。
查询users 表空间中所有索引的名称、大小
SQL select OWNER, SEGMENT_NAME, BYTES/1024/1024 size_MBfrom dba_segmentswhere segment_typeINDEX and tablespace_nameUSERS;回滚段回滚段也可称作撤销段中保存了回滚条目 Oracle 将修改前的旧值保存在回滚条目中。利用这些信息可以撤销未提交的操作以便为数据库提供读入一致性和回滚未提交的事务即用来回滚事务的数据空间。 当一个事务开始处理时系统为之分配回滚段回滚段可以动态创建和撤销。 回退段包含两种类型1ROLLBAKTY2PE2 UNDO
查看回退段的信息
SQL select owner,segment_name,tablespace_name from dba_segments where segment_typeROLLBACK;
SQL select owner,segment_name,tablespace_name from dba_segments where segment_typeTYPE2 UNDO;也可通过数据字典 dba_rollback_segs 查看回退段的信息
SQL select owner,segment_name,tablespace_name,status from dba_rollback_segs;
临时段当执行创建索引、查询等操作时 Oracle 可能会使用一些临时存储空间用于暂时性地保存解析过的查询语句以及在排序过程中产生的临时数据。 Oracle 系统将在专门用于存储临时数据的表空间中为操作分配临时段。一旦语句执行完毕临时段将自动消除。 在执行“CREATE INDEX”、“SELECT ORDER BY”、“SELECT DISTINCT”和“SELECT GROUPBY”等几种类型的 SQL 语句时 Oracle 系统就会在临时表空间中为这些语句的操作分配一个临时段。 在数据库管理过程中若经常需要执行上面这类 SQL 语句最好调整 SORT_AREA_SIZE 初始化参数来增大排序区从而使排序操作尽量在内存中完成以获得更好的执行效率但同时这对数据库服务器的内存空间提出了更大的要求。LOB 段如果表中含有 CLOB 和 BLOB 等大型对象类型数据时系统将创建 LOB 段以存储相应的大型对象数据。
1.2 段空间的管理模式
段空间管理模式就是怎样管理段内的空闲空间是指如何管理段所拥有的数据块中的空闲块。段空间管理模式分为两种自动管理auto和手工管理manual
段空间管理模式是表空间的一个属性。即某个表空间中的所有段必须采用同一种管理模式。
查看段空间的管理模式
SQL select tablespace_name, segment_space_management from dba_tablespaces;1.2.1 手工段空间管理Manual Segment Space Management
MSSM 管理方式是 Oracle 最初实现的一种段空间管理技术。区间Extent是 Oracle 的最小空间分配单元而 Block 是Oracle 的最小 IO 操作单元也就是说Oracle 以区间为单位将空间分配给段而段内则是以 Block 为单位进行空间使用和管理的。
MSSM 管理方式的具体实现方式是通过在段头Segment Header分配空闲列表freelist来管理 Block 的使用可以把自由列表想象成一个数据表Oracle 依赖一系列的算法通过向自由列表中加入或移出 Block 来实现段空间管理。
1.2.2 自动段空间管理Auto Segment Space Management
在ASSM中原有的 freelist 被位图所取代通过位图能够迅速有效地管理存储扩展和剩余区块free block因此能够改善段存储管理的本质。
1.3 段空间的手工管理Manual Segment Space Management
MSSM 管理方式的具体实现方式是通过在段头Segment Header分配空闲列表freelist来管理 Block 的使用。使用空闲列表管理段内的空闲块空闲列表记录在段头空闲列表指向段内空闲块的地址空闲列表的数量可以由用户指定。可以把自由列表想象成一个数据表Oracle 依赖一系列的算法通过向空闲列表中加入或移出 Block 来实现段空间管理。
当创建对象时如数据表可以定义 freelist 的数量对于数据表缺省的 freelist 为1可以通过 dba_segments 查询得到这些数据
SQL select owner,segment_name,freelists from dba_segments where ownerSCOTT;当向一个对象中插入数据时Oracle 首先在该对象的 freelist 上寻找可用于插入数据的 Block当一个 Block 用完之后就会从 freelist 中删除当这个 Block 上由于数据删除等空间释放后可以再次回到 freelist 中而这主要是通过存储参数 PCTFREE 和 PCTUSED 来实现。
假设PCTFREE20PCTUSED40表明当一个 Block 的空间使用率达到了 80% 时这个 block 就不再允许被用于新增数据insert而保留下来的这 20% 的空间则被预留为行更新update所可能需要的空间扩展此时这个 Block 就从 freelist 中被删除当这个 Block 中有数据被删除delete时空间不断被释放当空间使用低于 PCTUSED 参数设置时此处即为40%这个数据块才会重新被加入到 freelists 中加入 freelist 后这个 Block 又可以被插入新的数据。
通过以上的描述可以看出如果一个段的操作非常频繁那么很多用户就会同时请求访问 freelist并对 freelist 进行修改。对于表来说缺省的 freelist 为1这就很容易引发竞争虽然可以通过增加 freelist 的方法缓解这种竞争但是我们已经看到这种管理方式存在的缺陷。
可以通过 DUMP 的方式来转储数据块的头信息查看 freelist 的设置。
1.3.1 查看空闲列表
在 system 表空间手工管理创建一张表 scott.tx001
-- system 表空间采用手工管理段空间
SQL create table scott.tx001(id int, name varchar(20)) tablespace system;--在表中插入数据
SQL insert into scott.tx001 values(1,Jack);SQL commit;SQL alter system checkpoint;查询 tx001 段的段头块
--查询哪些块属于 tx001 段
SQL select file_id, block_id, blocks from dba_extents where segment_name TX001;--查询 tx001 段的段头块
SQL select header_file, header_block from dba_segments where segment_name TX001;将段头块segment header的数据转储到用户进程跟踪文件
SQL alter system dump datafile 1 block 95392;--查看用户进程跟踪文件的位置
SQL show parameter background查看用户进程跟踪文件的内容
按时间先后显示用户进程跟踪文件
[rootrac1 trace]# ll -tr *ora*
.....
-rw-r----- 1 oracle asmadmin 386 8月 23 12:33 orcl1_ora_2750.trm
-rw-r----- 1 oracle asmadmin 3640 8月 23 12:33 orcl1_ora_2750.trc
-rw-r----- 1 oracle asmadmin 159 8月 23 12:46 orcl1_ora_4274.trm
-rw-r----- 1 oracle asmadmin 3180 8月 23 12:46 orcl1_ora_4274.trc
查看用户进程跟踪文件的内容
[rootrac1 trace]# cat orcl1_ora_4274.trc*** 2021-08-23 12:46:51.013
Dump of buffer cache at level 4 for tsn0 rdba4289696
Block dump from disk:
buffer tsn: 0 rdba: 0x004174a0 (1/95392)
scn: 0x0000.002bb0a4 seq: 0x01 flg: 0x04 tail: 0xb0a41001
#########################################
## DATA SEGMENT HEADER段头块
frmt: 0x02 chkval: 0xc5e5 type: 0x10DATA SEGMENT HEADER - UNLIMITED
#########################################
Hex dump of block: st0, typ_found1
Dump of memory from 0x00007F6954A3FA00 to 0x00007F6954A41A00
7F6954A3FA00 0000A210 004174A0 002BB0A4 04010000 [.....tA........]
......
7F6954A419F0 00000000 00000000 00000000 B0A41001 [................]Extent Control Header-----------------------------------------------------------------Extent Header:: spare1: 0 spare2: 0 extents: 1 blocks: 7 last map 0x00000000 maps: 0 offset: 4128
############ 高水位标记##########################
## 指向段内的第一个空闲块的地址即当前段的第一个空闲块的地址为 0x004174a2
## 查询时如果执行全表扫描则扫描到高水位标记指向的块就结束。并不需要扫描所有的块。
## 因为高水位之后的块肯定是空白块不需要扫描。Highwater:: 0x004174a2 ext#: 0 blk#: 1 ext size: 7 blocks in seg. hdrs freelists: 1 blocks below: 1
##############################################mapblk 0x00000000 offset: 0 UnlockedMap Header:: next 0x00000000 extents: 1 obj#: 87834 flag: 0x40000000Extent Map-----------------------------------------------------------------0x004174a1 length: 7 nfl 1, nfb 1 typ 1 nxf 0 ccnt 1
##############################################
## 空闲列表指向高水位之前的某个空闲块SEG LST:: flg: USED lhd: 0x004174a1 ltl: 0x004174a1
##############################################
2021-08-23 12:46:51.087256 : kjbmbassert [0x174a0.1]
End dump data blocks tsn: 0 file#: 1 minblk 95392 maxblk 953921.3.2 手工指定空闲列表的数量
指定空闲列表的数量为 2
SQL alter table scott.tx001 storage (freelists 2);重新转储段头块
SQL alter system dump datafile 1 block 95392;查看用户进程跟踪文件的内容
##按时间先后显示用户进程跟踪文件
[rootrac1 trace]# ll -tr *ora*
.....
-rw-r----- 1 oracle asmadmin 43502 8月 23 14:10 orcl1_ora_9867.trc
-rw-r----- 1 oracle asmadmin 2744 8月 23 14:27 orcl1_ora_14686.trm
-rw-r----- 1 oracle asmadmin 38041 8月 23 14:27 orcl1_ora_14686.trc
-rw-r----- 1 oracle asmadmin 568 8月 24 01:46 orcl1_ora_87048.trm
-rw-r----- 1 oracle asmadmin 5924 8月 24 01:46 orcl1_ora_87048.trc##查看用户进程跟踪文件的内容
[rootrac1 trace]# cat orcl1_ora_87048.trc*** 2021-08-24 01:46:33.285
Block dump from disk:
buffer tsn: 0 rdba: 0x004174a0 (1/95392)
scn: 0x0000.002c7a26 seq: 0x01 flg: 0x04 tail: 0x7a261001
frmt: 0x02 chkval: 0xc5e1 type: 0x10DATA SEGMENT HEADER - UNLIMITED
Hex dump of block: st0, typ_found1
Dump of memory from 0x00007F4429EE2A00 to 0x00007F4429EE4A00
7F4429EE2A00 0000A210 004174A0 002C7A26 04010000 [.....tA.z,.....]
......
7F4429EE49F0 00000000 00000000 00000000 7A261001 [..............z]Extent Control Header-----------------------------------------------------------------Extent Header:: spare1: 0 spare2: 0 extents: 1 blocks: 7 last map 0x00000000 maps: 0 offset: 4128 Highwater:: 0x004174a2 ext#: 0 blk#: 1 ext size: 7 blocks in seg. hdrs freelists: 1 blocks below: 1 mapblk 0x00000000 offset: 0 UnlockedMap Header:: next 0x00000000 extents: 1 obj#: 87834 flag: 0x40000000Extent Map-----------------------------------------------------------------0x004174a1 length: 7 nfl 2, nfb 1 typ 1 nxf 0 ccnt 1
#############################################
## 空闲列表一共 3 个空闲列表SEG LST:: flg: USED lhd: 0x004174a1 ltl: 0x004174a1 SEG LST:: flg: UNUSED lhd: 0x00000000 ltl: 0x00000000 SEG LST:: flg: UNUSED lhd: 0x00000000 ltl: 0x00000000
#############################################
GLOBAL CACHE ELEMENT DUMP (address: 0x77bf3be8):
...2021-08-24 01:46:33.462741 : kjbmbassert [0x174a0.1]
End dump data blocks tsn: 0 file#: 1 minblk 95392 maxblk 953921.4 段空间自动管理Auto Segment Space Management
在ASSM 管理方式下原有的 freelist 被位图所取代通过位图能够迅速有效地管理存储扩展和剩余区块free block因此能够改善段存储管理的本质。在 ASSM 管理方式下insert 通过扫描位图来查找可用的 block即使 block 的可用空间低于 PCTFREE也不会从位图中删除因此 PCTUSED 参数将不再需要而 PCTFREE 参数仍然需要它来指示需要保留多少空间给后续的 update 导致的行数据增长使用。至于 freelists 和 freelist groups 参数在 ASSM 中都无效了。
创建一个数据表设置 pctfree 选项命令如下
create table EYGLE ( ID NUMBER(8), UNAME CHAR(1000)
) tablespace ts001pctfree 50; 新的管理机制用位图数组来跟踪或管理每个分配到对象的块而每个块有多少剩余空间是根据位图的状态来确定的。Oracle 将高水位HIgh Water Mark以下的块分成六种状态full、UNformat、free 0~25%、free 25~50%、、free 50~75%、free 75~100%。块的空间使用情况会记录在位图块位图块属于具体的段。
段空间自动管理模式下由 FIRST LEVEL BITMAP BLOCK一级位图块管理空闲块。由 SECOND LEVEL BITMAP BLOCK二级位图块管理一级位图块。当数据量足够大时还会出现 THIRD BITMAP BLOCK三级位图块由三级位图块管理二级位图块。
使用 ASSM 管理方式之后显著提高了 DML 并发操作的性能因为位图数组的不同部分可以被同时使用这样就消除了寻找剩余空间的串行化。
1.4.1 查看位图块和段头块
在 ts001 表空间自动管理创建一张表 scott.tx002
select tablespace_name,contents,segment_space_management from dba_tablespaces;ts001 表空间采用手工管理段空间
SQL create table scott.tx002(id int, name varchar(20)) tablespace ts001;在表中插入数据
SQL insert into scott.tx002 values(1,Jack);
SQL commit;SQL alter system checkpoint;查询哪些块属于 tx002 段
SQL select file_id, block_id, blocks from dba_extents where 段头块并不是第一个数据块
SQL select header_file, header_block from dba_segments where segment_name TX002;将 128~135 共 8 个块的数据转储到用户进程跟踪文件
Alter system dump datafile 6 block min 128 block max 135;2 区
2.1 简介
2.1.1 定义
数据区也可称作数据扩展区是由一组连续的 Oracle 数据块所构成的 Oracle 存储结构一个或多个数据块组成一个数据区一个或多个数据区再组成一个段Segment。用于保存特定数据类型的数据区不可跨越多个数据文件。 当用户创建表时Oracle 为此表的数据段分配一个包含若干数据块的初始区initial extent。当一个段中的所有空间被使用完后 Oracle 系统将自动为该段分配一个新的数据区这也正符合Extent这个单词所具有的”扩展”的含义说明 数据区是 Oracle 存储分配的最小单位 Oracle 就以数据区为单位进行存储控件的扩展。如果一个盘区不足以容纳一个逻辑块则会分配多个相邻的盘区。当段中的数据被删除或移动时相应的盘区会被释放出来供其他对象使用。
使用数据区的目的是用来保存特定数据类型的数据。 数据区是表中数据增长的基本单位 在 Oracle数据库中分配存储空间就是以数据区为单位的。一个 Oracle 对象包含至少一个数据区。设置一个表或索引的存储参数包含设置它的数据区大小。
在Oracle数据库中盘区的大小取决于段的大小、空间使用情况以及数据库的配置参数。
段的定义中包含了区extent的存储参数存储参数适用于各种类型的段。该参数控制 Oracle 如何为段分配可用空间。如在 CREATE TABLE 语句中使用 STORAGE 子句设定存储参数决定创建表时为段分配多少初始空间或限定一个表最多可以包含多少区。如果没有指定存储参数创建表时使用所在表空间的默认存储参数。
创建一张空表时是否分配 extent 与 deferred_segment_creation 参数有关
SQL show parameter deferred
说明deferred_segment_creation 参数
为 false 时创建表的时候分配 extent
为 trude 时创建表的时候不分配空间执行 insert 操作时分配空间2.1.2 查看 extent 的信息
创建一张表 scott.emp002
SQL create table scott.emp002 as select * from scott.emp where 12;使用数据字典 dba_extents 查看 extent 的使用情况查看 scott.emp002 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;可以看到系统并没有为表 scott.emp002 分配空间。原因就是 deferred_segment_creation 参数为 true 时并不为空表分配存储空间。向 scott.emp002 表插入数据
SQL insert into scott.emp002(empno, ename, sal) values(8888,TOM,2800);
SQL commit;重新查看 scott.emp002 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;2.2 创建 extent
2.2.1 自动创建 extent
当用户创建表时创建一张空表时是否分配 extent 与 deferred_segment_creation 参数有关Oracle 为此表的数据段分配一个包含若干数据块的初始区initial extent。 当一个段的初始区中的数据块已满并且有新数据插入时Oracle 自动为这个段分配一个增量区incremental extent。
为 scott.emp002 表插入数据
SQL insert into scott.emp002 select * from scott.emp;SQL insert into scott.emp002 select * from scott.emp002;查看 scott.emp002 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;为 scott.emp002 表插入数据
SQL insert into scott.emp002 select * from scott.emp002;
SQL insert into scott.emp002 select * from scott.emp002;
SQL commit;查看 scott.emp002 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;-- extent 增加并且每个 extent 包含 8 个数据块为 scott.emp002 表插入数据
SQL insert into scott.emp002 select * from scott.emp002;
3840 rows created.SQL insert into scott.emp002 select * from scott.emp002;
7680 rows created.SQL insert into scott.emp002 select * from scott.emp002;
15360 rows created.SQL insert into scott.emp002 select * from scott.emp002;
30720 rows created.SQL insert into scott.emp002 select * from scott.emp002;
61440 rows created.SQL commit;查看 scott.emp002 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;extent 数量继续增加但后来每个 extent 包含 128 个数据块2.2.2 建表时手工指定 extent 大小
创建表时可以指定 storage 参数指定段的大小
创建表 scott.emp666初始大小 10m
SQL create table scott.emp666 storage(initial 10m) tablespace ts001 as select * from scott.emp;查看 scott.emp002 表对应的 extent 信息
SQL
select file_id, block_id, blocks, extent_id 2.3 扩展与回收
2.3.1 扩展 extent
使用alter table 命令
查看 scott.emp002 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;手工扩展表 emp002 的 extent
SQL alter table scott.emp002 allocate extent (size 2048k datafile DATA/orcl/datafile/users.259.1070471891);2.3.2 手工回收 extent
手工回收 extent 只能回收完全没有使用的 extent。使用 alter table 命令
SQL alter table scott.emp002 deallocate unused;查看scott.emp002 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;2.3.3 删除数据后回收 extent
注意删除数据后 extent 并不会自动回收
删除 scott.emp002 中的部分数据
SQL delete from scott.emp002 where rownum 55000;
SQL commit;
SQL select count(*) from scott.emp002;SQL delete from scott.emp002 where rownum 55000;
SQL commit;查看 scott.emp002 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;打开行移动
SQL alter table scott.emp002 enable row movement;收缩表空间
SQL alter table scott.emp002 shrink space;查看 scott.emp002 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;2.3.4 执行 truncate 和 drop 命令收缩 extent
执行 truncate 清空数据
执行 truncate 清空数据
SQL truncate table scott.emp002;
Table truncated.查看 scott.emp002 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;执行 drop 命令删除表
SQL drop table scott.emp002;查看 scott.emp002 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;2.4 extent 空间分配算法
查看extent 空间分配算法
SQL select tablespace_name, allocation_type from dba_tablespaces;systemextent 呈阶梯增长
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP002;uniform每次分配的 extent 大小相同
创建一个 uniform 类型的表空间
SQL create tablespace ts003 datafile DATA/orcl/datafile/ts003.dbf size 50m uniform size 10m;在表空间 ts003 中创建表 scott.emp888
SQL create table scott.emp888 tablespace ts003as select * from scott.emp;查看 scott.emp888 表对应的 extent 信息
SQL select file_id, block_id, blocks, extent_id from dba_extents where segment_name EMP888;
文章转载自: http://www.morning.dbdmr.cn.gov.cn.dbdmr.cn http://www.morning.nbrkt.cn.gov.cn.nbrkt.cn http://www.morning.kphsp.cn.gov.cn.kphsp.cn http://www.morning.qwmpn.cn.gov.cn.qwmpn.cn http://www.morning.kndyz.cn.gov.cn.kndyz.cn http://www.morning.qtrlh.cn.gov.cn.qtrlh.cn http://www.morning.pgmbl.cn.gov.cn.pgmbl.cn http://www.morning.srbfz.cn.gov.cn.srbfz.cn http://www.morning.prprj.cn.gov.cn.prprj.cn http://www.morning.drtgt.cn.gov.cn.drtgt.cn http://www.morning.pyncx.cn.gov.cn.pyncx.cn http://www.morning.lsjtq.cn.gov.cn.lsjtq.cn http://www.morning.sgfnx.cn.gov.cn.sgfnx.cn http://www.morning.dbfj.cn.gov.cn.dbfj.cn http://www.morning.pwmpn.cn.gov.cn.pwmpn.cn http://www.morning.sxwfx.cn.gov.cn.sxwfx.cn http://www.morning.qgmbx.cn.gov.cn.qgmbx.cn http://www.morning.ylzdx.cn.gov.cn.ylzdx.cn http://www.morning.grfhd.cn.gov.cn.grfhd.cn http://www.morning.sskns.cn.gov.cn.sskns.cn http://www.morning.ssgqc.cn.gov.cn.ssgqc.cn http://www.morning.ykgp.cn.gov.cn.ykgp.cn http://www.morning.dqkrf.cn.gov.cn.dqkrf.cn http://www.morning.tmfm.cn.gov.cn.tmfm.cn http://www.morning.pqyms.cn.gov.cn.pqyms.cn http://www.morning.chkfp.cn.gov.cn.chkfp.cn http://www.morning.zlqyj.cn.gov.cn.zlqyj.cn http://www.morning.btlmb.cn.gov.cn.btlmb.cn http://www.morning.qsszq.cn.gov.cn.qsszq.cn http://www.morning.qgbfx.cn.gov.cn.qgbfx.cn http://www.morning.xqwq.cn.gov.cn.xqwq.cn http://www.morning.ztnmc.cn.gov.cn.ztnmc.cn http://www.morning.fpbj.cn.gov.cn.fpbj.cn http://www.morning.cmcjp.cn.gov.cn.cmcjp.cn http://www.morning.c7624.cn.gov.cn.c7624.cn http://www.morning.gqtw.cn.gov.cn.gqtw.cn http://www.morning.pqypt.cn.gov.cn.pqypt.cn http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn http://www.morning.saastob.com.gov.cn.saastob.com http://www.morning.xbhpm.cn.gov.cn.xbhpm.cn http://www.morning.c7507.cn.gov.cn.c7507.cn http://www.morning.dzrcj.cn.gov.cn.dzrcj.cn http://www.morning.knlyl.cn.gov.cn.knlyl.cn http://www.morning.rtspr.cn.gov.cn.rtspr.cn http://www.morning.wkknm.cn.gov.cn.wkknm.cn http://www.morning.mjmtm.cn.gov.cn.mjmtm.cn http://www.morning.dnycx.cn.gov.cn.dnycx.cn http://www.morning.dplmq.cn.gov.cn.dplmq.cn http://www.morning.amlutsp.cn.gov.cn.amlutsp.cn http://www.morning.fkmrj.cn.gov.cn.fkmrj.cn http://www.morning.yrhsg.cn.gov.cn.yrhsg.cn http://www.morning.cryb.cn.gov.cn.cryb.cn http://www.morning.rxtxf.cn.gov.cn.rxtxf.cn http://www.morning.knnc.cn.gov.cn.knnc.cn http://www.morning.mjzgg.cn.gov.cn.mjzgg.cn http://www.morning.hxpff.cn.gov.cn.hxpff.cn http://www.morning.xnkb.cn.gov.cn.xnkb.cn http://www.morning.sgtq.cn.gov.cn.sgtq.cn http://www.morning.lcxdm.cn.gov.cn.lcxdm.cn http://www.morning.khyqt.cn.gov.cn.khyqt.cn http://www.morning.ctsjq.cn.gov.cn.ctsjq.cn http://www.morning.rwqk.cn.gov.cn.rwqk.cn http://www.morning.smygl.cn.gov.cn.smygl.cn http://www.morning.wftrs.cn.gov.cn.wftrs.cn http://www.morning.kqylg.cn.gov.cn.kqylg.cn http://www.morning.ykshx.cn.gov.cn.ykshx.cn http://www.morning.bpmfz.cn.gov.cn.bpmfz.cn http://www.morning.mzhh.cn.gov.cn.mzhh.cn http://www.morning.nnwnl.cn.gov.cn.nnwnl.cn http://www.morning.sgbss.cn.gov.cn.sgbss.cn http://www.morning.tkyxl.cn.gov.cn.tkyxl.cn http://www.morning.jwtjf.cn.gov.cn.jwtjf.cn http://www.morning.djmdk.cn.gov.cn.djmdk.cn http://www.morning.kspfq.cn.gov.cn.kspfq.cn http://www.morning.rqgbd.cn.gov.cn.rqgbd.cn http://www.morning.kttbx.cn.gov.cn.kttbx.cn http://www.morning.hlfnh.cn.gov.cn.hlfnh.cn http://www.morning.yrmpz.cn.gov.cn.yrmpz.cn http://www.morning.tcylt.cn.gov.cn.tcylt.cn http://www.morning.jcwhk.cn.gov.cn.jcwhk.cn