新项目要用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<SID>服务已经启动
启动服务: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<<EOO lsnrctl start sqlplus sys/admin as sysdba<<EOS startup quit EOS emctl start dbconsole EOO ;; stop) echo "close oracle" su - oracle<<EOO lsnrctl stop sqlplus sys/admin as sysdba<<EOS shutdown immediate quit EOS emctl stop dbconsole EOO ;; *) echo "follow start or stop" ;; esac
exit
|