嗅谱网

技术文库

  • ORACLE的工作机制-5

    ORACLE的工作机制-5

    下面来讲一下ORACLE锁的机制,分锁存器和锁两种。锁存器是用来保护对内存结构的访问,比如对DB BUFFER中块的锁存器申请,只有在DBWN完成后,这些DB BUFFER块被解锁。然后用于其它的申请。锁存器不可以在进程间共享,锁存器的申请要么成功要么失败,没有锁存器申请队列。主要的锁存器有SHARED POOL锁存器,LIBRARY CACHE锁存器,CACHE BUFFERS LRU CHAIN锁存器,CACHE BUFFERS CHAINS锁存器,REDO ALLOCATION锁存器,REDO COPY锁存器。ORACLE的锁是用来保护数据访问的,锁的限制比锁存器要更宽松,比如,多个用户 ...

    查看全文

  • ORACLE的工作机制-4

    ORACLE的工作机制-4

    在这里我们要说一下回滚段存储的数据,假如是delete操作,则回滚段将会记录整个行的数据,假如是update,则回滚段只记录行被修改了的字段的变化前的数据(前映像),也就是没有被修改的字段是不会被记录的,假如是insert,则回滚段只记录插入记录的rowid。这样假如事务提交,那回滚段中简单标记该事务已经提交;假如是回退,则如果操作是delete,回退的时候把回滚段中数据重新写回数据块,操作如果是update,则把变化前数据修改回去,操作如果是insert,则根据记录的rowid把该记录删除。注意,检查点除了触发LGWR和DBWN向数据块头部写SCN和COMMIT SCN,检查点还向控制文件和 ...

    查看全文

  • ORACLE的工作机制-3

    ORACLE的工作机制-3

    只有当SQL语句影响的所有行所在的最后一个块被读入DB BUFFER并且重做信息被写入REDO LOG BUFFER(仅是指重做日志缓冲,而非重做日志文件)之后,用户才可以发出COMMIT,COMMIT触发LGRW,但并不强制立即DBWN来释放所有相应的DB BUFFER块上的锁,也就是说有可能出现已COMMIT,但在随后的一段时间内DBWN还在写这条语句涉及的数据块的情形,表头部的行锁,并不是在COMMIT一发出就马上释放,实际上要等到相应的DBWN进程结束才会释放。一个用户请求锁定另一个用户已COMMIT的资源不成功的机会是存在的。COMMIT发出后会将回滚段中的”前映像 ...

    查看全文

  • ORACLE的工作机制-2

    ORACLE的工作机制-2

    生成编译代码之后,接着下一步服务器进程要准备开始更新数据,服务器进程将到DB BUFFER中查找是否有相关对象的缓存数据,下面分两个可能进行解释:如果没有,服务器进程将在表头部请求一些行锁,如果成功加锁,服务器进程将从数据文件中读入这些行所在的第一个数据块(db block)(DB BLOCK是ORACLE的最小操作单元,即使你想要的数据只是DB BLOCK中很多行中的一行或几行,ORACLE也会把这个DB BLOCK中的所有行都读入DB BUFFER中)放入DB BUFFER中空闲的区域或者覆盖已被挤出LRU列表的非脏数据块缓冲区,并且排列在LRU列表的头部,如果这些非脏数据缓冲区写完也不能 ...

    查看全文

  • ORACLE的工作机制-1

    ORACLE的工作机制-1

    ORACLE的工作机制-1 我们从一个用户请求开始讲,ORACLE的简要的工作机制是怎样的,首先一个用户进程发出一个连接请求,如果使用的是主机命名或者是本地服务命中的主机名使用的是机器名(非IP地址),那么这个请求都会通过DNS服务器或HOST文件的服务名解析然后传送到ORACLE监听进程,监听进程接收到用户请求后会采取两种方式来处理这个用户请求,下面我们分专用服务器和共享服务器分别采用这两种方式时的情况来讲: 专用服务器模式下:一种方式是监听进程接收到用户进程请求后,产生一个新的专用服务器进程,并且将对用户进程的所有控制信息传给此服务器进程,也就是说新建的服务器进程继承了监听进程的信息,然后 ...

    查看全文

  • win7_64系统安装oracle和plsql方法

    win7_64系统安装oracle和plsql方法

    一、oracle10g安装,比较简单 1.去Oracle网站下载Vista版的Oracle:Oracle Database 10g Release 2 (10.2.0.4) for Microsoft Windows Vista x64 and Microsoft Windows Server 2008 x64 2.解压下载的安装文件10204_vista_w2k8_x64_production_db.zip 3.修改验证文件来支持windows7         修改\stage\prereq\db\refhost.xml             加入         修改\i ...

    查看全文

  • 在VMWARE 8 上安装centos 5.5 64位系统操作实例

    在VMWARE 8 上安装centos 5.5 64位系统操作实例

    图形界面只选择gnom,选择软件定制,把Java、c库等开发平台都选上,把server中的ftp、nfs、邮件、dhcp等必要的服务器程序都选上,这样为以后安装oracle11g奠定基础; 特别是java、c库开发环境都要安装,这样安装oracle时补丁包可以省去很多; 软件定制后,进行下一步: 启动安装: 安装完成后,重启系统,默认关掉防火墙和selinux等安全组件,以后需要可以使用setup命令打开,然后配置显示 分辨率,选择相应的的显示器类型,在管理-网络中,选择开机激活eth0,然后选择手动,配置vmnat8的ip网段:192.168.128.xxx,确定后重启系统; ...

    查看全文

  • Java常见疑难问题-类9

    Java常见疑难问题-类9

    34. 参数兼容的方法重载public class Confusing {private Confusing(Object o) {System.out.println(“Object”);}private Confusing(double[] dArr) {System.out.println(“double array”);}public static void main(String[] args) {new Confusing(null);}}上面的程序打印的是”double array”,为什么? null可代表 ...

    查看全文

  • Java常见疑难问题-类10

    Java常见疑难问题-类10

    36. 属性只能被隐藏class P {public String name = “P”;} class S extends P {// 隐藏父类的name域,而不像方法属于重写private String name = “S”;} public class Test {public static void main(String[] args) {// !! S.name is not visible// !! System.out.println(new S().name);// 属性不能被重写,只是被隐藏,所以不具有多态性为System.o ...

    查看全文

  • Java常见疑难问题-数值表达式0

    Java常见疑难问题-数值表达式0

    1. 奇偶判断不要使用 i % 2 == 1 来判断是否是奇数,因为i为负奇数时不成立,请使用 i % 2 != 0 来判断是否是奇数,或使用高效式 (i & 1) != 0来判断。2. 小数精确计算System.out.println(2.00 -1.10);//0.8999999999999999上面的计算出的结果不是 0.9,而是一连串的小数。问题在于1.1这个数字不能被精确表示为一个double,因此它被表示为最接近它的double值,该程序从2中减去的就是这个值,但这个计算的结果并不是最接近0.9的double值。一般地说,问题在于并不是所有的小数都可以用二进制浮点数精确表示 ...

    查看全文

  • Java常见疑难问题-类11

    Java常见疑难问题-类11

    39. 重写、隐藏、重载、遮蔽、遮掩重写:一个实例方法可以重写在其超类中可访问到的具有相同签名的所有实例方法,从而能动态分派,换句话说,VM将基于实例的运行期类型来选择要调用的重写方法。重写是面向对象编程技术的基础。public class P{public void f(){}}class S extends P{public void f(){}//重写} 重写时异常要求:? 如果父类方法抛出的是捕获型异常,则子类也只能抛出同类的捕获型异常或其子类,或不抛出。? 父类抛出捕获型异常,子类却抛出运行时异常,这是可以,因为抛出运行时就相当于没有抛出任何异常。? 如果父类抛出的是非捕获型异常,则 ...

    查看全文

  • Java常见疑难问题-数值表达式1

    Java常见疑难问题-数值表达式1

    5. 窄数字类型提升至宽类型时使用符号位扩展还是零扩展System.out.println((int)(char)(byte)-1);// 65535结果为什么是65535而不是-1? 窄的整型转换成较宽的整型时符号扩展规则:如果最初的数值类型是有符号的,那么就执行符号扩展(即如果符号位为1,则扩展为1,如果为零,则扩展为0);如果它是char,那么不管它将要被提升成什么类型,都执行零扩展。 了解上面的规则后,我们再来看看迷题:因为byte是有符号的类型,所以在将byte数值-1(二进制为:11111111)提升到char时,会发生符号位扩展,又符号位为1,所以就补8个1,最后为16个1;然后 ...

    查看全文