Oracle数据库

Oracle数据库

关系数据库管理系统
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。[1]到目前仍在数据库市场上占有主要份额。劳伦斯·埃里森和他的朋友,之前的同事Bob Miner和Ed Oates在1977年建立了软件开发实验室咨询公司(SDL,Software Development Laboratories)。作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
    软件名称: 软件平台: 软件语言: 开发商: 软件授权: 软件版本: 软件大小: 中文名:Oracle数据库 外文名:Oracle RDBMS 别名:Oracle 发行商:美国ORACLE公司 支持语言:英文 上市时间:2001年 开发公司:甲骨文公司 优点:数据安全性强,稳定性强

系统介绍

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统。

服务器

Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。每个Server由一个 Oracle DB和一个 Oracle Server实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,以此可实现数据存储透明性。每个 Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务,包括启动和关闭数据库;Sys,它是一个 DBA用户名,具有最大的数据库操作权限;System,它也是一个 DBA用户名,权限仅次于 Sys用户。

客户端

为数据库用户操作端,由应用、工具、SQL* NET组成,用户操作数据库时,必须连接到一服务器,该数据库称为本地数据库(Local DB)。在网络环境下其它服务器上的 DB称为远程数据库(Remote DB)。用户要存取远程 DB上的数据时,必须建立数据库链。

Oracle数据库的体系结构包括物理存储结构和逻辑存储结构。由于它们是相分离的,所以在管理数据的物理存储结构时并不会影响对逻辑存储结构的存取。

支持平台

在2001年发布的Oracle9i之前,甲骨文公司把他们的数据库产品广泛的移植到了不同的平台上。甲骨文公司巩固了一小部分的操作系统平台。

截止至2015年01月,甲骨文公司的Oracle10g/11g/12c支持以下的操作系统和硬件:

·AppleMacOSXServer:PowerPC

·HPHP-UX:PA-RISC,Itanium

·HPTru64UNIX:Alpha

·HPOpenVMS:Alpha,Itanium

·IBMAIX5L:IBMPOWER

·IBMz/OS:zSeries

·Linux:x86,x86-64,PowerPC,zSeries,Itanium

·MicrosoftWindows:x86,x86-64,Itanium

·SunSolaris:SPARC,x86,x86-64

特点

1、完整的数据管理功能:

1)数据的大量性

2)数据的保存的持久性

3)数据的共享性

4)数据的可靠性

2、完备关系的产品:

1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;

2)保证访问的准则

3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化

4)数据物理性和逻辑性独立准则

3、分布式处理功能:

ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。

4、用ORACLE能轻松的实现数据仓库的操作。

这是一个技术发展的趋势,不在这里讨论。

数据库管理及开发工具

·Navicat for Oracle是一套专为Oracle设计的强大数据库管理及开发工具。它可以用于任何版本的Oracle数据库,并支援大部份Oracle的功能,包括触发器、索引、检视等。

·Toad for Oracle是一款老牌的Oracle开发管理工具,比任何一款Oracle开发管理工具功能更多,并针对使用者不同的角色有多个分支版本。版本包括:Toad DBA Suite for Oracle是一款专门为Oracle DBA管理Oracle数据库工具, Toad Development Suite for Oracle是一款专门为Oracle开发工具, Toad DBA Suite for Oracle – Exadata Edition是一款专门为Oracle Exadata一体服务器及Oracle数据库管理工具, Toad DBA Suite for Oracle - RAC Edition是一款专门为Oracle搭建集群RAC的DBA管理工具

比较

在了解了ORACLE数据库后,我们有必要对ORACLE和Sybase SQL Server的比较, Oracle采用的是并行服务器模式,而Sybase SQL Server采用的是虚拟服务器模式,它没有将一个查询分解成多个子查询,再在不同的CPU上同时执行这些子查询。我们可以说在对称多处理方面Oracle的性能优于Sybase的性能。业务量往往在系统运行后不断提高,如果数据库数量达到GB以上时,我们在提高系统的性能方面可以从两方面入手,一种是提高单台服务器的性能,还有就是增加服务器数目。

基于此,如果我们是提高单台服务器的性能,选择Oracle 数据库较好,因为它们能在对称多CPU的系统上提供并行处理。相反,由于Sybase的导航服务器使网上的所有用户都注册到导航服务器并通过导航服务提出数据访问请求,导航服务器则将用户的请求分解,然后自动导向由它所控制的多台SQL Server,从而在分散数据的基础上提供并行处理能力,我们可以选择它。

这些都是在其他条件和环境相同的情况下比较的,这样才有可比性。在数据的分布更新方面,Oracle采用的是基于服务器的自动的2PC(两阶段提交),而Sybase采用的则是基于客户机DB-Library或CT-Library的可编程的2PC,因此我们在选择数据库方面,必须根据需要进行选择,比如,从事的社会保险软件的开发,考虑到数据量大,并发操作比较多,实时性要求高,我们后台基本采取的是ORACLE数据库。Oracle服务器由Oracle数据库和Oracle实例组成。Oracle实例由系统全局区内存结构和用于管理数据库的后台进程组成。

就业前景

从就业与择业的角度来讲,计算机相关专业的大学生从事oracle方面的技术是职业发展中的最佳选择。

其一、就业面广:ORACLE帮助拓展技术人员择业的广度,全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位,大学生在校期间兴趣广泛,每个人兴趣特长各异,不论你想进入金融行业还是电信行业或者政府机构,ORACLE都能够在你的职业发展中给你最强有力的支撑,成为你最贴身的金饭碗。

其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),Oracle技术能够帮助提高就业的深度。Oracle技术已经成为全球每个IT公司必选的软件技术之一,熟练掌握Oracle技术能够为从业人员带来技术应用上的优势,同时为IT技术的深入应用起到非常关键的作用。掌握Oracle技术,是IT从业人员了解全面信息化整体解决方案的基础。

其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向.

逻辑结构

它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。

总之,逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。

段(Segment):

是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。

其中包括:

数据段:用来存放表数据;

索引段:用来存放表索引;

临时段:用来存放中间结果;

回滚段:用于出现异常时,恢复事务。

范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依次分配的,分配的第一个范围称为初始范围,以后分配的范围称为增量范围。

数据块(Block):

是数据库进行IO操作的最小单位,它与操作系统的块不是一个概念。oracle数据库不是以操作系统的块为单位来请求数据,而是以多个Oracle数据库块为单位。

文件结构

数据库的物理存储结构是由一些多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告文件等。

控制文件:存储实例、数据文件及日志文件等信息的二进制文件。alter system set control_files=‘路径’。V$CONTROLFILE。

数据文件:存储数据,以.dbf做后缀。一句话:一个表空间对多个数据文件,一个数据文件只对一个表空间。dba_data_files/v$datafile。

日志文件:即Redo Log Files和Archivelog Files。记录数据库修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。

参数文件:记录基本参数。spfile和pfile。

警告文件:show parameter background_dump_dest---使用共享服务器连接

跟踪文件:show parameter user_dump_dest---使用专用服务器连接

恢复技术

恢复意义

当我们使用一个ORACLE数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复。恢复子系统是数据库管理系统的一个重要组成部分。恢复处理随时随地所发生的故障类型所影响的结构而变化。

恢复方法

IMPORT方法:

利用IMPORT,将最后一次EXPORT出来的数据文件IMPORT到新的数据库中,这种方式可以将任何数据库对象恢复到它被导出时的状态,此后的变化将无法挽回。IMPORT的命令可以交互式进行,各参数的具体含义见Oracle EXP/IMP参数详解。这种方式适用于没有采用archive 模式的环境。

安全的恢复方法:

如果数据库运行在archive 模式下,那么一旦数据库损坏则可以通过冷备份(热备份)和归档备份将数据库恢复到断点状态。

数据库控制文件恢复(假设所有控制文件均被破坏):

数据库基于文件系统: 利用操作系统的tar、cp等命令即可。

数据库基于裸设备:dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12

数据库数据文件恢复数据及索引表空间、系统表空间的恢复:回拷相关的数据库文件和该数据文件备份以来所有生成的所有逻辑日志文件并执行如下命令:

svrmgrl > startup mount

svrmgrl > alter database recover automatic

如果控制文件被破坏,则:

svrmgrl > alter database recover using backup controfile; 按照提示输入log文件名和redolog文件名

svrmgrl > alter database open resetlogs;

数据库临时文件和回滚表空间的恢复:简单地offline drop 并重建即可 。

注意:如果数据库不运行在archive 模式下,则恢复只能恢复到上次备份时的状态。

安装过程

一、准备安装

基本都是按部就班。

使用的OS版本:OEL4

[oracle@ractestorcl]$cat/etc/redhat-release

EnterpriseLinuxEnterpriseLinuxASrelease4(OctoberUpdate5)

[oracle@ractestorcl]$cat/etc/enterprise-release

EnterpriseLinuxEnterpriseLinuxASrelease4(OctoberUpdate5)

安装程序路径:

/mnt/Oracle11g_linux_x86_64/database

创建用户

groupadd-g1001dba

groupadd-g1002oinstall

useradd-u10000-gdba-Goinstall,dba-d/home/oracle-s/bin/bashoracle

chownRoracle:dba/home/oracle

usermod-gdba-Goinstall,dbaoracle

使用的.bash_profile

exportORACLE_BASE=/home/oracle

exportORACLE_HOME=$ORACLE_BASE/11g

exportORA_CRS_HOME=$ORACLE_BASE/crs

exportORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

exportORACLE_SID=orcl1

exportPATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:${PATH}:$HOME/bin

exportPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

exportPATH=${PATH}:$ORACLE_BASE/common/oracle/bin

exportORACLE_TERM=xterm

exportTNS_ADMIN=$ORACLE_HOME/network/admin

exportORA_NLS10=$ORACLE_HOME/nls/data

exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/

oracm/lib:$ORACLE_HOME/lib

exportLIBPATH=$LIBPATH:$ORA_CRS_HOME/lib:$ORACLE_HOME/lib

exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME

/network/jlib:$ORACLE_HOME/JRE

exportTHREADS_FLAG=native

exportTEMP=/tmp

exportTMPDIR=/tmp

exportNLS_LANG=american_america.WE8ISO8859P1

exportDISPLAY=10.198.90.55:2

aliassysdba="sqlplus'/assysdba'"

exportEDITOR=vi

修改的核心参数:

kernel.shmall=2097152

kernel.shmmax=2147483648

kernel.shmmni=4096

fs.file-max=65536

net.ipv4.ip_local_port_range=102465000

net.core.rmem_default=262144

net.core.wmem_default=262144

net.core.rmem_max=262144

net.core.wmem_max=262144

使用xclock检查display正确:

代码:

[oracle@ractest~]$xclock

[oracle@ractest~]$/mnt/Oracle11g_linux_x86_64/database

[oracle@ractest~]$cd/mnt/Oracle11g_linux_x86_64/database

[oracle@ractestdatabase]$ls-l

total10

drwxr-xr-x41003oinstall96Mar2318:45doc

drwxr-xr-x51003oinstall1024Mar2318:45install

drwxr-xr-x21003oinstall1024Mar2318:45response

-rwxr-xr-x11003oinstall1251Mar2318:45runInstaller

drwxr-xr-x121003oinstall1024Mar2318:45stage

-rw-r--r--11003oinstall4638Mar2318:45welcome.html

[oracle@ractestdatabase]$./runInstaller

StartingOracleUniversalInstaller...

Checkinginstallerrequirements...

Checkingoperatingsystemversion:mustberedhat-3,SuSE-9,

redhat-4,UnitedLinux-1.0,asianux-1orasianux-2

Passed

Allinstallerrequirementsmet.

PreparingtolaunchOracleUniversalInstallerfrom

/tmp/OraInstall2007-06-28_02-26-12AM.Pleasewait...

[oracle@ractestdatabase]$OracleUniversalInstaller,Version11.1.0.2.0Production

Copyright(C)1999,2007,Oracle.Allrightsreserved.

OracleUniversalInstaller,Version11.1.0.2.0Production

Copyright(C)1999,2007,Oracle.Allrightsreserved.

启动图形以后选择basic&n

选择oraclebase的时候,oracle不推荐使用userhome作为oraclebase,这里我选yes忽略

进行prerequirements检查的时候,安装程序认为swap不足,我选择YES忽略

执行提示脚本,安装完毕

代码:

[oracle@ractestdatabase]$

[oracle@ractestdatabase]$su-root

Password:

[root@ractest~]#/home/oracle/oraInventory/orainstRoot.sh

Changingpermissionsof/home/oracle/oraInventoryto770.

Changinggroupnameof/home/oracle/oraInventorytodba.

Theexecutionofthescriptiscomplete

[root@ractest~]#/home/oracle/11g/root.sh

RunningOracle11groot.shscript...

Thefollowingenvironmentvariablesaresetas:

ORACLE_OWNER=oracle

ORACLE_HOME=/home/oracle/11g

Enterthefullpathnameofthelocalbindirectory:[/usr/local/bin]:

Copyingdbhometo/usr/local/bin...

Copyingoraenvto/usr/local/bin...

Copyingcoraenvto/usr/local/bin...

Creating/etc/oratabfile...

Entrieswillbeaddedtothe/etc/oratabfileasneededby

DatabaseConfigurationAssistantwhenadatabaseiscreated

Finishedrunninggenericpartofroot .shscript.

Nowproduct-specificrootactionswillbeperformed.

Finishedproduct-specificrootactions.

安装完毕。

相关词条

相关搜索

其它词条