• DAnalyzer 1.2发布啦 -- Weblogic与Directory协议分析工具

  • SQLView -- 可视化的Weblogic JDBC DEBUG

/Articles

Oracle数据库学习-Archive Redo Log

Archive Log保存了所有数据库执行过程中的操作,是对当前Inactive状态的Redo Log的备份,用于备份和数据恢复。 NONARCHIVE和ARCHIVE的区别 在NONARCHIVE模式下,Redo Log不会被备份,会被LGWR进程覆盖,即发生日志切换时(alter system switch logfile),LGWR后台进程可以覆盖非活动的(INACTIVE)的Redo Log。在数据库备份时,只能使用冷备份,即必须先关闭数据库,然后才能备份所有的物理文件。此模式只能保护数据库免于Instance失败,但不能保护数据库免于磁盘介质的错误。由于不会产生Archive...

Oracle数据库学习-Redo Log

日志文件记录了对数据库的所有操作记录,为恢复提供了可行的机制。一个数据库实例的Redo Log必须有两组或两组以上的Group,每组Group含一个或一个以上的Redo Log文件供写操作,同一组的成员文件大小必须一致。LGWR进程根据日志组循环地写,同一组中的Redo Log采用同步写的方式,每个文件被分配到一个LSN (Log Sequence Number)。当写完一个Group的时候,Log Switch会被出发,LSN累加1,同时触发Check Point。 日志文件与日志组的状态 查找当前Instance的Group状况和每组的Redo...

Oracle数据库学习-Control File

Control File是一个二进制文件,存放了当前数据库instance的物理结构信息。数据库open状态下,Control File必须处于可读写的状态。Control File一旦破坏,数据库将无法启动。 Control File可以有多个,但database启动的时候永远只读取第一个Control File,其他的Control作为备份文件只作写操作,因此所有的Control都包含相同的二进制信息。 Control包含的信息如数据库名,创建时间,系统平台信息,checkpoint点等。可以通过字典v$database来获取Control File包含的内容。 如...

Oracle数据库学习-用户配置

在Oracle中用户的创建与属性、权限的配置极其简单,但是如何高效地创建、管理可共享的权限与角色,与架构设计一样,它也需要DBA具有全局的观念。 一、Profile属性 什么是Profile Profile定义了用户对于Oracle资源访问的限制性使用,比如该用户可以允许输错多少次密码,可以同时有多少个session同时访问,连接db时的空闲等待时限等等。每个用户可以共享一个DEFAULT的Profile,也可以单独配置一个Profile,或共享一个自定的Profile。 通过如下命令查看当前版本的database支持的profile的类型: SQL> select...

Oracle数据库学习-内存管理

Oracle提供了对内存的自动和手动两种管理方式,本文通过简单的实例说明两种方式下对SGA/PGA的设置。 一、SGA与PGA SGA SGA是一组共享内存结构,包含了database的一个实例的所有数据和控制信息,SGA由多个服务和background的进程共享。 PGA PGA是对应一个服务进程的内存区域,一个PGA对应一个服务进程,进程之间不可共享同一个PGA。 用Oracle提供的一个示意图更能很好地说明PGA/SGA的区别和各自的领域。 二、自动内存管理...

Oracle数据库学习-数据库的服务进程

简单讨论了在10g中的服务进程Dedicated Server Process和Shared Server Process。 服务进程的类型 Oracle的服务进程用来处理连接到当前实例的用户进程的一系列请求。在10g中包括以下两种类型 Dedicated专注模式 Shared共享模式 Dedicated专注模式 Oracle所默认的即是专注模式下的服务进程,观察下图可知一个Server Process为一个用户进程服务。 Shared共享模式 在共享模式下,Oracle维持一定数量的服务进程,并指派当前处于闲置状态的服务进程响应队列中的用户请求。如下图:...

Oracle数据库学习-数据库的启动与关闭

在不同的场合下,必须选择正确而有效的启动与关闭的方式。本文详细讲述在SQLPLUS模式下启动与关闭的各种方式。 1. 启动的初始化参数 Oracle启动时必须读取初始化配置的文件,该文件可以是一个二进制的Server Parameter File (SPFILE),也可以是一个文本格式的PFILE文件。初始化配置文件的路径在Windows下位于ORACLE_HOME/database/目录下面(Unix位于ORACLE_DATABASE/dbs/下)。 Oracle按照如下查找规则来定位它要读取的配置文件。 spfile$ORACLE_SID.ora spfile.ora...

Oracle数据库学习-手动创建数据库

Oracle提供的DBCA隐藏了许多细节,通过手动的创建instance,可以帮助用户更好地理解instance的创建步骤。本文的例子都是在Windows完成,相应的Linux或其他操作系统请参考操作系统文档。 1:确定需要创建的instance名字 在命令模式下定义环境变量,假设要创建的名字为zigzag set oracle_sid=zigzag 2:设置数据库访问权限的验证方式 Oracle提供了2种访问方式...

Java多线程 - 简单的线程池模式

在中间件等容器中,线程池是用的最多的管理线程与任务请求分配的方式。创建线程是需要消耗时间和内存的。在服务启动之初,就初始化一定数量的线程,其优点是保证这些数量的线程在内存设定的情况下一定会创建成功,并且节约了临时创建线程的时间。 线程池的工作原理大致为:为可以预期的大量请求创建一定数目的线程,当请求到来时,请求会被放入一个FIFO的列表中,线程池中的线程按照一定的优先调度获取这些请求,执行完后,再从请求列表中挨个获取下一个请求加以处理。在线程与请求处理过程中,会有两种情形出现: 一定数目的线程来不及处理大量的请求,请求会被挂起,直到线程有能力可以处理...

Java多线程 - 任务指派的临时线程

在我所提供技术支持的产品代码中,有一类模式非常普遍,就是主线程得到客户端的请求,在处理完必要的逻辑之后,再发送邮件通知或者JMS消息,而主线程在调用完这类消息通知发送后,完全不用等待消息通知的返回结果,马上返回。他们的实现方式大同小异,基本上都是将消息通知指派给一个临时新建的线程,而主线程即刻返回。使用这类任务指派给临时线程的模式,我总结了一下,有2个基本的条件: 这些任务不需要返回结果给主线程 必须是轻量的临时线程,没有复杂的线程调度,随即销毁,不占用全局线程池 基本上,使用简单的临时线程,通过匿名内部类就能实现。 // 处理前台逻辑 //...

Java多线程 - 中途放弃

如果有多个线程需要处理同一个资源,当一个线程已经处理完了,另外的线程根据资源的状态可以判断要不要也去处理。如果状态显示资源无须再处理,那么这些线程可以中途放弃。等到下次执行机会到来时再判断。这可能是一种比较节省资源的方式。和前面的保护性暂挂方式有一定的区别。保护性暂挂一直没有放弃,一直处于等待状态,当notify它时马上激活。而这里的中途放弃,则是测底放弃本次执行,等下一次机会的到来。...

Java多线程 - 保护性暂挂

有一种多线程工作环境,要求一件事情的开始起源于另外一件事情提供的资源的就绪。比如Java Message消息队列Queue。只有发送者Sender把消息实体组装完毕发送到queue中时,Reciever才能从queue中获取消息加以处理。也就是说Receiver的工作前提是消息队列中至少不为空。一旦消息队列为空的情况发生,Receiver必须挂起,暂停执行,以保证queue中有消息就绪。这种暂挂的目的是为了保护queue的资源可用。 下面的例子模拟这样的消息队列的输入输出。假设消息实体为: public class Message { String body;...

1 2 3 4 5 6 7 8 9 10