知识oracle体系结构_第1页
知识oracle体系结构_第2页
知识oracle体系结构_第3页
知识oracle体系结构_第4页
知识oracle体系结构_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022年5月9日 了解甲骨文公司 了解oracle数据库体系结构 学会安装oracle10g 会进行数据库的基本操作(建立表空间、建立用户、数据的导入导出)课程目标目录 2134成立于1977年,总部位于美国加州,全球第二大软件公司,也是全球最大的信息管理软件及服务供应商,最早进入中国的跨国软件巨头甲骨文公司主要的产品目前分为以下几大类:服务器(服务器)及工具(主要竞争对手:IBM、微软)应用服务器: Oracle Application Server开发工具:Oracle JDeveloper,Oracle Designer,Oracle Developer,等企业资源计划(ERP)软件,

2、已有10年以上的历史。客户关系管理(CRM)软件,自1998年开始研发这种软件。甲骨文收购Sun:交易价值74亿美元“On April 20, 2009, Sun and Oracle announced a definitive agreement under which Oracle will acquire Sun. The proposed transaction is subject to Sun stockholder approval, certain regulatory approvals and customary closing conditions. Until the

3、 deal closes, each company will continue to operate independently, and it is business as usual. ”指标MSSQLOracleMySQLDB2开放性低高高高可伸缩性低高中高并行性中高中高安全性中高中高性能中高中中操作简便性高低中中维护成本低高中中稳定性中高中高价格低高低高适用场景中小企业大中型企业小企业大中型企业目录 2134 物理结构(由控制文件、数据文件、重做日志文件、参数文件、密码文件、归档文件等组成) 存储结构(物理结构、逻辑结构) 内存分配(SGA和PGA) 后台进程(数据写进程、日志写进程

4、、系统监控、进程检控、检查点进程、归档进程、服务进程、用户进程) Oracle实例数据库软件部件数据库数据库数据文件控制文件日志文件实例实例后台进程后台进程内存结构内存结构(SGA)数据库服务器数据库服务器 是一个数据库管理系统,它为信息管理提供了开放、综合和集成的方法 包括 Oracle 实例和 Oracle 数据库 Oracle 服务器服务器 口令文件口令文件 实例实例SGA重做日志重做日志缓冲区缓冲区 共享池共享池 数据字典数据字典高速缓存高速缓存库高速缓存库高速缓存 DBWRSMONPMONCKPTLGWR其它其它 用户进程用户进程 服务器进程服务器进程 PGA控制文件控制文件 数据文

5、件数据文件 数据库数据库 数据库缓冲区数据库缓冲区高速缓存高速缓存 重做日志重做日志文件文件 Java 池池 大型共享池大型共享池 参数文件参数文件 归档归档日志文件日志文件 是一个被统一处理的数据集合 包括三类文件 口令文件口令文件 参数文件参数文件 归档的归档的日志文件日志文件 控制控制文件文件 数据数据文件文件 重做重做日志日志文件文件 Oracle 数据库数据库 数据库文件的物理结构 ORACLE数据库中的数据逻辑存储在表空间中,物理存储在数据文件中。 数据文件是物理存储ORACLE数据库数据的文件,每一个ORACLE数据库有一个或多个物理的数据文件(data file)。 其特点如下

6、: 每一个数据文件只与一个数据库相联系。 一个表空间可包含一个或多个数据文件。 记录所有对数据库数据的修改,以备恢复数据时使用. 其特点如下: 每一个数据库至少包含两个日志文件组。 日志文件组以循环方式进行写操作。 每一个日志文件成员对应一个物理文件。 每一个ORACLE数据库有控制文件(control File),它记录数据库的物理结构。 包含下列信息类型: 数据库名。 数据库数据文件和日志文件的名字和位置。 数据库建立日期。 是一个文本文件,可直接使用操作系统下的文本编辑器打开查看,但不能对其内容进行修改。该文件只在建立数据库或启动实例时才被访问,在修改该文件之前必须关闭实例。 新版的Or

7、acle支持二进制的参数文件,可以在运行期修改参数 参数文件的作用: 确定存储结构的大小。 设置数据库的全部缺省值。 设置数据库的范围。 包括表空间,段,区间,数据块 Tablespace, segment, extent , block ORACLE的逻辑结构是由一个或多个表空间组成,一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间tablespace 一个表空间可将相关的逻辑结构组合在一起。 是一种访问 Oracle 数据库的方式 始终打开一个,并只且打开一个数据库 由内存结构和后台进程结构组成 后台进程结构后台进程结构 内存结构内存结构 实例实例SGA重做日志重做日志缓冲区缓冲区

8、 共享池共享池 数据字典数据字典高速缓存高速缓存库高速缓存库高速缓存DBWRSMONPMONCKPTLGWR 其它其它 数据库缓冲区数据库缓冲区高速缓存高速缓存 Java Java 池池 大型共享池大型共享池 如果把Oracle数据库比作一部汽车,instance相当于汽车的发动机一样,启动oracle数据库前提应先启动instance. 连接到 Oracle 实例(instance)包括: 每个用户同时刻只能连接到一个实例上; 用户连接可通过TCP/HTTP实现; 连接成功的用户,系统为该用户创建会话 创建的会话创建的会话 数据库用户数据库用户 用户进程用户进程 服务器进程服务器进程 建立的

9、连接建立的连接 Oracle 服务器服务器 系统全局区(System Global Area,SGA) 程序全局区(Program Global Area,PGA) JAVA POOLShared SQL AreaPL/SQL Procedures and PackagesControl StructuresDictionary CacheControl StructuresReusable Runtime MemoryUGAI/O Buffer AreaLibrary CacheShared PoolData Buffer CacheRedo Log BufferLarge PoolInst

10、ance Lock AreaSystem Global Area Shared PoolLibrary CacheShared SQL AreaPL/SQL Procedures and Package控制结构:LocksLibraryCache handlesand so on .Dictionary Cache控制结构:Character SetConversion MemoryNetwork Security Attributes. . .l Shared Pool Contentsl - SQL 或或 PL/SQL 语语句文本句文本l - SQL 或或 PL/SQL 语语句解析格式句解

11、析格式l - SQL 或或 PL/SQL 语语句句执执行行计划计划l - 数数据字典高速据字典高速缓缓存包含存包含数数据字典据字典数数据行据行l Library Cache(库库高速高速缓缓存存)l - 共享共享 SQL 区区 l - 私有私有 SQL区区l - PL/SQL 存存储过储过程程与与包包l - 控制控制结构结构 : 锁与库锁与库高速高速缓缓存句柄存句柄l Dictionary Cache(字典高速字典高速缓缓存存) l - 数数据据库库中所有表中所有表与视图与视图的名的名称称l -数数据据库库中所有表的列名中所有表的列名与类与类型型l - Oracle 用用户户的的权权限限l S

12、HARED_POOL_SIZE参数参数ReusableRuntimeMemory LRU (Least Recently Used)算法与共享池管理 每次当一个SQL语句被分析后都存放在共享池里以便重复使用; 如果一个SQL语句已存放在共享池里,则它不再进行分析,但该语句会放到LRU的前面; SQL语句不频繁被使用,则认为老化, 而频繁被使用则保留在共享池里; 一个SQL语句可被人为地保留在共享池里 SQL语句有关的所有数据 采用脏列表管理 和 LRU 当用户进程需要缓冲区时, 服务器进程扫描 LRU 列表以确定自由缓冲区SGAShared PoolShared SQL AreaDatabas

13、e Buffer Cache LRU 算法与数据缓冲区 即使是内存数据库,内存不可能与数据库一样大; 每次从磁盘读数据块存放在LRU的前面(即the most recently used -MRU); 如果某个块已在缓冲区中并且再次被读,则系统将该块移动到列表的前面; 数据不被使用则认为是已经老化(aged) 而被逐出内存;l Redo Log Buffer 是SGA中最小的缓冲区l 包含数据库改变日志的信息l 保持这些信息是为了可能的再做(一样的操作)l 当数据库恢复时需要读重做日志l LGWR 写重做日志信息到日志文件change vector #1change vector #2chan

14、ge vector #3redo record Large Pool是Oracle针对一些需要大量存储空间的数据库处理与运算工作所提供的一个额外选项 大型池可以让SGA配置一个较大的存储空间,提供给处理Oracle的backup/restore、I/O、执行Oracle复原管理程序RMAN 等。 通过指定LARGE_POOL_SIZE参数,设置Large Pool的大小。 当使用者有使用Java时,Oracle Server利用这块存储空间,存放及分析所使用的Java Code,藉以提供Oracle与Internet更高的整合性。通过指定JAVA_POOL_SIZE这个参数,来改变Java P

15、ool的大小 。 所谓后台: 客户端是前台,Oracle所在的服务器就是后台 现在仍然沿用后台概念 后台进程( background process ): 是一组常驻服务器的服务程序,执行I/O处理、Oracle进程监控、针对请求执行相应的工作等; 每个进程负责专一的一项工作DBWR (Database Writer)-必须写脏的数据的数据块到数据文件使用 LRU 算法管理最近很少用的块为了 I/O 性能而延迟写脏块列表达一定的量进程扫描有无自由的空间超时发生时DBWR 检查点发生时 LGWR (Log Writer) -必须 主要工作是:将日志缓冲区的信息写到日志文件 一个提交确认从没有发出

16、直到该事务记录到日志文件 一个实例有一个日志写进程 LGWR可通过设置LGWR_IO_SLAVES提供非同步I/O模式的功能。PMON (Process Monitor) -必须:如果是因为停电或是其它因素导致Oracle数据库不正常被关闭, 下一次启动数据库时将由SMON进行必要的数据库修复动作。清除异常终止的连接、撤消未提交的事务、释放被终止的进程所持有的锁、将自由的 SGA 资源分配给失败的进程、数据库的维护 SMON 进程-必须: 执行自动的实例恢复 回收不再使用的临时段空间 合并数据文件中相邻的块空间(如果PCTINCREASE 0) PMON和SMON一样,都是由Oracle数据库

17、系统周期性自动执行,检查整个数据库系统的运行情况 CKPT 进程-必须: 在一个指定的时间区间里,DBWR会对所有在Database Buffer Cache所做的改动,将其结果写入到相关的Data Files以及Redo Log Files、Control Files,这样的动作,就称为产生 一个checkpoint事件。 CKPT Background Process就是扮演着一个通知者的角色,经过一定的时间后,负责通知 DBWR 执行Checkpoint的动作。 CKPT会在时当时候产生一个Checkpoint事件: 确保Database Buffer Cache內经常被改动的数据也能够

18、定期被写入磁盘的Data File。(LRU 淘汰算法) 万一Oracle需要进行Instance Recovery时,就不需要Checkpoint之前的Redo record,可缩短数据库重新启动的时间归档进程ARCH (Archiver):如果数据库采用归档模式,则需要一个或多个归档进程以实现将日志文件读出并写到归档路径的归档文件中;归档路径可以是磁盘或磁带(实际上很少使用磁带);只有在日志切换时才发生归档进程读写工作;目录 2134 根据不同的操作系统和用户的要求,要提前进行安装的规划。 在安装前,不妨先问下自己下面的几个问题。 服务器硬件(硬盘、内存、网卡) 操作系统类型(win、li

19、nux、aix),版本(win2003,win2008,redhat9),是32位还是64位,操作系统补丁 选择哪个版本的Oracle Oracle安装前后打的补丁 软件环境(jdk、用户权限) 业务数据增长量、备份方案等 OFA只是oracle公司推荐的一种在服务器上安装oracle数据库系统的目录规划,以便于做维护。ORACLE_BASEORACLE_HOMEflash_recovery_areaoradataproduct/u01/app/oracle/u01/app/oracle/product/10.2.0/db_1 在Oracle 10g数据库服务器安装完成后,可以打开控制面板,在

20、管理工具中的“服务”窗口中查看到Oracle 10g的所有有关服务,Oracle 10g数据库服务器的运行,通常只需启动OracleOraDb10g_home1TNSListener和OracleServiceORCL(ORCL是所建立的数据库例程名)服务即可,如图所示 。 安装过程中遇到如下错误,可按下述方式解决 在加入域的机器上可能会遇到次问题,需要做额外的设置 修改Oracle文件信息:oracleproduct10.2.0db_1NETWORKADMINsqlnet.ora文件内容,把默认的按“系统认证设置” SQLNET.AUTHENTICATION_SERVICES = (NTS)

21、 修改为,按“口令文件认证设置” SQLNET.AUTHENTICATION_SERVICES = (NONE) 。 在Windows下或Linux等系统下进行oracle的安装时,基本的步骤都一样,因为oracle要求采用图形界面才能进行安装。 在Windows7(vista)下进行安装,需要在安装文件上使用XP兼容模式及配置管理员特权。 Oracle全平台的安装文档: 启动步骤: 点击“开始”=“程序” “ORACLE OraHome10”=“Database Assistant”=“Database Configuration Assistant” 选择创建数据库模板 : 交互式的应用,

22、则选择“一般用途”或“事务处理” 输入数据全局名称和SID : 网络域中唯一区别于其他数据库的完整数据库名 数据库的数据库实例名 (SID) 数据库管理选项 : 设置MAIL报警、每日备份情况 数据库管理用OEM 关键用户口令 : 可选择“使用不同口令”分别为各帐户给出口令 可选择“使用相同口令” 选择数据库存储机制 : 选择“文件系统” “自动存储管理”或“裸设备” 数据文件存放路径: 数据文件要存放在与控制文件、日志文件不同的路径上。 指定数据恢复选项 : 选择“快速恢复区”或启用归档 。 选择是否创建样例 : 选择“示例方案” 设置关键的初始化参数 : SGA参数 其它参数 调整关键的初

23、始化参数大小: 块大小(应该根据应用特点) 可改变可以后调(如进程数可调) 选择关键的参数: 字符集选择要选择合适的字符集 选择数据库连接模式: 选择共享服务器模式 选择专用模式 设置参数文件: 控制文件为: 要按照规划与性能来指定 设置参数文件: 数据文件要按照规划来指定数据文件路径 设置参数文件: 日志文件 日志文件大小及成员设置: 数据库开始创建: 在 Windows启动数据库: 点击“开始”=“设置”=“控制面板”=“管理工具”=“服务”; 右键单击“OracleServiceSID”=选择“启动”即可。 添加一个配置-选择被访问的Oracle服务器版本,填写服务名 选择协议 下一步,

24、选择“是,进行测试”,如果测试报告连接不成功 选择“更改登录”,输入正确的用户名和密码(scott/tiger),连接测试成功!配置完成 配置了ORACLE的连接之后,可以使用各种客户端工具连接远程服务器。ORACLE提供了SQL*PLUSE来管理和操作数据库,SQL*PLUSy使用有命令行和图形两类途径。 1.CMD sqlplus /nolog conn scottzdoracle 注:scott是用户名,zdoracle服务名 请输入口令: 已连接。一一Oracle端口号为端口号为1521二二通常使用通常使用TCP/IP协议协议三三OracleServiceORCL:数据库服务(红色为:

25、数据库服务(红色为SID)四四OracleOraDb10g_home1TNSListener:数据库监:数据库监听程序听程序五五oracleproduct10.2.0db_1NETWORKADMINlistener.ora监听文件监听文件 几个重要数据库配置文件 listener.ora listener.ora 服务器监听配置 tnsnames.ora tnsnames.ora 客户端本地服务名配置 spfileSID.ora spfileSID.ora 服务器参数文件 文件路径$ORACLE_HOME/network/admin/$ORACLE_HOME/network/admin/ 启动

26、经历的阶段 Start an instance Mount the database Open the database 关闭经历的阶段 Close the database Dismount the database Shut down the database目录 2134 Oracle启动和关闭 表空间管理 用户管理 权限管理 备份和恢复 用sys登录 shutdown immediate 启动 sqlplus /nolog conn / as sysdba; 或 conn sys as sysdba startup Oracle系统中的模式是一系列逻辑数据结构或对象的集合。 一个模式只

27、能够被一个数据库用户所拥有,并且模式的名称和该用户的名称相同,它存储在用户所对应的表空间中 模式对象包括: 表 索引 触发器 视图 存储过程等 表空间、用户、角色等属于非模式对象。 建立表空间 建立用户 设置权限 用新用户连接Oracle 管理控制台 ORACLE的安全机制,是由系统权限、实体权限和角色权限这三级体系结构组成的。权限类型说 明系统权限是指对数据库系统及数据结构的操作权,例如创建/删除用户、表、同义词、索引等等实体权限是指用户对数据的操作权,如查询、更新、插入、删除、完整性约束等等角色权限是把几个相关的权限组成角色,角色之间可以进一步组合而成为一棵层次树,以对应于现实世界中的行政

28、职位。角色权限除了限制操作权、控制权外,还能限制执行某些应用程序的权限。 系统特权 Oracle 有80多种特权 特权的授予(grant to ) 特权的回收(revoke from ) 对象特权 对模式对象的操作权限 特权的授予与回收 Grant on to Revoke on from 物理备份 该方法实现数据库的完整恢复,但数据库必须运行在归档模式下,且需要极大的外部存储设备,例如磁带机 逻辑备份 客户服务中心业务数据库就是采用这种方式,这种方法不需要数据库运行在归档模式下,不但备份简单,而且可以不需要外部存储设备。 IMP EXP Sqlloader Rman 表模式(T):这种模式可

29、以卸出当前用户数据库模式下的表,甚至是所有的表。具有特权的用户可根据所指定的数据库模式来(限制表)卸出他们所包含的表。缺省情况是卸出属于当前正在进行卸出的用户的所有表。 用户模式(U):这种模式可以卸出当前用户数据库模式下的所有实体(表、数据和索引)。 全数据库模式(F):只有具有EXP_FULL_DATABASE角色的用户才可能以这种模式卸出。以这种模式进行卸出的用户,除SYS模式下的内容之外,数据库中所有实体都可以卸出。 EXP导出 & IMP导入 在Oracle数据库之间移动数据 将一表空间或模式的数据移到另一个 重新分配表中的数据 保存数据库对象的定义 存档不活动的数据或保存临时数据

30、备份整个数据库或进行增量备份 恢复数据库 节省空间或减少oracle数据库中碎片 EXP 语法 Exp help=y Exp user/passservice file= full=y inctype=incremental|cumulative|complete record=y/n Log=logfile Exp user/passservice file= owner=(user1,.) Exp user/passservice file= tables=(t1,) Exp user/passservice file= transport_tablespace=y tablespaces

31、=(ts1,) IMP 语法 Imp help=y Imp user/passservice file= full=y inctype=system|restore Imp user/passservice file= fromuser=(user1,.) touser=(user2,) Imp user/passservice file= tables=(t1,) log=logfile | show=y/n Imp user/passservice file= transport_tablespace=y datafile=(f1,) tablespaces=(ts1,) tts_owne

32、rs=(user1,) 在数据迁移时,希望把数据导入不同于原系统的表空间,在导入后表现数据被导入到了原表空间。这是由于原用户具有unlimited tablespace 权限,就会导入到原用户的表空间。 收回用户的unlimited tablespace 权限。 SQLrevoke unlimited tablesapce from majy; SQLalter user majy quota 0 on users; SQLalter user majy quota unlimited on majy;目标用户不希望导入的表空间名称希望导入的表空间名称 用dba权限的用户导出dmp后,必须还是

33、dba用户权限的用户才能导入,而且必须提前建好表空间,导入后,数据分别存在不同的表空间,可以考虑上面的方法。另外,提供一个命令可以把在一个表空间内的表移动到另外的表空间。 SQLalter table tablename move (tablespace tbs_name);1. 用DBCA 删除实例;2. 停掉所有服务(listener, css, snmp,job 等等)3. 启动OUI程序删除Oracle Home4. 清除注册表中的相关项(很重要)入口: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices将所有ora开头的串值删除另外:H

34、KEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventLog 这个串值也要检查5. 手工删除Oracle Home目录以及 Program filesOracle目录.6. 果定义了环境变量,也要清除ORACLE_HOME, ORACLE_SID, PERL_LIB 对于PATH变量只需清除ORACLE _HOME所在的目录7. 如果安装了RAC, 参考RAC的安装文档去卸载8. 重启机器 Sqlloader是Oracle导入外部数据的一个工具,一般是导入文本文件,也可以导入二进制文件。 Sqlloader的命令是 : sqlldr 重要的文

35、件: 控制文件: *.ctl 数据文件 错误数据文件: *.bad 切换数据库到归档模式 SQLconnect / as sysdba; SQLshutdown ; SQLstartup mount; SQLalter database db_name archivelog; SQLarchive log list; SQLalter database open; 改参数文件spfileSID.ora,重启数据库生效 log_archive_start=true log_archive_dest=directory or device name log_archive_format=filen

36、ame format 强制快速检查点设置多个检查点,减少数据库失败恢复的次数,增加I/O,影响性能 SQLalter system checkpoint; 强制日志转换 SQLalter system switch logfile; 增加日志文件SQLalter database add logfile member xxx03.ora to group 2 在联机状态改变redo logfile大小的方法 假如原来有3个小的redo log file, 下面是UNIX环境下的一个例子: 添加三个大的redo logfile SQLALTER DATABASE ADD LOGFILE GROU

37、P 4 (/opt/oradata/app/redo04.log, /ora_bak/oradata2/redolog/redo04.log) size 16M reuse; SQLALTER DATABASE ADD LOGFILE GROUP 5 (/opt/oradata/app/redo05.log, /ora_bak/oradata2/redolog/redo05.log) size 16M reuse; SQLALTER DATABASE ADD LOGFILE GROUP 6 (/opt/oradata/app/redo06.log, /ora_bak/oradata2/redo

38、log/redo06.log) size 16M reuse; 手工地做log switch, SQLalter system switch logfile; 删除原来旧的redo logfile SQLalter database drop logfile group 1; SQLalter database drop logfile group 2; SQLalter database drop logfile group 3; 增加或增大表空间数据文件 SQLalter tablespace xxxx add datafile xxxx02.dbf size 500M autoextend on next 10M maxsize 2000M; SQLalter database datafile xxxx.02.dbf resize 1000M; 表空间状态修改 sql alter tablespace app_data offline; sql alter tablespace app_data onli

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论