Oracle实例如何创建?,第1张

为提供Oracle客户所期望的不同程度的服务、灵活性与性能,数据库的许多工作由实例完成,实例是一系列复杂的内存结构和操作系统进程。除非使用并行Oracle服务器选项,否则每个Oracle数据库都有一个实例与之相关,一个数据库被唯一的一个实例装载。实例结构允许RDBMS同时对来自多个用户的不同种类事务的请求提供服务,与此同时提供一流的性能、容错性、数据的一致性和安全性。

值得注意的是,这里定义的术语“进程”是指在没有用户干预的情况下正在运行的任务。你的操作系统可能将之称作“进程”,或者使用其他术语,例如任务、作业、线程和其他类似的术语。

在UNIX实现多任务操作系统后,实例是松散的结构方式。在一起工作的离散的进程在实现实例的目标的RDBMS中完成指定的任务。每一个进程都有各自的一个内存块,该内存块用于保存私有变量、地址堆栈和其他运行时的信息。进程间使用公共共享区并在公共共享区内完成它们的工作。公共共享区是能够在同一时间内被不同程序和不同进程读写的一块内存区。该内存块称为系统全局区(SGA)。因为SGA驻留在一个共享内存段中,所以它经常被称作共享全局区。

你可以认为后台进程就像数据库的手,直接处理数据库的组件;你也可以认为SGA就像大脑,在必要时间接地调度手处理它们的信息与存储检索。SGA参与发生在数据库中全部的信息和服务器的处理。单用户的Oracle配置(例如PersonalOracleLite),不使用多进程执行数据库的功能。相反,所有的数据库功能由一个Oracle进程完成。由于这个原因,单用户也称为单进程Oracle。

1)创建一个Oracle实例(非安装阶段)。

2)由实例安装数据库(安装阶段)。

3)打开数据库(打开阶段)。

Oracle实例在数据库启动的非安装阶段创建,当数据库经过非安装阶段,读取initora参数文件,启动后台进程,初始化系统全局区(SGA)。initora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据环境变量OracleSID设置,它不一定要与打开的数据库名称相同(但是习惯上通常如此)。

下一阶段称为安装阶段。initora文件中的控制文件参数值决定数据库的安装实例。在安装阶段,读取控制文件并使其成为可访问的,可以对控制文件内存储的数据进行查询和修改。

最后的阶段就是打开数据库。在这一阶段,其名字存储在控制文件中的数据库文件以排它使用方式被实例锁定,使数据库能够被普通用户访问。打开是数据库的正常操作状态。在数据库打开之前,只有DBA能访问数据库,且只能通过服务器管理器对其进行访问。

为了改变数据库的操作状态,必须作为内部连接到数据库,或拥有SYSDBA特权。当数据库从关闭状态到打开状态时,你可以明确地单步调试数据库的每一个操作状态,但当关闭数据库时,只能从当前运行状态转到完全关闭状态。例如,可以在服务器管理器工具中执行STARTUP NOMOUNT命令,这将使数据库处在非安装阶段,接下来可以运行ALTER DATABASE MOUNT或者运行ALTER DATABASE OPEN命令以单步调试到操作阶段。无论是在何种操作状态下,如果执行SHUTDOWN命令,将完全关闭数据库。例如,数据库不能从打开状态转到安装状态。

没有安装数据库的实例被称为空闲的—它使用内存,但不做任何工作。一个实例只能唯一地与一个数据库连接源码天空

,而且除非使用并行服务器,否则对一个数据库也只分配一个实例。实例是数据管理的核心—它做所有的工作,而数据库存储所有的数据。

oracle客户端与服务端有什么区别:

1、oracle服务端是指装在数据库服务器上的oracle主服务,数据库的核心,用于数据库的管理,数据的与存储、查询、数据库资源的监控、监听等服务。

oracle客户端只是指与服务端交互的工具,要登录使用oracle数据库服务就需要安装客户端(例如PLSQL),利用PLSQL连接到数据库,来执行oralce服务的一些增删改查等操作。

2、服务器端不一定在本地(client一定在本地),所以需要在客户端配置TNSNAMESORA文件。在文件中添加服务名和IP。

3、oracle数据库服务都会有一个全局数据库名例如:orcl,这是在安装数据库时指定的。如果要安装多个数据库,那么这个全局数据库名必须不一样。服务器端的listener文件里配置有监听程序,可以配置多个监听IP。

而oracle客户端连接服务端是就要配置oracle的实例名来确认数据库信息。

4、服务器端的客户工具是通过服务器端tnsnamesora和listenerora进行验证并建立连接;

远程客户端是通过客户端的tnsnamesora和服务器端的listenerora执行验证和建立连接。

1、默认应该是环境变量ORACLE_SID设置的,你可以修改环境变量再登陆

2、或者sqlplus /nolog

SQL> conn user/password@SID

3、查看数据库有哪些用户

SQL> select username,account_status from dba_users;

可以简单的这样理解:一个公司比喻成一台服务器,数据库是这个公司中的一个部门。

1SID:一个数据库可以有多个实例(如RAC),SID是用来标识这个数据库内部每个实例的名字,

就好像一个部门里,每个人都有一个自己的名字。

2SERVICE_NAME:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,

你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称在看门大爷(listener)那里有登记,

看门大爷一看你是要找SERVICE_NAME这个部门,就告诉你我们公司确实有这个部门,于是你就找到了,连接就建立了。

一句话来说就是:SID是对内的,是实例级别的一个名字,用来内部之间称呼用。SERVICE_name是对外的,

是数据库级别的一个名字,用来告诉外面的人,我数据库叫"SERVICE_NAME"。

你可以通过service_name参数指定这个名字是什么,可以有多个名字,名字随便起,叫狗蛋,翠花都没关系。

如果你不指定,默认的是Db_name Db_domain,也就是global_name。

数据库里,还有ORACLE_SID,是告诉OS系统,我这个实例叫做什么。这些易混淆的名字,你要记住,

他们不是指数据库,就是指实例,就这两个东西,别无其它。他们具体用哪个名字,是要看对谁而言,

是什么场合。是对数据库,还是对操作系统,还是对外部链接。就像你对父母而言,你有小名叫幺儿;

对同学而言,你有外号叫灯泡;对办事机构,你有正规的名字叫王小明。但归根到底,是一回事。分清楚这点,就不容易混了。

1、如果两台服务器,存在的表结构什么的都一样,可以使用冷备份全库,把所有的数据文件、日志、归档日志等全拷贝过去(如果是linux系统,要使用oracle用户操作,否则会产生文件权限问题)

2、RMAN的异机恢复

3、EXPDP/IMPDP 全库导出、全库导入(注意版本问题,低往高可以,反之不可以)!

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Oracle实例如何创建?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情