Oracle数据库安装

1. 准备工作

1.1 硬件检测

物理内存不少于1G
硬盘可以空间不少于5G
swap分区空间不少于2G
支持256色以上显卡
cpu主频不小于550mHZ

cat /etc/issue
uname -r 
grep MemTotal /proc/meminfo 
grep SwapTotal /proc/meminfo 
grep "model name" /proc/cpuinfo 
free 
df -k /tmp 
df -k

关闭SELinux

1.2 安装依赖包

yum install unixODBC unixODBC-devel libaio libaio-devel libstdc++ libstdc++-devel libgcc libgomp kernel-headers sysstat numactl-devel make ksh glibc-headers glibc-devel glibc-common glibc gcc-c++ gcc elfutils-libelf-devel elfutils-libelf compat-libstdc++ binutils

1.3 创建组及用户

/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -g oinstall -G dba oracle
passwd oracle

1.4 检测内核参数

修改内核参数
vim /sbin/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

修改后,使设置生效
/sbin/sysctl -p

1.5 修改用户限制

  • vi /etc/security/limits.conf
    增加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
  • vi /etc/pam.d/login
    增加以下内容
    session required /lib/security/pam_limits.so
    session required pam_limits.so

  • vi /etc/profile

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

使设置生效
source /etc/profile

1.6 创建安装目录

mkdir -p /mnt/installer/orcale
chown -R orcale:oinstall /mnt/installer/orcale
chmod -R 755 /mnt/installer/orcale

  • 创建/etc/oraInst.loc文件,内容如下
nventory_loc=/usr/oracle/oraInventory
inst_group=oinstall
  • 更改文件的权限
    chown oracle:oinstall /etc/oraInst.loc
    chmod 664 /etc/oraInst.loc

1.7 设置环境变量

su - oracle
vim ~/.bash_profile
增加以下内容

umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl

使设置生效
source /home/oracle/.bash_profile

检查环境变量env

2. 安装Oracle

2.1 复制响应文件模板

  • 解压Oracle安装文件
    mkdir etc
    cp /home/oracle/database/response/* /home/oracle/etc/

  • 设置响应文件权限
    su - root
    chmod 700 /home/oracle/etc/*.rsp

  • 修改安装Oracle软件的响应文件
    su - oracle
    vim /home/oracle/etc/db_install.rsp
    修改以下内容

oracle.install.option=INSTALL_DB_SWONLY  //29 行 安装类型
ORACLE_HOSTNAME=java-linux-test  //37 行 主机名称
UNIX_GROUP_NAME=oinstall  //42 行 安装组
INVENTORY_LOCATION=/home/oracle/oraInventory //47 行 INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN,zh_TW        //78 行 选择语言
ORACLE_HOME=/u01/app/oracle/11.2.0/db_1 //83 行 oracle_home
ORACLE_BASE=/u01/app/oracle //88 行 oracle_base
oracle.install.db.InstallEditi·on=EE    //99 行 oracle版本
oracle.install.db.isCustomInstall=false //108行 自定义安装
oracle.install.db.DBA_GROUP=dba  //142行 dba用户组
oracle.install.db.OPER_GROUP=oinstall   //147行 oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl    //165行 globalDBName
oracle.install.db.config.starterdb.SID=orcl   //170行 SID
oracle.install.db.config.starterdb.memoryLimit=512      //192行 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle  //233行 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true   //385行 设置安全更新

2.2 开始静默安装

cd database
./runInstaller -ignorePrereq -silent -force -responseFile /home/oracle/etc/db_install.rsp
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp
安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。
查看安装日志信息了解安装进度

执行相关脚本
su - root
/mnt/installer/orcale/11.2.0/db_1/root.sh
/usr/oracle/oraInventory/orainstRoot.sh

2.3 增加oracle环境变量

su - oracle
vi ~/.bash_profile
添加以下内容(具体路径,根据实际路径修改)

export ORACLE_HOME=$ORACLE_BASE/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data

使设置生效
source /home/oracle/.bash_profile

3. 部署数据库

3.1 静默配置网络

$ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp

3.2 静默安装数据库

修改仅安装数据库的响应文件
vim /home/oracle/etc/dbca.rsp
修改以下内容

GDBNAME="orcl.java-linux-test" //78 行 全局数据库的名字=SID+主机域名
SID="orcl"    //149行 SID
CHARACTERSET="AL32UTF8"        //415行 编码
NATIONALCHARACTERSET="UTF8"    //425行 编码

进行静默安装数据库
$ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp

安装完成

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

建库后监听检查
lsnrctl status

3.3 启动数据库

  • 修改oracle启动配置文件
    su - oracle
    vi /etc/oratab
    orcl:/usr/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”

  • 启动 dbstart $ORACLE_HOME

  • 关闭 dbshut $ORACLE_HOME

再次查看监听器状态。
lsnrctl status

3.4 使用归档日志

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; (手工归档测试)
默认安装的数据库用户检查
SQL> set lines 256 pages 500;
SQL> select USER_ID,USERNAME,ACCOUNT_STATUS,DEFAULT_TABLESPACE from dba_users order by 1;

4. 附:故障

4.1 问题一:

The Oracle system identifier(SID) "xxx" already exists. Specify another SID
解决办法:
1、删除/mnt/installer/oracle/admin下的xxx文件
2、删除/mnt/installer/oracleoradata下的xxx文件夹
3、用root用户以远程登录模式编辑etc/oratab,删除最后一 行:xxx:/mnt/installer/oracle/11.2.0/db_1:N,保存 退出问题解决。

监听检查 lsnrctl status

4.2 问题二:

lsnrctl: error while loading shared libraries: /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied
解决办法:关闭SELinux
su - root
setenforce 0

原文地址:https://www.cnblogs.com/cy-8593/p/9505030.html