文档库 最新最全的文档下载
当前位置:文档库 › centos静默安装Oracle 11g r2详细教程

centos静默安装Oracle 11g r2详细教程


先安装好centos 6.6版本的系统 (略)
要求:
内存:至少1G
swap:如果1-2G物理内存,最好设置swap为1.5-2倍的物理内存大小

如果swap大小太小,可以删除或者重新制作一个分区,当成swap用一样的。
#dd if=/dev/zero of=/swap bs=1M count=10000
#mkswap /swap
#swapon /swap //挂载这个swap
#swapon -s //查看swap分区

硬盘空间:
软件目录需要4G多点,数据库存入目录要2G左右,而且还要有400M左右的临时空间供安装时候的临时之用,这些空间对当今大容量磁盘来说已经毫无压力。


官方要求软件包
安装前的软件准备
参考官网安装手册
如果是64位系统,按照如下安装要求把i686软件也装上,否则安装时会报很多错误,无法成功安装

The following or later version of packages for Oracle Linux 6, and Red Hat Enterprise Linux 6 must be installed:
binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)

On Oracle Linux 6 and Red Hat Enterprise Linux 6:

unixODBC-2.2.14-11.el6 (x86_64) or later
unixODBC-2.2.14-11.el6.i686 or later
unixODBC-devel-2.2.14-11.el6 (x86_64) or later
unixODBC-devel-2.2.14-11.el6.i686 or later



————————————————————————————————————————————————————————————————————————————————————————
iptables 关闭

查看/etc/selinux/config 文件,确保SELINUX 为disabled状态
SELINUX=disabled
查看SELinux状态:getenforce
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
setenforce 1 设置SELinux 成为enforcing模式

————————————————————————————————————————————————————————————————————————————————————————
Centos 直接YUM安装即可

yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 gcc gcc-c++ glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-dev

el.i686 libaio libaio.i686 libaio-devel libaio-devel.i686 make sysstat

_________________________________________________________________________________________

开始配置

1.修改内核参数。

vim /etc/sysctl.conf 请根据自己实际情况修改,内核参数如下:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

sysctl -p 执行命令使内核参数生效。
报错解决方法:
modprobe bridge
lsmod|grep bridge

内核参数说明:
一、kernel.shmall参数是控制共享内存页数
kernel.shmall的单位是页面数,当前的x86体系上这个单位是4K ,oracle的默认安装参数是kernel.shmall = 2097152 则一共是8G的共享内存总量
总的来说,这个参数和你具体硬件关系不太大,只是大于8G的时候调整到合适你的内存容量大小,小于8G就不用了


对于32位系统,一页=4k,也就是4096字节。RHEL6.2 X64通过查询也是4096
查询操作系统页面大小
$getconf PAGESIZE
4096
kernel.shmall= 内存大小/页面大小
48*1024*1024*1024/4096=12582912(安装机器48G内存)
kernel.shmall=12582912
12582912*4096/1024/1024/1024=48G

二、kernel.shmmax
shmmax 指的是单个共享内存段的最大尺寸, 设置shmmax=1G,sga分配了1.2G,当启动实例的时候就分配2块共享内存给Oracle .如果物理内存是2 G, 假设这台DB Server上还有Apache 在运行,那么shmmax 中设置的内存也会被Apache 来使用,那么分配的2 块共享内存段给Oracle 是否就是2 * 1G , 还是仅仅满足SGA需求的1.2 G就停止分配, 其他的内存的一部分分配给Oracle PGA 和软件Apache 来使用?
一般情况下可以设置最大共享内存为物理内存的一半,如果物理内存是2G,则可以设置最大共享内存为1073741824,如上;如物理内存是1G,则可以设置最大共享内存为512 * 1024 * 1024 = 536870912;以此类推。
在redhat上最大共享内存不建议超过
4*1024*1024*1024-1=4294967295

三、kernel.shmmni参数是控制共享内存段总数
shmmni内核参数是 共享内存段的最大数量(注意这个参数不是 shmmin,是 shmmni, shmmin 表示内存段最小大小 ) 。shmmni 缺省值 4096 ,一般肯定是够用了 。


vim /etc/security/limits.conf 为oracle用户设置Shell限制

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 102405


2、创建oracle帐号和组
groupadd oinstall 创建oinstall组
groupadd dba 创建dba组
useradd -g oinstall -G dba oracle 创建用户oracle加入这两个组
id oracle 查看是否创建完成
passwd oracle

设置oracle密码

vim /etc/sudoers 将oracle使用者加入到sudo群组中,不使用sudo请忽略这句。
找到
root ALL=(ALL) ALL
这行,并且在底下再加入
oracle ALL=(ALL) ALL
输入wq!或者x!(由于这是一份只读文档所以需要再加上!)并且按下Enter


3、创建oracle安装时的目标目录
mkdir -p /opt/oracle/11g oracle安装目录
mkdir /opt/oracle/oradata oracle存放数据目录
mkdir /opt/oracle/oradata_back oracle存放数据备份文件
chmod 775 /opt/oracle
chown -R oracle:oinstall /opt/oracle 授权


4、修改oracle环境变量

vim /etc/profile

TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/opt/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/11g; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export CLASSPATH
export ORACLE_UNQNAME=orcl
export ORACLE_HOSTNAME=oracleserver


5、静默安装文件
解压oracle文件,进入response目录下
cp * /home/oracle
vim /home/oracle/db_install.rsp 修改静默安装配置文件。详细参考WORD文档。


6、开始安装oracle软件(用oracle用户登录):
./runInstaller -ignoreSysPrereqs -silent -noconfig -responseFile
各安装参数的含义如下:
-ignoreSysPrereqs 让Oracle忽略系统检查,因为Oracle官方声明只支持Linux服务器产品,所以要在非服务器产品的Linux上安装就必须指定此参数。
-silent 表示以静默方式安装,不会有任何提示
-force 允许安装到一个非空目录
-noconfig 表示不运行配置助手netca
-responseFile 表示使用哪个响应文件,必需使用绝对路径


出日志的时候按回车,等待,等出下面的提示。
返回:Successfully Setup Software 表示安装成功。


7、系统初始化,(root用户登录。运行以下两个脚本)
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/11g/root.sh


8、安装网络监听器(oracle登陆)

/opt/oracle/11g/bin/netca /silent /responseFile netca.rsp这个文件不用修改

注意:如果报JAVA错误,就是hostname没有修改,不能用默认的hostname,必须要修改,修改后重启解决。

Oracle Net Services configuration successful. The exit code is 0 启动成功

vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 oracleserver #记得加上hostname,教程是oracleserver不然启动监听报错。
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

/opt/oracle/11g/bin/lsnrctl start 启动监听程序
/opt/oracle/11g/bin/lsnrctl status 查看监听状态
netstat -tlnp 查看监听端口1521是否开启,开

启说明监听器开始工作。


9、安装数据库实例 (root身份登录)修改dbca.rsp文件。

RESPONSEFILE_VERSION = "11.2.0" //不能更改
OPERATION_TYPE = "createDatabase"
GDBNAME="orcl.oracleserver" 全局数据库的名字=SID+主机域名
SID="orcl" 数据库的SID
TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件
SYSPASSWORD="manager" SYS用户的初始密码
SYSTEMPASSWORD="manager" SYSTEM用户的初始密码
DATAFILEDESTINATION = /opt/oracle/oradata //数据文件存放目录
RECOVERYAREADESTINATION=/opt/oracle/oradata_back //恢复数据存放目录
CHARACTERSET="ZHS16GBK" 数据库字符集,重要!!!! 建库后一般不能更改(中文为 ZHS16GBK)
TOTALMEMORY = "800" //oracle内存800MB

(oracle身份运行安装命令)

/opt/oracle/11g/bin/dbca -silent -responseFile

建库后实例检查:
ps -ef | grep ora_ | grep -v grep


报错:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory

解决:
再输入sqlplus /nolog,回车
再输入 conn / as sysdba;回车
再输入startup,回车.这步是启动oracle服务。如果startup启动被告知已经启动了,可以先输入shutdown immediate;等shutdown结束之后,再输入startup。
过几秒钟等命令运行完成,就能连接了。这个时候,可以输入"select count(*) from user_tables;"测试一下,看是否有查询结果。


10、修改数据库为归档模式(归档模式才能热备份,增量备份)
export ORACLE_SID=oral
sqlplus / as sysdba

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database flashback on;
SQL> alter database open;
SQL> execute utl_recomp.recomp_serial();
SQL> alter system archive log current;

11、修改oracle启动配置文件
vim /etc/oratab
racl:/opt/oracle/11g:Y //把“N”改成“Y”

这样就可以通过dbstart 启动此实例,也可以通过dbshut关闭此实例了。
dbshut /opt/oracle/11g //关闭实例,此时所有oracle的进程关闭,监听器也停止。
dbstart /opt/oracle/11g //开启实例,此时所有oracle的进程启动,监听器也启动。
lsnrctl status 查看监听状态。



12、以上就是安装的全部过程,如果想使用OEM管理和监控数据库,就要启动dbconsole了。

emctl start dbconsole 启动dbconsole(报错)

Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.

解决步骤:
1.修改DBSNMP密码:
重新配置DBCONSOLE,需要输入DBSNMP密码,但任何密码都会显示错误,需要预先修改。
sql>alter user dbsnmp identified by manager;

SQL> drop user sysman cascade;
SQL> drop role MGMT_USER;
SQL> drop user MGMT_VIEW cascade;
SQL> drop public synonym MGMT_TARGET_BLACKOUTS;
SQL> drop public synonym SETEMVIEWUSERCONTEXT;


4.删除

数据库的 Database Control配置
emca -deconfig dbcontrol db

5.删除EM资料库
emca -repos drop

6.对EM资料库和Database Control重新创建
emca -config dbcontrol db -repos create

反馈信息
WARNING:

************************ WARNING ************************



Management Repository has been placed in secure mode wherein Enterprise Manager data will be encrypted. The encryption key has been placed in the file: /apps/product/11.2.0/db_home/xbfye7l01_E7DEV/sysman/config/emkey.ora. Please ensure this file is backed up as the encrypted data will become unusable if this file is lost.



***********************************************************

Enterprise Manager configuration completed successfully


成功!!


7、启动em
emctl start dbconsole
netstat -tunpl |grep 1158 查看是否启动成功

用浏览器访问https://IP:1158/em



启动和关闭Oracle

(以oracle用户登录)

检查看看监听器是否有启动
lsnrctl status
如果没有启动,可以输入:
lsnrctl start

启动Oracle实例
以sysdba身份登入数据库,输入:
sqlplus sys as sysdba
输入密码。(显示SQL>)
接着请输入
SQL> startup
就可以正常的启动数据库了。
备注:也可以用$ORACLE_HOME/bin/dbstart启动数据库实例


关闭数据库实例
SQL> shutdown immediate
备注:也可以用 $ORACLE_HOME/bin/dbstart 启动数据库实例

关闭监听
lsnrctl stop


让Oracle运行为服务
(1) 以root身份登录
(2) 创建文件 /etc/init.d/oracle,输入下列内容


#!/bin/sh
# chkconfig: 35 80 10
# description: Oracle auto start-stop script.

#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.
ORA_HOME=/opt/oracle/11g
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
# Start the Oracle databases:
echo "Starting Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >>/var/log/oracle
echo "Done"

# Start the Listener:
echo "Starting Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >>/var/log/oracle
echo "Done."
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Finished." >> /var/log/oracle
echo "-------------------------------------------------" >>

/var/log/oracle
touch /var/lock/subsys/oracle
;;

'stop')
# Stop the Oracle Listener:
echo "Stoping Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle

# Stop the Oracle Database:
echo "Stoping Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >>/var/log/oracle
echo "Done."
echo ""
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Finished." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
;;

'restart')
$0 stop
$0 start
;;
esac


添加运行权限
chmod a+x /etc/init.d/oracle
添加服务
chkconfig --level 35 oracle on
chkconfig --list oracle #查看服务信息


这样就可以用service oracle start|stop|restart来启动、停止和重启Oracle了

相关文档