平民化 ORACLE (一)数据库的建立 - hutman - 博客园

来源:百度文库 编辑:神马文学网 时间:2024/04/30 18:43:35

平民化 ORACLE (一)数据库的建立

写在前面的废话:

很早就想写一点关于ORACLE的东西,可惜一直在工作和学习中轮回。我辈开发者,时间总是紧巴巴的。而Oracle 方面的权威参考书,多半是英文大部头,让我们捂着紧巴巴的荷包望“洋”兴叹,而中文的参考资料名字动辄又是深入理解,又是高级指南,其中充满了中英夹杂的各种专业密语(没错,就是密语。我绝对不承认那是术语Terminology,那绝对是刻意让人看不明白的秘语Secret code),让我们刚入门的时候大吃苦头。

最近又有些朋友在反复问关于一些新手入门的问题,再三再四之下,我终于忍不住了,决定关于这些常见的新手问题写一个专题系列,让大家明白Oracle其实并不神秘,学起来也不应该是困难的事情。使用Oracle就应该跟是我们平民百姓吃饭喝水一样平常。所以我把这个系列命名为:“平民化Oracle”。如果你是Oracle的高手高高手,自然可以忽略在下这点小东西。如果你刚刚接触到这个大型数据库,被甲骨文搞的像看到了八股文晕头转向,那么也许下边这些平民化的小玩意能帮到你。

       废话不多扯下面开始正题:

 

平民化 ORACLE(一)数据库的建立

       数据库的安装,我就不说了,Windows平台下图形界面,没什么难度。Linux下安装,网上也有大量的说明,什么你没找到?那好吧,这个系列的最后我会加上*nix 平台下Oracle 的安装配置方法。

       通常新手拿到手的是一个装好了Oracle的环境,然后第一步就要开始建立自己的数据库,如果在 Window平台下,那么请在开始菜单->运行下输入:dbca并回车。那么大名鼎鼎的数据库配置向导(DataBase Configure Assitance)就会冒出来帮你在图形化界面下一步一步完成数据库的配置。

需要注意的是,你要记住你创建数据库的SID,这个是数据库在操作系统级别的唯一标志。生成的数据库的同时会在操作系统中注册SID,并创建带有SID的服务。

然后在字符集选择的时候,推荐采用通用字符集Unicode(AL32UTF8),这样会为你以后的导出导入减少很多麻烦的,采用默认的字符集并不是不行,而是有时候由于字符集不一致导致的错误,会让你感叹人生悲剧的。

       而国家字符集建议采用AL16UTF16,因为定长字符集在处理的时候不需要做对齐处理,所以执行效率会比变长字符集UTF8要高,虽然存储空间会浪费一点,但是现在硬盘都白菜价钱了,没有多少人会计较那点空间的。通常情况下,以空间换时间绝对是值得的(当然,嵌入式那种存储紧张系统不在此列)。

       关于内存配置,9i和以前的版本对内存要求还不高,新建的库也就只占百多兆内存,而10G之后的版本有了百分比的设置,默认是40%,坦白的说对开发人员而言那是太高了,除非是大型应用,否则绝对没必要分配那么大的内存。初学者自己折算一下,有个两百兆左右的内存绝对够用了。

       其他的选项基本上采用默认配置就行了。如果是新手的实验库,还可以加上示例方案包括人力资源、订单输入、产品介质等等一大堆,可以给你一些入门的学习范例。如果是应用开发环境,这个还是省了吧。

       最后一步的时候,建议最好生成数据库创建脚本,并把脚本保存下来。这样你可以拿这些脚本在其他机器上再生成一个一模一样的库。而且分析这些脚本,会让你明白数据库是如何创建起来的,这样的话对数据库的机制会有更深的理解。

以Windows为例,这些脚本包括一个以数据库SID为名字的批处理文件,两个初始化ora文件,和一堆建库用的SQL文件。批处理文件完成创建本数据库的目录,设置环境变量,用ORADIM注册和启动数据库服务,然后将控制权转交给SQLPLUS通过一个SID为名的SQL文件开始数据库的创建。而SQLPLUS会执行这个以SID为名的SQL文件,完成用户密码设置,密码文件创建,归档备份初始化,然后创建表空间和数据文件,并RUN一些RDBMS脚本来创建数据库的系统基本对象和配置,如:系统表(DBA表、ALL表、USER表)、动态性能表(包括V$表X$表)、系统包(包括最常见的DBMS和UTL包)等等,各个版本略有不同。由于内容实在太多,这里一时半会说不完,以后我会专门写一章讨论建库脚本的细节以及如何手动建库。

       好了经过几十分钟的等待,数据库就建立好了。在Windows下你可以在通过命令:services.msc 在系统的服务列表中查看到一个以 OracleService开头,后面跟着你创建数据库SID的服务,正常情况下它是自动并且已启动的,表明你的数据库已经创建成功了。

接下来要做的是数据库的网络配置和连接。