新项目要用oracle数据库,于是折腾了sybase后再来折腾oracle,由于用的是rhel5.4与oracle10g不太兼容,又是折腾几天,最后终于搞定了,以下是这几天折腾的结果,部分内容从其他有经验的网友那里拷贝过来的。安装时只要 根据实际需要改一下目录就可以了。
cpio –idcmv < 10201_database_linux_x86_64.cpio
解压后的目录权限改为oracle用户可以修改。
<配置系统参数>
找到文件/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 # 应用程序可使用的IPv4端口范围。
net.core.rmem_default = 1048576 # 套接字接收缓冲区大小的缺省值
net.core.rmem_max = 1048576 # 套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144 # 套接字发送缓冲区大小的缺省值
net.core.wmem_max = 262144 # 套接字发送缓冲区大小的最大值
运行以下命令使得内核参数生效:
/sbin/sysctl -p
<修改limits.conf文件参数> (/etc/security/limits.conf)
在文件末尾s添加如下内容:
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
<修改login文件>(/etc/pam.d/login)
在文件末尾加上如下内容:
session required /lib/security/pam_limits.so
<关闭selinux>(/etc/selinux/config)
把secure linux设成无效:
SELINUX=disabled
<修改hosts文件>(/etc/hosts)
加上如下内容:(可参考127.0.0.1那条配置)
你的ip地址 主机名 localhost (例如:192.168.1.2 computer localhost)
(删除127.0.0.1那条,*注意删掉后,会衍生一个问题,就是xstart连不上,需要用到xstart时可以手动加回去就行了)
<修改系统版本>(/etc/redhat-release)
将RedHat Enterprise Linux Server release 5.4 (Tikanga) 中5.4 该为4(安装成功后再改为5.4)
<新增组和用户>
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
<创建安装目录并授权给oracle用户>
mkdir -p /oracle/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /oracle
<修改.bash_profile文件> (这个文件是在你创建的oracle用户的根目录下)
切换到oracle 用户在文件末尾加入如下内容:
su - oracle
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$PATH:$ORACLE_HOME/bin; export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JREORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
<为安装文件授权>
将安装文件解压到/tmp目录下,并授使用权
cd /tmp
cpio –idcmv < 10201_database_linux_x86_64.cpio
#chmod -R 775 /tmp/database
#chmod -R 775 /tmp/database
<开始安装Oracle 10g>
在root用户下打开一个终端执行以下操作:
xhost + (非常重要,否则会包Xstart错误)
再开一个终端并切换oracle用户,执行如下操作:
#su - oracle
$export LANG=en_US (这里要注意了,不设置用英文显示,安装界面会出现乱码或有些文字看不到)
$cd /tmp/database
$./runInstaller –ignoreSysPrereqs
注意有时会包缺少libXp.so.6这个库,可以用命令 rpm -qf /usr/lib/libXp.so.6查出来是在哪个
rpm包里的。一般是在 libXp-1.0.0-8.1.el5.i386.rpm 这个包里,装上就可以了
安装过程(略...)
*安装到最后处理sqlplus时,系统会要求用root账户执行两个脚本,这时可以在刚才的第一个终端(root)上按提示找到要执行的脚本然后执行后继续操作
数据库安装成功......!
<启动监听>
在oracle用户下找到/oracle/app/oracle/product/10.2.0/db_1/bin
执行./lsnrctl service(可以查看当前监听器服务情况)
执行./lsnrctl start(启动监听)
执行./lsnrctl stop(停止监听)
<启动数据库>
用oracle账户登录系统,执行如下命令:
$sqlplus /nolog
SQL>connect /as sysdba
Connected to an idle instance
SQL>startup 启动数据库(启动成功,就可以松一口气了)
SQL>shutdown 关闭数据库
<启动EM>
默认情况下,安装Oracle时,会安装EM,它是位于数据库服务器上的HTTP服务器
启动EM,要确保OracleDBConsole服务已经启动
启动服务:emctl start dbconsole
关闭服务:emctl stop dbconsole
访问EM:http://服务器名(或IP):端口(5500或1158)/em
端口号可在$ORACLE_HOME/install/protlist.ini中找到.
-----------------------相关命令-----------------------------
#启动数据库
sqlplus sys/admin as sysdba
startup
#创建用户并设定密码
create user abc identified by pwd;
#授予新用户权限
grant connect to abc;
grant create table to abc;
#添加用户
add user username identified by pawss
#授予新用户权限
grant connect to username
grant dba to username
#显示登录用户
show user
#显示参数配置
show parameter
#执行图形化配置功能,如果启动失败要用root用户执行一下 xhost + 在切换到oracle用户执行
netmgr //配置服务
lsnrctl status(可以查看当前监听器服务情况)
lsnrctl start(启动监听)
lsnrctl stop(停止监听)
#查看数据信息
select open_mode from v$database
sqlplus sys/admin as sysdba
shutdown immediate
startup
#查看优化信息
select name,value from v$parameter where name='optimizer_mode'
---------------------------启动脚本-------------------------------------
#!/bin/sh
if [ $# -ne 1 ]; then
echo "parameter number is wrong"
exit
fi
cd /emv/
. .emv_profile
#echo $LD_LIBRARY_PATH
case $1 in
start)
echo "start oracle"
su - oracle< lsnrctl start
sqlplus sys/admin as sysdba< startup
quit
EOS
emctl start dbconsole
EOO
;;
stop)
echo "close oracle"
su - oracle< lsnrctl stop
sqlplus sys/admin as sysdba< shutdown immediate
quit
EOS
emctl stop dbconsole
EOO
;;
*)
echo "follow start or stop"
;;
esac
exit