欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

【Oracle入门系列】第02章

程序员文章站 2022-06-13 09:14:01
...

安装Oracle 概述:安装 Oracle9i ( 9.2企业版 )。从安装文件 software \ Oracle9i_9.2 \ Disk1 \ setup.exe 开始 步骤: 01 、Oracle Universal Installer: 欢迎使用 Oracle Universal Installer :Oracle的通用安装工具。它可以安装或卸载全部或部分Oracle

安装Oracle
概述:安装Oracle9i(9.2企业版)。从安装文件software\Oracle9i_9.2\Disk1\setup.exe开始
步骤:01、Oracle Universal Installer:欢迎使用
Oracle Universal Installer:Oracle的通用安装工具。它可以安装或卸载全部或部分Oracle组件
02、Universal Installer:文件定位
在源路径中系统会自动监测当前安装程序所需资源的路径。在目标块中设置工作主目录和完整路径
主目录名使用系统约定的OraHome92即可,路径可以设置保存在其它分区中
在数据库安装的过程中,Oracle会自动在系统盘的program files中创建一个oracle文件夹作为系统目录
通常在实际应用中,为了保证数据的安全和运行效率,不建议将主目录和系统目录放在同一个磁盘分区上
03、Universal Installer:可用产品
Oracle9i Database 9.2.0.1.0安装数据库。此处选择安装数据库,它已经包含了下面的两部分组件
Oracle9i Management and Integration 9.2.2.1.0安装管理和集成工具
Oracle9i Client 9.2.0.1.0安装客户端
04、Universal Installer:安装类型
这里选择安装企业版(2.86GB)。相对来说,它的规模更大,功能更强
05、Universal Installer:数据库配置
这里选择安装通用性配置
06、Universal Installer:Oracle Services for Microsoft Transaction Server
这里默认即可。教程中安装Oracle9i到此步时,显示的是端口号:2030,教程中选择默认
07、Universal Installer:数据库标识
教程中将全局数据库名设为ora9,系统标识符SID按照默认,即ora9
系统标识符SID是操作系统用来跟数据库的一个实例打交道的时候,起到标识实例的作用
在真实的应用中,也可以在全局数据库名的后面加上数据库服务器所在的域名,比如北京:ora9.bj.china
这样就使得在同一个域中,可以有多台数据库服务器,不同的域中也可以有同名的数据库服务器
也就是说全局数据库名包括数据库名和域名两部分。为了简单起见,教程只设置了数据库名
08、Universal Installer:数据库文件位置
这里是设置数据库文件的位置。比如数据文件、控制文件、重做日志等
教程中采用默认设置,即C:\oralce\ora92\oradata下。也可以设置在别的盘符
09、Universal Installer:数据库字符集
这里使用缺省字符集,即跟操作系统的当前语言设置一致。教程中的是ZHS16GBK编码
GBK编码的字符集是一种可变程度的字符集,它里面的每个字符可能占一个到三个字节
10、Universal Installer:摘要
到此处为止,还没有真正的开始安装。在确认安装摘要所显式的配置无误后点击安装即可
11、Universal Installer:安装
如果使用的是光盘版的安装程序,9.2版本一般是三张光盘,安装过程中会两次提醒换盘
12、Universal Installer:配置工具
这时会弹出Database Configuration Assistant对话框,即数据库配置助手窗口
在这里需要设置两个系统用户SYSSYSTEM的密码,具体密码由安装者自行确定
在9i以前,系统会为二者提供默认密码。从9i开始出于安全性考虑,安装时必须显式密码,而不允许使用原来的默认值
设定完密码之后,可以点击确定,回到配置工具窗口
接着就弹出一个控制台窗口,名为C:\oralce\ora92\bin\agentctl.exe。此时系统还在配置和启动其它工具。还需等待
13、Universal Installer:安装结束
由于Oracle用到了Java的运行环境,它的一些工具实际是使用Swing开发的,所以需要解除相应的java阻止或apache阻止
14、至此便结束了服务器的安装,可以直接选择“退出”
退出之后,系统自动弹出了一个OEM窗口:Oracle Enterprise Manager Console
这是Oracle的企业管理器控制台窗口。关掉OEM后,会发现还遗留了一个Oracle HTTP Server控制台窗口
这是Oracle自带的一个Web服务器。它使用的是apache的HTTP Server。可以不用理会它,将它直接关掉即可

Oracle服务
概述:此时可以在服务中查看被安装成服务项目的9个有关功能模块。可以通过运行services.msc打开服务窗口
服务:OracleMTSRecoveryService、OracleOraHome92Agent、OracleOraHome92ClientCache、OracleOraHome92PagingServer
OracleOraHome92SNMPPeerEncapsulator、OracleOraHome92SNMPPeerMasterAgent
OracleOraHome92HTTPServer:通过网络,使用浏览器作为客户端访问数据库。一般情况下,它用到的也不是很多
OracleOraHome92TNSListener:用于接收客户端发过来的连接请求。客户端连接服务器时,服务器端首先运行一个监听器程序
OracleServiceORA9:ORA9是前面设置的数据库实例名
用不到的服务在运行时会有一定的内存开销,为避免消耗资源,在停止其服务之后,最好设为手动启动
或者干脆禁用它,反正以后也不打算再用到它们。对应日常应用中,通常只会用到后两个服务,即Listener和ORA9服务
Oracle开销比较大,若启动最后面的三个服务,大约会增加200MB内存开销。所以不用它的时候,建议不要启动相关服务
补充:在开始→程序→中添加了两项。一个是Oracle-OraHome92
一个是Oracle Installation Products,里面提供了它的一个通用工具Universal Installer

卸载Oracle
概述:Oracle不能通过软件自身的卸载工具进行完全卸载。也就是说还要进行比较麻烦的手工设置
如果Oracle数据库不能正常卸载的话,接下来就不能再成功的安装其它的版本
步骤1、停止Oracle所有服务
2、运行Oracle Universal Installer卸载Oracle
在Universal Installer:欢迎使用窗口中点击卸装产品按钮,在Inventory目录中展开子项,选中所有组件
点击删除后,在确认对话框中点击即可。这里也可以根据需要保留某些组件,而不卸载
卸载完成之后,会在Inventory目录中显示:没有已安装的产品。然后点退出即退出当前Oracle通用安装工具
3、修改注册表,删除Oracle相关信息
Oracle软件有关键—值:HKEY_LOCAL_MACHINE\SOFTWARE\Oracle
Oracle服务:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001以及CurrentControlSet\Services\
Oracle事件日志:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001以及CurrentControlSet\Services\Eventlog\Application\
4、删除Oracle系统目录
5、删除Oracle环境变量
6、删除程序菜单项中的Oracle菜单
7、删除Oracle工作主目录D:\oracle
说明:如果数据库在安装过程中出错了,那么在服务可能看不到Oracle相关服务,此时可以跳过第1步
第2步的卸载过程也可能无法正常执行。比如说Oracle由于安装出错而中途退出之后
在程序菜单项中就找不到Oracle通用安装工具。此时可以跳过第2步,直接从第3步开始执行人工的卸载操作
第2步成功执行,则第56步也会被自动执行。那么就需要检查一下环境变量和程序菜单是否干净就可以了
由于各个版本的数据库的通用安装工具都无法完全卸载Oracle,所以就需要通过修改注册表的方式人工干预
第3步需要删除的是Services和Application里面的所有以Oracle开头的文件夹
如果第7步提示无法删除目录的话,那么就需要重启系统,然后再删除就行了

Oracle术语
概念数据库(Database):是磁盘上存储的数据的集合。包括配置文件,数据文件,日志文件和控制文件等
数据库实例(Database Instance):运行在数据库文件上的一组Oracle进程/线程以及一个共享内存区
Oracle实时应用集群(RAC,Real Application Clusters):Oracle并行服务器架构/RAC架构
数据库服务名(Database Service_Name):从oracle8i开始引入,客户端与服务器连接时建议指定数据库服务名而不是实例名
网络服务名(Net Service Name):数据库在客户端的逻辑表示,包含数据库服务名和网络地址两方面信息
监听器(Monitor)
对象:关系型数据库的二维表格
视图:表的基础上建立的抽象的表现形式,相当于虚拟表。从物理表中提取部分信息组成视图。但是不建议通过视图操纵基表信息
约束:表内部或表之间的关联
索引:便于数据的查询检索方便
序列:可以认为是Oracle中的一个自动的顺序号生成器
同义词:为数据库对象定义的别名
存储过程:相当于没有返回值的函数,可以把一段操作指令集成在一起,它的参数可以由IN/OUT/IN OUT变向的实现结果的外送
函数:相当于过去常规意义上的函数,它有返回值
触发器:服务器端准备好的事件处理代码。发生相应的事件时,就会执行触发器所约定好的代码。相当于Java中的事件处理代码
:相当于命名空间,里面可以定义存储过程、函数和触发器等程序单元
安全用户:代表Oracle的一个授权,可以使用用户信息登录数据库并进行授权的操作
方案:它是Oracle中的一个概念,相当于SQLServer中的数据库Database。Oracle中每个用户都自动对应一个与它同名的方案
即用户的工作区,里面可以保存该用户所拥有的数据库对象。授权后可以跨方案,即对其它方案中的数据库对象进行操作
权限:用户对数据库中对象的使用和操作的权利
角色:一系列权限的集合。通常会把常用的权限组合,称之为一个角色
配额:限定用户存储空间大小或增长方式。可以在数据库管理工具中对配额、权限或创建新用户等进行管理
审计:对某些用户的某些操作进行跟踪、记录或检查。比如监控某用户进行过哪些操作,其中成功或者失败的操作各有那些等等
可以在会话的层面或者在每一条SQL指令的层面进行记录,最终的审计结果就相当于安全监控的录像一样
释一Database Instance即运行中的数据库。在与数据库打交道的时候,都是与运行中的数据库实例打交道,而非直接操纵数据库
每一个数据库一般都对应一个数据库实例,二者通常是一对一的关系。数据库实例可以由实例装载和打开
数据库实例就是在Oracle安装的过程中设置的SID,即系统标识的名字,通常就是作为数据库的实例名
一般默认让它与数据库同名,实际上也可以改为不同的名字,但是没有这个必要
释二RAC架构即采用多台服务器实现Oracle并行服务器的架构。可以理解为多台服务器都安装了Oracle,它们组成一个并行的结构
可以认为这是一个数据库。它们可以共用数据文件,即使这些数据文件保存在不同机器上,但它们仍属于一个物理数据库
这种情况下可以同时存在多个实例,甚至可能是分布式的运行在多台不同的机器上的多组Oracle进程/线程
它们可能有共享的内存区,也可能有各自独立的内存空间,但是运行的多组实例,最终操纵的是同一份底层的数据库文件
这种情况下就出现了数据库和数据库实例的一对多的关系
释三Database Service_Name对目前层面的应用没有什么影响。可以认为数据库名,实例名,服务名等都可以取同样的名字
对于可能出现同一个数据库对应多个实例的并行服务器架构而言,用户完全不必在乎它有多少个实例
用户不需要指定具体连接的是并行服务器架构中的哪一个实例,而只需要指定它的数据库服务名即可
如果某个实例down掉了,即一组机器上的Oracle进程/线程死掉了。系统会自动切换实例以实现实例间的负载均衡
当然也允许用户指定连接到特定的实例,这时也需要指定实例名。事实上在应用开发中很少进行这种层面的应用
释四Monitor负责监听指定的端口,如Oracle的1521端口。以远程客户端向当前数据库服务器发起连接请求为例
监听器会通过它所监听的端口接收远程客户端的连接请求,并把陆续接收到的SQL指令传给数据库服务器
再由数据库服务器进行后续处理。它就相当于Java事件处理中的监听器

Oracle存储结构
物理存储结构
数据文件(Data File):保存用户真正关心的信息,如表、视图、存储过程等等
重做日志文件(Redo Log File):逐条记录数据库曾执行过的操作。当数据库遭到破坏时,可以按照它记录的操作恢复数据库
Oracle的重做日志文件至少有两个,并采取交替的方式使用。比如说先使用第一个日志文件
往里面逐笔记录每一次数据库操作的事务指令。当它记满之后,Oracle不会立即清除它的内容
Oracle会向第二个重做日志文件中记录操作指令。当第二个文件记满了,才会清除第一个文件
然后接着使用第一个文件。这样就为重做数据库提供了保障,即使得近期的操作能够得到保存
控制文件(Control File):记录关于当前数据库数据文件以及重做日志文件的一些信息。当数据库实例在操纵数据文件的时候
实际上它会先查控制文件,查一下里面给出的数据文件或重做日志文件的名字或存储位置等系统信息
逻辑存储结构
表空间(Table Space):在向Oracle中写入数据的时候,必须先建立表空间。数据文件实际上是位于现有的表空间之中
首次安装数据库的时候,系统一定会自动创建一个叫做system的表空间,另外还可能有其它的用户表空间
创建用户时可以指定它使用的表空间。一个表空间只能属于一个数据库,但一个数据库可以同时拥有多个表空间
(Segment):位于表空间中,是表空间的一种组成元素。段以区为单位分配空间。数据库中保存的每一个对象,如表、视图等等,就是一个段
(Extent):对段进行分配空间时的组织分配磁盘空间的一个单位。在Oracle中,区的大小是1块到2G。而每个数据块,大约是1MB到4MB个字节
(Block):是区的组成单位,是Oracle进行数据读写的最小操作单位。作为用户,不必关心它们之间的组成层次以及分配空间的管理等等

Oracle基本工具
OEM概述:是Oracle服务器端的管理工具,相当于SQL Server中的企业管理器。它提供了集成式的系统管理控制台
提供管理和诊断以及调优数据库的功能。可以远程管理多个网络数据库节点和服务。也可以管理并行服务器
OEM打开:程序→Oracle—OraHome92Enterprise Manager Console→选择独立启动→随后便打开了OEM窗口
展开菜单项,选择所安装的数据库ORA9,在弹出窗口中输入口令,连接身份选择SYSDBA即管理员身份
OEM细举例程:即数据库实例。通常是与数据库一对一的关系,但在RAC架构中可能出现一对多的关系,实例名各不相同
方案:每个用户都有自己的方案,或者说它的工作空间。相当于工作区的概念
安全性:可以进行用户的创建和安全性管理授权等操作
SqlPlus:程序→Oracle—OraHome92Application DevelopmentSQL Plus→主机字符串中输入ora9,即数据服务名
iSqlplus:启用OracleOraHome92HTTPServer服务的条件下,在IE中http://127.0.0.1/isqlplus连接标识符中输入ora9
也可以是其它的机器使用它的客户端浏览器软件访问本机的Oracle服务器,而客户端不需要任何配置
SqlPlus WorkSheet:程序→Oracle—OraHome92Application DevelopmentSQLPlus Worksheet
选择直接连接到数据库,在服务中输入数据库服务名,即ora9,其实就是本机的数据库