`
dahui12344321
  • 浏览: 242577 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ubuntu 9.04 安装oracle10g xe 步骤

    博客分类:
  • SQL
阅读更多
前都是在开发环境中使用oracle的轻量级服务器oracle xe。是在windows环境下,见适合开发人员的Oracle10g环境。

在linux上安装oracle是一件痛苦的事情。因为需要为安装做很多准备工作。另外,就是oracle的安装都是基于redhat版本的。

ubuntu server是很好的linux服务器版本,但是得到的企业支持较少,比如oracle,比如其他软件提供商。

公司需要移植以前oracle数据库的东西出来。为了应急,在ubuntu server上安装一个express edition(XE)。这个版本在ubuntu上安装十分容易。

但是事后发现,导入utf8编码的oracle数据库备份时出现乱码。究其原因,是:

引用
Western European

The database created using a single-byte Latin1 (WE8MSWIN1252) character set, which is suitable for storing Western European language data

Universal

The database is created using a multibyte (AL32UTF8) character set, which is suitable for global data in any language.


之前安装的是只支持西方字符集的版本。

参考这个文档,是最全面:

http://www.oracle.com/technology/software/products/database/xe/files/install.102/b25144/toc.htm


下面列出安装和配置的步骤。

首先需要设置oracle xe版本的源:

sudo vim /etc/apt/sources.list


在该文件中增加:
deb http://oss.oracle.com/debian unstable main non-free


然后需要将该源服务器的公钥添加在本地 apt 系统的密钥库中:
wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle  -O- | sudo apt-key add -


然后,更新apt库:
apt-get update




首先,需要配置apt-get,见在ubuntu server下安装Oracle XE相关部分。

然后,需要确保环境变量中文的UTF支持,可运行:

locale


看到如下就是正确的了:

LANG=zh_CN.UTF-8


如果不是,可修改:

sudo vim /etc/default/locale


改为:

LANG=”zh_CN.UTF-8″


安装oracle xe universal版本:

sudo apt-get install -y oracle-xe-universal


如果安装有问题,需要完全卸载,可:

sudo apt-get remove –purge oracle-xe-universal


如果不能完全卸载,再次安装往往无法生成配置文件,造成无法直接使用。

上述卸载办法如果还不行,可参考上面oracle官方文档中的手工反安装部分(Manually Removing Oracle Database XE)。

这很重要,因为想第一次就在陌生的linux环境下安装好,是很困难的。

安装完毕后,会提示运行配置脚本,可按照提示部分运行:

sudo /etc/init.d/oracle-xe configure


配置端口和管理员的用户密码等。之后,oracle可自动启动,或者执行:

sudo /etc/init.d/oracle-xe start


如果想通过其他计算机通过浏览器管理这个数据库,需要在sqlplus中执行:

EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE)


另外,如果不是供测试使用,而是小规模生产使用,需要增大连接进程数(需要DBA权限):

ALTER SYSTEM SET PROCESSES=200 SCOPE=spfile;


而且,需要注意,oracle xe有关的限制,见上面链接oracle文档的Oracle Database XE Server User Data Limitations部分:

The maximum amount of user data in an Oracle Database XE Server database cannot exceed 4 gigabytes. If the user data grows beyond this limit, then an ORA-12592 error will appear. To use more than 4 gigabytes of user data, upgrade to Oracle Database 10g Standard Edition, Oracle Database 10g Standard Edition One, or Oracle Database 10g Enterprise Edition.

也就是说用户数据不能超过4GB。

客户端的环境变量配置,需要配置:

sudo vim /etc/environment


增加以下内容用于显示中文的oracle提示信息:

NLS_LANG=”SIMPLIFIED CHINESE_CHINA.AL32UTF8″


配置:

sudo vim /etc/profile


增加oracle的环境变量等信息:

export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_SID=XE
export PATH=${PATH}:${ORACLE_HOME}/bin


如果出现如下问题:
引用
SQL> startup
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务


可在监听器配置文件中增加对SID的描述。监听器文件路径可通过如下命令获得:

lsnrctl status


在我这里的环境是:

/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/listener.ora

增加后的文件如下:

# listener.ora Network Configuration File: 

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)
      (PROGRAM = extproc)
    )
   (SID_DESC =
      (GLOBAL_DBNAME = XE)
      (ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)
      (SID_NAME = XE)
    )
  ) 

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = dev)(PORT = 1521))
    )
  ) 

DEFAULT_SERVICE_LISTENER = (XE)


粗体字部分是增加的内容。重启oracle,问题解决。

原文链接地址是:http://marshal.easymorse.com/archives/1537
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics