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实例区别:

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

 

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

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

 

段、区和块

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

 

数据库的逻辑和物理结构

 6年之后,开启Oracle学习之旅

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

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

你可能感兴趣的:(oracle学习)