oracle数据库技术实用详解(二)数据库安装

本文详细介绍了在Linux环境下安装Oracle 11g的全过程,包括硬件资源需求、操作系统配置、依赖包安装、Oracle用户创建、环境变量设置、核心参数调整、目录创建、解压安装文件、响应文件配置以及数据库创建。此外,还涉及到了监听程序的配置和启动。
摘要由CSDN通过智能技术生成

1.安装前准备

        硬件资源:Oracle 10g至少需要1GB内存,1.5GB的swap区域。所谓swap区域,是指用于物理内存里那些暂时用不到的数据临时交换到硬盘上,从而在物理内存中释放出一定空间给那些当前急需内存的进程使用。Oracle建议swap区域为物理内存大小的2倍。

        操作系统的临时目录至少400MB的可用空间。

        Oracle OFA概念:最佳灵活的体系结构。他是Oracle公司提出的如何设置Oracle软件所在目录以及数据库相关文件所在目录的指导。

  1.  Linux下对于mount点的命名应该采取/pm的格式,p表示字符常量,m表示固定长度的数字,通常长度为2 ,比如Oracle相关文件所在的mount点通常为/u01,/u02,/u03等。       

2.开始安装:

设置hostname

查看主机名 hostname
设置主机名 hostnamectl set-hostname oracle

        2.1 安装依赖包

                2.1.1 配置yum源

cd /etc
mv yum.repos.d yum.repos.d.bak
mkdir yum.repos.d
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache

                2.1.1 安装依赖包:

      

yum -y install binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel

                2.1.3 检查依赖是否安装完整:

        

rpm -q \
binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel | grep "not installed"

        如果发现缺少某个安装包可以单独安装,例如:

yum install pdksh -y

也可通过wget命令直接下载pdksh的rpm包,下载到至/tmp/

wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm

 安装pdksh:

rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

2.2 添加oracle用户组和用户

groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle

2.3 配置Oracle用户环境变量:

su - oracle  ## oracle用户登陆
 
vi .bash_profile
 
export ORACLE_HOSTNAME=oracle
export ORACLE_BASE=/db/app/oracle
export ORACLE_SID=ORCL
export ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/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/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 ~/.bash_profile
env

            

2.3 修改Linux核心参数:

        以root用户身份执行如下命令,在文件的末尾添加以下参数:

# kernel.shmmax 参数设置为物理内存的一半
vi /etc/sysctl.conf
## 内容如下:
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.shmmax = 2147483648
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=1048586

参数说明:

        fs.aio-max-nr: 同时可以拥有的的异步IO请求数目,默认值为1048576,不需要修改。

        fs.file-max:文件句柄的最大数量。文件句柄表示在Linux系统中可以打开的文件数量。

        shmall:系统一次可以使用的共享内存段的总容量(以页为单位),默认值为2097152,通常不需要修改。

        shmmax:单个进程能够使用的共享内存段的最大尺寸(以字节为单位)。默认为32MB,对于Oracle来说,该默认值太低了,通常设置为2GB,1024*1024*1024*2=2147483648。

        shmmni:设置系统范围内共享内存段的最大个数。该参数默认值4096,通常不用修改。

        sem:信号量。

        net.ipv4.ip_local_port_range :定义了本地tcp/udp的端口范围;
        net.core.rmem_default:接收套接字缓冲区大小的最大值;
        net.core.rmem_max:发送套接字缓冲区大小的默认值;
        net.core.wmem_default:发送套接字缓冲区大小的默认值;
        net.core.wmem_max:发送套接字缓冲区大小的最大值

    使用/sbin/sysctl -p 使修改生效。

修改limits.conf文件,增加系统用户的nofile和nproc的值

在文件末尾添加

*	soft	nproc	65536
*	hard	nproc	65536
*	soft	nofile	65536
*	hard	nofile	65536

其中,nofile表示操作系统用户可以同时打开的最大文件数;nproc表示单个用户同时可以执行的最大进程数量。

然后在/etc/pam.d/login文件末尾添加:

session  required   /lib64/security/pam_limits.so
session  required   pam_limits.so

修改/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使配置生效。

2.4 创建Oracle安装目录

mkdir -p /db/app/oracle/product/11.2.0
mkdir /db/app/oracle/oradata
mkdir /db/app/oracle/oraInventory
mkdir /db/app/oracle/fast_recovery_area
chown -R oracle:oinstall /db/app/oracle
chmod -R 775 /db/app/oracle

创建 /etc/oraInst.loc

inventory_loc=/db/app/oracle/oraInventory
inst_group=oinstall

oraInventory存放的是Oracle软件安装的目录信息,Oralce的安装升级都需要用到这个目录

oraInventory目录的位置是由oraInst.loc文件决定的。

授权:

chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc

解压oracle压缩文件到 /db:

# 上传linux.x64_11gR2_database_*of2.zip文件至/db/目录;
cd /db/
ls
unzip linux.x64_11gR2_database_1of2.zip -d /db
unzip linux.x64_11gR2_database_2of2.zip -d /db
 
# 解压完成后:
# 登录Root,复制授权
su - root
mkdir /home/oracle/etc/
cp /db/database/response/* /home/oracle/etc/
chmod 777 /home/oracle/etc/*.rsp
 
# 登录oracle用户:
su – oracle
vi /home/oracle/etc/db_install.rsp
## 信息如下:
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/db/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=oracle
ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/db/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.password.ALL=oracle
DECLINE_SECURITY_UPDATES=true

开始安装:

su - oracle
 
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
## 安装期间可以使用tail命令监看oracle的安装日志
 
tail -f /db/app/oracle/oraInventory/logs/installActions2019-05-25_10-38-29AM.log

安装完成,提示Successfully Setup Software.

使用root用户执行脚本:

su - root
/db/app/oracle/product/11.2.0/db_1/root.sh

配置监听程序:

[oracle@oracle bin]$ pwd
/db/app/oracle/product/11.2.0/db_1/bin
[oracle@oracle bin]$ ./netca /silent /responseFile /home/oracle/etc/netca.rsp

启动监听程序:

[oracle@oracle bin]$ pwd
/db/app/oracle/product/11.2.0/db_1/bin
# 启动监听
[oracle@oracle bin]$ lsnrctl start
# 查看监听状态
[oracle@oracle bin]$ lsnrctl start
 
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-MAY-2019 00:13:21
 
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                25-MAY-2019 00:05:55
Uptime                    0 days 0 hr. 7 min. 32 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /db/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /db/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1522)))
The listener supports no services
The command completed successfully
[oracle@oracle bin]$ 

静默dbca建库

编辑应答文件:

[oracle@oracle ~]$ vi /etc/dbca.rsp
GDBNAME="orcl.oracle" 
SID="orcl"
SYSPASSWORD = "oracle" 
SYSTEMPASSWORD = "oracle" 
CHARACTERSET="AL32UTF8" 
NATIONALCHARACTERSET="UTF8"
# 执行:
$ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值