Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1188854
  • 博文数量: 253
  • 博客积分: 5892
  • 博客等级: 大校
  • 技术积分: 1942
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-24 14:20
文章分类

全部博文(253)

文章存档

2012年(98)

2011年(155)

分类: LINUX

2011-11-01 11:34:45

一.前言

    之前听坊间传闻说安装Oracle很BT,今日一试,果然如此:<,所以决心把安装中遇到的问题整理成此文档,以备后来者参考。

二.基本配置   

    在安装Oracle之前,我想先说一下机器配置的问题,因为单机器的问题,就可能会浪费你1天多的时间!

(1)硬盘剩余空间:10G以上

    虽然Oracle 10g的安装文件只有800多MB,但安装后的oracle+oraInventory目录会用差不多4G空间,再加上安装时Oracle生成的临时文件 (/tmp目录需要至少400MB)...所以10G的硬盘空间已经是最低配置了,因为你可能还需要应付一些特殊情况。

(2)内存1.5G以上

    官方文档说512M内存也可以安装。是的,确实如此,但安装后能不能正常运行,我就不敢保证了...之前我用一台1G内存的虚拟机安装Oracle 10g,正要启动的时候提示:剩余内存不足。为了避免不必要的麻烦,请把内存加多一些。

(3)Swap交换区2G

三.在CenOS5.3上安装Oracle 10g

1.预备资源

【1】《》

【2】 安装包:

2.安装Oracle 10g

【1】准备安装

为了避免缺包导致的Error,请在安装Oracle之前执行以下命令:

yum install yum-fastestmirror -y
yum install compat-db*
yum install compat-libc*
yum install compat-gcc*
yum install libXp.so.6
yum install libc-*
yum install libaio*
yum install openmotif
yum install glibc-devel*
yum install libgcc*
yum install gnome-lib*

【2】安装包解压

zcat /tmp/10201_database_linux_x86_64.cpio.gz /data/setupfiles/Oracle/ | cpio -idmv

【3】创建 Oracle 组和用户帐户

创建用于安装和维护Oracle 10g 软件的账户。用户帐户将称为oracle,而组将称为oinstall和dba。以root用户身份执行以下命令:

# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)

设置oracle帐户的口令

# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd:all authentication tokens updated successfully.

【4】创建目录

创建Oracle 10g及其数据库文件的目录,以root用户身份执行以下命令:

# mkdir -p /data1/oracle
# mkdir -p /data1/oradata
# chown -R oracle:oinstall /data1/oracle /data1/oradata
# chmod -R 775 /data1/oracle /data1/oradata

【5】修改内核参数

安装Oracle 10g需修改内核参数,否则安装检测时会报Failed,甚至导致安装时出现Error。以root身份执行以下命令:

cat >> /etc/sysctl.conf <kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
EOF

如果检查没有问题后,即可以开始装Oralce 10g。

【6】安装Oracle 10g

(1)先以oracle用户身份登陆XWindow。因为oracle安装会弹出界面让你配置,如果使用putty登陆安装的话,你是没有办法操作弹出框的,所以一定要登录XWindow,然后在Terminal里启动安装程序。

    另外一个问题就是,必须要用oracle用户登陆XWindow,并以oracle用户在Terminal中启动安装程序。为什么不用root权限呢?首 先,以root用户登录XWindow并启动安装程序会出错,提示“The user is root. Oracle Universal Installer cannot continue installation if the user is root.”。如果以root登陆XWindow,以oracle用户在Terminal中启动安装程序,可能会出现某些对话框弹不出来,导致安装卡死的 情况,这种情况之前我就遇到过,虽然不能百分百确定是root登陆XWindow导致的问题,但为了避免不必要的问题,还是以oracle用户登录 XWindow,并用oracle身份启动安装程序。

(2)如果你的系统语言为中文,请把他设置为英文,否则安装的时候会出现乱码。

(3)Terminal中启动Oracle 10g安装程序:

[oracle@vmlincn80ce5 /]$ ./data/setupfiles/Oracle/database/runInstaller

如果一切正常,界面会弹出如下对话框:

如果在Terminal启动runInstaller时遇到“Checking operating system version: must be redhat-2.1, redhat-3, SuSE-9, SuSE-8 or UnitedLinux-1.0 Failed ”这种问题,表明oracle不能识别你的系统内核,这个问题可以通过修改内核配置文件解决,如下:

cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF

(4)Oracle 10g安装配置

修改Oralce Home Localtion,填写database password后,按“Next”。如图:

(5)数据库配置

修改Inventory directory,Specify Operating System group name选:oinstall,然后“Next”,如图:


(6)Oracle安装前检查

检查一下有什么不符合安装要求,看是否需要修改配置,如果按照上面步骤下来,这里的warning应该为0,然后“Next”。

(7)Install Oracle 10g

直接按“Install”。

(8)Installing...

现在你可以去泡壶乌龙茶了......如果在虚拟机上安装,会花时间会更长些......Zzzzzzz

(9)Configuration Assistant

在软件安装完成之后,会自动进行Configuration Assistant的配置。

包括了Oracle Net Configuration Assistant,Oracle Database Configuration Assistant,iSQL*Plus Configuration Assistant的配置。

当Oracle Database Configuration Assistant配置完成时,会弹出一个确认框,里面记录了一些比较重要的信息,包括:SID,Server Parameter Filename以及Database Control URL等,如图:


这些信息以后比较有用,可以记录下来,然后“OK”。

(10)以root权限运行脚本

当iSQL*Plus Configuration Assistant配置完成时,会弹出一下框,里面有两个Srcipt需要你用root权限运行。


在Terminel中以root权限执行以上两个脚本:

[root@vmlincn80ce5 oradata]# ./orainstRoot.sh
Changing permissions of /data1/oradata to 770.
Changing groupname of /data1/oradata to oinstall.
The execution of the script is complete
[root@vmlincn80ce5 oracle]# ./root.sh
Running Oracle10 root.sh script...

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /data1/oracle

Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.

然后按“OK”。

(11)Oracle 10g安装完成

恭喜,Oracle 10g终于安装完成了:>,按“Exit”退出安装。


 

三.后记

    其实现在看来,安装Oracle 10g其实也并不是那么难搞,主要是在安装途中,可能会报出各种各样的Warnning/Error,这多数是系统缺少某些包导致的,如果把“【2.1】 准备安装”中的提到的包都装了,这类的问题应该基本上解决了(实在不行就Google吧...)。然后就是硬盘空间问题,每次Oracle安装都会在 /tmp下生成400MB左右的临时文件,如果安装中途出错退出的话,这些文件好像是不会自动删除的,所以记得把这些垃圾清掉,否则很容易导致硬盘空间不 足。



启动Oracle 10g

一.引言

    在上一篇《在CentOS5.3上安装Oracle 10g总结文档》中,我们成功地把Oracle 10g装上了,那么接下来的问题便是:如何启动Oracle数据库。

二.启动Oracle 10g

1.设置Oracle环境变量

    成功安装Oracle后,安装程序会自动把帮你设置相关的环境变量,但它并没有把这些信息写入.bash_profile文件,所以当机器重启后,这些环 境变量便会被清空掉。为了重启后不用重新设置这些烦人的环境变量,我们决定把这些信息写入.bash_profile。

(1)开打.bash_profile文件

vim /home/oracle/.bash_profile

(2)设置环境变量

    由于安装目录各异,所以大家要根据实际情况调整一下值。在.bash_profile文件的最后加入以下内容:

export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin

2.启动Oracle数据库

(1)登陆SQLPLUS

以Oracle身份登录后,启动并登陆SQLPLUS。

[oracle@vmlincn80ce5 admin]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Aug 16 14:41:27 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn sys/youpassword as sysdba
Connected to an idle instance.
SQL>

sys:一个Oracle默认账号。

yourpassword:你在安装Oracle时设置的密码。

(2)启动Oracle数据库

以sysdba的身份登陆SQLPLUS后,我们开始启动数据库实例。

SQL> startup
ORACLE instance started.

Total System Global Area 188743680 bytes
Fixed Size 778036 bytes
Variable Size 162275532 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
Database mounted.
Database opened.
SQL> exit

startup:启动数据库实例。因为之前我们设置了这样一个环境变量:ORACLE_SID=orcl ,所以这里启动数据库是:orcl。

exit:数据库实例启动完成后,退出SQLPLUS。

至此,数据库实例启动完成!接下来我简单介绍一下Oracle数据库实例启动流程:


整个流程大概可以分为3个部分,分别对应startup的3个参数:nomount,mount,open。

【1】加载spfile$ORACLE_SID.ora/init$ORACLE_SID.ora文件

    这两个文件在$ORACLE_HOME/dbs/目录下,他们的作用非常重要,因为里面记录很多重要的配置信息。一般Oracle会先加载 spfile$ORACLE_SID.ora文件,当spfile$ORACLE_SID.ora文件不存在时,加载 init$ORACLE_SID.ora文件,如果两个文件都不存在才报错。

    init$ORACLE_SID.ora是文本文件,spfile$ORACLE_SID.ora是二进制文件,在安装完成后,安装程序会用 init$ORACLE_SID.ora生成spfile$ORACLE_SID.ora文件,当然,我们可以手工生成spfile:

SQL> create spfile from pfile;

也可以通过spfile生成pfile:

SQL> create pfile from spfile;

由于spfile$ORACLE_SID.ora是二进制文件,如果需要修改启动配置,可以通过修改pfile配置后重新生成spfile文件,因为直接修改二进制文件很容易出错。

    这种状态只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!

    nomount参数使用实例:

SQL> startup nomount

【2】加载Control及数据文件

    Control文件包括control01.ctl ,control02.ctl ,control03.ctl这三个文件,文件在/data1/oradata/orcl目录下。

    这种状态和(3)的区别是,虽然加载了数据文件,但你还不能操作里面的数据。mount一般在进行数据库更名的时候采用

    mount参数使用实例:

SQL> alter database mount

【3】数据文件可读写

    在这种状态下,可以访问数据库中的数据了。

    open参数使用实例:

SQL> alter database open

如果startup不带参数,相当于执行以下3个命令:

SQL> startup nomount
SQL> alter database mount
SQL> alter database open

(3)开启监听器

    现在虽然是启动数据库成功了,但如果要其他机器上也能访问本地的数据库,则需要开启监听器。

【1】修改监听器配置

    监听器主要的配置文件是:$ORACLE_HOME/network/admin/listener.ora。我的listener.ora配置如下:

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PL***tProc)
(ORACLE_HOME = /data1/oracle)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /data1/oracle)
(SID_NAME = orcl)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST=10.20.212.255)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)

【2】开启监听器

lsnrctl start

    至此,我们完成了对监听器的开启。

【3】用PLSQL Developer测试连接数据库

    接下来,我们可以用PLSQL Developer测试一下,看数据库是否真的能连上。

    在远程的oracle_client上找到tnsnames.ora这个文件,并在文件中加上相应的配置信息,我加上的配置信息如下:

ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.20.212.255)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

    启动PLSQL Developer连接数据库:

 

三.结语

    数据库启动这一块花了我差不多2天的时间,其中很大一部分时间花在了了解OEM(Oracle Enterprise Manager)上,OEM是一个基于WEB的界面管理Oracle数据库的工具,使用相当方便,功能也非常强大,不过配置会有点麻烦,最直接方式还是使 用命令行启动。关于OEM的详解介绍,可以参考《》。

阅读(841) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~