hadoop中主机有多少个进程是对的

hadoop中主机有多少个进程是对的,第1张

概述:
Hadoop是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多的 小的工作单元,并把这些单元放到任何集群节点上执行。在MapReduce中,一个准备提交执行的应用程序称为“作业(job)”,而从一个作业划分出 得、运行于各个计算节点的工作单元称为“任务(task)”。此外,Hadoop提供的分布式文件系统(HDFS)主要负责各个节点的数据存储,并实现了 高吞吐率的数据读写。
在分布式存储和分布式计算方面,Hadoop都是用从/从(Master/Slave)架构。在一个配置完整的集群上,想让Hadoop这头大 象奔跑起来,需要在集群中运行一系列后台(deamon)程序。不同的后台程序扮演不用的角色,这些角色由NameNode、DataNode、 Secondary NameNode、JobTracker、TaskTracker组成。其中NameNode、Secondary  NameNode、JobTracker运行在Master节点上,而在每个Slave节点上,部署一个DataNode和TaskTracker,以便 这个Slave服务器运行的数据处理程序能尽可能直接处理本机的数据。对Master节点需要特别说明的是,在小集群中,Secondary  NameNode可以属于某个从节点;在大型集群中,NameNode和JobTracker被分别部署在两台服务器上。
我们已经很熟悉这个5个进程,但是在使用的过程中,我们经常遇到问题,那么该如何入手解决这些问题。那么首先我们需了解的他们的原理和作用。
1Namenode介绍

Namenode 管理者文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。管理这些信息的文件有两个,分别是Namespace 镜像文件(Namespace image)和 *** 作日志文件(edit log),这些信息被Cache在RAM中,当然,这两个文件也会被持久化存储在本地硬盘。Namenode记录着每个文件中各个块所在的数据节点的位置信息,但是他并不持久化存储这些信息,因为这些信息会在系统启动时从数据节点重建。

Namenode结构图课抽象为如图:

客户端(client)代表用户与namenode和datanode交互来访问整个文件系统。客户端提供了一些列的文件系统接口,因此我们在编程时,几乎无须知道datanode和namenode,即可完成我们所需要的功能。

11Namenode容错机制

没有Namenode,HDFS就不能工作。事实上,如果运行namenode的机器坏掉的话,系统中的文件将会完全丢失,因为没有其他方法能够将位于不同datanode上的文件块(blocks)重建文件。因此,namenode的容错机制非常重要,Hadoop提供了两种机制。

第一种方式是将持久化存储在本地硬盘的文件系统元数据备份。Hadoop可以通过配置来让Namenode将他的持久化状态文件写到不同的文件系统中。这种写 *** 作是同步并且是原子化的。比较常见的配置是在将持久化状态写到本地硬盘的同时,也写入到一个远程挂载的网络文件系统。

第二种方式是运行一个辅助的Namenode(Secondary Namenode)。 事实上Secondary Namenode并不能被用作Namenode它的主要作用是定期的将Namespace镜像与 *** 作日志文件(edit log)合并,以防止 *** 作日志文件(edit log)变得过大。通常,Secondary Namenode 运行在一个单独的物理机上,因为合并 *** 作需要占用大量的CPU时间以及和Namenode相当的内存。辅助Namenode保存着合并后的Namespace镜像的一个备份,万一哪天Namenode宕机了,这个备份就可以用上了。

但是辅助Namenode总是落后于主Namenode,所以在Namenode宕机时,数据丢失是不可避免的。在这种情况下,一般的,要结合第一种方式中提到的远程挂载的网络文件系统(NFS)中的Namenode的元数据文件来使用,把NFS中的Namenode元数据文件,拷贝到辅助Namenode,并把辅助Namenode作为主Namenode来运行。

----------------------------------------------------------------------------------------------------------------------------------------------------


2、Datanode介绍

Datanode是文件系统的工作节点,他们根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送他们所存储的块(block)的列表。

集群中的每个服务器都运行一个DataNode后台程序,这个后台程序负责把HDFS数据块读写到本地的文件系统。当需要通过客户端读/写某个 数据时,先由NameNode告诉客户端去哪个DataNode进行具体的读/写 *** 作,然后,客户端直接与这个DataNode服务器上的后台程序进行通 信,并且对相关的数据块进行读/写 *** 作。

---------------------------------------------------------------------------------------------------------------------------------------------------


3、Secondary NameNode介绍
Secondary  NameNode是一个用来监控HDFS状态的辅助后台程序。就想NameNode一样,每个集群都有一个Secondary  NameNode,并且部署在一个单独的服务器上。Secondary  NameNode不同于NameNode,它不接受或者记录任何实时的数据变化,但是,它会与NameNode进行通信,以便定期地保存HDFS元数据的 快照。由于NameNode是单点的,通过Secondary  NameNode的快照功能,可以将NameNode的宕机时间和数据损失降低到最小。同时,如果NameNode发生问题,Secondary  NameNode可以及时地作为备用NameNode使用。
31NameNode的目录结构如下:

${dfsnamedir}/current/VERSION

/edits

/fsimage

/fstime


32Secondary NameNode的目录结构如下:

${fscheckpointdir}/current/VERSION

/edits

/fsimage

/fstime

/previouscheckpoint/VERSION

/edits

/fsimage

/fstime

如上图,Secondary NameNode主要是做Namespace image和Edit log合并的。

那么这两种文件是做什么的?当客户端执行写 *** 作,则NameNode会在edit log记录下来,(我感觉这个文件有些像Oracle的online redo logo file)并在内存中保存一份文件系统的元数据。

Namespace image(fsimage)文件是文件系统元数据的持久化检查点,不会在写 *** 作后马上更新,因为fsimage写非常慢(这个有比较像datafile)。

由于Edit log不断增长,在NameNode重启时,会造成长时间NameNode处于安全模式,不可用状态,是非常不符合Hadoop的设计初衷。所以要周期性合并Edit log,但是这个工作由NameNode来完成,会占用大量资源,这样就出现了Secondary NameNode,它可以进行image检查点的处理工作。步骤如下:

(1)       Secondary NameNode请求NameNode进行edit log的滚动(即创建一个新的edit log),将新的编辑 *** 作记录到新生成的edit log文件;

(2)       通过>

(3)       读取fsimage到内存中,即加载fsimage到内存,然后执行edits中所有 *** 作(类似OracleDG,应用redo log),并生成一个新的fsimage文件,即这个检查点被创建;

(4)       通过>

(5)       NameNode使用新的fsimage替换原来的fsimage文件,让(1)创建的edits替代原来的edits文件;并且更新fsimage文件的检查点时间。

整个处理过程完成。

Secondary NameNode的处理,是将fsimage和edites文件周期的合并,不会造成nameNode重启时造成长时间不可访问的情况。

--------------------------------------------------------------------------------------------------------------------------------------------------


4、JobTracker介绍

JobTracker后台程序用来连接应用程序与Hadoop。用户代码提交到集群以后,由JobTracker决定哪个文件将被处理,并且为 不同的task分配节点。同时,它还监控所有的task,一旦某个task失败了,JobTracker就会自动重新开启这个task,在大多数情况下这 个task会被放在不用的节点上。每个Hadoop集群只有一个JobTracker,一般运行在集群的Master节点上。

下面我们详细介绍:


41JobClient

我们配置好作业之后,就可以向JobTracker提交该作业了,然后JobTracker才能安排适当的TaskTracker来完成该作业。那么MapReduce在这个过程中到底做了那些事情呢?这就是本文以及接下来的一片博文将要讨论的问题,当然本文主要是围绕客户端在作业的提交过程中的工作来展开。先从全局来把握这个过程吧!

在Hadoop中,作业是使用Job对象来抽象的,对于Job,我首先不得不介绍它的一个大家伙JobClient——客户端的实际工作者。JobClient除了自己完成一部分必要的工作外,还负责与JobTracker进行交互。所以客户端对Job的提交,绝大部分都是JobClient完成的,从上图中,我们可以得知JobClient提交Job的详细流程主要如下:

JobClient在获取了JobTracker为Job分配的id之后,会在JobTracker的系统目录(HDFS)下为该Job创建一个单独的目录,目录的名字即是Job的id,该目录下会包含文件jobxml、jobjar、jobsplit等,其中,jobxml文件记录了Job的详细配置信息,jobjar保存了用户定义的关于job的map、reduce *** 纵,jobsplit保存了job任务的切分信息。在上面的流程图中,我想详细阐述的是JobClient是任何配置Job的运行环境,以及如何对Job的输入数据进行切分。


42JobTracker
上面谈到了客户端的JobClient对一个作业的提交所做的工作,那么这里,就要好好的谈一谈JobTracker为作业的提交到底干了那些个事情——一为作业生成一个Job;二接受该作业。
我们都知道,客户端的JobClient把作业的所有相关信息都保存到了JobTracker的系统目录下(当然是HDFS了),这样做的一个最大的好处就是客户端干了它所能干的事情同时也减少了服务器端JobTracker的负载。下面就来看看JobTracker是如何来完成客户端作业的提交的吧!哦。对了,在这里我不得不提的是客户端的JobClient向JobTracker正式提交作业时直传给了它一个改作业的JobId,这是因为与Job相关的所有信息已经存在于JobTracker的系统目录下,JobTracker只要根据JobId就能得到这个Job目录。
对于上面的Job的提交处理流程,我将简单的介绍以下几个过程:
1创建Job的JobInProgress
JobInProgress对象详细的记录了Job的配置信息,以及它的执行情况,确切的来说应该是Job被分解的map、reduce任务。在JobInProgress对象的创建过程中,它主要干了两件事,一是把Job的jobxml、jobjar文件从Job目录copy到JobTracker的本地文件系统(jobxml->/jobTracker/jobidxml,jobjar->/jobTracker/jobidjar);二是创建JobStatus和Job的mapTask、reduceTask存队列来跟踪Job的状态信息。
2检查客户端是否有权限提交Job
JobTracker验证客户端是否有权限提交Job实际上是交给QueueManager来处理的。
3检查当前mapreduce集群能够满足Job的内存需求
客户端提交作业之前,会根据实际的应用情况配置作业任务的内存需求,同时JobTracker为了提高作业的吞吐量会限制作业任务的内存需求,所以在Job的提交时,JobTracker需要检查Job的内存需求是否满足JobTracker的设置。
上面流程已经完毕,可以总结为下图:
 
--------------------------------------------------------------------------------------------------------------------------
5、TaskTracker介绍
TaskTracker与负责存储数据的DataNode相结合,其处理结构上也遵循主/从架构。JobTracker位于主节点,统领 MapReduce工作;而TaskTrackers位于从节点,独立管理各自的task。每个TaskTracker负责独立执行具体的task,而 JobTracker负责分配task。虽然每个从节点仅有一个唯一的一个TaskTracker,但是每个TaskTracker可以产生多个java 虚拟机(JVM),用于并行处理多个map以及reduce任务。TaskTracker的一个重要职责就是与JobTracker交互。如果 JobTracker无法准时地获取TaskTracker提交的信息,JobTracker就判定TaskTracker已经崩溃,并将任务分配给其他 节点处理。
51TaskTracker内部设计与实现
Hadoop采用master-slave的架构设计来实现Map-Reduce框架,它的JobTracker节点作为主控节点来管理和调度用户提交的作业,TaskTracker节点作为工作节点来负责执行JobTracker节点分配的Map/Reduce任务。整个集群由一个JobTracker节点和若干个TaskTracker节点组成,当然,JobTracker节点也负责对TaskTracker节点进行管理。在前面一系列的博文中,我已经比较系统地讲述了JobTracker节点内部的设计与实现,而在本文,我将对TaskTracker节点的内部设计与实现进行一次全面的概述。
TaskTracker节点作为工作节点不仅要和JobTracker节点进行频繁的交互来获取作业的任务并负责在本地执行他们,而且也要和其它的TaskTracker节点交互来协同完成同一个作业。因此,在目前的Hadoop-02020实现版本中,对工作节点TaskTracker的设计主要包含三类组件:服务组件、管理组件、工作组件。服务组件不仅负责与其它的TaskTracker节点而且还负责与JobTracker节点之间的通信服务,管理组件负责对该节点上的任务、作业、JVM实例以及内存进行管理,工作组件则负责调度Map/Reduce任务的执行。这三大组件的详细构成如下:

 

下面来详细的介绍这三类组件:
服务组件
TaskTracker节点内部的服务组件不仅用来为TaskTracker节点、客户端提供服务,而且还负责向TaskTracker节点请求服务,这一类组件主要包括>要看你开机运行的程序了
1基本系统进程
Csrssexe:这是子系统服务器进程,负责控制Windows创建或删除线程以及16位的虚拟DOS环境。
System Idle Process:这个进程是作为单线程运行在每个处理器上,并在系统不处理其它线程的时候分派处理器的时间。
Smssexe:这是一个会话管理子系统,负责启动用户会话。
Servicesexe:系统服务的管理工具。
Lsassexe:本地的安全授权服务。
Explorerexe:资源管理器。
Spoolsvexe:管理缓冲区中的打印和传真作业。
Svchostexe:这个进程要着重说明一下,有不少朋友都有这种错觉:若是在“任务管理器”中看到多个Svchostexe在运行,就觉得是有病毒了。其实并不一定,系统启动的时候,Svchostexe将检查注册表中的位置来创建需要加载的服务列表,如果多个Svchostexe同时运行,则表明当前有多组服务处于活动状态;多个DLL文件正在调用它。
smssexe Session Manager
csrssexe 子系统服务器进程
winlogonexe 管理用户登录
servicesexe 包含很多系统服务
lsassexe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务) 产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务) ->netlogon
svchostexe 包含很多系统服务 !!!->eventsystem,(SPOOLSVEXE 将文件加载到内存中以便迟后打印。)
explorerexe 资源管理器 (internatexe 托盘区的拼音图标)
附加的系统进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少)
mstaskexe 允许程序在指定时间运行。(系统服务)->schedule
regsvcexe 允许远程注册表 *** 作。(系统服务)->remoteregister
winmgmtexe 提供系统管理信息(系统服务)。
inetinfoexe->msftpsvc,w3svc,iisadmn
tlntsvrexe->tlnrsvr
tftpdexe 实现 TFTP Internet 标准。该标准不要求用户名和密码。远程安装服务的一部分。(系统服务)
termsrvexe ->termservice
dnsexe 应答对域名系统(DNS)名称的查询和更新请求。(系统服务)
以下全是系统服务,并且很少会用到,如果你暂时用不着,应该关掉(对安全有害 )
tcpsvcsexe 提供在 PXE 可远程启动客户计算机上远程安装 Windows 2000 Professional 的能力。(系统服务)->simptcp 支持以下 TCP/IP 服务:Character Generator,Daytime,Discard, Echo, 以及 Quote of the Day。(系统服务)
ismservexe 允许在 Windows Advanced Server 站点间发送和接收消息。(系统服务)
upsexe 管理连接到计算机的不间断电源(UPS)。(系统服务)
winsexe 为注册和解析 NetBIOS 型名称的 TCP/IP 客户提供 NetBIOS 名称服务。(系统服务)
llssrvexe License Logging Service(system service)
ntfrsexe 在多个服务器间维护文件目录内容的文件同步。(系统服务)
RsSubexe 控制用来远程储存数据的媒体。(系统服务)
locatorexe 管理 RPC 名称服务数据库->rpclocator(区 RpcSs)
lserverexe 注册客户端许可证。(系统服务)
dfssvcexe 管理分布于局域网或广域网的逻辑卷。(系统服务)
clipsrvexe 支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面。(系统服务)
msdtcexe 并列事务,是分布于两个以上的数据库,消息队列,文件系统,或其它事务保护资源管理器。(系统服务)
faxsvcexe 帮助您发送和接收传真。(系统服务)
cisvcexe Indexing Service(system service)!!!
dmadminexe 磁盘管理请求的系统管理服务。(系统服务)
mnmsrvcexe 允许有权限的用户使用 NetMeeting 远程访问 Windows 桌面。(系统服务)
netddeexe 提供动态数据交换 (DDE) 的网络传输和安全特性。(系统服务)
smlogsvcexe 配置性能日志和警报。(系统服务)
rsvpexe 为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和本地通信控制安装功能。(系统服务)
RsEngexe 协调用来储存不常用数据的服务和管理工具。(系统服务)
RsFsaexe 管理远程储存的文件的 *** 作。(系统服务)
grovelexe 扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向一个数据存储点,以节省磁盘空间。(系统服务)
SCardSvrexe 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。(系统服务)
snmpexe 包含代理程序可以监视网络设备的活动并且向网络控制台工作站汇报。(系统服务)
snmptrapexe 接收由本地或远程 SNMP 代理程序产生的陷阱消息,然后将消息传递到运行在这台计算机上 SNMP 管理程序。(系统服务)
UtilManexe 从一个窗口中启动和配置辅助工具。(系统服务)
msiexecexe 依据 MSI 文件中包含的命令来安装、修复以及删除软件。(系统服务)

Oracle实例的进程结构
这里所讲的里程是指Unix系统中的进程,在Windows中,Oracle是一个 *** 作系统服务。
Oracle实例由内存区域和后台进程组成。
Oracle实例分为单进程实例(一个进程执行全部的Oracle代码,只允许单个用户存取)和多进程实例(由多个进程执行Oracle代码的不同部分,对于每一个连接的用户都有一个进程,允许多个用户同时使用)。
在多进程结构中,除服务器进程(请注意,此“服务器进程”不是指所有的实例中的进程,见下面的说明)外,还有其他后台进程,包括:Dnnn,DBWR,LGWR,ARCH,PMON,SMON,CKPT,RECO等。在数据库启动后,这些进程常驻 *** 作系统。Oracle中所有进程的数量之和不能超过参数PROCESS设定的值:
sql>show parameter process
当Oracle客户端应用程序与Oracle实例连接的时候,Oracle会产生一个服务器进程来为这些客户服务,此进程在widnows下表现为线程。此进程的主要作用有:对于用户发出的SQL语句进行语法分析,编译,执行用户的SQL语句,如是数据块不在数据缓冲区时,则从磁盘数据文件将数据读入到SGA的共享数据缓冲区中,将SQL语句的执行结果返回组应用程序。下面的语句用来查询数据库中的用户会话信息。
sql>select substr(ssid,1,3) sid,substr(sserial#,1,5) ser,spid,substr(schemaname,1,10) schema,substr(type,1,3) typ,substr(decode((consistent_gets+block_gets),0,'None',(100(consistent_gets+block_gets-physical_reads)/consistent_gets+block_gets))),1,4) "%hit",value cpu,substr(block_changes,1,5) bchng from v$process p,v$sesstat t,v$sess_io i,v$session s where isid=ssid and paddr=paddr(+) and ssid=tsid and tstatistic#=12;
结果中:
sid 表示会话ID号,
ser 表示会话serial#号,serial#与sid组合以唯一表示一个会话,
spid 表示 *** 作系统进程号,
schema 表示数据库用户名,
typ 表示进程类型,use为用户进程,bac为后台进程
%hit 表示数据缓冲区命中率,
cpu 表示使用cpu的时间,
bchng 表示修改了的数据块的个数。
下面介绍各个后台进程。
1 DBWR进程
DBWR(Database Writer)进程将缓冲区中的数据写入数据文件,负责数据缓冲区的管理。
当数据缓冲区中的一个数据被修改后,被标记为“脏”,DBWR进程负责将“脏”数据写入磁盘。
DBWR采用LRU算法来替换数据缓冲区中的数据。
DBWR的作用包括:
1) 管理数据缓冲区,以便服务器进程总能找到空闲缓冲区
2) 将所有修改后的缓冲区中的数据写入数据库文件
3) 使用LRU算法将最近使用过的块保留在内存中
4) 通过延迟写来优化磁盘i/o
在下列情况下DBWR要将脏数据写入磁盘数据文件:
1) 当一个服务器进程将缓冲数据块移“脏表”,面该脏表达到一定程度进。(该临界长度由参数DB_BLOCK_WRITE_BATCH决定)
2) 当一个服务器进程在LRU表中查找DB_BLOCK_MAX_SCAN_CNT缓冲区时,没有查到空闲的缓冲区
3) 出现超时
4) 检查点发生时
在一个Oracle实例中,允许启动多个DBWR进程,DBWR进程个数由参数DB_WRITE_PROCESSES指定,上限为20,进程名依次自动命名为:DBW0,DBW1,DBW2DBW19。
sql>show parameter processes
2 LGWR进程
LGWR(Log Writer)进程将日志数据从日志缓冲区中写入磁盘日志文件中。
关于LGWR进程的工作时机可以看我写的第一篇《一次事务过程》。
LGWR的写盘条件是:
1) 发生提交,即commit;
2) 日志缓冲区达到总数的1/3时;
3) 超时;
4) DBWR进程需要为检验点清除缓冲区时。
每一个Oracle实例只有一个LGWR进程。
LGWR将日志信息同步的写入到日志文件组的多个日志成员中,如果组中的一个成员文件被删除或不可使用,LGWR将日志信息继续写到该组的其他文件中,不影响数据库的运行。
3 SMON进程
SMON(System Monitor),系统监控进程,在实例启动时执行实例恢复,并负责清理不再使用的临时段。
4 PMON进程
PMON(Process Monitor),进程监控里程,在服务器进程出现故障时执行进程恢复,负责清理内存内存和释放该进程所使用的资源。
5 ARCH进程
ARCH(Archive Process,归档进程)在日志存满时将日志信息写到磁盘或磁带,用于介质失败时的恢复。
日志信息首先产生于日志缓冲区,再由日志写入进程LGWR将日志数据写入日志文件组,日志切换时,由归档进程ARCH将日志数据从日志文件组中写入归档日志中。
在一个数据库实例中,归档进程最多可以启动10个,进程名依次自动命名为ARC0,ARC1,ARC2ARC9,设置方法是:在参数文件中增加参数LOG_ARCHIVE_MAX_PROCESSES。关于如何启用数据库的自动归档,在前面的《物理结构》一篇中已有说明,这里说明一个几个相关的参数:
1) LOG_ARCHIVE_DEST:用于设置归档日志的文件存储目录
2) LOG_ARCHIVE_DUBLEX_DEST:用于设置归档日志文件的镜像存储目录,此参数在oracle 8及以上的版本中支持
3) LOG_ARCHIVE_DEST_n:用于设置更多的镜像目录,其中,1<=n<=10,该参数有以下三个选项:
(1)MANDATORY:表示必须完成此目录的归档,才可以切换。
(2)REOPEN:归档目录或介质失败后,需等多长时间能重新写入日志,默认时间为300秒。
(3)OPTIONAL:不管是否归档完成都进行切换,这是默认方式
举例如下:
LOG_ARCHIVE_DEST_1='LOCATION=/u01/oracle/archive/
MANDATORY
REOPEN=500'
LOG_ARCHIVE_DEST_2='LOCATION=/u02/oracle/archive/
OPTIONAL'
LOG_ARCHIVE_DEST_n只适用于oracle 8i及以上的版本。
4) LOG_ARCHIVE_DEST_STATE_n:用于对归档日志目录进行失效或生效,该参数与LOG_ARCHIVE_DEST_n一一相对应。如:
LOG_ARCHIVE_DEST_STATE_1=DEFER
LOG_ARCHIVE_DEST_STATE_2=ENABLE
此参数可以在线设置:
sql> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=DEFER;
此参数只适用于oracle 10g及以上版本。
6 CKPT进程
CKPT(CheckPoint,检查点)进程出现时,系统对全部数据库文件及控制文件的文件头的同步号进行修改,以保证数据库的同步。
以下两个参数是对CKPT有影响的:
LOG_CHECKPOINT_TIMEOUT:决定产生一个检验点的时间间隔,单位为秋,默认为1800;
LOG_CHECKPOINT_INTERVAL:执行一个检验点需要填充的日志文件块的数目,默认为0,表示不起作用。
系统对于数据库的改变信息用系统改变号SCN表示,SCN也叫检验点号,在日志中用CHECKPOINT_CHANGE#表示,它是数据文件,日志文件,控制文件的同步的同步依据,同时存储在这三个中,在系统改变时,检验点号也会同时改变。
引起CKPT产生的主要时机有:
1)日志切换时
2)达到LOG_CHECKPOINT_TIMEOUT指定的间隔时间
3)达到LOG_CHECKPOINT_INTERVAL指定的日志块数
4)数据库关闭
5)DBA强制产生
6)表空间OFFLINE时
7 RECO进程
RECO(Recover,恢复)进程用于分布式数据库系统,RECO进程自动地解决在分布式数据库中的事务故障。
8 LCKn进程
LCKn(锁进程)用于Oracle并行服务器环境下,用于多个实例间的封锁,该进程最多可以启动10个。
9 Dnnn进程
Dnnn(Despatcher,调度)进程。用于多线程服务器体系结构中。详见下一篇《Oracle连接配置结构》
10 SNP进程
SNP是作业进程,主要用于分布式数据库中,进行数据库之间快照的自动刷新,并同时通达DBMS_JOB程序包自动运行预定的存储过程,SQL,PL/sql程序等。有两个参数用来控制作业进程的计划:
1) JOB_QUEUE_PROCESS:用于设置作业进程个数
2) JOB_QUEUE_INTERVAL:用于设置作业进程被周期性唤醒的时间间隔
后台进程跟踪信息
所有修改数据库结构的命令会自动被后台进程跟踪记录,跟踪信息由oracle后台进程自动存储,跟踪文件的名称为alter_SID。此文件的存储目录由参数BACKGROUND)DUMP_DEST指定。
可以用工具命令TKPROF来格式化跟踪文件,如:
$tkprof oralogfile1log
除了跟踪后台进程外,还可以启用参数SQL_TRACE对用户的语句进行跟踪。修改参数文件:
TIMED_STATISTICS=TRUE
USER_DUMP_DEST=目录名
MAX_DUMP_FILE_SIZE=5M
SQL_TRACE=TRUE
或者:
SQL>ALTER SESSION SET SQL_TRACE=TRUE对当前会话进行SQL跟踪。
锁等待问题与KILL SESSION
为了保证数据的一致性,系统提供锁机制。有关锁的概念可以参数《数据库系统概论》一书。要了解当前在等待锁资源的用户:
sql>select ausername,asid,a,serial#,bid1 from v$session,v$lock where alockwait=bkaddr;
要了解锁住其它用户的用户进程:
SQL>SELECT AUSERNAME,ASID,A,SERIAL#,BID1 FROM V$SESSION A,V$LOCK B WHERE BID1 IN (SELECT DISTINCT EID1 FROM V$SESSION D,V$LOCK E WHERE DLOCKWAIT=EKADDR) AND ASID=BSID AND BREQUEST=0;

不是估计病毒,是肯定病毒
首先备份出所有重要文件\数据\资料
拷贝到安装有最新杀毒软件病毒库的机器上,杀毒!
保险期间,多换几种杀毒软件反复杀毒!
重装服务器系统格硬盘,装杀毒软件,扫描漏洞,打好补丁程序
全盘杀毒,没问题后,恢复备份文件

rundll32exe用于在内存中运行DLL文件,它们会在应用程序中被使用。这个程序对你系统的正常运行是非常重要的。注意:rundl132exe和rundll32exe神似但是rundl132exe是W32MirootWorm病毒。该病毒允许攻击者访问你的计算机,窃取密码和个人数据。该进程的安全等级是建议立即删除。
一、病毒感染了系统文件rundll32exe, Rundll32exe是必不可少的系统文件,缺少了它一些项目和程序将无法执行。 例如 你在打开控制面板里的某些项目时出现如小q同学遇到的rundll32exe错误提示。
二、一些安全软件没有把病毒清理干净,可以导致每次开机提示rundll32exe错误。
rundll32exe修复方案:
金山卫士可以做到修复常见的rundll32exe出错的问题 。
第一步:下载金山卫士(永久免费)
第二步 安装金山卫士,安装完以后点击主界面右侧的木马查杀的按钮 ,点击快速查杀
第三步 发现威胁,点击立即处理按钮,修复完成以后,根据提示重启系统或者键盘按
F5刷新桌面。
希望能够解决你的问题,如果 *** 作中遇到问题,请直接Q我。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13262827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-28
下一篇 2023-06-28

发表评论

登录后才能评论

评论列表(0条)

保存