oracle学习总结(推荐10篇)
以下的文章主要是介绍在Oracle数据库学习中的六条经验总结,其实想学好Oracle数据库并不是一件很困难的事情,很多人都认为Oracle数据库的体系过于庞大,在学习的过程中摸不到头绪,以下的文章就会给你提供相关的解答方法。
1、如果有一定的数据库基础知道SQL是怎么回事,即使写不出来简单的SQL,但可以看动它们,你就可以跳到2。否则请先看一下数据库基础和SQL语言,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用边学习、记忆。
2、要想学好Oracle数据库,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:instance&database, memory structure,process&those files,such as data file, control file,init parameter file etc以及database ,tablespace,data file和tablespace,segmnet,extent & block它们之间的关系。
当然还要分清undo tablespace & redo log file等,对于很多初学者来说,能够对这些概念有个较为清晰的认识并不是一件容易的事,而这些并非Oracle的全部。
3、是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际操作,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程中你将对SQL和ORACLE体系结构有个更深入的了解。
4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具体学习其它的ORACLE知识了。如果你是开发人员,则需要更多地去学习PL/SQL以及DEVELOPER,而这将是一门新的课程。如果你是一名DBA,请继续。
5、现在你可以根据自己的实际情况,进行有选择的学习,也就是说下面的内容没有特别顺序要求。可以选择深入学习ORACLE数据库的管理、备份与恢复、性能调整、网络等。当然在学习这些知识的过程中,如果有实际的工作更好,这样你可以在实际中成长,学会TROUBLE SHOOTING。
学习计划参考
1、一本讲解基本概念的书,这类书很多,ORACLE的官方文档也可,concept,ADMINISTRATOR,RMAN,PERFORMANCE TUNNING等,
这些都是需要经常翻阅的书,随时用,随时翻阅;如果英文阅读不方便,可以到书店随便翻翻,浏览目录和内容,如果觉得适合自己的理解或有帮助,就是不错的书。
2、一本讲解数据库管理的书;内容涉及可能多,这本书要求知道数据库管理涉及那些方面;
3、一本详细讲解rman如何使用的书
oracle 9irman 备份与恢复技术
robert g.freeman 著,梁志敏 蔡建译
4、一本讲解如何优化调优的书
oracle9i statspack 高性能调整 工业出版社
donald k.burleson 著,袁勤勇等编
oracle wait interface 性能诊断与调整实践指南
richmond shee 等著,高锰 江仁容译,清华出版社
高级阶段
5、一本如何进一步优化sql语句的书
6、一本如何高效构建数据库的书
第一章 oracle10g的安装与基本设置
一、数据库基础部分。
oracle数据库应用系统结构与产品。
sql语言:操作数据库,同时用于数据库管理。(通用部分)sql*plus语言:对sql的扩充,主要增加一些报表。pl/sql语言:过程化语言。数据库分区存储技术。
1、oracle数据库应用系统结构与产品
oracle数据字典有4.2万个。数据字典只记录标识。
结构方面:sql与oracle完成不同,sql可建多个库,结构与oracle明显不同。i:代表internet.c语言结构性最好,计算能力最强。指纹识别系统只能用c.2、pl:procedural language:过程化语言,条件、判断、循环。sql属非过程化语言,只关心结果,不关心过程。
3、数据库分区存储技术(一个表存到多个表空间上)数据库存储数据的最小单位:表。
逻辑空间——>表空间(在物理上与磁盘对应)1 ——>多个磁盘。
一个表可以存在多个磁盘上,但不能存到多个表空间上。集中式存储:安全性不好,i/o不平衡。
数据库的分区存储技术:range、list(oracle 11自动增加)range:可以比大小。
list:不能比大小,例如:人口住址等。
4、数据库存取权限控制。
5、oracle 10g flashback:数据闪回。恢复前提:归档和备份。(1)基于时间的恢复:从5楼到4楼。必须从5楼下到一楼,再从1楼到4楼。逻辑备份: 物理备份:常说的备份点。
不完全恢复:向回倒,不可逆转,日志自动清0,有的数据要丢失。exp、import.(1)基于时间的恢复(2)基于中止(撤消)的恢复。(3)基于事务的恢复。完全恢复。
delete from,rollback能100%恢复。drop,flashback不一定能恢复。
二、程序设计
pl/sql程序设计。存储过程(procedure),函数(function),包(package),数据库触发器(data triggers(枪栓))。
三、系统管理(dba)
1、oracle核心软件安装与产品升级。sun solaris hp ux 国税 aix 银行 tru64 电力 数据库的排序:在临时表空间中进行。8i和9i排序完不释放。10g可自动释放。640万人无人居住,不发生电费。
命令行模式运行速度快,容易发现问题的存在。
oracle占用可用内在的55-57%,所以不要建两个以上的库,oracle按表空间划分用户,sql可建多个库,结构与oracle明显不同。
2、创建主要的数据库存储结构。
划分磁盘空间。
3、数据库权限与角色管理。角色:权限的组合。
4、监视与控制用户对于数据库的操作。
5、数据库的启动与关闭。
6、数据库性能优化与调整。
7、数据库的备份与恢复。
四、基于web应用开发(会话进程)。
会话数(在线数)< 用户数< 进程数在(windows称为服务)< 操作系统核心参数 如何查看修改连接数,进程数及用户数,三者之间有什么关系? show parameter session;最大session数 show parameter process;最大进程数
select count(1)from all_users;查看已安装数据库的用户数 select * from all_users;oracle自带的用户数如何查。
默认的情况下系统中的最大session = min(session ,process * 1.1 + 5)
1、我们把它称为一次对话,或者叫会话。同样,在我们用电脑工作时,打开的一个窗口或一个web页面,我们也可以把它叫做一个“会话”,扩展到一个局域网里面,所有用户要通过防火墙上网,要打开很多个窗口或web页面(即会话),那么,这个防火墙,所能处理的最大会话数量,就是“并发连接数”。
(1)查看oracle 10g数据库会话数 select * from v$session;当前总会话数:select count(*)from v$session;可用总会话数:在sqlplus里查询,show parameter session
2、查看已安装数据库的用户数:select count(1)from all_users;sql>select * from all_users;
3、查看进程数
使用sys,以sysdba权限登录:sql> show parameter processes;
4、$ps –ef | grep oracle 进程,在windows称为服务。实例包括一个内存和进程(在windows中为服务)
按我的理解来说session就等价与一个客户端,它是用户经过用户进程到oracle事例的特定连接.它从用户连接开始一直持续到用户断开连接或退出数据库为止.进程,笼统地认为一个程序有若干进程组成,从os角度讲程序是静态的,而进程是动态的罢了.进程可以分为user process和oracle process.说穿了,进程就是用来执行程序的时候产生的,是一个动态过程.第二章 oracle安装
一、asm(automatic storage management)自动存储管理。oracle10g 新内容。镜像:oracle 10g以后才支持。磁盘组:diskmap 逻辑设备
裸设备:只做分区,不做格式化。看不到文件,在磁盘管理器中才能看到设备,u盘拷贝不了。只能用逻辑手段拷贝:exp rman.二、oltp_数据仓库_全局数据库名_(nts适配器错误_在windows中清理oracle)
1、t----->oltp(on line transaction processing)在线事务处理。网上数据传输量比较大,数据库数据改动大,数据库负荷重,oracle 会设比较大的回退段(rollback segments)和空闲率(pctfree 10%)oracle的块为:8k.它使用了所有的所谓数据的操作 crud(创建、读取、更新、删除)。当数据存储达到一定量的时候,规模就会几乎保持不变,因为可以从存储中删除过期数据。
2、数据仓库
数据仓库改动少,主要为查询速度快服务,用于存历史数据,用来构造决策支持系统。他的回退段和空闲率留的比较少。
数据仓库就完全是一种不同种类的应用程序。它并不是用来运行当前的操作,例如发送邮件。它是用来分析数据并且从现有数据中发现新的价值,主要是用来预测未来的情况。数据仓库并不是解决所有问题的通用结构。它必须集中于某一问题领域,例如航空服务、顾客收益等。数据仓库也有有趣的一面,那就是本身是稳定增长的。数据没有被删除,也不发生变更。我们不需要将冗余数据置于数据库之外(因为加入仓库中的数据经过了数据净化的过程,该过程检查了数据的正确性)来减少复杂性同时增强读取操作的性能。
为了能够对数据仓库中的数据进行分析,数据存储于一个多维结构中,叫做星型模式。如果将星型模式扩展,就会得到雪花模式。
3、全局数据库名:以字母打头,不超过8个。
数据库名不能重名,否则复制数据和同步数据时会出麻烦,数据库安装完后,数据库名不能更改,起名时要慎重。
4、oracle字符集。zh16gbk.5、nts适配器错误。
d:oracleproduct10.2.0db_1networkadminsqlnet.ora 把sqlnet.ora文件中的(nts)改为none,再重新启动oracleconfigudration and mirdatabase config.6、在windows中清理oracle。(1)删除注册表:
regedit-> local machine--> software-->oracle(2)删除oracle服务
regedit-> local machine-->system?currentcontrolset?services?ora*(3)删除oracle事件日志
(4)删除windows安装磁盘中program filesoracle目录。(5)删除oracle菜单。(6)删除oracle环境变量。
控制面板—>系统——>高级——>环境变量。总共删除2项。(7)重新启动操作系统
(8)删除oracle磁盘文件。篇二:oracle数据库学习总结 oracle数据库学习总结 时间过的还真快,不知不觉中就在这里呆了半个月了。这段时间里都在学习oracle数据库的编程,毕竟这是家软件外包公司。像我们这样的新员工也就只能接触到些curd的操作。废话不多说,赶紧来梳理下这半月来学习的知识点.在来公司之前一直都是使用sql server数据库,用sql server也开发了3个小型项目。所以对sql语句以及在数据库中扮演重要作用的存储过程,触发器,视图,主键/外键约束都很熟。但oracle是一个全新的环境,记得刚装上oracle的时候,我都不知道在哪查看自己已经建立好的表格。还好有师傅的帮忙,要不然我还真没这么快就能入门oracle。
学习东西就要学习些能改变自己思维的东西,只有这样才能让自己的眼光比别人更独到,思维比别人更深邃,oracle就是这样的东西。当然做这样的事是要很大的驱动力的呀,如果公司不是都采用oracle来写程序的话,我估计也就懒得学啦。
对于一位程序员来说并不需要完全掌握oracle的所有知识,毕竟自己不是dba。在日常开发中也用不到那些命令和工具,但是有些知识点我们还是必须得熟练的掌握它们。比如:一些基本的ddl和dml语句,存储过程,函数,视图,触发器,序列,游标,自定义类型和包。下面我就把这段时间里学习oracle获得的知识点罗列出来,一是为了方便以后查阅,二是为了和搭档交流学习经验。要适应的一些细节
从sql server转到oracle进行数据库编程,第一道门槛就是语法问题。很多很多的问题都是因为语法而产生的,现将它们统统集合起来并将它们一网打尽之。pl结构。在sql server中,采用的是批处理执行任务的方式,所以可以将多条sql语句选中批量执行,而不用顾忌要在专门的地方声明变量,在专门的地方进行逻辑编码。在oracle中采用的是pl编程方式,必须在专门的地方声明变
循环结构,要达到循环在oracle中有3种方式,各有各的好处,你懂的。它们分别如下: pl结构中的错误处理
就像c#中的try{} catch{}语句块 能捕获错误。写几个例子: helloworld级别的错误抛出例子record类型
oracle中的record类型类似于c语言中的结构体,主要用来接收select语句或游标中返回的数据,下面写个例子:ddl语句
这里的ddl语言主要是指能完成如下工作的ddl语言:创建表,创建表的主/外 键及级联效果,dml语句
select语句。oracle中的select语句的使用方法与sql server差不多,但还是有些不同之处。
篇三:oracle培训心得 oracle培训心得
2010年x月x日至x月x日,我有幸参加了工业和信息化部软件与集成电路促进中心主办的“oracle数据库高级实战培训班”学习交流。首先感谢学校领导给予了我这次学习机会。通过短暂的几天培训,我不仅对oracle知识有了部分的了解,也接受了很多最新的信息。在这次培训中,上课的老师有非常丰富dba经验,他结合他自身的dba工作经历,从oracle体系结构与网络配置、访问控制、事务处理与日志、闪回特性、数据库的备份与恢复和数据库性能监测与调整优化等几个方面对oracle进行了讲解。对课程讲解十分的详细。通过案例示范以及演示,指导我们一步步操作。
oracle主要以操作命令行为主,在学习的过程中,对老师的每一步操作都做好了记录。课堂上按照老师的要求一步步操作,课后按记录的操作步骤和命令反复多次的练习。以此到达了对oracle反复学习,熟悉掌握老师所传授的知识。
本次实训为期两个星期,时间充裕,也给予了我足够的学习和实践的时间。在这次实训里,我了解到了数据库设计的过程和任务,对之前所学的oracle知识也起了很好的复习和巩固作用。
我们小组的选择的实训项目是《电子商城系统》,在做产品需求的时候,因为对商城系统的了解不够充分,我们在产品的功能性需求分类处的一些细节做了多次改进,通过参考网上的需求分析文档以及老师的指导,总算是顺利完成。我负责的是购物板块,幸亏我多年的网购经验,对购物流程有着深刻的理解,并积极参考小米和华为等网上商城的网站,最后也是顺利完成。
接下来是第二个重头戏——数据库设计。首先,我们的数据库原型设计使用的软件是PowerDesigner,使用也还算简单吧。数据库的实体我们进行了深入的讨论,最后也做了多次修改,主要原因还是因为我们对电子商城的了解以及对于数据库实体之间的掌握还不够。在老师的指导下也算是顺利完成了。接下来也很顺利的完成了《数据库设计说明书》等的文档编写。
二、如何配置一个连接和侦听(连接配置文件、侦听文件位置)
三、数据库安装需注意的参数
字符集 内存 会话数 PFILE,SPFILE 自己在客户端配置到数据库服务器的连接
四、PLD工具介绍
1、右键菜单
2、Copy to Excel
3、Select for Update
4、执行单条SQL语句
5、查看执行计划
6、调试存储过程
五、常用DBA视图 Dba_object, dba_data_file, dba_tables, v$sqltext, v$session V$lock, dba_tab_columns, dba_indexes
六、物化视图原理及数据分发常规处理 物化视图刷新时间 生产机和查询机
七、作业调度
八、DBLINK
CTAIS体系结构 表(Table)命名规则(1)表名
表名前缀根据表所操作的业务及功能进行分类,使用具体业务名称的汉语拼音,长度为两个字符。标题使用规范的汉语拼音缩写,标题内容以词组或短语为单位,长度不超过10个字符,词组与词组之间使用‘_’相连接。例如,申报征收模块中小规模纳税人申报增值税表名为:SB_ZZS_XGMNSR。(2)表名后缀
主表与子表是一对多的关系,子表名是在主表名后加后缀:_ZB 例:DJ_BG_ZB 申请表加后缀:_SQ 例:WS_HDZS_SQ 审批表加后缀:_SP 例:WS_HDZS_SP 扩展表加后缀:_KZ 例:DJ_NSRXX_KZ 附表加后缀:_FB 例:SB_ZZS_2003_FB SB_ZZS_2003_FB1 SB_ZZS_2003_FB2
表(Table)命名规则(3)列名
列名由长度不超过30个英文字符和数字的组合,使用规范的汉语拼音缩写。命名规则如下:
凡是参照代码表的列,列名一律加‘_DM’后缀;
例:NSR_SWJG_DM、HY_DM “XX标志”列,当其取值为“真/假”时,数据类型用Char(1),列名加‘BZ’或‘_BZ’后缀。例:NSR_SWJG_BZ CTAIS表的类型 BB_报表 CX_查询 DJ_登记 DM_代码 FP_发票 HD_核定 JC_稽查 KJ_会计 PI_批处理 PZ_票证 QX_权限 RD_认定 SB_申报
WF_维护、工作流 WS_文书 WZ_违章 XT_系统 ZD_字典 ZJ_证件 ZX_执行
ctais部分表
DJ_NSRXX,DJ_NSRXX_KZ,DJ_SZ,DJ_SZ_ZB,DJ_SZ_KZ,DJ_YZCWSBQC RD_NSRZG_LSXX,HD_DSQC_LS WS_DJXX,WS_JMS_SQ,WS_JMS_SP FP_KC,FP_YJ,FP_NSR_JC SB_SBXX,SB_ZZS_2003_YBNSR,SB_ZZS_2003_FB1 SB_ZSXX,SB_JKS,SB_WSZ JC_AJXX,JC_CLJDS,WZ_WFWZXX,WZ_CLCFXX, ZX_ZXXX QX_USER,QX_GNMK,QX_GNMB XT_XTCS,XT_DYCS
如何自己搭建本地的测试库
1. 安装ORACLE服务器版,并修改字符集 2. 创建CTAIS实例 3. 创建表空间 4. 创建CTAIS2用户 5. 执行数据库安装脚本 6. 停止触发器和外键
我们在创建数据表的时候,若没有特殊的指明,那么我们创建的表是一个永久的关系型表格,也就是说,这个表格中对应的数据,除非是我们显示的删除的话,表中的数据是永远都存在的。相对应的,在Oracle数据库中还有一种类型的表,叫做临时表。这个临时表跟永久表最大的区别就是表中的数据不会永远的存在。当一个会话结束或者事务结束的时候,这个临时表中的数据,不用用户自己删除,数据库自己会自动清
除。
1、事务临时表的管理。
(1)事务临时表的创建。
Oracle数据库根据临时表的性质不同,可以分为事务临时表与会话临时表。事务临时表是指数据只有在当前事务内有效。一般情况下,如果在创建数据表的时候,没有特殊指明这表是会话临时表的话,则该表默认为事务临时表。
我们可以以下面的语句创建事务临时表。
Create global temporary table Temp_user
(ID NUMBER(12)Primary key,name varchar2(10));
笔者建议:
这个创建临时表的语句中,虽然没有显性的指明该表是事务临时表,但是,默认的情况下,若没有指明是什么临时表的话,系统默认是事务临时表。我们要创建事务临时表时,可以不指定关键字。但是,这查看起来比较麻烦。我建议,无论在建立什么临时表,都要利用具体的关键字来显形的指明,这大家看起来都方便。一般可以利用ON COMMIT DELETE ROWS关键字来说明该表就是事务性的临时表,而不是会话性质的临时表。
(2)事务临时表数据的变化分析。
事务临时表的话,当事务结束的时候,就会清空这个事务临时表。所以,当我们在数据库临时表中插入数据后,只要事务没有提交的话,该表中的数据就会存在。但是,当事务提交以后,该表中的数据就会被删除。而且,这个变化不会在重做日志中
显示。
具体事务临时表与会话临时表有什么区别,我们在介绍完会话临时表后会详细介
绍。
2、会话临时表的管理。
会话临时表,顾名思义,是指数据只在当前会话内有效的临时表。关闭当前会话或者进行新的连接之后,数据表中的内容就会被清除。那会话临时表跟事务临时表到底有什么区别呢?我们以一个实例来看其中的区别。
(1)首先,创建一个会话临时表。
CREATE GLOBAL TEMPOPARY TABLE TEMP_USER
(ID NUMBER(12)Primary key,name varchar2(10))
ON COMMIT PRESERVE ROWS;
也就是说,会话临时表跟事务临时表的创建语法大致相同,只有最后的关键字有区别。不过两个表虽然类似,但是其内部的处理机制还是有比较大的区别。
(2)往该表中插入数据。
Insert into TEMP_USER values(1001,’victor’);
往数据库临时表中插入数据的方法,跟往普通表中插入数据的方法是一样的,都利用insert into语句进行操作。该临时表的数据在会话结束之前都是存在这个表格
中的。
(3)提交该事务并查询相关记录。
我们利用COMMIT的语句把该事务提交以后,再用SELECT查询语句进行查询。我们知道,若该表是事务临时表的话,则当该事务结束以后,该表中的内容就会被删除。但是,这是会话临时表,所以即使该事务提交了,但是,利用SELECT语句进行查询
时,仍然可以查到该条员工记录。
(4)结束当前会话,并重新连接数据库。
关闭当前会话,从新连接到数据库后,再利用SELECT语句查询时,会有什么结果呢?此时,就查不到我们刚才插入的数据。这也就是说,在关闭对话的时候,数据库系统已经把原有的数据删除了。从以上的分析我们可以看中,会话临时表与事务临时表主要的差异就在于删除数据时机的不同。事务性临时表是在事务提交的时候清除数据,而会话性临时表则是在关闭当前会话的时候清除临时表。只要当前会话没有关闭,即使事务完成了,会话临时表中的数据仍然存在,不会被清除。
3、临时表管理需要注意的地方。
临时表相对与其他表来说,是一种比较特殊的表结构,但是,作用又比较大,Oracle数据库若没有这种表的话,还真是不行。为了管理好这种特殊的表,我们需要
注意几个细节。
一是要注意临时表不能永久的保存数据。只所以称为临时表,就是因为该表中的内容只是临时存在的。当一个会话或者事务结束时,该表中的内容就会被自动清空。所以,在临时表中,一般不要保存永久数据。在实务中,有个不好的操作习惯,就是有些人在测试数据库的时候,喜欢把测试的数据放在临时数据表中。其实,这是对Oralce临时数据表认识的错误。若我们在数据库中,把要测试的数据,如销售定单的内容放在数据库的临时表中的话,则在其他功能中,如要测试销售定单日报表的功能时,就会找不到相关的定单内容。因为离开特定的会话或者事务的话,临时表中的内容就会不存在了。所以,Oralce数据库中所讲的临时表不是给我们来存储测试数据的。
二是临时表中的数据不会备份、恢复,对其的修改也不会有任何的日志信息。若我们在操作数据库的时候,往数据库的临时表中存入了一些信息。此时突然服务器出现当机。此时,我们想通过数据库备份文件恢复数据库临时表中的内容,或者查看临时表的日志信息,都是无法实现的。也就是说,当服务器以外死机重新启动后,临时表中的内容就会被清空。在数据库的任何地方,如数据库备份文件或者日志信息中,都查不到在重新启动之前数据库临时表中保存了哪些内容,就好象根本没有对临时表
进行操作一样。
三是临时表表空间的管理。临时表在Oracle数据库中,也是表的一种,其也有对应的表空间。在创建临时表的时候,若我们不指定表空间的话,默认的表空间是SYSTEM。对于临时表的表空间管理的话,我们需要注意一个小的细节。若我们把临时表的表空间归属为SYSTEM的话,也就是说,在创建临时表的时候不具体指定具体的表空间,则这个默认的表空间是不能被删除的。而若我们在创建临时表表空间的时候,指定为SYSTEM以外的表空间的话,则在不需要这表空间的时候,我们可以删除。所以,为了后续管理的方便,笔者还是建议大家在创建临时表的时候,要指定表空间。
四是要注意一个问题,临时表只是数据是临时的,而表仍然是永久的。也就是说,当一个会话结束或者一个事务完成时,其临时表中的数据虽然删除了,但是,临时表本身仍然是存在的。也就是说。Oracle数据库中的临时表表是全局的,只是数据是临时的。这跟SQL Server数据库系统具有比较大的区别。其实,这两个数据库在临时表的处理上有很大的不同,各有各的特色。在以后的文章中,我会专门叙述这两种数据库在临时表管理机制上的不同,欢迎大家关注。
五是要注意Oracle数据库在给临时表填入数据的时候,不会对相应的记录加锁。也就是说,当在临时表上执行DML语句的操作时,不会给记录加锁,也不会将数据的变化内容写到重做(REDO)日志中。所以不能用临时表保存永久的数据,也不能对临时表进行共同的操作。这是新手在管理数据库临时表经常会碰到的问题。
创建语句:create or replace procedure 存储过程名
如果没有or replace语句,则仅仅是新建一个存储过程,如果系统存在该存储过程,则会报错。Create or replace procedure 如果系统中没有此存储过程就新建一个,如果系统中有此存储过程则把原来删除掉,重新创建一个存储过程。
存储过程名定义:包括存储过程名和参数列表。参数名和参数类型。参数名不能重复, 参数传递方式:IN, OUT, IN OUT
IN 表示输入参数,按值传递方式。
OUT 表示输出参数,可以理解为按引用传递方式。可以作为存储过程的输出结果,供外部调用者使用。
IN OUT 即可作输入参数,也可作输出参数。
参数的数据类型只需要指明类型名即可,不需要指定宽度。
参数的宽度由外部调用者决定。
过程可以有参数,也可以没有参数
变量声明块:紧跟着的as (is )关键字,可以理解为pl/sql的declare关键字,用于声明变量。
变量声明块用于声明该存储过程需要用到的变量,它的作用域为该存储过程,
另外这里声明的变量必须指定宽度。遵循PL/SQL的变量声明规范。
过程语句块:从begin 关键字开始为过程的语句块。存储过程的具体逻辑在这里来实现。
异常处理块:关键字为exception ,为处理语句产生的异常。该部分为可选
结束块:由end关键字结果。
存储过程的参数传递方式
存储过程的参数传递有三种方式:IN,OUT,IN OUT .
IN 按值传递,并且它不允许在存储过程中被重新赋值。如果存储过程的参数没有指定存参数传递类型,默认为IN
例子:
创建:
CREATE OR REPLACE PROCEDURE P_1(S_NO INT)
AS
S_AGE INT;
BEGIN
SELECT SAGE INTO S_AGE FROM STU WHERE SNO=S_NO;
DBMS_OUTPUT.PUT_LINE(S_AGE);
END P_1;
调用:
EXEC P_1(1);
ORACLE RAC 简介:
ORACLE RAC集群是实现多机共享数据库,以保证应用的高可用性。同时可以自动实现并行处理及均分负载,还能实现数据库在故障时的容错和无断点恢复。
集群内部的所有服务器共享存储,所有服务器都接入公共网络,通过集群唯一的别名对外形成逻辑上单一的数据库提供服务,对内实现集群数据库的高可用性、节点间的负载均衡和Failover(失败切换)。
逻辑结构:
集群纵向看是由存储、数据库集群、应用集群三部分组成,横向来看,是由多台应用服务器、数据库服务器和存储设备组成。
Intelnet应用集群应用服务器1应用服务器2应用服务器NORACLE RAC集群SCANRAC节点2心跳RAC节点1存储数据存储数据 物理结构:
RAC物理结构图。
应用集群应用服务器应用服务器Intelnet交换机ORACLE RAC集群RAC节点1存储RAC节点2
优势:
高可用性:
RAC 为数据中心的高可用性奠定了基础。它也是 Oracle 最高可用性架构不可或缺的一部分,为实现数据中心的最高可用性提供了最佳实践。RAC 还为高可用性数据管理提供了以下至关重要的关键特性: 可靠性:
Oracle 数据库以其可靠性而著称。RAC Clusters 消除了数据库服务器单点故障问题,从而使可靠性更上一层楼。如果一个实例发生故障,服务器池中的其余实例仍将保持运行状态。Oracle Clusterware 可监视所有 Oracle 进程,并能立即重启任何生故障的组件。恢复能力:
Oracle 数据库包含的许多特性有助于数据库轻松地从各类故障中恢复。如果Oracle RAC 数据库中的一个实例出现故障,服务器池中的另外一个实例将察觉到这一故障,随后自动进行故障恢复。利用快速应用程序通知(FAN)、快速连接故障切换(FCF)和透明应用程序故障切换(TAF)这三个功能,应用程序可以轻松地掩藏组件故障,使用户无法察觉。
错误检测:
Oracle Clusterware 可自动监视 Oracle RAC 数据库和其他 Oracle 进程(ASM、监听器等),并快速诊断环境中的问题。它还经常能在用户察觉之前自动完成故障恢复。利用快速应用程序通知(FAN),应用程序即可在集群组件出现故障时立即得到通知,以便在故障显现之前重新发布事务。
持续运行:
RAC Clusters 可在计划内和计划外停机期间提供持续的服务。如一台服务器(或一个实例)出现故障,数据库仍将保持运行状态,应用程序仍可访问数据。大多数数据库维护操作均可在不停机的情况下完成,并对用户保持透明。许多其他的维护任务都可以通过滚动方式完成,从而能最大限度地减少(甚至避免)应用程序停机。快速应用程序通知和快速连接故障切换可帮助应用程序满足对服务级别的要求。
可伸缩性:
RAC Clusters 提供了独一无二的应用程序伸缩技术。过去,当数据库服务器容量不足时,我们会使用容量更大的新服务器取而代之。随着服务器容量的增加,其成本也日益攀升。但 Oracle RAC 为数据库提供了增加容量的其他方法。通过 OracleClusterware 和 Oracle RAC 向服务器池中添加服务器时并不需要停机,并且,一旦启用新的实例,应用程序就可立即享有新增的容量。服务器池中的所有服务器必须使用同一操作系统和相同版本的 Oralce 软件,但不必具备相同的容量。如今,根据自己的需要选择服务器池的客户通常会选用特性不同(略有差别)的服务器。
备份
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。
一、导出/导入(Export/Import)
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。
1、简单导出数据(Export)和导入数据(Import)2、Oracle支持三种方式类型的输出:
(1)、表方式(T方式),将指定表的数据导出。
(2)、用户方式(U方式),将指定用户的所有对象及数据导出。(3)、全库方式(Full方式),瘵数据库中的所有对象导出。
数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。
3、增量导出/导入
增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。增量导出包括三种类型:
(1)、“完全”增量导出(Complete)即备份三个数据库,比如: exp user/password file=123.dmp(2)、“增量型”增量导出
备份上一次备份后改变的数据,比如:
exp user/password inctype=y record=y file=456.dmp 进行增量备份前,必须有个完全备份。
二、冷备份(COPY)冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是: 1、是非常快速的备份方法(只需拷文件)2、容易归档(简单拷贝即可)
3、容易恢复到某个时间点上(只需将文件再拷贝回去)4、能与归档方法相结合,做数据库“最佳状态”的恢复。5、低度维护,高度安全。但冷备份也有如下不足:
1、单独使用时,只能提供到“某一时间点上”的恢复。
2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。
3、若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。4、不能按表或按用户恢复。
如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括: 1、所有数据文件 2、所有控制文件 3、所有联机REDO LOG文件 4、Init.ora文件(可选)
值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。下面是作冷备份的完整例子。关闭数据库
(1)sqlplus /nolog(2)sql>connect /as sysdba(3)sql>shutdown immediate;用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件 重启Oracle数据库 sql>startup;
三、热备份(RMAN)热备份是在数据库运行的情况下,采用归档模式(archivelog mode)方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成: 1. 数据文件一个表空间一个表空间的备份。(1)设置表空间为备份状态(2)备份表空间的数据文件(3)回复表空间为正常状态 2. 备份归档log文件(1)临时停止归档进程
(2)log下那些在archive rede log目标目录中的文件(3)重新启动archive进程(4)备份归档的redo log文件
3. 用alter database bachup controlfile命令来备份控制文件 热备份的优点是:
1. 可在表空间或数据库文件级备份,备份的时间短。2. 备份时数据库仍可使用。3.可达到秒级恢复(恢复到某一时间点上)。4. 可对几乎所有数据库实体做恢复
5. 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。
例: $rman target user/password backup full database format=’/../..’;热备份的不足是:
1. 不能出错,否则后果严重
2. 若热备份不成功,所得结果不可用于时间点的恢复
1.解释冷备份和热备份的不同点以及各自的优点
解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)
2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?
解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。
3.如何转换init.ora到spfile?
解答:使用create spfile from pfile 命令.4.解释data block , extent 和 segment的区别(这里建议用英文术语)
解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent.一个数据库对象拥有的所有extents被称为该对象的segment.5.给出两个检查表结构的方法
解答:1.DESCRIBE命令
2.DBMS_METADATA.GET_DDL 包
6.怎样查看数据库引擎的报错
1、启动数据库
2、启动监听
启动数据库:
以oracle身份运行:
$sqlplus /nolog
>connect / as sysdba
>startup
######遇到无法启动,执行关闭命令
启动关闭监听
$lsnrctl
>start
>stop
关闭数据库:
以oracle身份运行:
$sqlplus /nolog
>connect / as sysdba
>shutdown immediate
【oracle学习总结】推荐阅读:
oracle数据库总结06-03
oracle 笔试06-30
经典oracle语句09-30
oracle数据库常用操作06-07
英语学习个人总结_英语学习总结06-27
参加教育局培训学习的个人学习总结11-04
学习总结体会06-14
入党学习总结07-06
集中学习总结07-13
暑期学习总结07-19