Linux 安装 Oracle
...大约 5 分钟
Linux 安装 Oracle
一、安装依赖包
1.1 安装 Oracle11GR2 所需要的
#一句命令:
yum -y install gcc gcc-c++ make binutils compat-libstdc+±33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc+±devel numactl-devel sysstat unixODBC unixODBC-devel kernelheaders pdksh pcre-devel readline rlwrap
#作为依赖被安装:
cpp.x86_64 0:4.8.5-44.el7
glibc-headers.x86_64 0:2.17-324.el7_9
kernel-headers.x86_64 0:3.10.0-1160.36.2.el7
libstdc++-devel.x86_64 0:4.8.5-44.el7
zlib-devel.x86_64 0:1.2.7-19.el7_9
#更新完毕:
glibc.x86_64 0:2.17-324.el7_9 glibc-common.x86_64 0:2.17-324.el7_9
#作为依赖被升级:
zlib.x86_64 0:1.2.7-19.el7_9
#完毕!
[root@localhost vsftpd]#
1.2 创建用户组及文件夹
创建用户组:groupadd oinstall
创建用户组:groupadd dba
创建用户并添加到用户组:useradd -g oinstall -G dba oracle
groupadd oinstall
roupadd dba
useradd -g oinstall -G dba oracle
设置密码:
echo "123456"| passwd --stdin oracle
创建安装目录及权限:
mkdir -p /data/u01/app/oracle/product/11.2.0/dbhome_1
mkdir /data/u01/app/oracle/{oradata,inventory,fast_recovery_area}
chown -R oracle:oinstall /data/u01/app/oracle
chmod -R 775 /data/u01/app/oracle
1.3 上传安装包
创建一个目录存放安装包:
mkdir -p /data/u01/software
通过 ftp 工具上传,查看是否上传成功:
cd /data/u01/software
ls
解压 :
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
cd database
ls
二、修改配置文件
2.1 修改内核文件:
vim /etc/sysctl.conf
在文件末尾添加内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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
2.2 修改用户限制
vim /etc/security/limits.conf
在文件末尾添加内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
2.3 修改/etc/pam.d/login 文件
vim /etc/pam.d/login
#添加内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth substack system-auth
auth include postlogin
account required pam_nologin.so
account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
#添加内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
session required pam_selinux.so close
session required pam_loginuid.so
session optional pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include system-auth
session include postlogin
2.4 修改/etc/profile 文件
vim /etc/profile
添加内容:
#oracle配置
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
#oracle配置
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
if [ -x /usr/bin/id ]; then
if [ -z "$EUID" ]; then
# ksh workaround
EUID=`/usr/bin/id -u`
UID=`/usr/bin/id -ru`
fi
USER="`/usr/bin/id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
2.5 设置 oracle 用户环境变量
先切换到 oracle 用户:
su - oracle
编辑文件:
vim .bash_profile
#添加内容:
export ORACLE_BASE=/data/u01/app/oracle
export ORACLE_HOME=/data/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=$ORACLE_SID
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=american_america.AL32UTF8
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
执行:source .bash_profile
使变量马上生效:
source .bash_profile
2.6 修改静默安装响应文件
拷贝备份一份响应文件,命令:
cp -R /data/u01/software/database/response/ .
cd response/
查看主机名:
hostname
# 输出:localhost.localdomain
执行:
vim db\_install.rsp
修改内容:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=自己的主机名(就是:localhost.localdomain)
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/data/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
-oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
-oracle.install.db.config.starterdb.globalDBName=ora11g
-oracle.install.db.config.starterdb.SID=ora11g
-oracle.install.db.config.starterdb.memoryLimit=1024
-oracle.install.db.config.starterdb.password.ALL=oracle
-oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
DECLINE_SECURITY_UPDATES=true
三、安装
3.1 安装 Oracle
切换到解压的安装包目录:
cd /data/u01/software/database/
执行:
./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
已开始安装;等待安装成功; 如果想看安装进度,可以再打开一个窗口,输出会话日志:
tail -f /data/u01/app/oracle/inventory/logs/installActions2021-08-17\_03-38-02PM.log
软件安装成功
3.2 执行脚本
安装成功后有两个脚本需要到 root 身份执行,按提示执行一下即可:
sh /data/u01/app/oracle/inventory/orainstRoot.sh
sh /data/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
启用 sqlplus
su - oracle
sqlplus / as sysdba
# bash: rlwrap: 未找到命令...
# (可以肯定sqlplus我们肯定是有的)根据提示应该是rlwrap没有安装,另我们在.bash_profile中设置了alias sqlplus=‘rlwrap sqlplus’,所以会出错。
3.3 安装 rlwrap
安装 yum 存储库:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
安装 rlwrap:
yum install rlwrap centos 7
3.4 测试 SQLPLUS 链接
su - oracle
sqlplus / as sysdba
SQL> exit
Disconnected
3.5 配置服务端监听
监听命令:
- 启动监听:
lsnrctl start
- 停止监听:
lsnrctl stop
- 重启监听:
lsnrctl reload
- 查看监听:
lsnrctl status
配置监听(使用 oracle 用户):
su - oracle
$ORACLE_HOME/bin/netca /silent /responseFile /data/u01/software/database/response/netca.rsp
查看监听(使用 oracle 用户):
lsnrctl status
# 查看监听状态
lsnrctl status
静默 dbca 建库:
su - root # 切换到 root 用户
vim /data/u01/software/database/response/dbca.rsp
修改以下内容:
GDBNAME = "orcl" # 78 行
SID="orcl" # 149行
CHARACTERSET="AL32UTF8" # 415行
NATIONALCHARACTERSET="UTF8" # 425行
静默 dbca 建库:
su - oracle # 切换到 oracle 用户
$ORACLE_HOME/bin/dbca -silent -responseFile /data/u01/software/database/response/dbca.rsp # 建库
执行完后会先清屏,清屏之后没有提示,直接输入 oracle 用户的密码,回车,再输入一次,再回车。稍等一会,会开始自动创建.
输入 SYS 用户口令:
12345678
输入 SYSTEM 用户口令:
12345678
复制数据库文件
1% 已完成
3% 已完成
11% 已完成
18% 已完成
26% 已完成
37% 已完成
正在创建并启动 Oracle 实例
40% 已完成
45% 已完成
50% 已完成
55% 已完成
56% 已完成
60% 已完成
62% 已完成
正在进行数据库创建
66% 已完成
70% 已完成
73% 已完成
85% 已完成
96% 已完成
100% 已完成
有关详细信息, 请参阅日志文件 "/data/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log"。
[oracle@localhost ~]$
启动数据库 :
sqlplus / as sysdba
SQL>startup
SQL> select table_name from dba_tables
配置开机自动启动监听、启动 Oracle
su - root # 切换到 root 用户
vim /etc/oratab # 编辑
#
# This file is used by ORACLE utilities. It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.
# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
orcl:/data/u01/app/oracle/product/11.2.0/dbhome_1:N
将最后一行的 N 改为 Y,保存并退出
修改 rc.local:
vim /etc/rc.local
在文件末尾增加如下内容:
su - oracle -c 'dbstart'
su - oracle -c 'lsnrctl start'
配置文件权限
chmod +x /etc/rc.local # 配置文件权限
开放 1521 端口(远程连接 Oracle 所需)
#查看端口是否开放:
firewall-cmd --query-port=1521/tcp
#永久开放1521端口号:
firewall-cmd --permanent --zone=public --add-port=1521/tcp
#重启防火墙:
systemctl restart firewalld.service
#查看防火墙状态:
systemctl status firewalld.service
Powered by Waline v3.3.0