天高地厚

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年1月31日

摘要: 1回滚与撤销Refer:《深入解析oracle》by eygle(1)为了多用户的读一致性和能回退事务,oracle提供了为修改的数据保存修改之前的旧值。(2)Redo:保证在故障时事务可以恢复Undo:保证事务可以被回滚或撤销(3)9i之前,oracle提供回滚段(rollback)来撤销数据;之后,oracle使用undo表空间来管理。(4)下面这个例子是介绍9i前,是如何保证可以回滚的。Update emp set sal=4000 where empno=7788;简单看一下这个语句的执行过程:A:检查empno=7788记录在database buffer cache中是否存在;否, 阅读全文

posted @ 2013-01-31 10:11 天高地厚-GNU 阅读(561) 评论(0) 推荐(0) 编辑

摘要: undo表空间有个脾气,就是新事务优先,长查询滞后! 情况有两:查询在前、查询在后 查询在后: if [查scn>提交scn] if [查sid = 提交 sid] 返回新值; else返回旧值; end if; 查询在前: 第一个if条件就不满足,直接跑去构造CR块。 如果在整个交易的过程中,运行了很长时间,但突然在交易尾巴出错了,则只是单独rollback这一个,而不是整个交易全部回滚掉。 工业环境,undo表空间布局的原则是:以空间换时间!也就是undo表空间当尽量大。保持自动扩展,且要注意maxsize。 oracle数据块头部有个事务槽(ITL)。当多个事务槽同时修改数据块,而 阅读全文

posted @ 2013-01-31 10:08 天高地厚-GNU 阅读(231) 评论(0) 推荐(0) 编辑

摘要: 备份与恢复的功力是“摔”出来的。其原理、这里简单来介绍: oracle通过log的形式记录了所有数据文件的变化,所以只要在某个时段备份了oracle的全部数据文件,并且拥有备份开始时间点以来的所有log,那么就可以用备份的数据文件通过log中变化信息去重演这个变化的过程而达到恢复数据的目的,如果没有某个时间点的数据文件作为应用变化的起点,那么log的变化就没有立足之地,所以备份的目标就是满足这个条件。 那么数据文件和日志文件是如何挂钩的呢? 数据文件的头上包含RBA,有了RBA,在恢复时就能准确地知道到底需要哪个logfile(archivelog or online redo),这便把日志和 阅读全文

posted @ 2013-01-31 09:53 天高地厚-GNU 阅读(174) 评论(0) 推荐(0) 编辑

摘要: 注:1)pga_aggregate_target以下简称PAT2)我的环境:11:42:10 sys@ORCL (^ω^) select * from v$version where rownum=1;BANNER----------------------------------------------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProdMicrosoft Windows [版本 6.1.760 阅读全文

posted @ 2013-01-31 09:47 天高地厚-GNU 阅读(868) 评论(0) 推荐(0) 编辑

摘要: 在前面的blog中,我们知道,redo entries写入log buffer大致的过程如下: 在PGA中生产Redo Entry -> 服务进程获取Redo Copy latch(存在多个---CPU_COUNT*2) -> 服务进程获取redo allocation latch(仅1个) -> 分配log buffer -> 释放redo allocation latch -> 将Redo Entry写入Log Buffer -> 释放Redo Copy latch 由于log buffer是一块“共享”内存,为了避免冲突,它是受到redo alloca 阅读全文

posted @ 2013-01-31 09:41 天高地厚-GNU 阅读(498) 评论(0) 推荐(0) 编辑

摘要: 体系结构要想深入的理解,还需要配合后续的备份与恢复的实验和原理。但不管啦,先稍微了解一下。 控制文件是个相当小的二进制文件,最多能增长到64m左右。 参数文件告诉实例控制文件的位置。而控制文件告诉实例:数据库名,数据文件的名称及其位置,在线重做日志文件的名称及其位置,以及系统和各个数据文件的SCN信息。 我们的oracle内部的几个人,都比较喜欢往ctl上面写东东,比如: server process会把数据库结构的变化更新到control file LGWR会把当前日志序列号记录到control file CKPT会把检查点信息记录到control file ARCn会把归档日志信息记录.. 阅读全文

posted @ 2013-01-31 09:30 天高地厚-GNU 阅读(176) 评论(0) 推荐(0) 编辑

摘要: 1. Windows应用程序,操作系统,计算机硬件之间的相互关系:箭头③对应API的调用箭头④对应操作系统返回事件给应用程序2. 操作系统充当的角色操作系统负责管理外围设备,同时与上层的应用程序交互。而应用程序只需要调用相应的API就能实现对外围设备的操作。操作系统充当一个中间角色。3. API 应用程序是以函数调用的方式来通知操作系统执行相应的功能的。操作系统所能够完成的每一个特殊功能通常都有一个函数与其对应。操作系统把它所能够完成的功能以函数的形式提供给应用程序使用,应用程序对这些函数的调用就叫做系统调用,这些函数的集合就是Windows操作系统提供给应用程序编程的接口(Applicati 阅读全文

posted @ 2013-01-31 09:18 天高地厚-GNU 阅读(222) 评论(0) 推荐(0) 编辑

摘要: SSO解决方案大全 Single Sign-On for everyone前段时间为我们的系统做SSO(单点登录)参考了很多资料,其中包括博客园二级域名的登录.翻译本文是由于作者的一句话:思想都是一样的,只不过实现起来需要创造性思维.Single Sign-On (SSO)是近来的热门话题. 很多和我交往的客户中都有不止一个运行在.Net框架中的Web应用程序或者若干子域名.而他们甚至希望在不同的域名中也可以只登陆一次就可以畅游所有站点.今天我们关注的是如何在各种不同的应用场景中实现 SSO. 我们由简到繁,逐一攻破.1. 虚拟目录的主应用和子应用间实现SSO2. 使用不同验证机制实现SSO 阅读全文

posted @ 2013-01-31 09:14 天高地厚-GNU 阅读(197) 评论(0) 推荐(0) 编辑

摘要: action[java] view plaincopyprint?packagecom.lk.action;importjavax.annotation.Resource;importcom.googlecode.jsonplugin.annotations.JSON;importcom.lk.service.StudentControl;importcom.opensymphony.xwork2.ActionSupport;publicclassLoginAjaxActionextendsActionSupport{privateStringusername;privateStudentCo 阅读全文

posted @ 2013-01-31 09:11 天高地厚-GNU 阅读(1038) 评论(0) 推荐(0) 编辑

摘要: 若url为: http://localhost:8888/select?name=a&id=5[javascript] view plaincopyprint?http.createServer(function(request,response){varpathname=url.parse(request.url).pathname;//pathname=>select vararg=url.parse(request.url).query;//arg=>name=a&id=5 console.log("Requestfor"+arg);var 阅读全文

posted @ 2013-01-31 09:06 天高地厚-GNU 阅读(6487) 评论(0) 推荐(0) 编辑

摘要: 模型简介:用node.js创建一个http服务器,使用浏览器访问相应的地址,显示数据库信息。 注:该demo建立得比较简单,数据库操作就是查询某张表的数据,然后将查询出来的数据以JSON格式显示在浏览器上1)流程简介 该demo一共包含4个文件:index.js server.js router.js function.js 其中index.js中连接了数据库,连接成功后,调用server启动函数。 server.js 创建http服务器,并指定端口。 router.js 路由器,根据url地址,调用不同的函数 function.js 各个函数的具体实现(此demo中只有一个)2) 代码实现 阅读全文

posted @ 2013-01-31 09:05 天高地厚-GNU 阅读(5308) 评论(0) 推荐(0) 编辑

摘要: 做项目中遇到这样一个问题:需要实现策略应用功能,首先需要查询的是都有那些策略,之后根据策略名把该策略名下在用策略放在右边的下拉框,把不再用的策略放在左边下拉框,然后可以再这里设置可用或者不可用。而当是设计数据库表的时候这三个地方的数据都在一个表中。如果分别查询的时候需要调用三次数据库,这不仅增加了数据库的压力,而且还增加了好多代码量。所以,我们可以通过一次查询,在通过对datatable的操作来实现。那么,我们如何从datatable中获取我们想要的数据呢?DataTable newdt = new DataTable();newdt=dt.Clone();DataRow[] dr = dt. 阅读全文

posted @ 2013-01-31 09:00 天高地厚-GNU 阅读(266) 评论(0) 推荐(0) 编辑

摘要: using System.IO; 'FilePath - Refers to Full Path of the file protected void DownloadFile(string FilePath) { // Gets the File Name string fileName = FilePath.Substring(FilePath.LastIndexOf('\\') + 1); byte[] buffer; using (FileStream fileStream = new FileStream(FilePath, FileMode.Open)) { 阅读全文

posted @ 2013-01-31 08:56 天高地厚-GNU 阅读(125) 评论(0) 推荐(0) 编辑

摘要: python是一种编程语言。它可以用来开发从简单到复杂的各种应用程序。代码清晰、开发快速,灵活而强大。著名的自由软件作者Eric Raymond在他的文章《如何成为一名黑客》中,将Python列为黑客应当学习的四种编程语言之一,并建议人们从Python开始学习编程。比Java简单、更易于使用。Java从C++这样的系统语言中继承了许多语法和复杂性;比PHP易懂、易学、并且用途更广。Python不仅可以轻松构建WEB站点,也被广泛的应用于几乎每个计算机领域,甚至机器人、电脑动画;比C++简单、更易于使用,但通常不与C++竞争,因为作为脚本语言,常常扮演多种不同角色;比VB更强大且具备跨平台特性; 阅读全文

posted @ 2013-01-31 08:53 天高地厚-GNU 阅读(288) 评论(0) 推荐(0) 编辑