Oracle数据库安装与配置

这次的大数据小学期需要用到Oracle数据库。我在安装Oracle数据库的过程中费了很多周折,在此记录一下安装过程和配置上遇到的问题。

安装

Oracle数据库是重量级的企业级软件,安装相对麻烦。如果要在Linux上安装,Oracle官方仅提供了rpm安装包,并且需要图形界面。debian系发行版并不被官方支持,不建议使用。我选用的操作系统是Windows Server 2008。除此之外,使用Docker镜像或AWS云服务也是不错的方案。

我选用的Oracle Database版本是11g。11g版本分为Express Edition(XE),和Enterprise Edition(EE)。EE版拥有更多的功能(包括很实用的Enterprise Manager)。Oracle数据库虽然是商业软件,但是针对非商业使用是免费的,并且Oracle的收费策略是针对服务收费,而并非软件本身。
下载:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html
安装过程并不复杂,按照安装向导的提示操作即可。具体安装过程请参考:http://holowczak.com/installing-oracle-11g-release-2-windows-7-32-bit/本文不再赘述。
安装过程中其中一个步骤是选择Oracle数据库使用的编码。如果语言设置为简体中文,则默认的编码是GBK。为了避免出现乱码,请尽量选择UTF8编码。

表空间与数据库

Oracle中的一些概念和其他数据库,如MySQL,不太一样。动手操作之前请务必理解这些概念。

数据库

Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。Oracle数据库的概念和其它数据库(如MySQL)不一样,这里的数据库可以理解为一个操作系统中安装的Oracle就是一个大数据库。如果你想创建一个(MySQL概念下的)数据库,请使用Enterprise Manager创建一个表空间,而不是使用OBCA新建一个数据库。

实例

一个Oracle实例包括一系列的后台进程和内存结构。一个数据库可以有多个实例,只有通过实例才能对数据库进行操作。

表空间

表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。Oracle中的表空间相当于MySQL中的数据库。

配置监听程序(listener)

监听程序被默认配置为只监听localhost,要从外网通过1521端口连接Oracle数据库,需要将监听程序配置为监听广域网。
打开Net Manager,导航至下图所示界面。 主机一项默认值为 localhost,将其修改为服务器的主机名(服务器管理器首页中的“计算机完整名称”一项)即可。

保存后执行 lsnrctl reload重启监听服务。
注意网上有的教程写的是在DBCA中配置该数据库为共享数据库。这种方法是错误的,将数据库配置为共享只影响Oracle数据库的内存分配策略,并不影响Listener的监听地址。

Oracle数据库表及字段命名规则

我在Spring Boot应用中使用的ORM为基于Hibernate的spring data jpa。在应用启动时更新数据库表结构时,有时会报出 ORA-00904:invalid identifierORA-00903:invalid table name错误。
原因如同其字面意思,是使用的表名称或字段名称不合法。经查找Oracle文档,Oracle数据库的命名规则如下:

  • 以字母开头
  • 少于等于30字符
  • 只包含字母,数字及 $, _, #
  • 不是Oracle保留字

保留字列表详见:https://docs.oracle.com/cd/B19306_01/em.102/b40103/app_oracle_reserved_words.htm,从中可以看出一些常用的词,如 userstartend等均是保留字,不能用于命名表或字段。

Show CommentsClose Comments

Leave a comment