CentOS7静默安装Oracle12c
oracle12c 下载链接
# oracle 12.1.0.2.0 版本是下边俩包
V46095-01_1of2.zip
V46095-01_2of2.zip
# oracle 12.2.0.2.0 版本是下边俩包
V46096-01_1of2.zip
V46096-01_2of2.zip
# oracle 客户端软件包是下边这个包
V46097-01.zip
# 安装说明文档(简版)是下边这个文件
centos7_install_oracle12c.html
1、基础环境
ami信息
CentOS-7-2111-20220408.x86_64
2、系统配置部分
2.1、修改主机名
#切换到root
sudo su -
#设置时区
timedatectl set-timezone Asia/Shanghai
#hostnamectl set-hostname oracle12c
2.2、添加本机解析
echo "$(hostname -I || hostname -i) oracle12c" >> /etc/hosts
2.3、关闭selinux
vi /etc/selinux/config
SELINUX=disabled --修改
2.4、安装依赖包
yum -y install wget unzip binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33i686 compat-libstdc++-33.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++.i686 libstdc+±devel libstdc+±devel.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
2.5、检查是否安装成功
rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
2.6、配置swap
# count后面的值根据机器内存大小进行设置,oracle官方建议内存大于16G设置为16G,但是设置16G在进行软件安装时的条件检查时提示交换空间不足,故此设置为20
dd if=/dev/zero of=/swapfile bs=1G count=20
mkswap /swapfile
chmod 600 /swapfile
swapon /swapfile
echo "swapon /swapfile" >> /etc/rc.local ; chmod +x /etc/rc.d/rc.local
#检查swap
free -m
2.7、调整系统内核参数
# kernel.shmall : 机器内存/4096
# kernel.shmmax: 机器内存的3/4
# (256GB内存的 kernel.shmall =67108864, kernel.shmmax =206158430208)
vi /etc/sysctl.conf
#异步IO请求数目 推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个
fs.aio-max-nr = 1048576
#打开的文件句柄的最大数量,防止文件描述符耗尽的问题
fs.file-max = 6815744
#共享内存总量 页为单位,机器内存除以4K所得
kernel.shmall = 67108864
#SEMMSL: 每个信号集的最大信号数量 SEMMNS:用于控制整个 Linux 系统中信号的最大数 SEMOPM: 内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量 SEMMNI :内核参数用于控制整个 Linux 系统中信号集的最大数量
kernel.shmmax = 206158430208
kernel.shmmni = 4096
kernel.sem = 250 32000 100 200
#用于向外连接的端口范围
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
2.8、重新加载内核配置
sysctl -p
2.9、使用pam_limites认证模块
vi /etc/pam.d/login
#在内容末尾添加以下两行数据
session required /lib/security/pam_limits.so
session required pam_limits.so
2.10、编辑limits.conf配置
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
oracle hard stack 10240
2.11、编辑profile文件
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
3、用户及安装目录配置
3.1、创建oracle用户
# 1.创建oinstall和dba组
groupadd oinstall
groupadd dba
# 2.创建oracle用户
useradd -g oinstall -G dba oracle
# 3.设置oracle密码
passwd oracle
# 4.查看创建结果
id oracle
3.2、创建目录
mkdir -p /u01/app/
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/
4、配置oracle用户
4.1、切换到oracle用户下
su - oracle
4.2、oracle 用户环境配置
vi ~/.bash_profile
#添加
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12/db_1
export ORACLE_SID=DBUIS
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LANG='zh_CN.gbk'
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
export NLS_DATE_FORMAT='DD-MON-RR'
#使配置生效
source ~/.bash_profile
5、上传数据库压缩包
5.1、创建一个文件夹
mkdir oradb
cd oradb
5.2、下载文件到oradb文件夹
wget https://download.wfc.center/%E6%95%B0%E6%8D%AE%E5%BA%93/oracle/12c/V46095-01_1of2.zip
wget https://download.wfc.center/%E6%95%B0%E6%8D%AE%E5%BA%93/oracle/12c/V46095-01_2of2.zip
5.3、解压
unzip \*.zip
5.4、复制相应的模板
mkdir /home/oracle/etc
cp /home/oracle/oradb/database/response/* /home/oracle/etc/
#这里的cp指令路径要根据上个步骤,解压压缩版的路径灵活变通。
#退出到root
exit
#将文件上传至/home/centos目录下,复制文件到 /home/oracle/etc/ 下,覆盖文件
cp /home/centos/*.rsp /home/oracle/etc/
#设置权限
chown -R oracle:oinstall /home/oracle/etc
chmod 700 /home/oracle/etc/*.rsp
5.5、静默安装文件配置
#切换到oracle用户
su - oracle
5.6、编辑/home/oracle/etc/db_install.rsp(5.4中已上传文件,可不做此步骤)
vi /home/oracle/etc/db_install.rsp
#文件内容修改
oracle.install.option=INSTALL_DB_SWONLY // 安装类型
UNIX_GROUP_NAME=oinstall // 安装组
INVENTORY_LOCATION=/u01/app/oraInventory //INVENTORY目录(不填就是默认值)
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/12/db_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.BACKUPDBA_GROUP=oinstall
oracle.install.db.DGDBA_GROUP=oinstall
oracle.install.db.KMDBA_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型
oracle.install.db.config.starterdb.globalDBName=DBUIS
oracle.install.db.config.starterdb.SID=DBUIS
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.memoryLimit=8192 //自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=123456@a //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
6、开始安装
6.1、对database文件夹赋权
chmod -R 775 ~/oradb/database
6.2、执行文件db_install.rsp
cd ~/oradb/database
./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
6.3、切换到root执行命令
#退回到root用户
exit
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12/db_1/root.sh
#切换到oracle用户
su - oracle
6.4、配置监听
#启动监听
netca /silent /responsefile /home/oracle/etc/netca.rsp
#查看监听状态
lsnrctl status
6.5、静默建库配置文件修改 (5.4中已上传文件,可不做此步骤)
vi /home/oracle/etc/dbca.rsp
RESPONSEFILE_VERSION=12.1.0
GDBNAME=DBUIS
DATABASECONFIGTYPE=SI
SID=DBUIS
CREATEASCONTAINERDATABASE=false
NUMBEROFPDBS=1
PDBNAME=DBUIS
TEMPLATENAME=General_Purpose.dbc
EMEXPRESSPORT=5500
OMSPORT=0
CHARACTERSET=ZHS16GBK
LISTENERS=LISTENER
MEMORYPERCENTAGE=40
AUTOMATICMEMORYMANAGEMENT=FALSE
TOTALMEMORY=8192
6.6、创建数据库实例,使用 dbca 命令
(dbca是oracle命令,如果提示命令找不到,检查环境变量)
dbca -silent -createDatabase -responseFile /home/oracle/etc/dbca.rsp
6.7、检查oracle进程状态
ps -ef | grep ora_ | grep -v grep
lsnrctl status
7、连接测试
7.1、修改数据库参数
# 对照RDS ORACLE12的参数组内有值的参数,对自建数据库进行修改
# 部分参数需要使用 scope=spfile 需在数据库重启后生效
alter system set archive_lag_target=300;
alter system set audit_trail=NONE scope=spfile;
alter system set db_block_checking=MEDIUM;
alter system set db_recovery_file_dest_size=1073741824;
alter system set dml_locks=132352 scope=spfile;
alter system set filesystemio_options=setall scope=spfile;
alter system set log_buffer=501040K scope=spfile;
alter system set pga_aggregate_limit=64543972K ;
alter system set pga_aggregate_target=32271986K;
alter system set processes=20000 scope=spfile;
alter system set recyclebin=off scope=spfile;
alter system set result_cache_max_size=969952K;
alter system set sessions=30080 scope=spfile;
alter system set sga_max_size=185G scope=spfile;
alter system set sga_target=185G scope=spfile;
alter system set shared_pool_reserved_size=1G scope=spfile;
alter system set shared_servers=0 ;
alter system set standby_file_management=AUTO scope=spfile;
alter system set transactions=33088 scope=spfile;
alter system set db_file_multiblock_read_count=128 ;
alter system set db_create_file_dest='/u01/app/oracle' ;
alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' ;
alter system set parallel_max_servers=2560 ;
alter system set parallel_min_servers=256 ;
alter system set parallel_servers_target=1024 ;
7.2、修改数据库表空间默认类型
SELECT * FROM database_properties WHERE property_name='DEFAULT_TBS_TYPE';
ALTER DATABASE SET DEFAULT bigfile TABLESPACE;
7.3、重启数据库
sqlplus / as sysdba
#关闭数据库
shutdown abort
#启动数据库
startup
#若启动数据库时报以下错误
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file ‘/u01/app/oracle/product/12/db_1/dbs/initdbuis.ora’
需将/u01/app/oracle/admin/ DBUIS/pfile下init.ora.xxxxxxxx文件复制到 /u01/app/oracle/product/12/db_1/dbs/initdbuis.ora
cp /u01/app/oracle/admin/DBUIS/pfile/init.ora.* /u01/app/oracle/product/12/db_1/dbs/initdbuis.ora
#若报以下错误:
ORA-27125: unable to create shared memory segment
Linux-x86_64 Error: 28: No space left on device
Additional information: 3760
Additional information: 4278190080
需要修改2.8步骤 /etc/sysctl.conf 中 kernel.shmall 参数,将其设置为内存数/4096
#若出现以下错误
ORA-27154: post/wait create failed
ORA-27300: OS system dependent operation:semget failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpcreates
需要修改2.8步骤 /etc/sysctl.conf 中 kernel.sem参数
kernel.sem =5010 641280 5010 128
7.4、创建oracle 用户
sqlplus / as sysdba
#创建用户
CREATE USER GUOKUN IDENTIFIED BY "1234QWER";
#授权
grant connect,resource,dba to GUOKUN;
7.5、使用Navicat连接oracle
