zoukankan      html  css  js  c++  java
  • 6年之后,开启Oracle学习之旅

     先说下自己的软件开发经历

    2007年开始接触软件,稀里糊涂的就报了计算机应用专业。对自己将来要学习的课程内容一无所知。同年的暑假,U盘这个概念进入了我脑海,当时的自己不知道所谓U盘到底是个什么东东。后来看着身边的人都在用,自己也就买了一个。后来才知道原来U盘是一种可以存储数据的媒介。当然,再后来,自己知道可以存储数据的媒介有很多。例如:移动硬盘,磁盘,磁带,内存等等。

    然后就走进了大学校园,开始了自己的大学生活,同时自己对软件的认识也在一步步的深入。当然,每日的课程量很大。但是所有科目中,数据库的学习是最令自己兴奋的。当时我们学习的是SQL Serve 数据库,更严谨的说是Microsoft的SQL Server,但是后来知道自己学习的SQL Server数据库原来只是中小型企业使用的存储数据的仓库。还清晰的记得,当时自己的数据库成绩竟然考试了88分。当时,同宿舍不同专业的舍友有学Oracle的。听他们描述,Oracle是大型企业使用的后台数据库系统,功能强大,稳定性高,对并发性支持也很好。当时,自己只是知道有Oracle这么个东西,但是从来不敢接触学习。当时,始终在想,当自己“功力”达到一定程度的时候再来学习。可是时间久这样流逝过去了。在后来的日子里,不但的听到Oracle如何如何强大。但是自己还是没有多余的精力去研究Oracle。一直到了2011年,自己实在是按捺不住激动的心情。想看下到底Oracle有什么魅力令N多人为之折服。于是让朋友帮忙安装了个Oracle10G,自己则在网上搜索C#如何与Oracle通信。两天之后,用C#成功调用Oracle,并且做了一个测试,从SQL server中和Oracle中读取等量的数据,结果竟让我大跌眼镜。SQL Server数据库消耗时间竟然比Oracle少。当然,可能是数据量少的缘故。但是这却让我的激情褪去了一大半。于是第二次和Oracle说了“分手”

    我和Oracle的第三次重逢

    当然,2013年工作依旧忙碌,精力依旧有限,但是就想发起对Oracle的第三次进攻。于是自己花了5个小时,在虚拟机上安装了Oracle10G。并且十分顺利。其实原来计划安装Oracle 11G的,但是自己在网上下载了安装包和安装图,照着安装图上的步骤安装,却以失败告终。在网上搜索了错误代码,但是网上的解决方案,没能解决我的问题。再者,由于时间原因,自己就转向了另外一种安装方式。就是在现有的Win7旗舰版系统上安装了个虚拟机。然后在虚拟机上挂了一个xp系统,紧接着在xp上装了一个Oracle 10G,安装过程十分顺利。这时的北京时间是2013年1月8日晚上11:30分。

       把这个安装过程总结下,以方便后续重装系统后再次重建Oracle。
       其中,碰到一个很棘手的问题就是,怎么解决真机上的Win7系统与虚拟机上xp系统的通信问题。花费了好大经历,最终,在网上找到了解决方案。做到了在虚拟机上的xp系统上共享一个文件夹,在Win7系统中可以对该文件夹进行操作。

    具体方案如下:reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa /v restrictanonymous /t reg_dword /d 0 /f

    在XP上运行这段代码,运行后必须重启XP,之后Win7就可以访问XP了!

       当Win7访问xp成功后,就可以将Oracle 10G的安装包复制到xp机器上,然后安装就可以了。当然安装时最好参照Oracle 10G的安装图。

       最后就Oracle安装时的注意点,这里说明下:

    1. Oracle10G 不能在Win7上安装
    2. 安装时输入管理员密码时不能以123这样的数字开头,要以字母开头。
    3. 对锁定的用户解锁。
    4. Oracle 10G默认没有SQL Developer,但是  11G默认安装了该工具。

    一读Oracle

      学习知识,我们总是习惯于对比。我也一样,拿Oracle和SQL Server对比,彻底颠覆了我对实体这个概念的理解,然而两者的不同,远远不止这一个。还有很多。在Oracle中,一个对数据可以对应多个实例。而SQL Server当中确定一个实例下可以有多个数据库。这是一个很大的差别。另外,Oracle还涉及到了表空间的概念。下面就来讲下自己对Oracle中概念的理解。

    Oracle服务器:两部分组成,Oracle数据库和Oracle实例

    Oracle数据库: 位于硬盘上实际存放数据的文件,这些文件组织在一起,成为一个逻辑整体,即为Oracle数据库。因此在Oracle看来,“数据库”是指硬盘上文件的逻辑集合,必须要与内存里的实例合作,才能对外提供数据管理服务。

    Oracle实例:位于物理内存里的数据结构,它由一个共享的内存池和多个后台进程所组成,共享的内存池可以被所有进程访问。用户如果要存储数据库中的数据,必须通过实例才能实现,不能直接读取硬盘是上的文件。个人理解,是通过服务读取的,而不是普通的通过简单的文件拷贝,而且文件拷贝也没这么强大吧!

    Oracle数据库与Oracle实例区别:

      实例可以操作数据库,在任何时刻一个实例只能与一个数据库关联,大多数情况下,一个数据库上只有一个实例对其进行操作。但是集群除外,如果使用集群的话,一个数据库可以有多个实例对其进行操作。

    表空间:表空间由多个数据文件组成,一个数据文件只能属于一个表空间

    表空间为逻辑概念,数据文件为物理概念

    段、区和块

    段存在于表空间中,段是区的集合,区是数据块的集合,数据块会被映射到磁盘块

    数据库的逻辑和物理结构

     

    Oracl就像天上的星辰,看起来是那么绚丽,或许是精力不足的原因,其实自己是想在积淀的知识量足以抵挡Oracle的强大攻势之后,再来解开Oracle的神秘面纱。

    好了,先到这里吧!后续会陆续更新自己对Oracle的心得。敬请关注!!

  • 相关阅读:
    RedisCacheTool参考其中的文件读写功能
    eclipse eayExplorer 查看代码的资源管理器打开方式
    有关写代码效率的问题
    Eclipse
    解决pdm打开只显示表名不显示字段的步骤
    绝对定位元素的水平垂直居中
    Maven依赖之Scope
    无提示关闭弹出窗口
    Maven模块与模块间的依赖
    Maven+Hibernate4注解0配置示例
  • 原文地址:https://www.cnblogs.com/weilengdeyu/p/2855252.html
Copyright © 2011-2022 走看看