CentOS 7.9静默安装oracle 11.2.0.4数据库

1,634 阅读3分钟

安装环境

  • 操作系统:Centos 7.9
  • 数据库版本:oracle 11.2.0.4
  • 内存:4G
  • 网络:公网

安装步骤

1.关闭防火墙、selinux

systemctl stop firewalld.service
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0

2.禁用THP(Transparent Huge Pages)

Snipaste\_2025-02-26\_11-02-44.png
vim /etc/rc.d/rc.local
#增加下列内容
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

#保存退出,给rc.local执行权限
chmod +x /etc/rc.d/rc.local 
reboot

检查是否关闭成功,如下输出则是关闭成功

[root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/defrag 
always madvise [never]

3.创建用户和用户组

groupadd oinstall
groupadd dba
#创建oracle用户,并加入到oinstall和dba用户组
useradd -g oinstall -G dba -m oracle
#查询用户组是否授权成功
groups oracle
#设置用户密码
passwd oracle
#查看新建的oracle用户
id oracle

4.配置系统内核参数

vim /etc/sysctl.conf
#添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
#kernel.shmall=内存*1024*1024*1024/4096
kernel.shmall = 1048576
#内存4G,kernel.shmmax=4*0.5*1024*1024*1024
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 500 64000 500 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

5.修改用户限制文件

vim /etc/security/limits.conf
#添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

vim /etc/pam.d/login
#添加以下内容
session required /lib64/security/pam_limits.so
session required pam_limits.so

vim /etc/profile
#加入以下内容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi 

6.创建oracle主目录

mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01

7.配置oracle用户的环境变量

su - oracle
vim ~/.bash_profile
#添加一下内容 
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=American_america.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin

#使配置文件生效
source ~/.bash_profile

8.安装oracle

su - root
#安装需要的依赖包
yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
mkdir /tmp/oracle
#将安装包上传/tmp/oracle目录并解压
cd /tmp/oracle
unzip Oracle_112040_Linux-x86-64_1of7.zip
unzip Oracle_112040_Linux-x86-64_2of7.zip
chown -R oracle:oinstall /tmp/oracle/database

辑静默安装响应文件

cd /tmp/oracle/database/response/
cp db_install.rsp db_install.rsp.bak
#去掉注释和空行
sed -i '/^#/d;/^$/d' db_install.rsp
#修改安装配置文件信息
vim db_install.rsp
#修改以下内容 
oracle.install.option=INSTALL_DB_SWONLY 
ORACLE_HOSTNAME=oracle 
UNIX_GROUP_NAME=oinstall 
INVENTORY_LOCATION=/u01/app/oracle/inventory 
SELECTED_LANGUAGES=en,zh_CN 
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 
ORACLE_BASE=/u01/app/oracle 
oracle.install.db.InstallEdition=EE 
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.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.password.ALL=oracle
DECLINE_SECURITY_UPDATES=true 

开始安装

su - oracle
cd /tmp/oracle/database/
./runInstaller -silent -responseFile /tmp/oracle/database/response/db_install.rsp -ignorePrereq
1.png

切换到root用户执行上述的脚本

su - root
/u01/app/oracle/inventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh

9.创建数据库实例

su - oracle
cd /tmp/oracle/database/response/
cp dbca.rsp dbca.rsp.bak
#去掉注释和空行
sed -i '/^#/d;/^$/d' dbca.rsp
vim dbca.rsp
#修改以下配置
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION = /u01/app/oracle/oradata
RECOVERYAREADESTINATION = /u01/app/oracle/fast_recovery_area
CHARACTERSET = "ZHS16GBK"
#我这边设置TOTALMEMORY = 物理内存*75% MB
TOTALMEMORY = "3072"
TEMPLATENAME = "General_Purpose.dbc"

执行安装命令

dbca -silent -responseFile /tmp/oracle/database/response/dbca.rsp

2.png

测试

3.png

10.配置监听程序

HOST记得修改

su - oracle
netca /silent /responseFile /tmp/oracle/database/response/netca.rsp
vim /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
#修改以下内容
LISTENER =
  (DESCRIPTION =
     (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.68.130)(PORT = 1521))
     )
   )
   
SID_LIST_LISTENER =
	(SID_LIST =
		(SID_DESC =
			(GLOBAL_DBNAME = orcl)
			(SID_NAME = orcl)
			(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
			(PRESPAWN_MAX = 20)
			(PRESPAWN_LIST =
				(PRESPAWN_DESC = (PROTOCOL = tcp)(POOL_SIZE = 2)(TIMEOUT = 1))
			)
		)
	)
ADR_BASE_LISTENER = /u01/app/oracle

4.png

vim /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
#修改以下内容
orcl =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.68.130)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
lsnrctl stop
lsnrctl start

5.png

此时可以通过plsql连接到数据库服务器了

11.设置自启动

vim /etc/oratab
#修改以下配置
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y
vim /etc/rc.d/rc.local
#添加以下配置
su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start
su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
#如果是在以前的centos版本中,这样就可以了。但是centos7 的/etc/rc.local不会开机执行
chmod +x /etc/rc.d/rc.local

完全卸载删除Oracle数据库

#使用SQL*PLUS停止数据库
sqlplus / as sysdba
SQL> shutdown
SQL> exit
#停止Listener
[oracle@ora920 oracle]$ lsnrctl stop
#停止HTTP服务
[oracle@ora920 oracle]$ $ORACLE_HOME/Apache/Apache/bin/apachectl stop
#将安装目录删除
[root@ora920 /root]# rm -rf /opt/oracle/
#将/usr/bin下的文件删除
[root@ora920 /root]# rm /usr/bin/dbhome
[root@ora920 /root]# rm /usr/bin/oraenv
[root@ora920 /root]# rm /usr/bin/coraenv
#将/etc/oratab删除
[root@ora920 /root]# rm /etc/oratab
#将/etc/oraInst.loc删除
[root@ora920 /root]# rm /etc/oraInst.loc
#把$ORACLE_HOME下面的文件删掉
[root@centos213 /]# $ORACLE_HOME
-bash: /usr/oracle/product: Is a directory

rm -rf /opt/oracle/
#将oracle用户删除
[root@ora920 /root]# userdel oracle
#将用户组删除
[root@ora920 /root]# groupdel oinstall
[root@ora920 /root]# groupdel dba
#将启动服务删除
[root@ora920 /root]# chkconfig --del dbora

问题记录

1.ORACLE修改字符集修改为ZHS16GBK

参照链接

SQL> shutdown immediate; 
SQL> startup mount 
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; 
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> alter database openSQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 
SQL> shutdown immediate; 
SQL> startup

2.导入dmp文件时报错ORA-39006: internal error ORA-39213: Metadata processing is not available

SQL> execute sys.dbms_metadata_util.load_stylesheets;

3.创建dblink 时候出现us.oracle.com 而使数据库链连接不上

参照链接

4.问题:LRM-00109: could not open parameter file '/home/oracle/app/oracle/product/11.2.0/db_1/dbs/initorcl.ora'

设置$oracle_home/.bash_profile 里面ORACLE_SID为安装实例名