静默安装:静默安装指的是安装时无需任何用户干预,直接按默认设置安装。
安装时遇到的问题
报错1:麒麟系统unzip参数问题
报错2:调用 makefile '/usr/app/oracle/product/12/db_1/rdbms/lib/ins_rdbms.mk' 的目标 'client_sharedlib' 时出错。
报错3:Specified value of sga_target 1232M is too small, needs to be at least 1645M
网盘资料【oracle12、几个rpm包、libpthread_nonshared.a】
https://pan.baidu.com/s/1-JanhtZ4ZW24bsCP_h6lNQ
提取码:8888
1.安装准备
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #禁止防火墙开机启动
systemctl status firewalld.service #查看防火墙状态
2.关闭selinux
vi /etc/selinux/config #编辑文件
SELINUX=disabled #修改的内容
3.安装必要的安装包!!!
#非常重要,可以多花时间将依赖包安装完成,不然后面步骤会报错。
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 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
#安装依赖# 有几个包可能不在yum源中,需要在网上去下载,我这里整理了几个比较难下载的包。
compat-libcap1-1.10-7.el7.x86_64.rpm
compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
elfutils-libelf-0.185-1.el8.x86_64.rpm
elfutils-libelf-devel-0.185-1.el8.x86_64.rpm
【文章开头的网盘资料中】
# 将文件上传到服务器,通过命令进行安装
rpm -ivh compat-libcap1-1.10-7.el7.x86_64.rpm --force --nodeps
--force 强制安装
--nodeps 不查找依赖关系
# 检查是否安装成功
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
# 成功示例:如图展示,没有出现未安装软件包,就说明依赖安装已成功。
#未完成安装示例
4.创建用户组
# 创建oinstall和dba组
groupadd oinstall
groupadd dba
# 创建oracle用户
useradd -g oinstall -G dba oracle
# 设置oracle密码
passwd oracle #输入密码,确认密码后 passwd: all authentication tokens updated successfully.
# 查看创建结果
id oracle
5.修改内核参数
vi /etc/sysctl.conf
# 文件内容添加如下
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152 # 该参数表示系统任意时刻可以分配的所有共享内存段的总和的最大值(以页为单位).其值应不小于shmmax/page_size
kernel.shmmax = 17179869183 #64 位 linux 系统:可取的最大值为物理内存值 -1byte ,建议值为多于物理内存的一半,一般取值大于 SGA_MAX_SIZE 即可可以取物理内存 -1byte.例:内存为 16G 时,该值为 16*1024*1024*1024-1 = 17179869183
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 #使配置生效
6.修改用户限制
vi /etc/security/limits.conf
# 在文件末尾添加下面6行内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
7.修改用户登录库文件引用
vi /etc/pam.d/login
# 在文件末尾添加下面2行内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
8.修改用户登录环境变量
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 # 使修改的文件生效
9.创建安装目录,配置安装目录权限。
mkdir -p /usr/app/oracle
chown -R oracle:oinstall /usr/app/
chmod -R 775 /usr/app/
10.配置Oracle用户环境变量
su - oracle #切换用户
vi ~/.bash_profile # 添加内容如下
# 和创建的安装目录路径一样
export ORACLE_BASE=/usr/app/oracle
# 指定sid名称
export ORACLE_SID=orcl
source ~/.bash_profile #使配置生效source .bash_profile
11.使用oracle 用户,创建数据库安装配置文件夹rsp
su - oracle #不是oracle用户就先切换用户,是就不用执行
cd /home/oracle/ #到oracle目录下
mkdir rsp
12.上传oracle安装文件到/home/oracle/目录下并解压
su - root #切换到root用户
yum install -y unzip zip #安装解压软件,已经安装就不用执行
su - oracle #切换到oracle用户
unzip linuxx64_12201_database.zip #解压oracle文件
13.复制Oracle配置文件到rsp目录下,并修改配置文件权限
cp /home/oracle/database/response/* /home/oracle/rsp/ #复制文件
chmod 700 /home/oracle/rsp/*.rsp #修改文件权限
14.修改静默安装配置文件db_install.rsp
vi /home/oracle/rsp/db_install.rsp
# 修改内容如下
oracle.install.option=INSTALL_DB_SWONLY #安装类型
UNIX_GROUP_NAME=oinstall #安装组
INVENTORY_LOCATION=/usr/app/oracle/oraInventory #与上面创建的安装目录有关/usr/app/oracle
ORACLE_HOME=/usr/app/oracle/product/12/db_1 #与上面创建的安装目录有关/usr/app/oracle
ORACLE_BASE=/usr/app/oracle #与上面创建的安装目录有关/usr/app/oracle
oracle.install.db.InstallEdition=EE #企业版本
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oinstall
oracle.install.db.OSBACKUPDBA_GROUP=oinstall
oracle.install.db.OSDGDBA_GROUP=oinstall
oracle.install.db.OSKMDBA_GROUP=oinstall
oracle.install.db.OSRACDBA_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE #数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl #数据库名
oracle.install.db.config.starterdb.SID=orcl #实例名
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
oracle.install.db.config.starterdb.characterSet=AL32UTF8
15.开始安装,执行db_install.rsp
cd /home/oracle/database;
./runInstaller -silent -responseFile /home/oracle/rsp/db_install.rsp
#等待安装完成:提示[WARNING]不用管,出现[FATAL]则安装已经停止,完成后显示:Successfully Setup Software.
#如果有报错看文章末尾报错1、报错2
16.切换到root用户,执行数据库脚本
su - root
sh /usr/app/oracle/oraInventory/orainstRoot.sh
sh /usr/app/oracle/product/12/db_1/root.sh
17.修改oracle用户环境变量
su - oracle
vi ~/.bash_profile
# 后面追加内容如下
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export ORACLE_HOME=/usr/app/oracle/product/12/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export LANG="zh_CN.UTF-8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
source .bash_profile #执行命令使环境变量生效
18.配置监听程序
cd /home/oracle;
netca /silent /responsefile /home/oracle/rsp/netca.rsp
19.启动监听
lsnrctl start
20.静默建库配置文件修改
mkdir /usr/app/oracle/oradata; #创建数据文件存放的目录
vi /home/oracle/rsp/dbca.rsp
#修改如下
gdbName=orcl
sid=orcl
characterSet=AL32UTF8
listeners=LISTENER
databaseConfigType=SI
datafileDestination=/usr/app/oracle/oradata #指定数据文件存放的目录
recoveryAreaDestination=/usr/app/oracle/flash_recovery_area #恢复数据存放目录
totalMemory=1638 #为1638MB,物理内存2G*80%, 后面静默建库的时候如果报内存太小,需要将此参数调大
templateName=/usr/app/oracle/product/12/db_1/assistants/dbca/templates/General_Purpose.dbc #不填写的时候报了[FATAL] [DBT-10503] 指定的模板文件无效。
nationalCharacterSet=AL16UTF16 #国家字符集2个值AL16UTF16或UTF8,默认值是AL16UTF16,默认值就可不用改
sysPassword=oracle12c #指定sys用户密码
systemPassword=oracle12c #指定system用户密码
oracleHomeUserPassword=oracle12c
21.执行静默建库
cd /home/oracle;
dbca -silent -createDatabase -responseFile /home/oracle/rsp/dbca.rsp
#静默建库如果报以下错误,请看文章结尾 报错3
Specified value of sga_target 1232M is too small, needs to be at least 1645M
22.测试登录
sqlplus / as sysdba
注:每次虚拟机重启执行命令都要开启监听,打开数据库
su - oracle #切换到oracle用户
lsnrctl start #开启监听
sqlplus / as sysdba
****把上面步骤放到开机自动执行****
切换root用户执行下面语句
#修改此文件,让sqlplus / as sysdba;不用手动执行
vi /home/oracle/rsp/oratab
#将N改成Y
orcl:/u01/app/oracle/product/11.2.0.4/db_1:N
#修改此文件,数据库监听和服务开机自启
vi /etc/rc.local
su - oracle -lc "/usr/app/oracle/product/12/db_1/bin/lsnrctl start" #与安装目录相关
su - oracle -lc /usr/app/oracle/product/12/db_1/bin/dbstart #与安装目录相关
#修改DB启动配置文件(安装目录中的dbstart文件)
vi /usr/app/oracle/product/12/db_1/bin/dbstart
ORACLE_HOME_LISTNER=$1 #将$1改成 /usr/app/oracle/product/12/db_1/
#oracle安装完成!!!
创建用户和表空间
1.登录oracle
su - oracle #切换到oracle用户
lsnrctl start #开启监听
sqlplus / as sysdba
2.建立表空间
-- 创建 TRASEN-MCPC 表空间
CREATE SMALLFILE TABLESPACE "TRASEN_MCPC" DATAFILE '/usr/app/oracle/oradata/orcl/TRASEN_MCPC.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
3.创建用户
-- 创建 FGS_DEV 用户
CREATE USER "FGS_DEV" PROFILE "DEFAULT" IDENTIFIED BY "trasen" DEFAULT TABLESPACE "TRASEN_MCPC" TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
-- 赋值连接权限
GRANT "CONNECT" TO "FGS_DEV" WITH ADMIN OPTION;
-- 赋值DBA权限
GRANT "DBA" TO "FGS_DEV" WITH ADMIN OPTION;
# 报错1:麒麟系统10会报unzip找不到参数的错误。
#解决:替换Oracle 自带的unzip
cd /home/oracle/database/install
mv unzip unzip.bak
ln -s /usr/bin/unzip
#然后重新执行第15步。【15.开始安装,执行db_install.rsp】
#报错2:麒麟系统10 会报调用出错
#开始我没去管然后继续去启动监听
#结果监听也启动不了,我就去排查静默安装的日志
#找到了报错的日志
# 不同的调用,报同样的错。都是报错libpthread_nonshared.a找不到。
# 解决:将网上找到的libpthread_nonshared.a【文章开头的网盘资料中】 放到报错的目录下。
cp libpthread_nonshared.a /usr/lib/
cp libpthread_nonshared.a /usr/lib64/
# 然后重新执行第15步。【15.开始安装,执行db_install.rsp】
# 静默安装成功。# 然后启动监听
#监听也成功启动
报错3:
静默建库报错: Specified value of sga_target 1232M is too small, needs to be at least 1645M
解决办法
vim /home/oracle/rsp/dbca.rsp
找到totalMemory 把后面的值改大。
然后在重新去执行建库。【21.执行静默建库】