61阅读

Oracle学习-Oracle学习的一些建议

发布时间:2017-09-14 所属栏目:Oracle

一 : Oracle学习的一些建议

学习Oracle是一个漫长艰辛的过程。如果没有兴趣,只是被迫学习,那么是很难学好的。学习到一定程度的时候,要想进一步提高,就不得不接触很多Oracle之外的东西,如Unix,如网络、存储等。因此,要真的决心学好Oracle,就一定要有兴趣。有了兴趣,就会一切变得简单快乐起来。简单总结一下,那就是:兴趣、学习、实践。

软件名称:
Oracle to Mysql ORACLE转换为Mysql数据库的软件 免费版
软件大小:
1.6MB
更新时间:
2010-08-29

如何入门是许多初学者最头疼的事情。Oracle涉及的方面太多了:SQL、管理、优化、备份恢复……那么从哪开始学好呢?如果在大学期间学过数据库理论,或有一定的数据库基础自然很好;如果没有的话,真的是个大问题。我个人认为还是应该从SQL语句学起。比较好的教材是Oracle OCP认证的《SQL and PL/SQL》。学习SQL的时候,尽可能坚持使用Oracle自带的工具:SQLPLUS。

有了一定的SQL基础后,就要尽可能的了解Oracle的体系结构,这就涉及到了Oracle管理的内容了。我学习的时候,机械工业出版社的《Oracle9i DBA手册》这本书对我的帮助挺大。或许现在都出11g版本的了吧。Oracle公司的《Oracle Concepts》是非常棒的书,对了解Oracle体系结构很有好处。每个Oracle版本都有对应的版本,可以认真多读几次,每次都会有新的收获。

公司的产品现在几乎都采用Oracle了,我们做维护的时候,备份与恢复是不得不接触的内容。数据量少的,比如20、30多个G,还可以考虑用exp/imp来备份与恢复,但数据量大了,这种方法就根本不适合了。于是学习Oracle备份与恢复技术也是必然的事情。大数据量情况下,Oracle建议用RMAN来进行数据的备份与恢复。目前市场上有很多数据库备份恢复软件,其实好多也是后台调用RMAN。清华大学出版社出版的《Oracle 9i RMAN 备份与恢复技术》是一本非常不错的介绍RMAN的书。

有了以上的基础,可以说已经入门了,对遇到的一些初级Oracle问题将不再束手无策。然而我们的学习之路仍然还很漫长。我们的用户可能经常抱怨数据库运行缓慢。这时,如果有一定的优化知识,那就好办了。有时你会看到优化前需要运行几个小时的作业,优化后也许几秒钟就能完成!Oracle9i的性能诊断工具包statspack、Oracle10g/11g的自动工作符合存储库AWR都是调优的好帮手。机械工业出版社出版的《Oracle9i STATSPACK高性能调整》是学习statspack不错的书。

在数据库体系结构、编程优化方面,有一本书非常棒,这就是世界顶级的Oracle专家Thomas Kyte编写的《Oracle9i&10g编程艺术》(英文名为“Expert Oracle Database Architecture”)。Tom以前还写了一本叫做《Expert One-on-One Oracle》的书,也非常的经典。这两本书被很多Oracle学习者视为宝典,如果想在Oracle上深入学习的话,强烈建议认真研读。

掌握了以上内容,或者基本掌握以上内容,那么你在很多人的眼里也是Oracle的高手了,解决公司产品中的数据库问题应该不成问题。不过Oracle还有很多高级内容可以进一步学习。这里列举一些,仅供感兴趣的同仁参考。

1. 高级复制技术

2. Oracle Real Application Cluster (RAC)

3. Data Guard

4. Oracle Stream

5. 数据仓库

6. Proc、OCI编程

以上列举的这些高级内容,参考资料主要是Oracle公司的电子文档。实话实说,上面的列的数据仓库、Proc、OCI编程,我一点也不熟悉。

在学习Oracle过程中,充分利用网络资源可以起到事半功倍的作用。

总之,Oracle最大的问题是复杂,复杂是Oracle的最大魅力。让我们为了驾驭Oracle而共同努力吧!

二 : Oracle学习——扫盲篇

前言(www.61k.com)

最近这几天一直在与Oracle数据库打交道,由于之前对Oracle的学习并不深入,只是把Oracle当成一个数据源去使用,很多东西了解的不是很深,比如,数据库、数据库实例、表空间、用户、表,它们是如何创建的,它们之间又有什么关系,所以这次就一块来学习下。

1数据库

一个完整的Oracle数据库通常由两部分组成,分别是Oracle数据库和Oracle数据库实例,第一个Oralce数据库是指Oracle类型的关系型数据库管理系统,包含物理数据、数据库管理系统,也就是物理数据、内存、操作系统进程的组合体;而后面提到的Oracle数据库是指一系列物理文件的数据集合,这些集合包括数据文件、控制文件、联机日志、参数文件等。

下面这张图是创建数据库的一个步骤:

oracle数据库学习 Oracle学习——扫盲篇

第一个要填写的是全局数据库名,第二个要填写的是数据库实例SID(下文会介绍)。

全局数据库名:就是一个数据库的标识,简单来说就是名字,这个一般在创建的时候一定要想好。以后一般是不修改的,不过也可以修改,只不过修改起来比较麻烦,因为数据库安装好以后,数据库的这个标识名字就会写入控制文件、数据库表等很多地方。

关于数据库的命令:

查看当前的数据库的名字:

select name from v$database;

2数据库实例

官方说Oracle实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。

我们在写代码过程中需求调用对象的方法时,需要new出来一个实例,这个new出来的实例也是放在内存中的;我们的oracle实例跟这个new出来的对象差不多,也是当需要访问oracle数据库时就在内存中创建出一块进程,它也是只存在与内存中的。

我们访问oracle其实就是访问oracle的实例,访问oracle实例的时候,有时候需要先开启实例,我的实例名为orcltest:

startup open orcltest;

实例名与SID

实例名(instance_name)指的是用于响应某个数据库操作的数据库管理系统的名字;提到Oralce实例名就不能不提Oracle_SID,SID其实Oracle实例的一个标识。

但两者是有区别的,instance_name是oracle数据库参数。而Oracle_SID是操作系统的环境变量。Oracle_SID用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过Oracle_SID。并且Oracle_SID必须与instance_name的值一致,否则,你将会收到一个错误,在unix平台,是“ORACLEnot available”,在windows平台,是“TNS:协议适配器错误”。

数据库实例名除了与操作系统交互外,还用于网络连接的oracle服务器标识。当你配置oracle主机连接串的时候,就需要指定实例名如下:

jdbc:oracle:thin:@localhost:1521:orcltest(orcltest就为数据库实例名)
查询当前数据库实例名:
select instance_name from v$instance;<span> </span>

查看当前数据库实例的信息:

Show parameter instance_name;

注意:一个数据库可以有多个实例,在作数据库服务集群的时候可以用到,或者不同的项目用不同的数据库实例也可以,这块内容后续会继续说明。

3表空间

Oracle数据库是通过表空间来存储物理表的,表空间(tablespace)是数据库的逻辑划分,它是隶属与Oracle数据库实例下面的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。

所以有了数据库实例就可以创建表空间了。

创建表空间:

create tablespace OracleTest logging datafile &#39;C:\oracle\product\10.2.0\oradata\ORCLTEST\OracleTest.dbf&#39; size 32m autoextend on next 32m maxsize2048m extent management local;

其中的创建的表空间名字为OracleTest ,建立表空间的位置是:C:\oracle\product\10.2.0\oradata\ORCLTEST\OracleTest.dbf,大小是32M,空间可以自动扩充,每次扩充32M,最大表空间为2048M。

查询表空间名字:

select tablespace_name from dba_data_files group by tablespace_name;

查询表空间的大小:

select tablespace_name,count(*),sum(blocks),sum(bytes)/1024/1024 from dba_data_filesgroup by tablespace_name;

查看表空间是否自动扩充:

select file_name,autoextensible,increment_by from dba_data_files;

如果表空间中有表的话,可以查看:

Select tablespace_name,table_name from dba_tables where tablespace_name=&#39;ORACLETEST&#39;;

4用户

关于Oracle的用户,一个Oracle数据库装好后,建立了Oracle实例,创建了表空间,为用户指定表空间,最后才是创建物理表。

上面我们已经创建好数据库实例和表空间了,现在就是创建用户为指定的表空间:

Create user testuser identified by test default tablespace OracleTest;
创建了一个testuser的用户,密码是test,表空间是OracleTest.

在这里要说一点的是,同一表空间是可以授予多个用户的,并且可以给不同的用户分配对表空间的不同等级的操作权限。

给testuser用户授予权限,有三种:

grant connect to testuser; grant resource to testuser; grant dba to testuser;
我给testuser用户授予的是第三种dba管理员权限。

当我们通过我们创建好的用户登陆后可以查到当前用户:

show user;
查看当前数据库的所有用户:
select * from dba_users;

5表

数据库实例、表空间、用户这些都有了以后,就可以在自己的用户所属的表空间下创建表了,关于表这块我们大家经常用,这里就不多说了。看下常用命令就可以了:

查看表所属表空间

Select table_name,tablespace_name from all_tables where table_name=&#39;t_student&#39;;

扩展:财务知识 扫盲篇 / ios网络缓存扫盲篇 / 酢浆草种植扫盲篇

查看表结构
desc t_student;

总结

关于Oracle的使用,首先安装oracle数据库软件、然后创建数据库实例、接下来创建表空间、再往下给表空间创建用户并分配权限、然后创建表、最后测试,其中创建表空间和创建用户这两个顺序可以颠倒的。这几天这些东西来回捣鼓了好几遍,关于Oracle的这些操作,如果不去自己一步步实践,你永远都不知道自己到底有多生,你也不会知道它到底会出哪些让你抓狂的错误。

扩展:财务知识 扫盲篇 / ios网络缓存扫盲篇 / 酢浆草种植扫盲篇

三 : 如何学习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、2是有关oracle的一些基本概念,下面要学习的是一些简单的的实际操作,就是如何去管理oracle数据库,当然不是管理全部的oracle。在此过程中你将对sql和oracle体系结构有个更深入的了解。

       4、到了这一步你基本上算是初步掌握了oracle,下面将要根据你的方向来具体学习其它的oracle知识了。如果你是开发人员,则需要更多地去学习pl/sql以及developer,而这将是一门新的课程。如果你是一名dba,请继续。

       5、现在你可以根据自己的实际情况,进行有选择的学习,也就是说下面的内容没有特别顺序要求。可以选择深入学习oracle的管理、备份与恢复、性能调整、网络等。当然在学习这些知识的过程中,如果有实际的工作更好,这样你可以在实际中成长,学会trouble shooting。

       6、当然在学习的过程中,你可以在网站或论坛中与他人进行交流,可以看别人的一些经验文章,也可以自己写一些心得体会,当然我很欢迎各位将文章在上发表。技术进步的本身就是经验的积累和提炼过程,希望我们共同成长,还有什么问题吗?欢迎和我交流,gototop永远是你真诚的朋友。

本文标题:Oracle学习-Oracle学习的一些建议
本文地址: http://www.61k.com/1110397.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1