热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

史上最好的Oracle体系架构浅析

对于刚接触oracle,尤其是以前有MSSQLserver经验的的人来说,最迷惑的恐怕就是database和instance这两个词了。

对于刚接触oracle,尤其是以前有MS SQL server经验的的人来说,最迷惑的恐怕就是database和instance这两个词了。

对于刚接触Oracle,尤其是以前有MS SQL server经验的的人来说,最迷惑的恐怕就是database和instance这两个词了。

其实这两个概念理解起来相当简单。让我们举个例子:

notepad记事本,相信大家都很熟悉。那么,位于windows目录下的notepad.exe,是一个软件,对吧。我们双击notepad.exe(或者从命令行启动,这都不是问题),然后内存中就有notepad的一个执行实例了,这个实例只存在于内存中,一旦计算机关机重启,实例就不再存在了。

再假设我们硬盘上有一个文本文件test.txt,这个文件是在硬盘上物理存在的,不管计算机是否关闭,他都存在。然后我们用执行的notepad开打这个test.txt,,我们就将一个notepad实例和一个物理的文本文件关联起来了,test.txt被读入内存(缓存),在notepad实例中对这个test.txt文件进行编辑操作。

oracle虽然比notepad庞大复杂许多,但是基本原理也是一样的。我们安装完oracle服务器软件,就在硬盘上有了一个oracle的可执行程序,就像notepad.exe。我们启动oracle的一个instance,就好像启动一个notepad的实例,这个实例完全存在于内存中(当然,也可以由于内存不够而被swap到硬盘的pagafile上),notepad的实例只有一个进程(线程),而复杂的oracle就有很多的进程(线程),这些进程(线程)就叫做background process,同时oracle由于要操作比较多的数据,所以就要划出一块比较大的内存给他用,这块内存的名字叫做SGA。然后oracle的instance打开一组文件,就像notepad实例打开test.txt,oracle给这组文件起了一个专门的名字:database

其实,软件也好,实例也好,文件也好,出现这些概念和区别,我想,最主要还是因为计算机的结构特性:内存速度快,但是掉电后丢失内容;硬盘速度慢,但是内容永久存在。这个特性决定了所有的计算机软件的行为:为了尽可能的快,程序要在内存中运行,数据要在内存中缓存;为了永久保存,程序和数据要保存在硬盘中。

在内存中运行的程序和保存该程序的数据的缓存,我们称之为instance;在硬盘上保留的程序,我们称之为软件,在硬盘上保留的数据,我们称之为文件。对于oracle,需要一组文件,别且要保持一定的一致性和完整性,这组文件统一有个名字叫database。

相关数据字典:v$instance v$database

注意到

v$instance.instance_name varchar2(16)

v$database.name varchar2(9)

所以instance和database的名字长度都有限制的。使用DBCA的时候,不输入数据库和SID名的话,提示:数据库名必须1到8个字符,SID必须1到64个字母数字字符。但我在xp上试验10gR2,手工建立名字超过15个字符的instance,可以成功并且能够startup,但是查询v$instance里面的instance_name字段为空,15个字符之内(包括15个)则正常。建议是:instance名不超过15个字符,database名不超过8个字符。一般情况下,最好保持instance名和database名一致。


推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
author-avatar
手机用户2702937647
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有