• 1. 孟宪顺 Service Manager Mxs@genersoft.com 中航系统管理员Oracle培训
  • 2. Oracle课程内容 安装与配置 使用sqlplus、DBA studio plsql和数据字典 数据库体系结构 逻辑结构 备份与恢复
  • 3. 概述 ORACLE具有甲骨文之意,是全世界第二大软件公司。数据库、电子商务套件、erp、财务产品、开发工具培训认证。Oracle服务(server)是一个关系数据库(relational database)管理系统,提供开放、全面、完整的信息管理。 Oracle 概述、特点
  • 4. 最安全的数据库:15项安全性评估,不会崩溃 高性能、伸缩性 RAC技术 分布式数据库 海量数据库:表空间、空间数据构件 TB级 大型数据库的优点安全性、稳定性、事物完整性 最贵的数据库 Oracle 特点
  • 5. Oracle 8i 安装与配置 服务器端的安装、服务的启动、卸载 客户端安装 客户端的连接配置 浪潮财务软件中帐套管理及环境配置
  • 6. 一、体系结构客户机客户机服务器网络请求响应--客户(Client)运行应用程序(财务软件)提出操作数据的请求 --服务器(Server)运行数据库管理系统(Oracle)对客户端请求 进行响应,并返回操作结果
  • 7. 二、系统安装HUB数据库服务器财务数据帐套 Oracle系统 Windows NT\2000工作站工作站工作站财务软件 Oracle客户端 Win98/2000
  • 8. 财务软件Oracle客户端 Win98/2000 网络协议、客户软件财务数据帐套Oracle数据库系统 Windows NT/2000 网络协议工作站服务器HUB网卡、网线网卡、网线 环境配置Net8 Assistant网上邻居图中:虚线表示软件的连接,连接配置工具 实线表示物理线路的连接 上层连接都是建立在下层连接的基础上
  • 9. 安装信息数据库名:oradb 数据库系统标识符(SID):oradb SYS 帐户口令:change_on_install SYSTEM 帐户口令:manager
  • 10. ORACLE 服务的启动 Oracleorahome81 TNSListerner (oracle 监听服务) Oracle servise+SID Oracle web Assistant
  • 11. sql*plus使用 设置sql*plus环境变量 编写简单的sql语句
  • 12. PL/Sql和数据字典
  • 13. Select * from tab; / Set linesize 100 Set pagesize 50 Desc tab Set pause on Select * from zwkmzd;
  • 14. Spool 文件名 Spool off Conn 用户名/口令
  • 15. 课程目标 建立数据库对象 用select语句进行查询 使用DML修改数据 理解视图与索引作用 掌握常用的数据字典
  • 16. SQL概论SQL是结构化的查询语言,用于在oracle数据库中管理和检索数据。Sql是非过程化的语言,它没有诸如循环这样的程序构件。Oracle的SQL语言包含ANSI/ISO标准SQL语言的扩充。 Oracle的SQL语言分为以下几类: –DML(数据操纵语言)用于访问、生成、修改或者删除数据库的现有结构。包含SELECT、INSERT、UPDATE、DELETE。 –DDL(数据定义语言)用于定义、更改或者删除数据库对象及他们的优先权。包括CREATE、ALTER、DROP、RENAME –事物处理的控制语言 COMMIT、ROLLBACK –会话控制语句 ALTER SESSION、SET ROLE –系统控制语句 ALTER SYSTEM
  • 17. 准备知识Sql基础知识 数据库存储的最基本结构是表(table),即二维表格,列叫做字段,行叫做记录。当你生成一张数据表在数据库中存储数据时,需要为该表中定义的所有列指定一个数据类型。 Oracle数据类型 字符 CHAR、NCHAR、VARCHAR2、NVARCHAR2 数字 NUMBER(p,s) 长值和原始 LONG、LONG RAW、RAW 日期和时间 DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE 大型对象 CLOB、NCLOB、BCLOB、BFILE Row ID(行标识符) ROWID、UROWID
  • 18. 表格的创建(DDL) 表格的生成可以用create table 来实现 也根据当前已经存在的表创建新表,可以用来作为当前表的备份: create table newtablename as select * from oldtablename
  • 19. 修改表结构 增加列:alter table emp add birthday date 超过一列要加括号 修改列: alter table emp modify empno char(8) 删除列 alter table emp drop column birthday
  • 20. 删除修改表2)删除表可以用drop table命令 例:drop table emp 3)修改表名 rename 原表名 to 新表名 例:rename emp to newemp
  • 21. Select (从一个或多个表或视图中检索数据) 1、简单的单表查询 select empno from emp 2、指定列别名 select empno as empnumber from emp 3、保证唯一性 select distinct empno from emp
  • 22. 限制行查询 where子句 select empno from emp where empno=’10’ select empno from emp where name like ’a%’ 比较运算 =、<>、<>、<=、>=、like 逻辑运算 and、not、or 其他运算 in和not in、between、exists、is null和not null
  • 23. 排序、分组5、排序 order by子句 select empno from emp order by sal 6、分组 group by select deptno,min(sal),max(sal) from emp group by deptno;
  • 24. 数据的修改(DML) 数据的插入  insert into emp values(‘0001’,’zhangsan’,3000,’1001’) 插入值的个数必须与列的个数相同 指定列插入 insert into emp(empno,name,sal) values(‘0001’,’zhangsan’,3000) 从其他表中插入insert into 表名(列名) select 语句;
  • 25. 1、  数据的修改 update emp set sal=1000 where empno=‘7369’; 2、  数据的删除 delete (从表与视图中删除行) delete from emp where deptno=10
  • 26. 视图视图(VIEW)是从一个或多个表中使用SELECT FROM 语句导出的,那些用来导出视图的表称为基表,视图也可以从一个或多个其他视图中产生。 视图优点: 分割数据 增强安全性 简化数据存取 建立视图: CREATE VIEW view_name [(column_name,column_name,…)] AS select_statement 例:CREATE VIEW emp_view as select * from emp 删除视图: drop view view_name
  • 27. 索引管理 索引可以改善性能 加速对表中数据行的检索 索引要占用一定的空间 会减慢了数据的修改速度 插入、删除和更新数据都要对索引进行维护 没有必要对表中的所有列建索引。
  • 28. 何时建立索引?出现以下几种情况,可以为表建索引: ⑴、经常用于检索、查询的列,可以基于该列建索引。 ⑵、用于两表连接的列(外键),建索引能很快执行连接。 ⑶、在表中建唯一索引可以增强数据完整性 出现以下几种情况,建议不要建索引: ⑴、很少或从不在查询中引用的列。 ⑵、只有两个或三个值的列(如性别列:男、女),建索引带来的好处不大。 ⑶、小表或行数很少的表可以不用建索引。
  • 29. 建立索引:create index 索引名 on 表名(列名,列名……) 例:create index emp_no on emp(empno) 删除索引:drop index索引名
  • 30. 数据字典 定义:数据字典是Oracle的系统表是数据库的重要组成。它由一组只读表组成,包括: 数据库所有对象的定义 空间的分配和使用状况,逻辑和物理结构的信息 列的缺省值 完整性约束信息 用户名 已授予用户的角色和权限 审计信息等
  • 31. • 数据字典所有者 数据字典通过不同的视图呈现给不同的用户,这些视图拥有带有不同前缀的相同名称。如:user_tables、all_tables、dba_tables。 User_xxx 当前用户所拥有的数据对象 All_xxx 当前用户可以访问的数据对象 Dba_xxx 数据库中所有的数据库对象,只有DBA可以访问。
  • 32. Oracle体系结构
  • 33. 本章的学习目标: l 掌握Oracle服务器的结构组成: 实例+文件 l  掌握Oracle服务器实例的概念,了解结构和各个部分的功能 l   掌握组成Oracle服务器的几类文件 l   熟悉控制文件的功能 l   熟悉重做日志文件的功能和作用
  • 34. (本页无文本内容)
  • 35. 实例的定义 实例 = 内存分配 + 一组后台进程 如果把Oracle比作一部汽车,instance相当于汽车的发动机一样,启动oracle前提应先启动instance..内存被分配,进程被启动 SGAbackground process
  • 36. 内存结构 System Global Area SGA是存储数据库进程共享的数据库信息的内存区域。它包含Oracle Server 数据和控制信息。分配在Oracle Server驻留的计算机虚拟内存中。SGA包含如下内存结构: • 共享池(shared pool) • 数据缓冲区(database buffer cache) • 重作日志缓冲区(redo log buffer) 另外在SGA中还有两个可选的内存结构: • Java pool: 用来存储Java代码。 • Large pool: 用来存储不与SQL直接相关的大型内存结构。例如:在备份和恢复时的数据拷贝。
  • 37. 进程结构 进程是操作系统中的一种机制,它可执行一系列的操作步。在有些操作系统中使用作业(JOB)或任务(TASK)的术语。一个进程通常有它自己的专用存储区。ORACLE进程的体系结构设计使性能最大。后台进程是在实例启动时自动地建立 ,几个主要的后台进程的名字为: Ø    Database Writer (DBW0) Ø    Log Writer (LGWR). Ø    System Monitor (SMON) Ø  Process Monitor (PMON) Process (CKPT)
  • 38. Oracle数据库的物理结构
  • 39. Oracle文件 Oracle数据库的物理组成主要有:数据文件、控制文件和重做日志文件 数据文件主要用来存储数据库数据 控制文件主要用来存储数据库的物理结构 重做日志文件主要用来存储外部程序对数据库的修改。
  • 40. 其它文件其他文件 参数文件 用来定义Oracle实例的特性。例如:他包含SGA内存的大小。 口令验证文件 用来验证启动和关闭Oracle实例的用户。 存档重做日志文件 是重做日志的备份用以恢复数据。
  • 41. ORACLE逻辑结构
  • 42. 本章的学习目标 掌握表空间与数据文件的概念及相互关系 掌握表空间的日常管理内容和方法 掌握数据块和扩展区的概念 掌握回滚段的分类、作用和管理 掌握数据库启动和关闭的过程
  • 43. (本页无文本内容)
  • 44. 表空间 定义:一个数据库划分为一个或多个逻辑单位该逻辑单位称为表空间 。目的: 控制数据库数据的磁盘分配,克服操作系统文件的限制。2G 将确定的空间份额分配给数据库用户。 通过使单个表空间在线或离线,控制数据的可用性。 执行部分数据库后备或恢复操作。 为提高性能,跨越设备分配数据存储。
  • 45. 表空间特性: – 一个 tablespace 只能同时属于一个database。 –每个 tablespace 包含一个或多个操作系统文件-数据文件(data files). –一个 tablespace 可能包含一个或多个segments. –Tablespaces 可以在数据库运行时使其在线。 –除了SYSTEM tablespace 或 有活动回滚段的 tablespace ,tablespaces 可以被离线(offline)。 – Tablespaces 可以在读/写之间切换。
  • 46. SYSTEM 和非SYSTEM 表空间SYSTEM 表空间包含: 数据字典信息 SYSTEM 回滚段非SYSTEM表空间包含: 回滚段 临时段 应用数据 应用索引
  • 47. 临时表空间 用于排序操作 不能包含永久性数据CREATE TABLESPACE sort DATAFILE ?DISK2/sort01.dbf?SIZE 50M MINIMUM EXTENT 1M DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 500 PCTINCREASE 0) TEMPORARY;
  • 48. 回滚表空间 用于 保存回滚段 不 要包含其他永久性数据CREATE TABLESPACE rbs DATAFILE ?DISK2/sort01.dbf?SIZE 50M MINIMUM EXTENT 1M DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 500 PCTINCREASE 0) ;
  • 49. 建立表空间CREATE TABLESPACE app_data DATAFILE ?DISK4/app01.dbf?SIZE 100M,?DISK5/app02.dbf?SIZE 100M MINIMUM EXTENT 500K DEFAULT STORAGE (INITIAL 500K NEXT 500K MAXEXTENTS 500 PCTINCREASE 0);
  • 50. 存储参数 下述参数影响段的空间分配: INITIAL NEXT MAXEXTENTS MINEXTENTS PCTINCREASE
  • 51. 表空间管理的一般原则 使用同样大小的子段 只在表空间上指定存储参数 子段大小为160K,5120KB,160MB 监视子段个数超过1024的段 非常大的表应单独建立表空间 TEMP段应放在TEMP表空间 回滚段应单独放在回滚段的表空间
  • 52. 给表空间增加数据文件ALTER TABLESPACE APP_data ADD DATAFILE ?DISK5/app03.dbf?SIZE 200M;
  • 53. 允许数据文件自动扩展ALTER TABLESPACE app_data ADD DATAFILE ?DISK6/app04.dbf?SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;
  • 54. ALTER DATABASE DATAFILE ?DISK5/app02.dbf?RESIZE 200M;手工改变数据文件的大小改变存储参数ALTER TABLESPACE app_data MINIMUM EXTENT 2M; ALTER TABLESPACE app_data DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 999);
  • 55. 将表空间OFFLINE不能访问处于OFFLINE状态的表空间的数据 SYSTEM 和包含活动回滚段的表空间不能OFFLINEALTER TABLESPACE app_data OFFLINE;
  • 56. 移动数据文件表空间 APP_DATA 必须OFFLINE 目标文件必须存在ALTER TABLESPACE app_data RENAME DATAFILE ?DISK4/app01.dbf?TO ?DISK5/app01.dbf?
  • 57. 只读表空间ALTER TABLESPACE app_data READ ONLY; 表空间必须在ONLINE状态 表空间中不含活动的 事物. 表空间中不含活动的 回滚段 表空间中不在作在线备份
  • 58. 删除表空间DROP TABLESPACE app_data INCLUDING CONTENTS;下述命令删除 APP_DATA表空间及其 中的内容.
  • 59. 获取表空间有关的信息DBA_TABLESPACES TABLESPACE_NAME NEXT_EXTENT MAX_EXTENTS PCT_INCREASE MIN_EXTLEN STATUS CONTENTS
  • 60. 获取数据文件有关的信息DBA_DATA_FILES FILE_NAME TABLESPACE_NAME BYTES AUTOEXTENSIBLE MAXBYTES INCREMENT_BY
  • 61. 小 结 ORACLE数据库中一表空间是由一个或多个物理数据文件组成,一个数据文件只可与一个表空间想联系。当为一表空间建立一数据文件时,ORACLE建立该文件,分配指定的磁盘空间容量。在数据文件初时建立后,所分配的磁盘不包含任何数据。表空间可以在线或离线。在ORACLE中还允许单独数据文件在线或离线。
  • 62. 段、范围和数据块 段(SEGMENT)包含表空间中比表空间小一级的一种指定类型的逻辑存储结构,是由一组范围组成。根据访问频率、内容对象和生命周期在ORACLE数据库中有几种类型的段:数据段、索引段、回滚段和临时段。
  • 63. 段的类型 数据段:对于每一个非聚集的表有一数据段,表的所有数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。 索引段:每一个索引有一索引段,存储索引数据。 回滚段:保存数据修改前的映象,这些信息用于生成读一致性数据库信息、在数据库恢复时使用、回滚未提交的事务。Rollback时用得着。一个事务只能使用一个回滚段。
  • 64. 建立回滚段CREATE ROLLBACK SEGMENT rbs01 TABLESPACE rbs STORAGE ( INITIAL 100K NEXT 100K OPTIMAL 4M MINEXTENTS 20 MAXEXTENTS 100);
  • 65. 使回滚段ONLINEALTER ROLLBACK SEGMENT rbs01 ONLINE;ROLLBACK_SEGMENTS=(rbs01)在初始化参数中指定,以保证数据库启动 时ONLINE用下述命令使回滚段可用
  • 66. 事物如何使用回滚段将所有回滚段 ONLINE获得私有回滚段有足够 的回 滚段获取公用回滚段计算需要的回滚段个数YesNo
  • 67. 修改回滚段存储参数ALTER ROLLBACK SEGMENT rbs01 STORAGE( MAXEXTENTS 200 );使用 ALTER ROLLBACK SEGMENT命令从回滚段中释放空间ALTER ROLLBACK SEGMENT rbs01 SHRINK TO 4M;使用ALTER ROLLBACK SEGMENT命令
  • 68. 使回滚段OfflineALTER ROLLBACK SEGMENT rbs01 OFFLINE;删除回滚段DROP ROLLBACK SEGMENT rbs01;ALTER ROLLBACK SEGMENT rbs01 OFFLINE;回滚段在删除之前必须OFFLINE将回滚段offline后回滚段不可用
  • 69. 数据库中的回滚段\查询回滚段信息DBA_ROLLBACK_SEGS 标识 SEGMENT_ID SEGMENT_NAME 所在表空间,类型和状态 TABLESPACE_NAME OWNER (PUBLIC or SYS) STATUS (ONLINE or OFFLINE)
  • 70. 回滚段统计信息V$ROLLNAME USN NAME V$ROLLSTAT USN EXTENTS RSSIZE XACTS OPTSIZE HWMSIZE AVEACTIVE STATUS CUREXT CURBLK
  • 71. 回滚段常见问题空间不够 读一致性错误 阻塞事物 表空间offline时出错
  • 72. 空间不够表空间中无空闲空间 增大文件 允许文件自动扩充 增加文件 达到段的MAXEXTENTS 增大 MAXEXTENTS 用更大的子段参数重建回滚段
  • 73.   范围(区间) 一个范围(EXTENT)是数据库存储空间分配的一个逻辑单位,它由连续数据块所组成。每一个段是由一个或多个范围组成。当一段中间所有空间已完全使用时,ORACLE为该段分配一个新的范围。   数据块 数据块(data block)是ORACLE管理数据文件中存储空间的单位,为数据库使用的I/O的最小单位,其大小可不同于操作系统的标准I/O块大小。
  • 74. 数据库和实例的启动和关闭
  • 75. 启动数据库并使它可用有三步操作: 启动一个实例 startup nomount 启动一实例的处理包含分配一个SGA(数据库信息使用的内存共享区)和后台进程的建立。实例起动的执行先于该实例装配一数据库。如果仅启动实例,则没有数据库与内存储结构和进程相联系。此时读参数文件 装配数据库 alter database mount 装配数据库是将一数据库与已启动的实例相联。当实例安装一数据库之后,该数据库保持关闭,仅DBA可存取。此时读控制文件 打开数据库 alter database open 打开一数据库是使数据库可以进行正常数据库操作的处理。当一数据库打开所有用户可连接到该数据库用存取其信息。在数据库打开时,在线数据文件和在线日志文件也被打开。
  • 76. 1)              关闭数据库 数据库停止的第一步是关闭数据库。当数据库关闭后,所有在SGA中的数据库数据和恢复数据相应地写入到数据文件和日志文件。在这操作之后,所有联机数据文件和联机的日志文件也被关闭,任何离线表空间中数据文件夹是已关闭的。在数据库关闭后但还安装时,控制文件仍保持打开。 2)              卸下数据库 停止数据库的第二步是从实例卸下数据库。在数据库卸下后,在计算机内存中仅保留实例。在数据库卸下后,数据库的控制文件也被关闭。 3)              停止实例 停止数据库的最后一步是停止实例。当实例停止后,SAG是从内存中撤消,后台进程被中止。
  • 77. Shutdown normal 等待所有的用户退出 Shutdown immdiatly 回滚未提交事务 Shutdown abort 强制退出,数据库置于不可知状态
  • 78. 用户管理 1、创建、改变、删除和监控oracle的新用户
  • 79. 用户管理(1)赋于合法的用户或和密码SVRMGL>CREATE USER username IDENTIFIED BY userpassword [DEFAULT TABLESPACE tablespace1] [TEMPORARY TABLESPACE tablespace2][QUOTA n K ON tablespace1]; M UNLIMITED空间限额
  • 80. (2)授于用户连接Oracle数据库的权限SVRMGL>grant connect tousername [with grant option]; rolenameprivelege......
  • 81. 常用的几个角色role (权限的集合)connect (8) 连上Oracle,做最基本操作 resource(5) 具有程序开发最基本的权限 dba (77)数据库管理员所有权限 exp-full-database 可把数据库整个备份输出的 权限 imp-full-datsabase 可把数据库整个备份恢复输 入的权限
  • 82. (3)alter user; (4)drop user [cascade]; (5)revoke role from user;
  • 83. 2、权限的管理
  • 84. 权限的分类system privilege 针对整个系统操作的权限 object privilege 针对整个具体object操作的权限可查看dba-sys-privs, dba-fab-privs;视图 dba-col-privs;
  • 85. Oracle的备份与恢复
  • 86. 课程目标 了解各种备份的工作原理 熟练掌握通过exp/imp备份恢复的方法 熟练掌握通过维护工具备份恢复的方法
  • 87. 备份的必要性 因为各种人为或外界的因素可能会造成数据库中灾难性的数据丢失,为了保证数据库中数据的安全,必须采取备份措施保证RDBMS中包含的数据免遭破坏,而有效的备份是十分简单和普通的,是在数据库处于无法使用状态时用于重建数据库的重要信息拷贝 。在重要的修改如删除段或者表空间以前或以后执行适当的备份是相当必要的。
  • 88. 备份的种类 冷备份 联机热备 用导出exp应用程序备份 浪潮财务软件维护工具备份 浪潮公司提示:建议采用最后两种及以上方法备份数据库!
  • 89. 各种备份的原理和步骤 冷备份:关闭数据库,采取操作系统拷贝命令来完成对数据库的备份,然后启动数据库。 热备份:数据库必须运行在ARCHIVELOG模式下 备份控制文件; 备份数据文件; 归档当前的联机日志文件; 备份归档日志文件。 EXP导出数据库作备份 利用SQL语句读出数据库数据,并在操作系统层将数据和定义存入二进制文件 维护工具备份:导出文本文件
  • 90. 数据库的实用程序Export 它是Oracle数据库的一个实用程序。它将Oracle数据库的数 据和结构移出Oracle放入到一个二进制的export 文件中。它 转出的数据只有Oracle的import程序能够处理。 Import 它将读取转出的数据将重建数据库的内容与结构。
  • 91. Export举例全数据库的备份 exp system/manager full=Y file=dba.dmp grants=Y rows=Y 用户级的数据库备份 exp lc0019999/aaaaaa file=exp.dmp owner=lc0019999 表级数据库备份 exp lc0019999/aaaaaa file=zwkmzd.dmp tables=(zwkmzd, manager)
  • 92. 例子:(推荐用此方法) exp lc0019999/aaaaaa@server file=d:\cwdata\aaa.dmp 删除用户lc0019999 drop user lc0019999 cascade 增加lc0019999并授予dba角色,口令与原口令相同,指定默认的表空间。 Imp lc0019999/aaaaaa @server file= d:\cwdata\aaa.dmp fromuser=lc0019999
  • 93. 自动备份 1.     建立一批处理文件backup.dat 2.     文件内容:exp lc0019999/aaaaaa@server file=d:\cwdata\aaa.dmp 3.     在win2000计划任务中指定执行时间或周期 4.实现自动备份。
  • 94. The End