码迷,mamicode.com
首页 > 数据库 > 详细

Oracle配置管理

时间:2018-03-30 21:45:39      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:oracleoracle   配置管理   51cto   

前言:我们前面学习了安装oracle以及创建数据库,如果想要将客户端与服务器连接起来,这就需要学习数据库的连接配置。在数据库的启动过程中需要打开控制文件,并利用控制文件打开数据文件、重做日志文件,从而打开数据库。本次文档给大家介绍连接配置,此外还有日志文件的原理及操作,以及如何使用和操作数据字典视图。

一、Oracle客户端与服务器端的通信机制

Oracle产品安装完成后,服务器和客户端都需要进行网络配置才能实现网络连接,服务器端配置监听器,客户端配置网络服务名。

1、oracle net协议
Oracle通过oracle net协议实现客户端与服务器端的连接及数据传递。Oracle net是同时驻留在服务器端和客户端上的一个软件层,它封装了TCP/IP,负责建立与维护客户端应用程序到数据库服务器的连接。有协议就要有相应的端口,所以oracle NET有个默认的侦听端口1521。
技术分享图片
客户端发出的请求首先通过oracle net协议转换,转换成可以通过网络传输的信息,通过tcp/ip网络将请求传输到数据库服务器端,服务器端收到客户端请求后通过oracle net协议转换,将请求转换成数据库可以解释执行的本地指令,并在服务器端执行,并将结果通过tcp/ip和oracle net协议传输给客户端显示。

2、客户端与服务器端的连接过程
Oracle服务器通过一个名为“oracle net监听器”的组件接收来自客户端的连接请求,监听位于服务器端的一个后台进程。发送的客户端连接请求,首先被服务器的监听器所侦听,并交给对应的数据库实例,从而建立起客户端与服务器的连接。连接建立后,客户端与服务器端就可以直接进行通信,不需要监听器参与。要实现监听器对客户请求的监听,需要对监听器进行配置。
Oracle网络服务名是一个标识符,代表客户端连接服务器的配置信息。
技术分享图片
客户端与服务器端的连接过程如下:
1)在服务器端有一个常驻的监听器,监听客户端发出的连接请求。
2)用户在客户端使用(企业管理器或sql工具),输入用户名、口令及网络服务名,或在sql命令行中输入类似“CONNECT username/password@net_service_name”的请求。
3)客户端查看网络服务配置文件tnsnames.ora文件,将网络服务名映射为包含oracle服务器地址、监听端口和全局数据库名的连接描述符。
4)客户端根据连接描述符定位监听器,并通过网络连接信息传递给监听器。
5)监听器查询监听配置文件listener.ora,找出所要连接的服务器。
6)客户端和服务器开始通信。

3、配置和管理Oracle网络配置的工具常见的有以下几种:

技术分享图片
技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片
技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片

上面红框中的代码the listener supports no services显示没有任何服务注册到该监听器上,这与监听和数据库实例的启动先后顺序有关。

解决方法:监听启动和数据库实例启动的顺序
根据前面的知识,启动完数据库实例后,启动监听,在连接数据库时,只有这二者兼备,oracle才能向外提供服务。
监听和实例启动顺序的先后会对二者之间的工作协调产生影响,具体如下:

先启动监听,后启动实例:此时远程客户端连接实例是正常的,不会有问题,因为监听先启动,在启动实例时后台进程PMON会向监听注册服务器,当用户请求服务时,两者的协调工作已准备就绪。
先启动实例,后启动监听:如果监听刚启动,用户马上连接实例,可能会报“监听程序当前无法识别连接描述符中请求的服务”的错误,原因在于PMON还没来得及向监听注册实例服务。但是这个问题只会存在很短的一段时间,再连接就不会有问题了,为什么等一会就好了呢?因为PMON每隔一段时间都会看有无服务需要向监听注册,此时若监听已启动,PMON就能注册成功,二者的协调工作就准备就绪了。
有没有办法解决很短的一段时间内的这个问题呢?答案是一定的。就是以静态注册的方式,即将实例的服务描述添加到listener.ora,这样只要启动监听,对应的服务在监听中就注册了。这是只要实例正常启动完成,就可以对外提供服务器了。在Listener.ora代码中添加如下代码即可。
技术分享图片
技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片

二、管理控制文件

控制文件是非常重要的文件,主要掌握以下内容:
?了解控制文件在数据库启动的作用
?获得控制文件信息
?查看控制文件中所存内容的信息
?存储多重控制文件
?备份和恢复控制文件

1、控制文件在数据库启动的作用
对于dna来讲,oracle数据库控制文件是非常重要的文件,他是数据库创建的时候自动生成的二进制文件,其中记录了数据库的状态信息。其它任何用户都无法修改控制文件,只有数据库运行过程中,数据库实例可以修改控制文件中的信息。控制文件主要包括以下内容:
?数据库名称,一个控制文件只能属于一个数据库。
?数据库创建时间。
?数据文件的名称、位置、联机、脱机状态信息。
?重做日志文件的名称、位置及归档信息。
?所有表空间信息。
?当前日志序列号。
?最近检查点信息。

控制文件在数据库启动的mount阶段被读取,数据库启动与控制文件的关系如下图:
技术分享图片
在数据库启动时首先使用默认规则找到并打开参数文件,在参数文件中含有控制文件的位置信息,打开控制文件后,会通过控制文件中记录的各种数据库文件的位置打开数据库,从而启动数据库到可用位置,所以在数据库启动后,在数据库的运行过程中,数据库服务器可不断地修改控制文件中的内容,所以在数据库被打开的阶段,控制文件必须是可读写的,但是其他任何用户都无法修改控制文件,只有数据库实例可以修改控制文件中的信息。

2、获得控制文件信息
1)可以从V$CONTROLFILE视图中查看控制文件信息,包括控制文件名称。
技术分享图片
技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片

三、管理重做日志文件

重做日志文件也称联机重做日志,目的是恢复数据。
在数据库运行过程中,用户更改的数据会暂时存放在数据库的高速缓冲区中。为了提高写数据库的速度,并不是一旦有数据变化,就把变化的数据写到数据库文件中。频繁的读写磁盘会使数据库系统效率降低,所以,要等到数据库高速缓冲区中的数据达到一定的量或满足一定条件时,DBWR进程才会将变化了的数据写到数据文件中。这种情况下,如果DBWR把变化了的更改写到数据文件之前发生了宕机,那么数据库高速缓冲区中的数据就会全部丢失。如果在数据库服务器重启动后无法恢复这部分用户更改的数据,显然是不可以的。
重做日志就是把变化了的数据首先保存起来,其中LGWR进程负责把用户更改的数据先写到重做日志文件中,这样数据库重新启动时,数据库系统从重做日志文件中读取这些变化了的数据,将用户更改的数据提交到数据库中,写入数据文件。
为了提高磁盘效率和防止重做日志文件损坏,oracle引入了一种重做日志文件结构,如图:
技术分享图片
上图可以看出有3个重做日志组,每组包含两个重做日志成员。当第一个日志组写满之后,就会停止写入,而转向第二个日志组,第二个写满后,转向第三个日之组,第三个写满就向第一个日志组写入,oracle以这种循环方式使用重做日志组。
Oracle规定每个数据库至少有两个日志组,每组至少包含一个或者多个日志成员。
使用新的重做日志之前,DBWR进程需要将所有的数据更改写到数据文件中。如果数据库处于归档模式下,当发生日之组切换时,归档进程ARCH会把当前已满的重做日志文件中的数据复制到归档日志中。
技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片
技术分享图片

四、管理归档日志文件

1、归档日志介绍
Oracle数据库有两种运行方式,归档(ARCHIVELOG)方式和非归档(NO ARCHIVELOG)方式。在非归档方式下,日志切换时直接覆盖以前的重做日志文件,不产生归档日志。数据库在归档方式下运行,在日志切换后,ARCH进程会对自己写满的重做日志文件进行存档。默认情况下,oracle采用非归档的运行方式,主要因为归档方式会给系统带来一定的性能问题,只有当数据库运行在归档方式时,ARCH进程才存在,ARCH进程是oracle的可选后台进程,将日志存档,以便保存对数据库做的所有修改,这样,及时在数据文件磁盘损坏的情况下,数据库管理员也能将对数据库恢复至故障发生时的状态。
1)归档进程
?是可选的后台进程
?为数据库设置ARCHIVELOG(归档)模式时会自动归档联机重做日志文件
? 保留对数据库所有更改的记录
2)归档日志文件
?数据库在允许覆盖重做日志信息之前生成联机重做日志组的副本。
? 这些副本又称为“归档日志”。

技术分享图片
2、配置数据库归档日志步骤:
?查询数据库归档方式,确定当前不处于归档方式
?关闭数据库并启动数据库到MOUNT状态
?将数据库设置位归档模式,并验证
SQL>archive log list;
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;
技术分享图片技术分享图片技术分享图片技术分享图片

五、数据字典

1、数据字典定义
数据字典是oracle存储关键信息的表和视图的集合。是数据库的说明,包含数据库中所有对象的名称和属性。Oracle进程会在SYS模式中维护这些表和视图,也就是说数据字典的所有者为SYS用户,数据存放在SYSTEM表空间中。
数据字典描述了实际数据是如何组织的,如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。对他们可以像处理其他数据库表或视图一样进行查询,但不能进行任何修改。
Oracle数据字典通常是在创建和安装数据时被创建的。
Oracle数据字典是oracle数据库系统工作的基础。
没有数据字典的支持,oracle数据库系统就不能进行任何工作。

2、数据字典的构成
数据字典分为数据字典表和数据字典视图。数据字典中的表不可以直接被访问,但是可以访问数据字典中的视图。数据字典视图分为两类:静态数据字典视图和动态数据字典视图。
技术分享图片
技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片

六、动态数据字典视图及使用

1、概念
除了静态数据字典中的3类视图,其他的字典视图中主要是V$视图,之所以这样命名是因为他们都是以V$或GV$开头的,这些视图会不断地进行更新,可以反映出当前实例和数据库的运行状况。动态性能表用于记录当前数据库的活动,只存在于数据库运行期间,实际的信息都取自内存和控制文件,dba可以使用动态视图来监视和维护数据库。下面列举几个dba维护数据库中经常使用的几个动态数据字典视图。
技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片

Oracle配置管理

标签:oracleoracle   配置管理   51cto   

原文地址:http://blog.51cto.com/982439641/2093143

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!