孟宪顺ServiceManagerMxs@genersoft.com中航系统管理员Oracle培训Oracle课程内容•安装与配置•使用sqlplus、DBAstudio•plsql和数据字典•数据库体系结构•逻辑结构•备份与恢复概述ORACLE具有甲骨文之意,是全世界第二大软件公司。数据库、电子商务套件、erp、财务产品、开发工具培训认证。Oracle服务(server)是一个关系数据库(relationaldatabase)管理系统,提供开放、全面、完整的信息管理。Oracle概述、特点最安全的数据库:15项安全性评估,不会崩溃高性能、伸缩性RAC技术分布式数据库海量数据库:表空间、空间数据构件TB级大型数据库的优点安全性、稳定性、事物完整性最贵的数据库Oracle特点Oracle8i安装与配置•服务器端的安装、服务的启动、卸载•客户端安装•客户端的连接配置•浪潮财务软件中帐套管理及环境配置一、体系结构客户机客户机服务器网络请求响应--客户(Client)运行应用程序(财务软件)提出操作数据的请求--服务器(Server)运行数据库管理系统(Oracle)对客户端请求进行响应,并返回操作结果二、系统安装HUB数据库服务器财务数据帐套Oracle系统WindowsNT\2000工作站工作站工作站财务软件Oracle客户端Win98/2000财务软件Oracle客户端Win98/2000网络协议、客户软件财务数据帐套Oracle数据库系统WindowsNT/2000网络协议工作站服务器HUB网卡、网线网卡、网线环境配置Net8Assistant网上邻居图中:虚线表示软件的连接,连接配置工具实线表示物理线路的连接上层连接都是建立在下层连接的基础上安装信息•数据库名:oradb•数据库系统标识符(SID):oradb•SYS帐户口令:change_on_install•SYSTEM帐户口令:managerORACLE服务的启动•Oracleorahome81TNSListerner(oracle监听服务)•Oracleservise+SID•OraclewebAssistantsql*plus使用•设置sql*plus环境变量•编写简单的sql语句PL/Sql和数据字典•Select*fromtab;•/•Setlinesize100•Setpagesize50•Desctab•Setpauseon•Select*fromzwkmzd;•Spool文件名•Spooloff•Conn用户名/口令课程目标建立数据库对象用select语句进行查询使用DML修改数据理解视图与索引作用掌握常用的数据字典SQL概论•SQL是结构化的查询语言,用于在oracle数据库中管理和检索数据。Sql是非过程化的语言,它没有诸如循环这样的程序构件。Oracle的SQL语言包含ANSI/ISO标准SQL语言的扩充。•Oracle的SQL语言分为以下几类:•–DML(数据操纵语言)用于访问、生成、修改或者删除数据库的现有结构。包含SELECT、INSERT、UPDATE、DELETE。•–DDL(数据定义语言)用于定义、更改或者删除数据库对象及他们的优先权。包括CREATE、ALTER、DROP、RENAME•–事物处理的控制语言COMMIT、ROLLBACK•–会话控制语句ALTERSESSION、SETROLE•–系统控制语句ALTERSYSTEM准备知识•Sql基础知识•数据库存储的最基本结构是表(table),即二维表格,列叫做字段,行叫做记录。当你生成一张数据表在数据库中存储数据时,需要为该表中定义的所有列指定一个数据类型。•Oracle数据类型•字符CHAR、NCHAR、VARCHAR2、NVARCHAR2•数字NUMBER(p,s)•长值和原始LONG、LONGRAW、RAW•日期和时间DATE、TIMESTAMP、TIMESTAMPWITHTIMEZONE•大型对象CLOB、NCLOB、BCLOB、BFILE•RowID(行标识符)ROWID、UROWID表格的创建(DDL)•表格的生成可以用createtable来实现•也根据当前已经存在的表创建新表,可以用来作为当前表的备份:createtablenewtablenameasselect*fromoldtablename修改表结构•增加列:altertableempaddbirthdaydate超过一列要加括号•修改列:altertableempmodifyempnochar(8)•删除列altertableempdropcolumnbirthday删除修改表•2)删除表可以用droptable命令•例:droptableemp•3)修改表名rename原表名to新表名•例:renameemptonewempSelect(从一个或多个表或视图中检索数据)•1、简单的单表查询selectempnofromemp•2、指定列别名selectempnoasempnumberfromemp•3、保证唯一性selectdistinctempnofromemp限制行查询where子句•selectempnofromempwhereempno=’10’•selectempnofromempwherenamelike’a%’•比较运算=、、、=、=、like•逻辑运算and、not、or•其他运算in和notin、between、exists、isnull和notnull排序、分组5、排序orderby子句selectempnofromemporderbysal6、分组groupbyselectdeptno,min(sal),max(sal)fromempgroupbydeptno;数据的修改(DML)数据的插入insertintoempvalues(‘0001’,’zhangsan’,3000,’1001’)插入值的个数必须与列的个数相同指定列插入insertintoemp(empno,name,sal)values(‘0001’,’zhangsan’,3000)从其他表中插入insertinto表名(列名)select语句;•1、数据的修改updateempsetsal=1000whereempno=‘7369’;•2、数据的删除delete(从表与视图中删除行)deletefromempwheredeptno=10视图视图(VIEW)是从一个或多个表中使用SELECTFROM语句导出的,那些用来导出视图的表称为基表,视图也可以从一个或多个其他视图中产生。视图优点:•分割数据•增强安全性•简化数据存取•建立视图:CREATEVIEWview_name[(column_name,column_name,…)]ASselect_statement例:CREATEVIEWemp_viewasselect*fromemp•删除视图:dropviewview_name索引管理•索引可以改善性能•加速对表中数据行的检索•索引要占用一定的空间•会减慢了数据的修改速度•插入、删除和更新数据都要对索引进行维护•没有必要对表中的所有列建索引。何时建立索引?出现以下几种情况,可以为表建索引:⑴、经常用于检索、查询的列,可以基于该列建索引。⑵、用于两表连接的列(外键),建索引能很快执行连接。⑶、在表中建唯一索引可以增强数据完整性出现以下几种情况,建议不要建索引:⑴、很少或从不在查询中引用的列。⑵、只有两个或三个值的列(如性别列:男、女),建索引带来的好处不大。⑶、小表或行数很少的表可以不用建索引。建立索引:createindex索引名on表名(列名,列名……)例:createindexemp_noonemp(empno)删除索引:dropindex索引名数据字典定义:数据字典是Oracle的系统表是数据库的重要组成。它由一组只读表组成,包括:•数据库所有对象的定义•空间的分配和使用状况,逻辑和物理结构的信息•列的缺省值•完整性约束信息•用户名•已授予用户的角色和权限•审计信息等•数据字典所有者数据字典通过不同的视图呈现给不同的用户,这些视图拥有带有不同前缀的相同名称。如:user_tables、all_tables、dba_tables。•User_xxx当前用户所拥有的数据对象•All_xxx当前用户可以访问的数据对象•Dba_xxx数据库中所有的数据库对象,只有DBA可以访问。Oracle体系结构本章的学习目标:l掌握Oracle服务器的结构组成:实例+文件l掌握Oracle服务器实例的概念,了解结构和各个部分的功能l掌握组成Oracle服务器的几类文件l熟悉控制文件的功能l熟悉重做日志文件的功能和作用实例的定义实例=内存分配+一组后台进程如果把Oracle比作一部汽车,instance相当于汽车的发动机一样,启动oracle前提应先启动instance..内存被分配,进程被启动SGAbackgroundprocess内存结构SystemGlobalAreaSGA是存储数据库进程共享的数据库信息的内存区域。它包含OracleServer数据和控制信息。分配在OracleServer驻留的计算机虚拟内存中。SGA包含如下内存结构:•共享池(sharedpool)•数据缓冲区(databasebuffercache)•重作日志缓冲区(redologbuffer)另外在SGA中还有两个可选的内存结构:•Javapool:用来存储Java代码。•Largepool:用来存储不与SQL直接相关的大型内存结构。例如:在备份和恢复时的数据拷贝。进程结构进程是操作系统中的一种机制,它可执行一系列的操作步。在有些操作系统中使用作业(JOB)或任务(TASK)的术语。一个进程通常有它自己的专用存储区。ORACLE进程的体系结构设计使性能最大。后台进程是在实例启动时自动地建立,几个主要的后台进程的名字为:ØDatabaseWriter(DBW0)ØLogWriter(LGWR).ØSystemMonitor(SMON)ØProcessMonitor(PMON)Process(CKPT)Oracle数据库的物理结构Oracle文件Oracle数据库的物理组成主要有:数据文件、控制文件和重做日志文件•数据文件主要用来存储数据库数据•控制文件主要用来存储数据库的物理结构•重做日志文件主要用来存储外部程序对数据库的修改。其它文件•其他文件–参数文件用来定义Oracle实例的特性。例如:他包含SGA内存的大小。–口令验证文件用来验证启动和关闭Oracle实例的用户。–存档重做日志文件是重做日志的备份用以恢复数据。ORACLE逻辑结构本章的学习目标•掌握表空间与数据文件的概念及相互关系•掌握表空间的日常管理内容和方法•掌握数据块和扩展区的概念•掌握回滚段的分类、作用和管理•掌握数据库启动和关闭的过程表空间定义:一个数据库划分为一个或多个逻辑单位该逻辑单位称为表空间。目的:•控制数据库数据的磁盘分配,克服操作系统文件的限制。2G•将确定的空间份额分配给数据库用户。•通过使单个表空间在线或离线,控制数据的可用性。•执行部分数据库后备或恢复操作。•为提高性能,跨越设备分配数据存储。表空间特性:–一个tablespace只能同时属于一个database。–每个tablespace包含一个或多个操作系统文件-数据文件(datafiles).–一个tablespace可能包含一个或多个segments.–Tablespaces可以在数据库运行时使其在线。–除了SYSTEMtablespace或有活动回滚段的tablespace,tablespaces可以被离线(offline)。–Tablespaces可以在读/写之间切换。SYSTEM和非SYSTEM表空间SYSTEM表空间包含:•数据字典信息•SYSTEM回滚段非SYSTEM表空间包含:•回滚段•临时段•应用数据•应用索引临时表空间用于排序操作不能包含永久性数据CREATE