FreeOZ论坛

标题: Oracle学习笔记 [打印本页]

作者: xblues    时间: 3-5-2010 21:14
提示: 作者被禁止或删除, 无法发言 标题: Oracle学习笔记
好几年以前用过一点Oracle,一直都用MS SQL了,很少接触这个,不过如果用起来和MS SQL差不多,为什么不自己学习一下呢?

先下来那个Oracle 10g XE的免费版装上看看再说。下载地址:
http://www.oracle.com/technology ... abase/xe/index.html

安装第一步就要求输入密码,我知道MS SQL早已经集成了AD验证,所以直接用Windows集成验证就可以了,不推荐使用密码验证,不过Oracle还是第一步要输入一个密码。

200M的安装文件,却需要1.6G的空间。看来XE版本安装以后也不小啊,和MS SQL企业版所需要的空间差不多。

安装路径也比较不同默认直接在 C:\OracleEX\

默认管理员账户名叫 system 而不是MS SQL 的Adminitator

管理界面也有所不同,主界面是Web的,其他的几个关键功能是命令行的。  当然,如果用习惯了就无所谓了,计算是用MS SQL,也可以直接用命令行解决问题,而不是使用图形界面,可是Oracle直接提供代替图形界面的命令行,给入门者增加了门槛。

另外,一个实例数据库也没有,什么功能都需要自己配,学习起来可真不方便啊!
作者: coredump    时间: 3-5-2010 21:25
200M的安装文件,却需要1.6G的空间。
----因为XE版的内建一个配置好的数据库,不过对数据最高容量有限制(好象是4G?)

安装第一步就要求输入密码,我知道MS SQL早已经集成了AD验证,所以直接用Windows集成验证就可以了,不推荐使用密码验证,不过Oracle还是第一步要输入一个密码。
--这是XE版的,企业版的Oracle有很多种验证机制

管理界面也有所不同,主界面是Web的,其他的几个关键功能是命令行的。
--想学Oracle还是得用命令行,很强大滴 ,想用GUI,可以考虑TORD,TORA, sqldeveloper之类,企业版ORACLE也可以使用内置GUI的管理工具

另外,一个实例数据库也没有
--数据库有的,而且XE版是不允许自建数据库实例的


论坛里有很多ORACLE DBA的,可以找大家来分享下
作者: xblues    时间: 3-5-2010 21:40
提示: 作者被禁止或删除, 无法发言 标题: 回复 #2 coredump 的帖子
是啊,移民过来的IT工程师占了绝大多数,可是论坛的学习气氛并不浓啊。
作者: 天下有山    时间: 3-5-2010 21:43
不会PL/SQL的不算会用oracle

作者: xblues    时间: 3-5-2010 21:47
提示: 作者被禁止或删除, 无法发言 标题: 回复 #4 天下有山 的帖子
  那我用SQL语句查询数据库没问题,这不算是PL/SQL么?
作者: 天下有山    时间: 3-5-2010 21:58
还有PL部分呢

作者: xblues    时间: 3-5-2010 22:10
提示: 作者被禁止或删除, 无法发言 原来有一个示例数据库啊,还有一个样例用户 HR
按着示例,一步一步建立一个Application

Oracle的Application的概念,相当于一个WEB界面的GRUD应用。(这个在MS SQL中是需要利用VS编程实现的)

总体感觉因为XE版本没有像MS SQL Server一样的集成的管理界面,感觉一点也不直观,倒是和My SQL的界面差不多。
作者: xblues    时间: 3-5-2010 22:26
提示: 作者被禁止或删除, 无法发言 标题: GUI界面的选择
http://www.ilovefreesoftware.com ... lsql-developer.html

这里有一篇文章提到了4个免费的工具可以用来做开发。

TOAD 和 PL/SQL Developer 最流行,但是不是免费的。以下4个工具都是免费的,



这样看来我就还是看看TORA吧。值得一提的是TORA还是一个多平台工具,支持Linux,Windows和MAC OS X

[ 本帖最后由 xblues 于 3-5-2010 21:28 编辑 ]
作者: xblues    时间: 3-5-2010 23:29
提示: 作者被禁止或删除, 无法发言 标题: 看来Oracle还真够麻烦的
MS SQL 的概念是:机器名,数据服务实例名,数据库

Oracle 的概念则有所不同:机器名,SID(这个直接就到数据库了,每个数据库都有一个SID名字,那么如果一个查询需要访问不同的数据库怎么办啊?

下面的语句查看实例名和数据库名

To find the current value of ORACLE_SID:

    SVRMGR> select instance from v$thread;

    INSTANCE
    ----------------
    DB_SID

To find the current value of DB_NAME:

    SVRMGR> select name from v$database;

    NAME
    ---------
    DBNAME

看了一下,XE版本好像不能够修改实例名,数据库名也不能修改,都叫做 XE,那怎么用啊?!
作者: coredump    时间: 3-5-2010 23:52
标题: 回复 #9 xblues 的帖子
你应该装标准版,XE是阉割版,做做简单demo还凑合。
用来学习各种概念,折腾数据库不合适
作者: xblues    时间: 4-5-2010 00:23
提示: 作者被禁止或删除, 无法发言 标题: 回复 #10 coredump 的帖子
标准版的盗版不好找。。。。。。。  一会BT一下看看,感觉标准版好大啊。

刚才好像理解错了。Oracle的SID的概念划分和MS SQL不一样。

MS SQL
机器名,数据库服务实例名,数据库。

Oracle
数据库,数据库实例名SID,这个是最上层的概念。
比如同一个数据库,可以用不同的SID安装在几台机器上,数据库名相同,SID名字不同。

MS SQL的数据库集群是建立在操作系统集群基础上的,
而Oracle的数据库集群是Oracle自己的技术,集成在数据库本身了。所以数据库是最大的概念。

有么有Oracle的高手,指点一点,看看我说的对不对。
作者: zhengt    时间: 4-5-2010 00:34
--标准版的下载地址
http://www.oracle.com/technology ... s/10201winsoft.html
作者: xblues    时间: 4-5-2010 00:39
提示: 作者被禁止或删除, 无法发言 标题: 回复 #12 zhengt 的帖子
  这个是收费的吧,需要序列号的。
作者: ma.qy    时间: 4-5-2010 00:42
原帖由 xblues 于 3-5-2010 23:23 发表
标准版的盗版不好找。。。。。。。  一会BT一下看看,感觉标准版好大啊。

刚才好像理解错了。Oracle的SID的概念划分和MS SQL不一样。

MS SQL
机器名,数据库服务实例名,数据库。

Oracle
数据库,数据库实例名SID,这个是最上层的概念。
比如同一个数据库,可以用不同的SID安装在几台机器上,数据库名相同,SID名字不同。

MS SQL的数据库集群是建立在操作系统集群基础上的,
而Oracle的数据库集群是Oracle自己的技术,集成在数据库本身了。所以数据库是最大的概念。

有么有Oracle的高手,指点一点,看看我说的对不对。

首先,ORACLE的管理工具最好的都是COMMAND LINE方式。一个合格的ORACLE DBA应该可以不使用任何图形界面操作数据库,包括安装ORACLE。设想一下,如果你给客户做技术支持,人家的数据库瘫痪了,你上门处理,然后告诉人家:对不起,要我处理问题可以,但是要在你们的生产数据库上面先装一个多大多大的图形界面工具,安装大概需要20分钟。。。##¥%。。¥……#·#·##!·#%…………——。你觉得客户会怎么样。我支持过有的银行的生产系统,他们的生产数据库安装任何软件要多个领导签字,还要先检查版权信息。。。。所以这个时候你要做的是使用SQL PLUS在最短的时间内把问题搞定。
2:ORACLE的db_name,SID,INSTANCE NAME,global name,呵呵,你要慢慢体会。一下很难说清楚。
作者: zhengt    时间: 4-5-2010 00:55
标题: 回复 #13 xblues 的帖子
不收费的, 你只需要注册一个otn账号, 就可以下载安装,创建自己的数据库的.
作者: 西皮二黄    时间: 4-5-2010 00:59
虫子,你这样东一榔头西一棒槌的不行啊。
没效率,而且不系统。
建议你找本书来学学吧。最好是Oracle认证的书,前面几课简单的又好懂,而且比较系统。
作者: klux    时间: 4-5-2010 01:01
版内搜索一下"XX学习笔记"
全是有头没尾,三分钟热度的东西
作者: xblues    时间: 4-5-2010 01:32
提示: 作者被禁止或删除, 无法发言 标题: 回复 #16 西皮二黄 的帖子
随便了解一下皮毛就可以了,具体用的时候再具体学习。
作者: xblues    时间: 4-5-2010 01:32
提示: 作者被禁止或删除, 无法发言 标题: 回复 #17 klux 的帖子
你有意见么?你也可以发啊,我没意见。
作者: xblues    时间: 4-5-2010 01:37
提示: 作者被禁止或删除, 无法发言
原帖由 zhengt 于 3-5-2010 23:55 发表
不收费的, 你只需要注册一个otn账号, 就可以下载安装,创建自己的数据库的.


什么时候开始Oracle也不收费了啊?
作者: ma.qy    时间: 4-5-2010 01:54
原帖由 xblues 于 4-5-2010 00:37 发表


什么时候开始Oracle也不收费了啊?

ORACLE的DB产品,都可以在ORACLE网站免费下载。
http://www.oracle.com/technology/software/index.html
正版ORACLE,是一个法律概念,不是一个技术概念。
我给一个银行 安装的生产数据库,就直接是从网站上下的。我们几乎所有的数据库,包括一部分生产系统,也是下载的。
只要你登记交钱。当然他们会给你介质,但是和网站上下载的在技术上没有区别。
所以你如果是学习或者玩玩,你完全不必理会其他的,直接下免费的就好了。

[ 本帖最后由 ma.qy 于 4-5-2010 01:00 编辑 ]
作者: xblues    时间: 4-5-2010 07:20
提示: 作者被禁止或删除, 无法发言 标题: 安装Oracle企业版
大家都说XE版本用来学习不够,而且正式版又是免费的,所以连夜下载了正式版,2G。
下来了两个zip,解压缩,合并目录,再合并成一个ISO文件,挂接到虚拟机的Windows Server 2008 R2上就可以安装了。

我先卸载了XE,开始安装EE版本(安装的时候可以自由选择版本,反正不花钱,我就选择了EE版本,一般的功能都会有)。还需要选择是安装桌面版还是服务器版,我选择了桌面安装。接着是问设置管理员密码。安装也还可以。

安装完了一下子就看到了那么多图形化的界面和工具,看来Oracle和MS的做法不同啊。MS的XE版本看起来和企业本差不多,可是Oracle的XE和EE版本可是差了十万八千里,Oracle的XE版本顶多算是一个小型数据库引擎,工具一改省掉了。

让我慢慢研究这个Oracle。
作者: xblues    时间: 13-8-2010 01:30
提示: 作者被禁止或删除, 无法发言 标题: 接着学习Oracle
好久不用,没有实际需要,所以就不想学习了,最近又开始需要接触Oracle了,所以重新开始学习。
作者: xblues    时间: 13-8-2010 01:50
提示: 作者被禁止或删除, 无法发言 标题: Uninstall Oracle
以前安装的那个版本好久不用居然密码也忘记了。
什么都忘记了,只好卸载,然后重新安装。

Oracle 11g 居然没有提供卸载程序!!!卸载步骤具体看这里:
http://www.emarcel.com/emarcel/database/114-uninstalldb11g

Oracle 11g的安装路径也变了,下面是卸载程序的路径:
C:\app\Administrator\product\11.2.0\dbhome_1\deinstall\

从命令行运行这个目录下的 deinstall
都按默认,最后一个问题回答Y,大部分文件都删除掉了,除了一些dll文件,重新启动机器,然后可以直接删除整个目录。
作者: xblues    时间: 13-8-2010 02:11
提示: 作者被禁止或删除, 无法发言 标题: 安装Oracle 11g
去Oracle网站下载企业版,最新版是11g

执行setup

要求填写email,可以不填写,选择不需要通知

这一步问一下那一种安装方式,我选择第一个,也就是安装程序和数据库,完全安装。
Create and configure a database
Install database software only
Upgrade an existing database

这一步问安装方式,我选择Destop Class配置,这样可以不需要回答很多问题,能用就可以啦。
Desktop Class
Server Class

下一步寻问安装路径,默认安装在:
根目录      C:\app\Administrator
程序目录    C:\app\Administrator\product\11.2.0\dbhome_1
数据库目录  C:\app\Administrator\oradata
安装版本,我选择企业版
字符集     Default,Unicode
Global database name: orcl.0.2.15
管理员密码

下一步就是安装执行以前,给你一个总结了:
占用磁盘空间:3.34G
Oracle system identifier (SID): orcl

点击开始安装。等个二十几分钟就安装好啦。

The Database Control URL is https://localhost:1158/em
作者: xblues    时间: 13-8-2010 02:21
提示: 作者被禁止或删除, 无法发言 标题: tnsnames.ora 文件
参考资料:
http://www.oracle-base.com/artic ... rkConfiguration.php

文件位置:
C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN

下面有三个ora文件:
listener.ora
sqlnet.ora
tnsnames.ora  这个是至关重要的配置文件
作者: huazhb    时间: 13-8-2010 11:09
我也是一直没有搞明白Oracle的结构, 好像是sid是对应SQL server的数据库实例, 然后一个用户就是对应SQL Server的一个实例下的数据库. 不知道我理解的对不对.
作者: xblues    时间: 14-8-2010 16:53
提示: 作者被禁止或删除, 无法发言 标题: 回复 #27 huazhb 的帖子
MS SQL 和 Oracle 不是完全可以对应起来的,从某种意义上讲Oracle的层次更加简单。

Server -- SID / Database -- Schema/User -- Table

一台服务器可以安装多个SID,也就是数据库实例,这个实例就是一个数据库,下面有很多表,每个表都属于不同的Schema,用户根据可以访问的schema的不同所以可以访问的表也不同。
作者: xblues    时间: 14-8-2010 17:00
提示: 作者被禁止或删除, 无法发言 标题: 登陆 Database Control 管理数据库
安装好以后就可以从开始菜单里找那个Database Control 的web管理工具去配置数据库了。或者直接输入如下URL

https://<hostname>:1158/em

安装的时候,会询问你一个管理员的密码,你登陆这个界面的时候是需要这个密码的,用户名是 system

缺省安装的数SID是 orcl
作者: piginzoo    时间: 30-8-2010 18:19
不错不错不错不错
作者: xincheng    时间: 24-1-2011 20:45
大体上oracle的schema对应MS SQL的数据库;虫子的理解不错,oracle的database可以理解为物理存储的一组数据文件,实例是内存结构和相关进程,sid和database name在ORACLE RAC中是一对多的关系。
作者: xblues    时间: 25-1-2011 10:09
提示: 作者被禁止或删除, 无法发言 标题: 说说Oracle 和SQL的区别
物理服务器 --&gt; SID 实例 --&gt; database 数据库 --&gt; schema --&gt; table 表

Oracle:一台服务器下面可以安装多个实例,一个实例下面只能有一个数据库
SQL:一台服务器下面可以安装多个实例,一个实例下面可以有多个数据库

Oracle:用户是一个特殊的schema,建立了一个用户就缺省建立了一个和用户名相同的schema,用户缺省情况下可以访问和自己同名的schema,可以通过设置赋予该用户访问和修改其他shema的权限。
SQL:用户和schema是分开的两个概念,建立用户不会自动建立同名的schema,其他的就都一样了。

Oracle:集群是在SID实例层上实现的,在不同的物理服务器上安装相同名字的实例,通过设置数据库文件和表空间,可以让一个巨大的表跨服务器分布,所以Oracle是大型数据库。
SQL:集群式在操作系统层面上实现的,操作系统集群,实现了数据库以及微软的其他的服务(sharepoint, iis, etc.)的集群。这一点上也反映了微软和Oracle在战屡上的不同,微软的产品不仅仅是数据库,所以对于微软来说集群是一个普遍的概念。Oracle一开始是专门做数据库的,所以集群功能集成在了数据库里面。

Oracle:数据库文件分为两种,数据库文件和索引文件
SQL:也是两种,数据库和Log文件,所以在SQL中索引文件包含在数据库文件中了。所以在SQL中存在压缩数据库,整理数据库空间的说法。在表空间的控制上,我觉得Oracle做得更好,可以实现很细度的控制,对于那些大型数据库,上G条数据的超级表来说,Oracle的控制选项更多。SQL则把这些细节都隐藏起来了,所以从表面上看,SQL简单健壮,而Oracle则见长于很多细节调整,用起来选项也多,复杂。
作者: Fernando    时间: 25-1-2011 11:44
我有一本书,把Oracle 11g和SQL 2008放在一起对比,两样一起学
作者: 熊猫阿三    时间: 25-1-2011 12:19
原帖由 Fernando 于 25-1-2011 11:44 发表
我有一本书,把Oracle 11g和SQL 2008放在一起对比,两样一起学

hehe, good. 学完了把经验总结写出来哈。
作者: xincheng    时间: 30-1-2011 19:54
Oracle:数据库文件分为两种,数据库文件和索引文件
这个理解恐怕有些问题,因为数据库文件不是按照这两种模式分类的,大类来说,和MS sql类似,也是数据库文件和日志文件,细分起来,数据库文件包括:参数文件(pfile和spfile)、控制文件、监听和TNS文件、监控相关文件、密码文件、闪存文件(10g及以上版本)、数据文件(就是dbf文件)等;日志文件可以分为在线日志和归档日志(如果开启了归档设置)。




欢迎光临 FreeOZ论坛 (https://www.freeoz.org/ibbs/) Powered by Discuz! X3.2