Memcahce(MC)系列(四)度量Memcached性能

检测命中率是一个最基本的、最宏观的方式,使用telnet连接到memcached服务器,然后执行stats命令就可以看到宏观的一些信息。

这个命令中比较关键的属性是get_hits和get_misses,get_hits表示读取cache命中的次数,get_misses是读取失败的次数,即尝试读取不存在的缓存数据。
         命中率=get_hits / (get_hits + get_misses):命中率越高说明cache起到的缓存作用越大。但是在实际使用中,这个命中率不是有效数据的命中率,有些时候get操作可能只是检查一个key存在不存在,这个时候miss也是正确的,这就像用memcached作为一种定时器,将一些临时数据在memcache中存放特定时间长度,业务逻辑会根据cache是否存在而作不同的逻辑,这种数据其实已经不是单纯的缓存了,也不应该统计到命中率中。再者,这个命中率是从memcached启动开始所有的请求的综合值,不能反映一个时间段内的情况,所以要排查memcached的性能问题,还需要更详细的数值。但是高的命中率还是能够反映出memcached良好的使用情况,突然下跌的命中率能够反映大量cache丢失的发生。

Stats items:

Stats items命令可以查看每个slab中存储的item的一些详细信息。
关键属性有:
最后被剔除的数据在cache中存放的时间,以秒为单位
stats items可以详细的观察各slab的数据对象的情况,因为memcached的内存分配策略导致一旦memcached的总内存达到了设置的最大内存,代表所有的slab能够使用的page都已经固定,这个时候如果还有数据放入,将开始导致memcached使用LRU策略剔除数据。而LRU策略不是针对所有的slabs,而是只针对新数据应该被放入的slab,例如有一个新的数据要被放入slab 3,则LRU只对slab 3进行。通过stats items就可以观察到这些剔除的情况。

具体分析如下:
evicted属性
如果一个slab的evicted属性不是0,则说明当前slab出现了提前剔除数据的情况,这个slab可能是你需要注意的。
evicted_time属性
如果evicted不为0,则evicited_time代表最后被剔除的数据时间缓存的时间
。并不是发生了LRU就代表memcached负载过载了,因为有些时候在使用cache时会设置过期时间为0,注意,为0并不代表永远不过期,这样缓存将被存放30天,如果内存慢了还持续放入数据,而这些未过期的数据很久没有被使用,则可能被剔除。需要注意的是,最后剔除的这个数据已经被缓存的时间,把evicted_time换算成标准时间看下是否已经达到了你可以接受的时间,例如:你认为数据被缓存了2天是你可以接受的,而最后被剔除的数据已经存放了3天以上,则可以认为这个slab的压力其实可以接受的;但是如果最后被剔除的数据只被缓存了20秒,不用考虑,这个slab已经负载过重了。
age属性
age属性反应了当前还在缓存的数据中最久的时间
,它的大小和evicted_time没有必然的大小关系,因为可能时间最久的数据确实频繁被读取的,这时候不会被LRU清理掉,但是如果它小于evicted_time的话,则说明数据在被下去读取前就被清理了,或者存放了很多长时间但是不被使用的缓存对象。

stats items
STAT items:1:number 11
STAT items:1:age 10631212
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 58532
STAT items:2:number 347598
STAT items:2:age 10572985
STAT items:2:evicted 0
STAT items:2:evicted_nonzero 0
STAT items:2:evicted_time 0
STAT items:2:outofmemory 0
STAT items:2:tailrepairs 0
STAT items:2:reclaimed 75841096
STAT items:3:number 169
STAT items:3:age 10608924
STAT items:3:evicted 0
STAT items:3:evicted_nonzero 0
STAT items:3:evicted_time 0
STAT items:3:outofmemory 0
STAT items:3:tailrepairs 0
STAT items:3:reclaimed 140785
STAT items:4:number 2214293
STAT items:4:age 8060904
STAT items:4:evicted 1525642
STAT items:4:evicted_nonzero 1525642
STAT items:4:evicted_time 2589992
STAT items:4:outofmemory 0
STAT items:4:tailrepairs 0
STAT items:4:reclaimed 7189713
STAT items:5:number 29774693
STAT items:5:age 9537361
STAT items:5:evicted 1373817
STAT items:5:evicted_nonzero 1373817
STAT items:5:evicted_time 1113538
STAT items:5:outofmemory 0
STAT items:5:tailrepairs 0
STAT items:5:reclaimed 177197230
STAT items:6:number 42643
STAT items:6:age 8067667
STAT items:6:evicted 8
STAT items:6:evicted_nonzero 8
STAT items:6:evicted_time 1270082
STAT items:6:outofmemory 0
STAT items:6:tailrepairs 0
STAT items:6:reclaimed 9528420
STAT items:7:number 212
STAT items:7:age 9235880
STAT items:7:evicted 60843
STAT items:7:evicted_nonzero 60843
STAT items:7:evicted_time 1799
STAT items:7:outofmemory 0
STAT items:7:tailrepairs 0
STAT items:7:reclaimed 779333
STAT items:8:number 2176
STAT items:8:age 10580021
STAT items:8:evicted 2112
STAT items:8:evicted_nonzero 2112
STAT items:8:evicted_time 70384
STAT items:8:outofmemory 0
STAT items:8:tailrepairs 0
STAT items:8:reclaimed 370777
STAT items:9:number 185815
STAT items:9:age 10391700
STAT items:9:evicted 0
STAT items:9:evicted_nonzero 0
STAT items:9:evicted_time 0
STAT items:9:outofmemory 0
STAT items:9:tailrepairs 0
STAT items:9:reclaimed 8746287
STAT items:10:number 76181
STAT items:10:age 10391701
STAT items:10:evicted 0
STAT items:10:evicted_nonzero 0
STAT items:10:evicted_time 0
STAT items:10:outofmemory 0
STAT items:10:tailrepairs 0
STAT items:10:reclaimed 2791920
STAT items:11:number 142156
STAT items:11:age 10391703
STAT items:11:evicted 0
STAT items:11:evicted_nonzero 0
STAT items:11:evicted_time 0
STAT items:11:outofmemory 0
STAT items:11:tailrepairs 0
STAT items:11:reclaimed 7396232
STAT items:12:number 127780
STAT items:12:age 10391699
STAT items:12:evicted 120625
STAT items:12:evicted_nonzero 120625
STAT items:12:evicted_time 259199
STAT items:12:outofmemory 0
STAT items:12:tailrepairs 0
STAT items:12:reclaimed 5148698
STAT items:13:number 6
STAT items:13:age 10438322
STAT items:13:evicted 0
STAT items:13:evicted_nonzero 0
STAT items:13:evicted_time 0
STAT items:13:outofmemory 0
STAT items:13:tailrepairs 0
STAT items:13:reclaimed 564094
STAT items:14:number 1
STAT items:14:age 10530263
STAT items:14:evicted 0
STAT items:14:evicted_nonzero 0
STAT items:14:evicted_time 0
STAT items:14:outofmemory 0
STAT items:14:tailrepairs 0
STAT items:14:reclaimed 506083
STAT items:15:number 2
STAT items:15:age 10610730
STAT items:15:evicted 0
STAT items:15:evicted_nonzero 0
STAT items:15:evicted_time 0
STAT items:15:outofmemory 0
STAT items:15:tailrepairs 0
STAT items:15:reclaimed 1069
STAT items:16:number 1
STAT items:16:age 10638595
STAT items:16:evicted 0
STAT items:16:evicted_nonzero 0
STAT items:16:evicted_time 0
STAT items:16:outofmemory 0
STAT items:16:tailrepairs 0
STAT items:16:reclaimed 58
END

Stats slabs

从Stats items中如果发现有异常的slab,则可以通过stats slabs查看下该slab是不是内存分配的确有问题。

Stats slabs的属性说明如下:

chunk_size 当前slab每个chunk的大小(字节)
chunk_per_page 每个page能够存放的chunk数
total_pages 分配给当前slab的page总数
total_chunks 当前slab最多能够存放的chunk数,应该等于chunck_per_page * total_page
used_chunks 已经被占用的chunks总数
free_chunks 过期数据空出的chunk里还没有被使用的chunk数
free_chunks_end 新分配的但是还没有被使用的chunk数

这个命令的信息量很大,所有属性都很有价值。下面一一解释各属性:

综合上面的数据,可以发现造成memcached的内存使用率降低的属性有:

chunk_size, chunk_per_page
这两个属性是固定的,但是它反映当前slab存储的数据大小,可以供你分析缓存数据的散列区间,通过调整增长因子可以改变slab的区间分布,从而改变数据散列到的区域。如果大量的230byte到260byte的数据,而刚好一个slab大小是250byte,则250byte到260byte的数据将被落到下一个slab,从而导致大量的空间浪费。

total_pages
这个是当前slab总共分配大的page总数,如果没有修改page的默认大小的情况下,这个数值就是当前slab能够缓存的数据的总大小(单位为M)。如果这个slab的剔除非常严重,一定要注意这个slab的page数是不是太少了。
我参与的一个项目因为memcache之前被另外的一个项目使用过,而且memcache已经运行了很长时间,导致page都已经全部被分配完,而两个项目的缓存数据大小差别很大,导致新项目数据最多的slab 4竟然只有一个page,所以数据缓存很快就被替换了,失去了缓存的意义。

针对我遇到的那个情况,解决方案是重新分配page,或者重启memcache服务。但是page reassign方法从1.2.8版已经完全移除了,所以现在没有办法在线情况下重新分配page,只能重启服务。

另外一种有些时候是不可以接受的,因为一次缓存服务器的重启将导致所有缓存的数据将重新从DB取出,这个可能造成db的压力瞬间增大。而且有的缓存数据时不入库的,这个时候我们就需要做memcache的导入和导出了。

total_chunks
这个的作用和total_pages基本相同,不过这个属性可以更准确的反应实际可以存放的缓存对象总数。

used_chunks, free_chunks, free_chunks_end,这三个属性相关度比较高,从数值上来看它们满足: 
       total_chunks = used_chunks + free_chunks + free_chunks_end
used_chunks就是字面的意思,已经使用的chunk数;free_chunks却不是所有的未被使用的chunk数,而是曾经被使用过但是因为过期而被回收的chunk数;free_chunks_end是page中从来没有被使用过的chunk数。

为什么要分两种free chunk呢?
      如果free_chunks_end不为零,说明当前slab没有出现过容量不够的时候;而如果free_chunks始终为0,说明很多数据过期时间过长或者在过期前就被剔除了,这个要结合剔除数据和数据保留的时间(age属性)来看待。所以分开统计这两个值可以准确的判断实际空闲的chunk的状态,一旦所有的chunk被使用过一次以后,除非重新申请page,否则free_chunks_end始终为0。所以对于运行时间比较久的memcached,可能大部分这个值都是0。

active_slabs, total_malloced
在stats slabs输出的最后两项是两个统计数据,active_slabs一个是活动的slab总数,因为slab虽然带编号,但是这个编号不一定是连续的,因为有可能有些中间区间的slab没有值就没有初始化,这样以后该slab有值的时候就不用改变slab的编号了。所以活动的slab总数不一定等于slab的最大编号。
total_malloced这个是实际已经分配的总内存数,单位为byte,这个数值决定了memcached实际还能申请多少内存,如果这个值已经达到设定的上限,则不会有新的page被分配,以前分配的page也已经固定slab了。

综合上面的数据,可以发现造成memcached的内存使用率降低的属性有:

page中从来没有被使用过的chunks;

chunk中存放数据和chunk实际大小的差值;

由于短时间的数据集中在某个slab区域,导致大量page被分配,而之后被闲置的内存,这些即使有整个page的空闲也不会被分配给实际压力很大的slab区域,slab空间是不会互相借用的。

stats slabs
STAT 1:chunk_size 96
STAT 1:chunks_per_page 10922
STAT 1:total_pages 1
STAT 1:total_chunks 10922
STAT 1:used_chunks 12
STAT 1:free_chunks 167
STAT 1:free_chunks_end 10743
STAT 1:mem_requested 11040
STAT 1:get_hits 144427
STAT 1:cmd_set 246131
STAT 1:delete_hits 136618
STAT 1:incr_hits 0
STAT 1:decr_hits 0
STAT 1:cas_hits 0
STAT 1:cas_badval 0
STAT 2:chunk_size 120
STAT 2:chunks_per_page 8738
STAT 2:total_pages 55
STAT 2:total_chunks 480590
STAT 2:used_chunks 349306
STAT 2:free_chunks 130514
STAT 2:free_chunks_end 770
STAT 2:mem_requested 18446744073646740676
STAT 2:get_hits 65850960
STAT 2:cmd_set 327527777
STAT 2:delete_hits 2337033
STAT 2:incr_hits 0
STAT 2:decr_hits 0
STAT 2:cas_hits 0
STAT 2:cas_badval 0
STAT 3:chunk_size 152
STAT 3:chunks_per_page 6898
STAT 3:total_pages 1
STAT 3:total_chunks 6898
STAT 3:used_chunks 177
STAT 3:free_chunks 748
STAT 3:free_chunks_end 5973
STAT 3:mem_requested 2042744
STAT 3:get_hits 142466
STAT 3:cmd_set 677364
STAT 3:delete_hits 98176
STAT 3:incr_hits 0
STAT 3:decr_hits 0
STAT 3:cas_hits 0
STAT 3:cas_badval 0
STAT 4:chunk_size 192
STAT 4:chunks_per_page 5461
STAT 4:total_pages 415
STAT 4:total_chunks 2266315
STAT 4:used_chunks 2214262
STAT 4:free_chunks 52053
STAT 4:free_chunks_end 0
STAT 4:mem_requested 351058040
STAT 4:get_hits 209205967
STAT 4:cmd_set 226095579
STAT 4:delete_hits 3927697
STAT 4:incr_hits 0
STAT 4:decr_hits 0
STAT 4:cas_hits 0
STAT 4:cas_badval 0
STAT 5:chunk_size 240
STAT 5:chunks_per_page 4369
STAT 5:total_pages 6815
STAT 5:total_chunks 29774735
STAT 5:used_chunks 29774676
STAT 5:free_chunks 59
STAT 5:free_chunks_end 0
STAT 5:mem_requested 6078427580
STAT 5:get_hits 1614484964
STAT 5:cmd_set 1196483691
STAT 5:delete_hits 91008
STAT 5:incr_hits 0
STAT 5:decr_hits 0
STAT 5:cas_hits 0
STAT 5:cas_badval 0
STAT 6:chunk_size 304
STAT 6:chunks_per_page 3449
STAT 6:total_pages 21
STAT 6:total_chunks 72429
STAT 6:used_chunks 42622
STAT 6:free_chunks 29807
STAT 6:free_chunks_end 0
STAT 6:mem_requested 5981068
STAT 6:get_hits 39170328
STAT 6:cmd_set 11058869
STAT 6:delete_hits 249253
STAT 6:incr_hits 0
STAT 6:decr_hits 0
STAT 6:cas_hits 0
STAT 6:cas_badval 0
STAT 7:chunk_size 384
STAT 7:chunks_per_page 2730
STAT 7:total_pages 1
STAT 7:total_chunks 2730
STAT 7:used_chunks 223
STAT 7:free_chunks 2507
STAT 7:free_chunks_end 0
STAT 7:mem_requested 3043137
STAT 7:get_hits 1904003
STAT 7:cmd_set 2049936
STAT 7:delete_hits 1172005
STAT 7:incr_hits 0
STAT 7:decr_hits 0
STAT 7:cas_hits 0
STAT 7:cas_badval 0
STAT 8:chunk_size 480
STAT 8:chunks_per_page 2184
STAT 8:total_pages 1
STAT 8:total_chunks 2184
STAT 8:used_chunks 2183
STAT 8:free_chunks 1
STAT 8:free_chunks_end 0
STAT 8:mem_requested 18446744073709450608
STAT 8:get_hits 195256
STAT 8:cmd_set 497476
STAT 8:delete_hits 36551
STAT 8:incr_hits 0
STAT 8:decr_hits 0
STAT 8:cas_hits 0
STAT 8:cas_badval 0
STAT 9:chunk_size 600
STAT 9:chunks_per_page 1747
STAT 9:total_pages 173
STAT 9:total_chunks 302231
STAT 9:used_chunks 185826
STAT 9:free_chunks 115645
STAT 9:free_chunks_end 760
STAT 9:mem_requested 77566660
STAT 9:get_hits 2034116
STAT 9:cmd_set 18134394
STAT 9:delete_hits 10
STAT 9:incr_hits 0
STAT 9:decr_hits 0
STAT 9:cas_hits 0
STAT 9:cas_badval 0
STAT 10:chunk_size 752
STAT 10:chunks_per_page 1394
STAT 10:total_pages 81
STAT 10:total_chunks 112914
STAT 10:used_chunks 76141
STAT 10:free_chunks 36246
STAT 10:free_chunks_end 527
STAT 10:mem_requested 52973626
STAT 10:get_hits 1033102
STAT 10:cmd_set 5961858
STAT 10:delete_hits 0
STAT 10:incr_hits 0
STAT 10:decr_hits 0
STAT 10:cas_hits 0
STAT 10:cas_badval 0
STAT 11:chunk_size 944
STAT 11:chunks_per_page 1110
STAT 11:total_pages 436
STAT 11:total_chunks 483960
STAT 11:used_chunks 142104
STAT 11:free_chunks 341539
STAT 11:free_chunks_end 317
STAT 11:mem_requested 93100076
STAT 11:get_hits 572968
STAT 11:cmd_set 12175837
STAT 11:delete_hits 1983
STAT 11:incr_hits 0
STAT 11:decr_hits 0
STAT 11:cas_hits 0
STAT 11:cas_badval 0
STAT 12:chunk_size 1184
STAT 12:chunks_per_page 885
STAT 12:total_pages 188
STAT 12:total_chunks 166380
STAT 12:used_chunks 127768
STAT 12:free_chunks 38612
STAT 12:free_chunks_end 0
STAT 12:mem_requested 117774895
STAT 12:get_hits 688903
STAT 12:cmd_set 8202799
STAT 12:delete_hits 8
STAT 12:incr_hits 0
STAT 12:decr_hits 0
STAT 12:cas_hits 0
STAT 12:cas_badval 0
STAT 13:chunk_size 1480
STAT 13:chunks_per_page 708
STAT 13:total_pages 1
STAT 13:total_chunks 708
STAT 13:used_chunks 6
STAT 13:free_chunks 26
STAT 13:free_chunks_end 676
STAT 13:mem_requested 12136
STAT 13:get_hits 48
STAT 13:cmd_set 564254
STAT 13:delete_hits 0
STAT 13:incr_hits 0
STAT 13:decr_hits 0
STAT 13:cas_hits 0
STAT 13:cas_badval 0
STAT 14:chunk_size 1856
STAT 14:chunks_per_page 564
STAT 14:total_pages 1
STAT 14:total_chunks 564
STAT 14:used_chunks 1
STAT 14:free_chunks 115
STAT 14:free_chunks_end 448
STAT 14:mem_requested 19249
STAT 14:get_hits 2
STAT 14:cmd_set 506205
STAT 14:delete_hits 0
STAT 14:incr_hits 0
STAT 14:decr_hits 0
STAT 14:cas_hits 0
STAT 14:cas_badval 0
STAT 15:chunk_size 2320
STAT 15:chunks_per_page 451
STAT 15:total_pages 1
STAT 15:total_chunks 451
STAT 15:used_chunks 2
STAT 15:free_chunks 0
STAT 15:free_chunks_end 449
STAT 15:mem_requested 3516
STAT 15:get_hits 0
STAT 15:cmd_set 1074
STAT 15:delete_hits 0
STAT 15:incr_hits 0
STAT 15:decr_hits 0
STAT 15:cas_hits 0
STAT 15:cas_badval 0
STAT 16:chunk_size 2904
STAT 16:chunks_per_page 361
STAT 16:total_pages 1
STAT 16:total_chunks 361
STAT 16:used_chunks 1
STAT 16:free_chunks 0
STAT 16:free_chunks_end 360
STAT 16:mem_requested 1828
STAT 16:get_hits 0
STAT 16:cmd_set 60
STAT 16:delete_hits 0
STAT 16:incr_hits 0
STAT 16:decr_hits 0
STAT 16:cas_hits 0
STAT 16:cas_badval 0
STAT active_slabs 16
STAT total_malloced 8589243120
END
时间: 2024-10-12 12:56:43

Memcahce(MC)系列(四)度量Memcached性能的相关文章

sed修炼系列(四):sed中的疑难杂症

本文目录:1 sed中使用变量和变量替换的问题2 反向引用失效问题3 "-i"选项的文件保存问题4 贪婪匹配问题5 sed命令"a"和"N"的纠葛 1.sed中使用变量和变量替换的问题 在脚本中使用sed的时候,很可能需要在sed中引用shell变量,甚至想在sed命令行中使用变量替换.也许很多人都遇到过这个问题,但引号却死活调试不出正确的位置.其实这不是sed的问题,而是shell的特性.搞懂sed如何解决引号的问题,对理解shell引号问题有

SQL Server 2008空间数据应用系列四:基础空间对象与函数应用

原文:SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应(比如OGC)的GIS专业理论知识. 5.其他相关知识. SQL Server 2

S5PV210开发系列四_uCGUI的移植

S5PV210开发系列四 uCGUI的移植 象棋小子          1048272975 GUI(图形用户界面)极大地方便了非专业用户的使用,用户无需记忆大量的命令,取而代之的是可以通过窗口.菜单.按键等方式进行操作.在某些场合,设计一款人机界面丰富友好的嵌入式产品能赢得更多的用户.笔者此处就S5PV210基于uCGUI图形用户界面的使用作一个简单的介绍. 1. uCGUI移植概述 1.1. S5PV210 Bootloader 笔者的S5PV210的Bootloader设置最高的CPU主频

memcached完全剖析系列教程《转》memcached完全剖析系列教程–4.memcached的分布式算法

本文目录 memcached的分布式 · memcached的分布式是什么意思? · Cache::Memcached的分布式方法 · 根据余数计算分散 · 根据余数计算分散的缺点 Consistent Hashing · Consistent Hashing的简单说明 · 支持Consistent Hashing的函数库 · 总结 memcached的分布式 正如第1次中介绍的那样, memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能.服务器端仅包括 第2次. 第3

Exchange 2013SP1和O365混合部署系列四

前面的三篇算是准备工作,今天我们看下如何在Exchange 2013 SP1中配置启用混合部署.老规矩,先看图,特别注意的我会,指出. 在EAC面板有个混合选项.点击启用.然后会登录到0365. 继续下一步. 继续下一步. 继续下一步. 远程迁移需要一张公网的证书. 继续下一步,需要输入凭据. 下面会自动开始配置. 混合部署到这里,算是配置完成. 组织里面多了本地到O365的通道. O365里面则相反的. 下篇我们将介绍本地新建O365账号和本地到O365的迁移. 先到这里. Exchange

ICMP拒绝服务攻击(原始套接字系列四)

拒绝服务攻击(DoS)企图通过使被攻击的计算机资源消耗殆尽从而不能再提供服务,拒绝服务攻击是最容易实施的攻击行为.中美黑客大战中的中国黑客一般对美进行的就是拒绝服务攻击,其技术手段大多不够高明. ICMP实现拒绝服务攻击的途径有二:一者"单刀直入",一者"借刀杀人".具体过程分析如下:   ICMPFLOOD攻击 大量的 ICMP消息发送给目标系统,使得它不能够对合法的服务请求做出响应.中美黑客大战中的多数中国黑客采用的正是此项技术.ICMP FLOOD攻击实际上是

memcached性能监控

1.安装启动memcached 安装: yum -y install memcached 启动: chkconfig --level 2345 memcached on service memcached start 查看状态: memcached-tool  127.0.0.1:11211 stats 重要指标: cmd_get  查询缓存次数 cmd_set 设置key=>value的次数,没找到就写缓存 get_hits 总命中数get_misses总未命中数 配置文件: /etc/sys

Lync Server 2010 安装部署系列四:安装&配置证书服务器

1.打开"服务器管理器" 2.添加角色 3.单击下一步按钮 4.勾选"Active Directory证书服务" 5.单击"下一步"按钮: 6.勾选"证书颁发机构"和"证书颁发机构Web注册",单击"下一步"按钮: 7.勾选"企业",单击"下一步"按钮: 8.勾选"根CA",单击"下一步"按钮: 9.勾选&q

So Easy! Oracle在Linux上的安装配置系列四

So Easy! Oracle在Linux上的安装配置系列四  监听器的配置 在创建了数库和各种数据库对象并装载了数据后,下一步是在数据库服务器与使用它的用户之间建立连 接,Oracle Net Services使这种连接成为可能.Oracle Net Services组件必须"存活"在客户机和服务器上,它们一般使用TCP/IP网络协议来建立客户机和数据库服务器之间的网络连接. 本文官方文档位置: http://docs.oracle.com/cd/E11882_01/network.