标题：CheckPoint
公司简介
  Check Point软件技术有限公司创立于1993年，以FireWall获得专利的状态检测技术（Stateful inspection）发明而成为IT安全行业的先驱。目前状态检测技术仍是大多数网络安全技术的基础。 
自从公司成立以来，Check Point 一直专注于IT安全。为了满足客户不断变化的需求，公司已研发出多种技术来保护企业和个人的互联网应用，确保他们业务和沟通的安全。
2006年，Check Point 发明了统一安全构架。此架构采用单一管理控制台、统一安全网关以及首个也是唯一一个为端点安全而设计的单一代理。2009年初，Check Point推出了突破性安全创新技术——软件刀片架构。这是一个动态的、革新性架构，可提供安全、灵活和简单的解决方案，可定制以满足各种组织和环境的具体安全需求。 
与诺基亚携手为业界提供领先的企业安全解决方案10多年后，2009年4月，Check Point完成了收购诺基亚安全设备业务。
2009年11月，Check Point完成收购FaceTime Communications的应用数据库，从而取得业界最全面的应用程序分类和签字数据库，今后可为50,000多个Web 2.0专用界面工具和4,500多种互联网应用程序提供安全控制。 
Check Point是唯一一家为网络、数据及端点提供全面安全保护的厂商，此等保护在单一管理架构上整合。核心竞争力在于通过更多、更好、更简单的安全解决方案，为客户减少安全复杂性，解决客户的安全困惑。Check Point成功的基石是以客户为导向、不断的技术创新以及一直专注于提供整合的、革新的安全。
美国总部：加利福尼亚州红木城 
国际总部：以色列特拉维夫市 
员工人数：约2,200人
市场领导地位
1999到2002年间连续四年、2004到2010年间连续七年被Gartner 集团的“防火墙Magic Quadrant”（Personal Firewalls Magic Quadrant）评为企业防火墙市场的领导者类别第一位：在全球VPN/防火墙软件市场收入总额中占99%（Infonetics, 2007年）第一位：在全球企业IPSec VPN/ 防火墙软件领域占31%市场份额（Frost & Sullivan, 2006年）
在2001到2010年间连续十年被Gartner 集团的“移动数据保护Magic Quadrant”（Mobile Data Protection Magic Quadrant）评为领导者类别。
在2010年被Gartner 集团的“统一威胁管理Magic Quadrant”（UTM Magic Quadrant）评为领导者类别
2005年和2006年连续两年被Gartner 集团的“个人防火墙Magic Quadrant”（Personal Firewalls Magic Quadrant）评为个人防火墙市场的领导者类别
在2000至2002年间连续3年、2004年及2006年被Gartner 集团的“IPSec VPN设备Magic Quadrant”评为领导者类别 
2010年NSS 将Check Point 评为IPS 防护价值榜榜首2011年率先通过NSS Labs下一代防火墙评测，并获其“推荐”级别2011年荣获ASP最佳Web支持站点奖项2011年荣膺Frost & Sullivan亚太地区年度最佳网络安全厂商
专利
Check Point的产品包含世界最先进的安全技术。公司现在已经获得六项美国专利，超过25项美国专利备案和其他专利正在申报中。
客户
Check Point向公司、服务提供商、中小型企业和消费者提供产品和服务，向全球超过10万个企业和数百万用户提供了安全保护。其中包括：
财富100强企业中全部100%的公司使用Check Point的安全解决方案
财富500强企业中有98%的公司使用Check Point的安全解决方案
全球100强企业中有100%的公司使用Check Point的安全解决方案
全球500强企业中有98%的公司使用Check Point的安全解决方案
重要收购
2010年6月：收购数据安全公司Liquid Machines
2009年12月：收购FaceTime Communications 应用数据库
2009年3月：收购诺基亚安全设备业务
2007年1月：收购Protect Data
2007年1月：收购NFR Security
2004年3月：收购Zone Alarm
ORACLE 中的 checkpoint
checkpoint是什么？checkpoint是的一个内部事件，这个事件激活以后会触发数据库写进程(DBWR)将数据缓冲(DATA BUFFER CACHE)中的脏数据块写出到数据文件中。
在数据库系统中，写日志和写数据文件是数据库中IO消耗最大的两种操作，在这两种操作中写数据文件属于分散写，写日志文件是顺序写，因此为了保证数据库的性能，通常数据库都是保证在提交(commit)完成之前要先保证日志都被写入到日志文件中，而脏数据块则保存在数据缓存(buffer cache)中再不定期的分批写入到数据文件中。也就是说日志写入和提交操作是同步的，而数据写入和提交操作是不同步的。这样就存在一个问题，当一个数据库崩溃的时候并不能保证缓存里面的脏数据全部写入到数据文件中，这样在实例启动的时候就要使用日志文件进行恢复操作，将数据库恢复到崩溃之前的状态，保证数据的一致性。检查点是这个过程中的重要机制，通过它来确定，恢复时哪些重做日志应该被扫描并应用于恢复。 
一般所说的checkpoint是一个数据库事件(event)，checkpoint事件由checkpoint进程(LGWR/CKPT进程)发出，当checkpoint事件发生时DBWn会将脏块写入到磁盘中，同时数据文件和控制文件的文件头也会被更新以记录checkpoint信息。checkpoint的作用checkpoint主要2个作用：
保证数据库的一致性，这是指将脏数据写入到硬盘，保证内存和硬盘上的数据是一样的;
缩短实例恢复的时间，实例恢复要把实例异常关闭前没有写出到硬盘的脏数据通过日志进行恢复。如果脏块过多，实例恢复的时间也会很长，检查点的发生可以减少脏块的数量，从而提高实例恢复的时间。
通俗的说checkpoint就像word的自动保存一样。
检查点分类
完全检查点(Normal checkpoint)
增量检查点(Incremental checkpoint)
checkpoint相关概念术语
在说明checkpoint工作原理之前我们先了解一些相关的术语。
完全检查点工作过程一个checkpoint操作的三个不同的阶段第一阶段，checkpoint进程开始一个checkpoint事件，并记录下checkpoint RBA，这个通常是当前的RBA。
第二阶段，checkpoint进程通知DBWn进程将所有checkpoint RBA之前的buffer cache里面的脏块写入磁盘。
确定脏块都被写入磁盘以后进入到第三阶段，checkpoint进程将checkpoint信息(SCN)写入/更新数据文件和控制文件中。
更新SCN的操作由CKPT进程完成，在Oracle 8.0之后CKPT进程默认是被启用的，如果CKPT进程没有启用的话那相应的操作将由LGWR进程完成。什么时候发生normal checkpoint下面这些操作将会触发checkpoint事件：
日志切换，通过ALTER SYSTEM SWITCH LOGFILE。
DBA发出checkpoint命令，通过ALTER SYSTEM checkpoint。
对数据文件进行热备时，针对该数据文件的checkpoint也会进行，ALTER TABLESPACE TS_NAME BEGIN BACKUP/END BACKUP。
当运行ALTER TABLESPACE/DATAFILE READ ONLY的时候。
SHUTDOWN命令发出时。特别注意日志切换会导致checkpoint事件发生，但是checkpoint发生却不会导致日志切换。
日志切换触发的是normal checkpoint，而不是大家所说的增量checkpoint，只不过log switch checkpoint的优先级非常低，当一个log switch checkpoint发生的时候它并不会立即的通知DBWn进程去写数据文件，但是当有其它原因导致checkpoint或者是写入数据文件的RBA超过log switch checkpoint的checkpoint RBA的时候，这次的log switch checkpoint将会被标记成完成状态，同时更新控制文件和数据文件头。我们随后可以做个实验验证这个说法。
在Oracle中SCN相当于它的时钟，在现实生活中我们用时钟来记录和衡量我们的时间，而Oracle就是用SCN来记录和衡量整个Oracle系统的更改。
Oracle中checkpoint是在一个特定的“时间点”发生的，衡量这个“时间点”用的就是SCN，因此当一个checkpoint发生时SCN会被写入文件头中以记录这个checkpoint。增量checkpoint增量checkpoint工作过程
因为每次完全的checkpoint都需要把buffer cache所有的脏块都写入到数据文件中，这样就是产生一个很大的IO消耗，频繁的完全checkpoint操作很对系统的性能有很大的影响，为此Oracle引入的增量checkpoint的概念，buffer cache中的脏块将会按照BCQ队列的顺序持续不断的被写入到磁盘当中，同时CKPT进程将会每3秒中检查DBWn的写入进度并将相应的RBA信息记录到控制文件中。
有了增量checkpoint之后在进行实例恢复的时候就不需要再从崩溃前的那个完全checkpoint开始应用重做日志了，只需要从控制文件中记录的RBA开始进行恢复操作，这样能节省恢复的时间。
发生增量checkpoint的先决条件
恢复需求设定 (FAST_START_IO_TARGET/FAST_START_MTTR_TARGET)
LOG_checkpoint_INTERVAL参数值
LOG_checkpoint_TIMEOUT参数值
最小的日志文件大小
buffer cache中的脏块的数量
增量checkpoint的特点
增量checkpoint是一个持续活动的checkpoint。
没有checkpoint RBA，因为这个checkpoint是一直都在进行的，所以不存在normal checkpoint里面涉及的checkpoint RBA的概念。
checkpoint advanced in memory only
增量checkpoint所完成的RBA信息被记录在控制文件中。
增量checkpoint可以减少实例恢复时间。
增量checkpoint相关参数设置
log_checkpoint_interval
设定两次checkpoint之间重做日志块(重做日志块和系统数据块是一样的)数，当重做日志块数量达到设定值的时候将触发checkpoint。
log_checkpoint_timeout
设定两次checkpoint之间的间隔时间，当超时值达到时增量checkpoint将被触发。Oracle建议不用这个参数来控制，因为事务(transaction)大小不是按时间等量分布的。将此值设置成0时将禁用此项设置。
fast_start_io_target
因为log_checkpoint_interval主要看的时候重做日志块的数量，并不能反应buffer cache中脏数据块的修改，因此Oracle又引入了这个参数来实现当脏数据块达到一定数量的时候触发checkpoint，不过此参数实际上控制的是恢复时所需IO的数量。
fast_start_mttr_target
此参数是在9i中引入用来代替前面的三个参数的，它定义了数据块崩溃后所需要的实例恢复的时间，Oracle在实际上内在的解释成两个参数:fast_start_io_target和log_checkpoint_interval.如果这两个参数没有显式的指定,计算值将生效.。
fast_start_mttr_target可以设定的最大值是3600，即一个小时。它的最小值没有设限，但是并不是说可以设置一个任意小的值，这个值会受最小dirty buffer(最小为1000)的限制，同时还会受初始化时间以及文件打开时间的限制。
在设置此参数的时候要综合考虑系统的IO，容量以及CPU等信息，要在系统性能和故障恢复时间之间做好平衡。
将此参数设置成0时将禁用 fast-start checkpointing，这样能见效系统负载但同时会增加系统的恢复时间。
如果fast_start_io_target or log_checkpoint_interval被指定，他们会自动覆盖由fast_start_mttr_target参数计算出来的值。