精华内容
下载资源
问答
  • Tomcat面试题+http面试题+Nginx面试题+常见面试题

    千次阅读 多人点赞 2019-12-12 15:04:43
    worker工作模式 worker模式和prefork模式比起来,是使用了多进程+多线程的模式,它也是预先fork了几个子进程,每个子进程能够生成一些服务线程和一个监听线程,该监听线程及接入请求并传递给服务线程处理和应答。...

    Tomcat面试题

    1、Tomcat的缺省端口是多少?怎么修改?
    答:缺省端口是8080,若要修改,可以进入Tomcat的安装目录下找到conf目录下的server.xml文件,找到该文件中的Connector字段中的port。
    2、Tomcat有哪几种connector运行模式(服务的请求方式)?
    答:三种。修改它的运行模式需要在主配置文件中找到connector字段中的protocol进行修改

    这三种不同运行模式的性能相差很大,具体如下:
    
    BIO:阻塞型I/O操作,一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。Tomcat7或以下,默认使用这种方式。
    NIO:基于缓冲区,能提供非阻塞I/O操作,和传统的BIO相比,具备更好的抗并发性能;
    APR(Apache portable run-time libraries):简单理解,就是从操作系统级别解决异步IO问题,大幅度的提高服务器的处理和相应性能,也是Tomcat运行高并发的首选模式,在Linux中需要安装APR动态库才可以使用这种模式。
    

    3、如何避免用户在访问一个不存在的页面时,Tomcat将其详细版本信息返回给用户。
    答:解决办法就是将404状态码进行重定向,以便我们自定义返回的页面信息。
    4、优化tomcat可以从哪些方面着手?

    答:
    1、内存优化;
    2、线程池的优化
    3、禁用DNS查询;
    4、开启日志切割功能;
    5、关闭404错误返回的版本信息;
    

    ————————————————————————————————————————————————————————————————————————————————————————————————————————

    httpd服务面试题

    1、请说一下你对httpd服务的了解?
    答:Apache是一个模块化服务,支持的模块比较多,采用servlet处理模型,同步阻塞模型,工作模式多变,对于高并发的场景处理速度会比较慢,运行稳定。支持异步读写,可以通过正则表达式做动静分离。

    2、httpd服务的三种工作模式你了解多少?
    答:httpd有三种工作模式。

    prefork:预派生子进程
    prefork模式可以算是很古老但是很稳定的模式。httpd服务在刚启动时,就会fork出一些子进程(默认为5个),一个子进程对应一个线程,然后等待request进来,并且总是试图保持一些空闲的子进程,之所以这样做,是为了减少频繁创建和销毁进程的开销。在同一个时间点内,一个线程只能处理一个进程。

    worker工作模式
    worker模式和prefork模式比起来,是使用了多进程+多线程的模式,它也是预先fork了几个子进程,每个子进程能够生成一些服务线程和一个监听线程,该监听线程及接入请求并传递给服务线程处理和应答。worker工作模式占用的内存较少,在高并发下表现还算优异。不过必须要考虑线程安全的问题,因为多个子进程是共享父进程的内存地址的。如果使用keep-alive的长连接方式,也许中间几乎没有请求,这是就会发生阻塞,线程被挂起,需要一直等待到超时才会被释放。如果过多的线程,就这样被占据,也会导致在高并发场景下的无服务线程可用。(该问题同样会发生在prefork模式)。

    event工作模式
    这是Apache最新的工作模式,它和worker模式很像,最大的区别在于,它解决了keep-alive场景下,线程被长期被占用的的资源浪费问题。

    event工作模式中,会有一个专门的线程来管理这些keep-alive类型的线程,当有真实请求过来的时候偶,将请求传递给服务线程,执行完毕后,又允许它释放。这样,一个线程就能处理多个请求了,实现异步非阻塞。

    event工作模式在遇到某些不兼容的模块时,它会失效,并退回到worker模式,一个工作线程处理一个请求。官方自带的模块,全部都是支持event工作模式的。

    3、可以从哪几个方面着手优化httpd?
    合理配置其进程及线程数;
    开启httpd的deflate压缩功能;
    开启expires缓存功能;
    禁止httpd进行目录遍历;
    隐藏httpd的版本信息;
    开启日志切割功能;
    配置防盗链;
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————

    Nginx面试题

    1、缺省安装的Nginx+php-fpm环境,假设用户浏览一个耗时的网页,但是却在服务端渲染页面的中途中关闭了浏览器,那么请问服务端的PHP脚本是继续执行还是退出执行?
    答:正常情况下,如果client异常退出了,Server端的程序还是会继续执行,直到与IO进行了两次交互操作。Server端发现client端已经断开连接,这个时候会出发一个User_abort,如果这个没有设置ignore_user_abort,那么这个php-fpm的程序才会被中断。

    2、nginx是如何实现高并发的?
    答:nginx之所以可以实现高并发,与它采用的epoll模型有很大的关系。epoll模型采用异步非阻塞的事件处理机制。这种机制可让nginx进程同时监控多个事件。

    简单来说,就是异步非阻塞,使用了epoll模型和大量的底层代码优化。如果深入一点的话,就是nginx的特殊进程模型和事件模型的设计,才使其可以实现高并发。

    进程模型

    它是采用一个master进程和多个worker进程的工作模式。
    1、master进程主要负责收集、分发请求。当一个请求过来时,master拉起一个worker进程负责处理这个请求。;
    2、master进程也要负责监控worker的状态,保证高可靠性;
    3、worker进程议案设置为和CPU核心数一致或者其二倍。nginx的worker进程和Apache的不一样。apache的进程在同一时间只能处理一个请求,所以它会开启很多个进程,几百甚至几千个。而nginx的worker进程在同一时间可以处理的请求数只受内存限制,因此可以处理更多请求。
    

    事件模型
    nginx是异步非阻塞的。

    一个master进程,多个worker进程,每个worker进程可以处理多个请求。每进来一个request,都会有worker进程去处理。但不是全程的处理,那么处理到的程度就是可能发生阻塞的地方,比如向后端服务器转发request,并等待请求返回。那么,在等待期间,这个处理的worker不会这么傻等着,他会在发送完请求后,注册一个事件:“如果upstream返回了,告诉我一声,我再接着干”。于是它就去休息了,此时,如果再有request进来,它就可以很快再按这种方式处理。而一旦后端服务器返回了,就会触发这个事件,worker才会来接手,这个request才会接着往下走。
    由于nginx的的这个工作性质决定了每个请求大部分的生命都是在网络传输中,所以实际上花费在nginx 服务器上的时间并不多,这就是它几进程就能解决高并发的秘密所在。

    3、已知nginx和php-fpm安装在同一台服务器上,nginx连接php-fpm有两种方式:一种是类似127.0.0.1:9000的TCP socket,另一种是类似/tmp/php-fpm.sock的Unix domain socket,请问如何选择?需要注意什么?
    Unix domain socket的流程不会走到TCP那层,直接以文件的形式,以stream socket通信。如果是TCP Socket,则需要走到IP层。说的通俗一点,追求可靠性就是选择TCP(需要占用一个端口,更稳定,如:127.0.0.1:9000),追求高性能就是Unix Socket(不需要占用端口,更快,但可靠性不如TCP的方式)。

    4、nginx和Apache的区别?
    两者最核心的区别在于apache是同步多进程模型,一个request对应一个进程,而nginx是异步的,多个连接(万级别)可以对应一个进程。

    一般来说,需要性能的web服务,用nginx,如果不需要性能只求稳定,更考虑Apache,后者的各种模块实现的比前者好很多,epoll网络IO模型是nginx处理性能高的根本,但并不是所有情况下epoll大获全胜的,如果本身提供静态服务的只有几个文件,apache的select模型或许比epoll更高性能。当然,这只是一个假设,真正还需要实测了再说。

    更通用的方案是,前端nginx抗并发,后端apache集群,配合起来会更好。

    5、nginx的调度算法有哪些?

    sticky:通过nginx-sticky模块,来实现cookie黏贴的方式将来自同一个客户端的请求发送到同一个后端服务器上处理,这样一定程度上可以解决多个后端服务器的session会话同步的问题;
    round-robin(RR):轮询,每个请求按时间顺序依次分配到不同的后端服务器,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响;
    weight:轮询权重,weight的值越大分配到的访问概率就越高,主要用于后端每台服务器性能不均衡的情况下,或者仅仅为在主从的情况下设置不同的权重,达到合理有效的利用主机资源。
    least_conn:请求被发送到当前活跃连接最少的realserver上,会考虑到weight的值;
    ip_hash:每个请求按照IP的哈希结果分配,使来自同一个IP的访客固定访问后端服务器,可以有效的解决动态网页存在的session共享问题。
    fair:比weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面的大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,相应时间短的优先分配。nginx本身不支持fair,如果需要使用这种调度算法,则必须安装upstream_fair模块。
    url_hash:按访问的URL的哈希结果来分配请求,使每个URL定向到后端服务器,可以进一步提高后端缓存服务器的效率。同样,nginx本身不支持url_hash,如果需要这种调度算法,则必须安装nginx的hash软件包。
    

    6、nginx负载均衡调度状态
    在nginx upstream模块中,可以设定每台后端服务器在负载均衡调度中的状态。

    常用的状态有:
    
    down:表示当前的server暂时不参与负载均衡;
    backup:预留的备份机器。当其他所有的非backup机器出现故障或者繁忙的时候,才会请求backup机器,因此这台机器的访问压力最低;
    max_fails:允许请求失败的次数,默认为1,当超过最大次数时,返回proxy_next_upstraem模块定义的错误;
    fail_timeout:请求失败超时时间,在经历了max_fails次失败后,暂停服务的时间。max_fails和fail_timeout可以一起使用。
    

    7、如何查看nginx已添加的模块?如果需要添加某个模块,应该如何实现?
    查看已添加的模块:nginx -V;
    如果需要添加某个模块,需要将工作目录切换至nginx的源码包中,执行“nginx -V”命令查看之前配置时的选项进行复制,然后增加需要添加的模块配置项,进行配置并编译,将新生成的nginx命令覆盖掉原有的nginx命令,然后重载nginx服务,即可实现在线添加模块。

    8、可以从哪些方面来优化nginx服务?

    配置nginx的proxy缓存;
    对静态页面开启压缩功能,如br压缩或者gzip压缩;
    调整nginx运行工作进程个数,最多开启8个,8个以上话性能就不会再提升了,而且稳定性变得更低,所以8个足够用了;
    调整nginx运行CPU的亲和力;
    修改nginx最多可打开的文件数,若超过系统限制的最多打开文件数(ulimit -n命令查看系统的最多打开文件数),还需要修改系统默认的文件数;
    修改单个worker的最大连接数;
    开启高效传输;
    设置连接超时时间,以便保护服务器资源,因为建立连接也是需要消耗资源的;
    优化fastCGI的一个超时时间,也可以根据实际情况对其配置缓存动态页面;
    expires缓存调优,主要针对图片、css、js等元素更改较少的情况下使用。
    配置防盗链;
    优化内核参数,如进程可以同时打开的最大句柄数;开启tcp重用机制,以便允许TIME_WAIT sockets重新用于新的TCP连接....还有好多,记不住。
    

    ————————————————————————————————————————————————————————————————————————————————————————————————

    Linux运维常见面试题

    1、什么是运维?什么是游戏运维?
    1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,
    在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术
    运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等
    2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维
    开发运维:是给应用运维开发运维工具和运维平台的
    应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查
    系统运维:是给应用运维提供业务上的基础设施,比如:系统、网络、监控、硬件等等
    总结:开发运维和系统运维给应用运维提供了“工具”和“基础设施”上的支撑
    开发运维、应用运维和系统运维他们的工作是环环相扣的
    ——————————————————————————————————————————————————————————————————————————————————
    2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
    游戏运营要做的一个事情除了协调工作以外
    还需要与各平台沟通,做好开服的时间、开服数、用户导量、活动等计划
    ————————————————————————————————————————————————————————————————————————————————————————
    3、现在给你三百台服务器,你怎么对他们进行管理?
    管理3百台服务器的方式:
    1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
    2)使用saltstark、ansiable、puppet进行系统的统一调度与配置的统一管理。
    3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息记录
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————
    4、简述raid0 raid1 raid5 三种工作模式的工作原理及特点
    RAID,可以把硬盘整合成一个大磁盘,还可以在大磁盘上再分区,放数据
    还有一个大功能,多块盘放在一起可以有冗余(备份)
    RAID整合方式有很多,常用的:0 1 5 10
    RAID 0,可以是一块盘和N个盘组合
    其优点读写快,是RAID中最好的
    缺点:没有冗余,一块坏了数据就全没有了
    RAID 1,只能2块盘,盘的大小可以不一样,以小的为准
    10G+10G只有10G,另一个做备份。它有100%的冗余,缺点:浪费资源,成本高
    RAID 5 ,3块盘,容量计算10*(n-1),损失一块盘
    特点,读写性能一般,读还好一点,写不好
    冗余从好到坏:RAID1 RAID10 RAID 5 RAID0
    性能从好到坏:RAID0 RAID10 RAID5 RAID1
    成本从低到高:RAID0 RAID5 RAID1 RAID10
    单台服务器:很重要盘不多,系统盘,RAID1
    数据库服务器:主库:RAID10 从库 RAID5\RAID0(为了维护成本,RAID10)
    WEB服务器,如果没有太多的数据的话,RAID5,RAID0(单盘)
    有多台,监控、应用服务器,RAID0 RAID5
    我们会根据数据的存储和访问的需求,去匹配对应的RAID级别
    —————————————————————————————————————————————————————————————————————————————————————————————————————————
    5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
    LVS: 是基于四层的转发
    HAproxy: 是基于四层和七层的转发,是专业的代理服务器
    Nginx: 是WEB服务器,缓存服务器,又是反向代理服务器,可以做七层的转发
    区别: LVS由于是基于四层的转发所以只能做端口的转发
    而基于URL的、基于目录的这种转发LVS就做不了
    工作选择:
    HAproxy和Nginx由于可以做七层的转发,所以URL和目录的转发都可以做
    在很大并发量的时候我们就要选择LVS,像中小型公司的话并发量没那么大
    选择HAproxy或者Nginx足已,由于HAproxy由是专业的代理服务器
    配置简单,所以中小型企业推荐使用HAproxy
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
    Squid、Varinsh和Nginx都是代理服务器
    什么是代理服务器:
    能当替用户去访问公网,并且能把访问到的数据缓存到服务器本地,等用户下次再访问相同的资
    源的时候,代理服务器直接从本地回应给用户,当本地没有的时候,我代替你去访问公网,我接
    收你的请求,我先在我自已的本地缓存找,如果我本地缓存有,我直接从我本地的缓存里回复你
    如果我在我本地没有找到你要访问的缓存的数据,那么代理服务器就会代替你去访问公网
    区别:
    1)Nginx本来是反向代理/web服务器,用了插件可以做做这个副业
    但是本身不支持特性挺多,只能缓存静态文件
    2)从这些功能上。varnish和squid是专业的cache服务,而nginx这些是第三方模块完成
    3)varnish本身的技术上优势要高于squid,它采用了可视化页面缓存技术
    在内存的利用上,Varnish比Squid具有优势,性能要比Squid高。
    还有强大的通过Varnish管理端口,可以使用正则表达式快速、批量地清除部分缓存
    它是内存缓存,速度一流,但是内存缓存也限制了其容量,缓存页面和图片一般是挺好的
    4)squid的优势在于完整的庞大的cache技术资料,和很多的应用生产环境
    工作中选择:
    要做cache服务的话,我们肯定是要选择专业的cache服务,优先选择squid或者varnish。
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    7、Tomcat和Resin有什么区别,工作中你怎么选择?
    区别:Tomcat用户数多,可参考文档多,Resin用户数少,可考虑文档少
    最主要区别则是Tomcat是标准的java容器,不过性能方面比resin的要差一些
    但稳定性和java程序的兼容性,应该是比resin的要好
    工作中选择:现在大公司都是用resin,追求性能;而中小型公司都是用Tomcat,追求稳定和程序的兼容
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    8、什么是中间件?什么是jdk?
    中间件介绍:
    中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源
    中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯
    是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口
    但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递
    通过中间件,应用程序可以工作于多平台或OS环境。
    jdk:jdk是Java的开发工具包
    它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    9、讲述一下Tomcat8005、8009、8080三个端口的含义?
    8005==》 关闭时使用
    8009==》 为AJP端口,即容器使用,如Apache能通过AJP协议访问Tomcat的8009端口
    8080==》 一般应用使用
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    10、什么叫CDN?
    即内容分发网络
    其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到
    最接近用户的网络边缘,使用户可就近取得所需的内容,提高用户访问网站的速度
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    11、什么叫网站灰度发布?
    灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式
    AB test就是一种灰度发布方式,让一部用户继续用A,一部分用户开始用B
    如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    12、简述DNS进行域名解析的过程?
    用户要访问 www.baidu.com,会先找本机的host文件,再找本地设置的DNS服务器,如果也没有的话,就去网络中找根服务器,根服务器反馈结果,说只能提供一级域名服务器.cn,就去找一级域名服务器,一级域名服务器说只能提供二级域名服务器.com.cn,就去找二级域名服务器,二级域服务器只能提供三级域名服务器.baidu.com.cn,就去找三级域名服务器,三级域名服务器正好有这个网站www.baidu.com,然后发给请求的服务器,保存一份之后,再发给客户端

    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    13、RabbitMQ是什么东西?
    RabbitMQ也就是消息队列中间件,消息中间件是在消息的传息过程中保存消息的容器
    消息中间件再将消息从它的源中到它的目标中标时充当中间人的作用
    队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用
    消息队列不会保留消息,直到可以成功地传递为止,当然,消息队列保存消息也是有期限地
    ————————————————————————————————————————————————————————————————————————————————————————
    14、讲一下Keepalived的工作原理?
    在一个虚拟路由器中,只有作为MASTER的VRRP(虚拟路由冗余协议)路由器会一直发送VRRP通告信息,
    BACKUP不会抢占MASTER,除非它的优先级更高。当MASTER不可用时(BACKUP收不到通告信息)
    多台BACKUP中优先级最高的这台会被抢占为MASTER。这种抢占是非常快速的(<1s),以保证服务的连续性
    由于安全性考虑,VRRP包使用了加密协议进行加密。BACKUP不会发送通告信息,只会接收通告信息
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

    15、讲述一下LVS三种模式的工作过程?
    LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式) VS/DR(路由模式) VS/TUN(隧道模式)
    一、NAT模式(VS-NAT)
    原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址
    并发至此RS来处理,RS处理完后把数据交给负载均衡器,负载均衡器再把数据包原IP地址改为自己的IP
    将目的地址改为客户端IP地址即可期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器
    优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址
    缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈
    因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时
    大量的数据包都交汇在负载均衡器那,速度就会变慢!
    二、IP隧道模式(VS-TUN)
    原理:首先要知道,互联网上的大多Internet服务的请求包很短小,而应答包通常很大
    那么隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS
    RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过
    负载均衡器。注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持
    IPTUNNEL协议,所以,在RS的内核中,必须编译支持IPTUNNEL这个选项
    优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户
    所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量
    这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。
    缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”
    (IP Encapsulation)协议,服务器可能只局限在部分Linux系统上
    三、直接路由模式(VS-DR)
    原理:负载均衡器和RS都使用同一个IP对外服务但只有DR对ARP请求进行响应
    所有RS对本身这个IP的ARP请求保持静默也就是说,网关会把对这个服务IP的请求全部定向给DR
    而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)
    并将请求分发给这台RS这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户
    则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端
    由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域
    也可以简单的理解为在同一台交换机上
    优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端
    与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。
    缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

    16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
    mysql的innodb如何定位锁问题:
    在使用 show engine innodb status检查引擎状态时,发现了死锁问题
    在5.5中,information_schema 库中增加了三个关于锁的表(MEMORY引擎)
    innodb_trx ## 当前运行的所有事务
    innodb_locks ## 当前出现的锁
    innodb_lock_waits ## 锁等待的对应关系
    mysql如何减少主从复制延迟:
    如果延迟比较大,就先确认以下几个因素:
    从库硬件比主库差,导致复制延迟

    主从复制单线程,如果主库写并发太大,来不及传送到从库

    就会导致延迟。更高版本的mysql可以支持多线程复制
    慢SQL语句过多

    网络延迟

    master负载
    主库读写压力大,导致复制延迟,架构的前端要加buffer及缓存层
    slave负载
    一般的做法是,使用多台slave来分摊读请求,再从这些slave中取一台专用的服务器
    只作为备份用,不进行其他任何操作.另外, 2个可以减少延迟的参数:
    –slave-net-timeout=seconds 单位为秒 默认设置为 3600秒
    #参数含义:当slave从主数据库读取log数据失败后,等待多久重新建立连接并获取数据
    –master-connect-retry=seconds 单位为秒 默认设置为 60秒
    #参数含义:当重新建立主从连接时,如果连接建立失败,间隔多久后重试
    通常配置以上2个参数可以减少网络问题导致的主从数据同步延迟
    MySQL数据库主从同步延迟解决方案
    最简单的减少slave同步延时的方案就是在架构上做优化,尽量让主库的DDL快速执行
    还有就是主库是写,对数据安全性较高,比如sync_binlog=1,innodb_flush_log_at_trx_commit
    = 1 之类的设置,而slave则不需要这么高的数据安全,完全可以讲sync_binlog设置为0或者关闭binlog
    innodb_flushlog也可以设置为0来提高sql的执行效率。另外就是使用比主库更好的硬件设备作为slave
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    17、如何重置mysql root密码?
    一、 在已知MYSQL数据库的ROOT用户密码的情况下,修改密码的方法:
    1、 在SHELL环境下,使用mysqladmin命令设置:
    mysqladmin –u root –p password “新密码” 回车后要求输入旧密码
    2、 在mysql>环境中,使用update命令,直接更新mysql库user表的数据:
    Update mysql.user set password=password(‘新密码’) where user=’root’;
    flush privileges;
    注意:mysql语句要以分号”;”结束
    3、 在mysql>环境中,使用grant命令,修改root用户的授权权限。
    grant all on . to root@’localhost’ identified by ‘新密码’;
    二、 如查忘记了mysql数据库的ROOT用户的密码,又如何做呢?方法如下:
    1、 关闭当前运行的mysqld服务程序:service mysqld stop(要先将mysqld添加为系统服务)
    2、 使用mysqld_safe脚本以安全模式(不加载授权表)启动mysqld 服务
    /usr/local/mysql/bin/mysqld_safe --skip-grant-table &
    3、 使用空密码的root用户登录数据库,重新设置ROOT用户的密码
    #mysql -u root
    Mysql> Update mysql.user set password=password(‘新密码’) where user=’root’;
    Mysql> flush privileges;
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    18、lvs/nginx/haproxy优缺点
    Nginx的优点是:
    1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构
    它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一
    Nginx单凭这点可利用的场合就远多于LVS了。
    2、Nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势之一
    相反LVS对网络稳定性依赖比较大,这点本人深有体会;
    3、Nginx安装和配置比较简单,测试起来比较方便,它基本能把错误用日志打印出来
    LVS的配置、测试就要花比较长的时间了,LVS对网络依赖比较大。
    4、可以承担高负载压力且稳定,在硬件不差的情况下一般能支撑几万次的并发量,负载度比LVS相对小些。
    5、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测。比如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障,Nginx会把上传切到另一台服务器重新处理,而LVS就直接断掉了
    如果是上传一个很大的文件或者很重要的文件的话,用户可能会因此而不满。
    6、Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器
    LNMP也是近几年非常流行的web架构,在高流量的环境中稳定性也很好。
    7、Nginx现在作为Web反向加速缓存越来越成熟了,速度比传统的Squid服务器更快,可考虑用其作为反向代理加速器
    8、Nginx可作为中层反向代理使用,这一层面Nginx基本上无对手,唯一可以对比Nginx的就只有lighttpd了
    不过lighttpd目前还没有做到Nginx完全的功能,配置也不那么清晰易读,社区资料也远远没Nginx活跃
    9、Nginx也可作为静态网页和图片服务器,这方面的性能也无对手。还有Nginx社区非常活跃,第三方模块也很多
    Nginx的缺点是:
    1、Nginx仅能支持http、https和Email协议,这样就在适用范围上面小些,这个是它的缺点
    2、对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测
    不支持Session的直接保持,但能通过ip_hash来解决
    LVS:使用Linux内核集群实现一个高性能、高可用的负载均衡服务器
    它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability)
    LVS的优点是:
    1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生
    这个特点也决定了它在负载均衡软件里的性能最强的,对内存和cpu资源消耗比较低
    2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西
    所以并不需要太多接触,大大减少了人为出错的几率
    3、工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案
    如LVS+Keepalived,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived
    4、无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能不会收到大流量的影响。
    5、应用范围较广,因为LVS工作在4层,所以它几乎可对所有应用做负载均衡,包括http、数据库、在线聊天室等
    LVS的缺点是:
    1、软件本身不支持正则表达式处理,不能做动静分离
    而现在许多网站在这方面都有较强的需求,这个是Nginx/HAProxy+Keepalived的优势所在
    2、如果是网站应用比较庞大的话,LVS/DR+Keepalived实施起来就比较复杂了
    特别后面有Windows Server的机器的话,如果实施及配置还有维护过程就比较复杂了
    相对而言,Nginx/HAProxy+Keepalived就简单多了。
    HAProxy的特点是:
    1、HAProxy也是支持虚拟主机的。
    2、HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导
    同时支持通过获取指定的url来检测后端服务器的状态
    3、HAProxy跟LVS类似,本身就只是一款负载均衡软件
    单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的
    4、HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡
    对后端的MySQL节点进行检测和负载均衡,大家可以用LVS+Keepalived对MySQL主从做负载均衡
    5、HAProxy负载均衡策略非常多,HAProxy的负载均衡算法现在具体有如下8种:
    ①roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;
    ② static-rr,表示根据权重,建议关注;
    ③leastconn,表示最少连接者先处理,建议关注;
    ④ source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似
    我们用其作为解决session问题的一种方法,建议关注;
    ⑤ri,表示根据请求的URI;
    ⑥rl_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name;
    ⑦hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
    ⑧rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    19、mysql数据备份工具
    mysqldump工具
    mysqldump是mysql自带的备份工具,目录在bin目录下面:/usr/local/mysql/bin/mysqldump
    支持基于innodb的热备份,但是由于是逻辑备份,所以速度不是很快,适合备份数据比较小的场景
    Mysqldump完全备份+二进制日志可以实现基于时间点的恢复。
    基于LVM快照备份
    在物理备份中,有基于文件系统的物理备份(LVM的快照),也可以直接用tar之类的命令对整个数据库目录
    进行打包备份,但是这些只能进行泠备份,不同的存储引擎备份的也不一样,myisam自动备份到表级别
    而innodb不开启独立表空间的话只能备份整个数据库。
    tar包备份
    percona提供的xtrabackup工具
    支持innodb的物理热备份,支持完全备份,增量备份,而且速度非常快,支持innodb存储引起的数据在不同
    数据库之间迁移,支持复制模式下的从机备份恢复备份恢复,为了让xtrabackup支持更多的功能扩展
    可以设立独立表空间,打开 innodb_file_per_table功能,启用之后可以支持单独的表备份
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    20、keepalive的工作原理和如何做到健康检查
    keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
    虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组
    这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内
    其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了
    这时就需要根据VRRP的优先级来选举一个backup当master。这样就可以保证路由器的高可用了
    keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护
    及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式,vrrp模块是来实现VRRP协议的
    Keepalived健康检查方式配置
    HTTP_GET|SSL_GET
    HTTP_GET | SSL_GET
    {
    url {
    path /# HTTP/SSL 检查的url可以是多个
    digest # HTTP/SSL 检查后的摘要信息用工具genhash生成
    status_code 200# HTTP/SSL 检查返回的状态码
    }
    connect_port 80 # 连接端口
    bindto
    connect_timeout 3 # 连接超时时间
    nb_get_retry 3 # 重连次数
    delay_before_retry 2 #连接间隔时间
    }
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    21、统计ip访问情况,要求分析nginx访问日志,找出访问页面数量在前十位的ip
    cat access.log | awk ‘{print $1}’ | uniq -c | sort -rn | head -10
    ————————————————————————————————————————————————————————————————————————————————————————————————————————
    22、使用tcpdump监听主机为192.168.1.1,tcp端口为80的数据,同时将输出结果保存输出到tcpdump.log
    tcpdump ‘host 192.168.1.1 and port 80’ > tcpdump.log
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————
    23、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1
    iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp -dport 80 -j DNAT-to-destination 192.168.2.1:8080
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    24、简述raid0 raid1 raid5 三种工作模式的工作原理及特点
    RAID 0:带区卷,连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率
    但它没有数据冗余,RAID 0 只是单纯地提高性能,并没有为数据的可靠性提供保证
    而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0 不能应用于数据安全性要求高的场合
    RAID 1:镜像卷,它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据
    不能提升写数据效率。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID1 可以提高读取性能
    RAID 1 是磁盘阵列中单位成本最高的,镜像卷可用容量为总容量的1/2,但提供了很高的数据安全性和可用性
    当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据
    RAID5:至少由3块硬盘组成,分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上
    任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据(最多允许1块硬盘损坏)
    所以raid5可以实现数据冗余,确保数据的安全性,同时raid5也可以提升数据的读写性能
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————
    25、你对现在运维工程师的理解和以及对其工作的认识
    运维工程师在公司当中责任重大,需要保证时刻为公司及客户提供最高、最快、最稳定、最安全的服务
    运维工程师的一个小小的失误,很有可能会对公司及客户造成重大损失
    因此运维工程师的工作需要严谨及富有创新精神
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    26、实时抓取并显示当前系统中tcp 80端口的网络数据信息,请写出完整操作命令
    tcpdump -nn tcp port 80

    ————————————————————————————————————————————————————————————————————————————————————
    27、如何优化 Linux系统(可以不说太具体)?
    不用root,添加普通用户,通过sudo授权管理
    更改默认的远程连接SSH服务端口及禁止root用户远程连接
    定时自动更新服务器时间
    配置国内yum源
    关闭selinux及iptables(iptables工作场景如果有外网IP一定要打开,高并发除外)
    调整文件描述符的数量
    精简开机启动服务(crond rsyslog network sshd)
    内核参数优化(/etc/sysctl.conf)
    更改字符集,支持中文,但建议还是用英文字符集,防止乱码
    锁定关键系统文件
    清空/etc/issue,去除系统及内核版本登录前的屏幕显示

    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    28、Linux系统中病毒怎么解决
    1)最简单有效的方法就是重装系统
    2)要查的话就是找到病毒文件然后删除
    中毒之后一般机器cpu、内存使用率会比较高
    机器向外发包等异常情况,排查方法简单介绍下
    top 命令找到cpu使用率最高的进程
    一般病毒文件命名都比较乱,可以用 ps aux 找到病毒文件位置
    rm -f 命令删除病毒文件
    检查计划任务、开机启动项和病毒文件目录有无其他可以文件等
    3)由于即使删除病毒文件不排除有潜伏病毒,所以最好是把机器备份数据之后重装一下
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————
    29、发现一个病毒文件你删了他又自动创建怎么解决
    公司的内网某台linux服务器流量莫名其妙的剧增,用iftop查看有连接外网的情况
    针对这种情况一般重点查看netstat连接的外网ip和端口。
    用lsof -p pid可以查看到具体是那些进程,哪些文件
    经查勘发现/root下有相关的配置conf.n hhe两个可疑文件,rm -rf后不到一分钟就自动生成了
    由此推断是某个母进程产生的这些文件。所以找到母进程就是找到罪魁祸首
    查杀病毒最好断掉外网访问,还好是内网服务器,可以通过内网访问
    断了内网,病毒就失去外联的能力,杀掉它就容易的多
    怎么找到呢,找了半天也没有看到蛛丝马迹,没办法只有ps axu一个个排查
    方法是查看可以的用户和和系统相似而又不是的冒牌货,果然,看到了如下进程可疑
    看不到图片就是/usr/bin/.sshd
    于是我杀掉所有.sshd相关的进程,然后直接删掉.sshd这个可执行文件
    然后才删掉了文章开头提到的自动复活的文件
    总结一下,遇到这种问题,如果不是太严重,尽量不要重装系统
    一般就是先断外网,然后利用iftop,ps,netstat,chattr,lsof,pstree这些工具顺藤摸瓜
    一般都能找到元凶。但是如果遇到诸如此类的问题
    /boot/efi/EFI/redhat/grub.efi: Heuristics.Broken.Executable FOUND,个人觉得就要重装系统了
    ————————————————————————————————————————————————————————————————————————————————————————————————————————
    30、说说TCP/IP的七层模型
    应用层 (Application):
    网络服务与最终用户的一个接口。
    协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
    表示层(Presentation Layer):
    数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
    格式有,JPEG、ASCll、DECOIC、加密格式等
    会话层(Session Layer):
    建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
    对应主机进程,指本地主机与远程主机正在进行的会话
    传输层 (Transport):
    定义传输数据的协议端口号,以及流控和差错校验。
    协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
    网络层 (Network):
    进行逻辑地址寻址,实现不同网络之间的路径选择。
    协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP
    数据链路层 (Link):
    建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议)
    将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正
    物理层(Physical Layer):
    是计算机网络OSI模型中最低的一层
    物理层规定:为传输数据所需要的物理链路创建、维持、拆除
    而提供具有机械的,电子的,功能的和规范的特性
    简单的说,物理层确保原始的数据可在各种物理媒体上传输。局域网与广域网皆属第1、2层
    物理层是OSI的第一层,它虽然处于最底层,却是整个开放系统的基础
    物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境
    如果您想要用尽量少的词来记住这个第一层,那就是“信号和介质”
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————
    31、你常用的Nginx模块,用来做什么
    rewrite模块,实现重写功能
    access模块:来源控制
    ssl模块:安全加密
    ngx_http_gzip_module:网络传输压缩模块
    ngx_http_proxy_module 模块实现代理
    ngx_http_upstream_module模块实现定义后端服务器列表
    ngx_cache_purge实现缓存清除功能
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————
    32、请列出你了解的web服务器负载架构
    Nginx
    Haproxy
    Keepalived
    LVS
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    33、查看http的并发请求数与其TCP连接状态
    netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
    还有ulimit -n 查看linux系统打开最大的文件描述符,这里默认1024
    不修改这里web服务器修改再大也没用,若要用就修改很几个办法,这里说其中一个:
    修改/etc/security/limits.conf
    soft nofile 10240
    hard nofile 10240
    重启后生效
    ————————————————————————————————————————————————————————————————————————————————————————————————————————
    34、用tcpdump嗅探80端口的访问看看谁最高
    tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."KaTeX parse error: Expected 'EOF', got '}' at position 2: 4}̲'| sort | uniq …ip > /dev/null 2>&1
    if [ ? − e q 0 ] ; t h e n e c h o 192.168.1. ? -eq 0 ]; then echo 192.168.1. ?eq0];thenecho192.168.1.ip UP
    else
    echo 192.168.1.KaTeX parse error: Expected 'EOF', got '}' at position 12: ip DOWN fi }̲& done wait ———…(Shift+4)
    光标下插入一行:o
    复制5行:5yy
    删除10行:10dd
    替换::%s/jingfeng/jfedu.net/g
    ——————————————————————————————————————————————————————————————————————————————————————————————————
    4.查找linux系统下以txt结尾,30天没有修改的文件大小大于20K同时具有执行权限的文件并备份到/data/backup/目录下。
    答:
    find / -name *txt -mtime +30 -type f -size +20k -perma= x -exec cp {} /data/backup/ ;
    ————————————————————————————————————————————————————————————————————————————————————————————————————————
    5.当前test.txt所属的用户为root,组为abc,请将test.txt使拥有者为abc,组为root,写出命令。
    答:
    chown abc:root test.txt
    ——————————————————————————————————————————————————————————————————————————————————————————————————
    6.如何修改Linux启动级别为字符模式并永久生效,如何临时、永久关闭selinux及防火墙,请分别写出操作方法。
    答:
    更改字符模式:修改/etc/inittab一行为id:3:initdefault:
    临时关闭selinnuxsetenforce0
    临时关闭防火墙iptables-F
    永久关闭selinux修改/etc/selinux/config一行为SELINUX=permissive
    永久关闭防火墙 iptables -F; /etc/init.d/iptablessave
    ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    7.每次开机在/tmp目录下创建一个当天的日期文件夹(提示:当前日期表示的方法为:date+%Y%m%d)
    答:
    echo “mkdir/tmp/ date+%Y%m%d” >> /etc/rc.d/rc.local
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    8.如何查看文件内容,命令有哪些?查看文件第1行到3行,查看文件最后一行。
    答:
    查看文件内容:vim、cat、head、tail
    查看第1到行:head -3 file
    查看最后一行:tail -1 file
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    9.查看linux服务器IP的命令,同时只显示包含ip所在的行打印出来。
    答:
    以eth0为例
    只打印所在的行:ifconfig eth0 | grep “inetaddr:”
    只打印ip:ifconfig eth0 | grep “inetaddr:” | awk -F: ‘{print$2}’ | awk -F ’ ’ ‘{print$1}’
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    10.将普通用户test加入root组的命令是?
    答:
    usermod -G root test

    展开全文
  • svn仓库提交监听工具

    千次阅读 2012-09-15 16:16:43
    当你的svn仓库有人提交代码时会得到通知,常见的配置有svn用户名、密码、你要监听的svn仓库或者是具体的项目,通常都不会去监听自己的提交,所以还可以指定那些人的提交不通知。 google搜索CommitMonitor。

    当你的svn仓库有人提交代码时会得到通知,常见的配置有svn用户名、密码、你要监听的svn仓库或者是具体的项目,通常都不会去监听自己的提交,所以还可以指定那些人的提交不通知。

    • google搜索CommitMonitor。
    展开全文
  • 近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server)。本文现对监听配置作一简单介绍,并提出一些客户终端无法连接服务器端的解决思路,愿对广大网友与读者有一些帮助。   一、监听...
    近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server)。本文现对监听配置作一简单介绍,并提出一些客户终端无法连接服务器端的解决思路,愿对广大网友与读者有一些帮助。
     
    一、监听器(LISTENER)
      监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。
     
    二、本地服务名(Tnsname)
      Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。
    本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。Oracle常用的客户端配置就是采用的本地服务名,本文中介绍的也主要是基于本地服务名的配置。
     
    三、Oracle网络连接配置方法
      配 置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成(强烈建议在这个图形化的工具下完成Oracle服务端或客户端的配置)。在Windows下,点击“开始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”启动Oracle网络管理器工具,在Linux/Unix下,利用netmgr命令来启动图形化Oracle网络管理器,如:

    $ netmgr

    1、 Oracle监听器配置(LISTENER)
      如 图(一)示,选中树形目录中监听程序项,再点击左上侧“+”按钮添加监听程序,点击监听程序目录,默认新加的监听器名称是LISTENER(该名称也可以 由任意合法字符命名)。选中该名称,选中窗口右侧栏下拉选项中的“监听位置”,点击添加地址按钮。在出现的网络地址栏的协议下拉选项中选中 “TCP/IP”,主机文本框中输入主机名称或IP地址(如果主机即用作服务端也作为客户端,输入两项之一均有效;如果主机作为服务端并需要通过网络连 接,建议输入IP地址),端口文本框中输入数字端口,默认是1521,也可以自定义任意有效数字端口。

    选 中监听配置窗口右侧栏下拉选项中的“数据库服务”,点击添加数据库按钮。在出现的数据库栏中输入全局数据库名,如myoracle。注意这里的全局数据库名与数据 库SID有所区别,全局数据库名实际通过域名来控制在同一网段内数据库全局命名的唯一性,就如Windows下的域名控制器,如这里可以输入 myoracle.192.168.1.5。Oracle主目录可以不填写,输入SID,如myoracle。


    保存实例名称和监听中服务名配置一致,默认即可在Oracle安装目录下找到监听配置文件 (Windows下如D:oracleora92networkadminlistener.ora,Linux/Unix下$ ORACLE_HOME/network/admin/listerer.ora)。至此,Oracle服务端监听器配置已经完成。

    2、 本地服务名配置(Tnsnames)
      本 地服务名是基于Oracle客户端的网络配置,所以,如果客户端需要连接数据库服务器进行操作,则需要配置该客户端,其依附对象可以是任意一台欲连接数据 库服务器进行操作的PC机,也可以是数据库服务器自身。如前面所介绍,可以利用Oracle自带的图形化管理工具Net Manager来完成Oracle客户端的配置。选中如图(一)中的服务命名,再点击左上侧“+”按钮,会弹出新的监听配置对话框:
    输入Net服务名,如myoracle,点击下一步,进入
    TCP/IP协议配置,两种 协议在通信必不可少,所以默认继续下一步,输入相关实例名称,(其实对于客户端来说,你只需要配置一个监听就够了,再链接其他数据库就可以来这里添加实例名,然后进入数据库时选择相应的实例和用户名就可以了,没有必要很复杂去干种种无用功);

    选 中(Oracle8i或更高版本)服务名,输入服务名。这里的服务名实际上就是数据库服务器端监听器配置中的全局数据库名,前者与后者必须相同。连接类型 通常选专用服务器,这要视数据库服务器的配置而定,如果配置的共享数据库服务器,这里的连接类型就要选共享服务器,否则建议选专用服务器(关于专用服务器 的介绍请参阅相关文档)。配置好后点击下一步;

    如 果数据库服务器端相关服务启动了,可以点击测试按钮进行连接测试。Oracle默认是通过scott/tiger用户进行测试连接,由于scott用户是 Oracle自带的示例用户,对于正式的业务数据库或专业测试数据库可能没有配置这个用户,所以需要更改成有效的用户登录才可能测试成功。如果这里测试连 接不成功,也不要紧,先点完成按钮结束配置。

    回 到Oracle网络管理器(Oracle Net Manager)主窗口,保存配置,默认即可在Oracle安装目录下找到本地服务名配置文件 (Windows下如D:oracleora92networkadmintnsnames.ora,Linux/Unix下$ ORACLE_HOME/network/admin/ tnsnames.ora)。配置完成的本地服务名即可。

    树形目录下的服务命名可以通过编辑菜单里的重命名菜单更改成任意合法字符组成的服务名称,注意服务名称前不能有空格字符,否则可能无法连接数据库服务器。

    3、 连接数据库服务器
    (1)   启动服务器端监听器与数据库服务
    Linux/Unix下,启动监听器:
    $ lsnrctl start                    
    关闭监听器:
    $ lsnrctl stop
    查看监听状态:
    $ lsnrctl status
    启动数据库:
    $ sqlplus /nolog
    SQL>conn sys@myoracle as sysdba   --这里的myoracle是前面配置的客户端本地服务名
    SQL>conn / as sysdba
    SQL>startup
    Windows下,启动监听器:
    C:lsnrctl start
    启动Oracle实例服务:
    C:oradim –startup –sid myoracle  
    关闭Oracle实例服务:
    C:oradim –shutdown –sid myoracle
      以上服务必须同时启动,客户端才能连接数据库。由于默认配置的监听器名称是Listener,上述命令可以正常启动监听器,如果监听器名称是其它名称,如aListener,则需要用下列方式才能启动:
    Linux/Unix下:
    $ lsnrctl start aListener
    Windows下:
    C:lsnrctl start aListener
     
    (2)   测试连接数据库服务器
      测试的方法多种多样,可以在上面配置本地服务名时进行测试,也可以是第三方客户端工具,如PL/SQL Developer,最方便的是用Oracle自带的sqlplus工具,以下利用sqlplus进行测试:
    C:sqlplus /nolog
    SQL>conn zgh@myoracle
    已连接。
    四、客户端连接服务器端常见问题排除方法
      要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决。下面列出几种常见的连接问题:
    1、 ORA-12541: TNS: 没有监听器
    显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:
    $ lsnrctl start
    C:lsnrctl start
    2、 ORA-12500: TNS: 监听程序无法启动专用服务器进程
    对于Windows而言,没有启动Oracle实例服务。启动实例服务:
    C:oradim –startup -sid myoracle
    3、 ORA-12535: TNS: 操作超时
      出现这个问题的原因很多,但主要跟网络有关。解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。
    4、 ORA-12154: TNS: 无法处理服务名
      检 查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下$ORACLE_HOME/network/admin/tnsnames.ora)里每项服务的首 行服务名称前不能有空格。
    5、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME
      打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。
    6、 Windows下启动监听服务提示找不到路径
      用 命令或在服务窗口中启动监听提示找不到路径,或监听服务启动异常。打开注册表,进入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome92TNSListener项,查看ImagePath字符串项是否存在,如果没 有,设定值为D:oracleora92BINTNSLSNR,不同的安装路径设定值做相应的更改。这种方法同样适用于Oracle实例服务,同 上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE项,查看ImagePath字符串项是否存在,如果没有,则新建,设定值为d:oracleora92 binORACLE.EXE MYORACLE。
    以上是Oracle客户端连接服务器端常见的一些问题,当然不能囊括所有的连接异常。解决问题的关键在于方法与思路,而不是每种问题都有固定的答案。
    当然我有一次tnsnames.ora文件中配置监听写的是IP地址实例名等都正确可是启动去服务里启动监听时总是启动到一半系统自动停止,报监听意外停止后来找文章解决办法,改了tnsnames.ora文件配置种种都没搞定,后来总结原因,原来是关机IP地址被重新分配,而监听文件中IP是写死的,所以无法启动,大家都知道127.1.1.0之类的IP可以使IP形成一个回路就不存在了,可是在改了tnsnames.ora文件中IP后还是不行监听启动不了,后来了解到在work客户端安装目录下还有一个netsql文件记录监听在那里边的IP还是上次配置监听所设定IP所以建议大家如果你的IP不改动(指客户端不是服务器端)可以写死,如果改动建议写成127.0.0.1之类的host形式IP这就可以避免每次关机后需要重新设定的麻烦。
    目前12C的服务器监听还需要我去深入研究,因为我的服务器端12C配置有一些问题,当然哪位大神有思路希望多多交流!谢谢!

    展开全文
  • linux系统监听工具

    千次阅读 2015-01-15 10:06:32
    linux系统监听工具 1.top进程监控 Linux下的Top命令是一个性能监控程序,许多系统管理员常常用它来监控Linux性能,在许多Linux或者类Unix操作系统里都有这个命令。Top命令用于按一定的顺序显示所有正在运行而且...

    linux系统监听工具


    1.top进程监控

    Linux下的Top命令是一个性能监控程序,许多系统管理员常常用它来监控Linux性能,在许多Linux或者类Unix操作系统里都有这个命令。Top命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果。这条命令显示了CPU的使用率、内存使用率、交换内存使用大小、高速缓存使用大小、缓冲区使用大小,进程PID、所使用命令以及其他。它还可以显示正在运行进程的内存和CPU占用多的情况。对系统管理员来说,top命令式是一个非常有用的,它可用于监控系统并在需要的时候采取正确的处理动作。让我们看看实际中的top命令。

    # top



    2. vmstat – 虚拟内存统计

    Linux 的 VmStat 命令用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 块、中断、CPU 活动 等的统计信息。缺省情况下, vmstat 命令在 Linux 系统下不可用,你需要安装一个包含了 vmstat 程序的 sysstat 软件包。命令格式的常见用法是:

    # vmstatprocs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free inact active si so bi bo in cs us sy id wa st 1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0


    3.netstat-网络状态统计

    Netstat是一个用于监控进出网络的包和网络接口统计的命令行工具。它是一个非常有用的工具,系统管理员可以用来监控网络性能,定位并解决网络相关问题。

    [~]netstat -alnp



    4.Iostat-输入/输出统计

    Iostat是一个用于收集显示系统存储设备输入和输出状态统计的简单工具。这个工具常常用来追踪存储设备的性能问题,其中存储设备包括设备、本地磁盘,以及诸如使用NFS等的远端磁盘。





    文章学习参考:http://www.2cto.com/os/201404/293386.html (linux系统监控工具)


    展开全文
  • Charles_N:HTTP请求响应监听工具

    千次阅读 2015-05-12 19:13:18
    Charles_N:HTTP请求响应监听工具 1. 介绍 Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器.它允许一个开发者查看所有连接互联网的HTTP通信.这些包括request,response现HTTP headers (包含cookies与caching...
  • Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台, Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供...
  • 前端面试题(持续更新中)

    万次阅读 多人点赞 2019-11-06 17:16:33
    外部函数调用之后其变量对象本应该被销毁,但闭包的存在使我们仍然可以访问外部函数的变量对象 创建闭包最常见方式,就是在一个函数内部创建另一个函数。 闭包的缺点:滥用闭包函数会造成内存泄露,因为闭包中引用...
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    配置管理流程 88 3.SVN实战 88 配置管理工具SVN操作过程手册 90 一、 如何创建“project”项目版本库 90 二、 如何查看创建的“project”项目版本库 95 三、 在版本浏览器里面,创建文件,并进行检出 99 四、 如何对...
  • 软件测试_笔记(完整版)

    万次阅读 多人点赞 2018-07-02 08:51:28
    软件测试复习(部分) 概述 程序+文档+数据=软件 狭义的软件测试定义:为发现软件缺陷而执行程序或系统的过程 广义的软件测试定义:人工或自动地运行或测定某系统的过程,目的在于检验它是否满足规定的需求或...
  • vue面试题总汇

    千次阅读 多人点赞 2019-02-22 15:26:53
    常见的判断方法:typeof 判断已知对象类型的方法: instanceof 根据对象的constructor判断: constructor 无敌万能的方法:jquery.type() vue与angular的区别? 1.vue仅仅是mvvm中的view层,只是一个如...
  • 常见的自动化测试工具汇总

    千次阅读 2019-08-13 10:32:09
    在自动化测试领域,自动化工具的核心地位毋庸置疑。这篇博客总结了最顶尖的自动化测试工具和框架,这些工具和框架可以帮助组织更好地定位自己,跟上软件测试的趋势。这份清单包含了开源和商业的自动化测试解决方案。...
  • JavaWeb

    千次阅读 多人点赞 2017-12-26 09:09:24
    需求:每一次进行jdbc的crud操作的时候,有很多代码都是相同的,可不可以抽取工具类,完成一个通用性的代码 分析: 技术分析: JDBC的元数据 DATAbaseMetData:获得数据库连接的信息,获得数据库表的信息 获得数据库...
  • 2018前端面试常考题

    千次阅读 2018-08-03 17:32:26
    以及实现一个通用的事件监听函数或者实现事件委托。参考 https://blog.csdn.net/qq_21859119/article/details/77374475 函数式编程 了解其概念和作用,一般会考 函数的合并 和 珂里化,后者非常重要。可以...
  • 推荐 10 个不错的网络监视工具

    千次阅读 2019-05-23 10:00:09
    点击上方“民工哥技术之路”选择“置顶或星标”每天10点为你分享不一样的干货有几个网络监视工具可以用于不同的操作系统。在这篇文章中,我们将讨论从 Linux 终端中运行的 ...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...
  • 下面是《Android Studio开发实战 从零基础到App上线(第2版)》一书用到的工具和代码资源: 1、本书使用的Android Studio版本为3.2,最新的安装包可前往Android官网页面下载。 2、本书使用的Android NDK版本为r17,...
  • 常见功能自动化测试工具汇总

    万次阅读 2012-01-17 21:45:36
    因为之前常见的和使用的自动化工具只有QTP、selenuim,其它的测试工具都是听说名字,没有相对进一步去查看和学习其相关特性、原理及适用性。【因为之前是想着先学好一样工具后再学习其它工具就会更容易,且一次学习...
  • 常见黑客渗透测试工具

    千次阅读 2018-06-05 15:37:50
    是扫描UNIX漏洞的主力工具,随后栖身Windows。主要功能包括本地和远程安全审查,支持client/server结构,具有GTK图形界面,并支持脚本语言编写插件。属免费开源。 二、Wireshark 说起Wireshark,不得不提...
  • 从Npm Script到Webpack,6种常见的前端构建工具对比小编说:历史上先后出现了一系列构建工具,它们各有优缺点。由于前端工程师很熟悉JavaScript,Node.js又可以胜任所有构建需求,所以大多数构建工具都是用Node.js...
  • Oracle 监听器日志解析

    千次阅读 2018-05-09 11:14:00
    本篇将从监听器日志入手,分析阅读监听器日志和日常监听常见行为。 1、Oracle监听器功能 在笔者《说说Oracle监听器》(http://space.itpub.net/17203031/viewspace-682627)系列中,已经...
  • 无线网络分析监听

    千次阅读 2019-03-25 15:39:10
    一、无线监听概述 当你使用笔记本在星巴克一边喝咖啡一边浏览网页时,或是使用手机聊着微信看着朋友圈时,你无时无刻不在无线通信。而你不知道的是,可能在不远处的某个角落,某个人正在监听着你的一举一动,因为...
  • 性能测试-面试题

    千次阅读 多人点赞 2019-11-06 09:52:58
    7 常见性能测工具对比   8 JMeter主要组件介绍 1.测试计划(Test Plan)是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。 2.线程组(Thread Group)代表一定数量的并发用户,它可以用来...
  • 推荐一些socket工具,TCP、UDP调试、抓包工具. 还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用。好工具能让你事半功倍,基本上,我是属于彻头彻尾的...
  • Java三大器(3)-监听

    千次阅读 2018-07-02 15:53:33
    监听器的种类按照监听对象划分:ServletContext:对应ServletContextLisenerHttpSession:HttpSessionLisenerServletRequest:ServletRequestLisener按监听的事件划分:监听对象的销毁和初始化:ServletContext、Htt...
  • 1.4网络监听原理

    千次阅读 2018-08-09 09:44:24
    ISS 为嗅探器进行定义是:Sniffer 是利用计算机的接口截获目的地为其他计算机发送的数据报文的一种工具。Sniffer 的正当用途是网络管理员通过在网关进行嗅探,从而进行网络流量分析和数据分析,以便精确地判断网络中...
  • 钓鱼网站+钓鱼工具

    千次阅读 2019-01-04 11:54:54
    钓鱼工具:ReelPhish ReelPhish实时双因子钓鱼工具是以命令的方式运行的,主要有两个组件,一个组件是嵌入钓鱼网站的PHP脚本(需根据确定的目标网站对脚本代码进行设置修改),用来获取钓鱼的数据(账户、密码、双...
  • 设置USB数据监听

    千次阅读 2017-02-28 10:53:29
    设置USB数据监听

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,944
精华内容 33,977
关键字:

常见的监听工具