ubuntu 9.04 安装oracle10g xe 步骤
前都是在开发环境中使用oracle的轻量级服务器oracle xe。是在windows环境下,见适合开发人员的Oracle10g环境。
在linux上安装oracle是一件痛苦的事情。因为需要为安装做很多准备工作。另外,就是oracle的安装都是基于redhat版本的。
ubuntu server是很好的linux服务器版本,但是得到的企业支持较少,比如oracle,比如其他软件提供商。
公司需要移植以前oracle数据库的东西出来。为了应急,在ubuntu server上安装一个express edition(XE)。这个版本在ubuntu上安装十分容易。
但是事后发现,导入utf8编码的oracle数据库备份时出现乱码。究其原因,是:
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/serverexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATHexport ORACLE_SID=XEexport PATH=${PATH}:${ORACLE_HOME}/bin如果出现如下问题:
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