CentOs7.5离线静默安装Oracle12c
一、安装依赖
#有网的时候使用yum,没有网的时候需要单独下载安装
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 gcc gcc-c++ glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libaio libaio.i686 libaio-devel libaio-devel.i686 libXext libXext.i686 libX11 libX11.i686 libxcb libxcb.i686 libXi libXi.i686 make sysstat
#检查未安装的依赖
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 |grep "not installed"
二、用户及环境配置准备
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -m oracle
passwd oracle
123456
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
vi /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
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
mkdir -p /usr/local/oracle
mkdir -p /usr/local/oraInventory
chown -R oracle:oinstall /usr/local/oracle
chown -R oracle:oinstall /usr/local/oraInventory
chmod -R 775 /usr/local/oracle
chmod -R 775 /usr/local/oraInventory
su - oracle
vi ~/.bash_profile
export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
source ~/.bash_profile
三、安装数据库
linuxx64_12201_database.zip下载 链接:https://pan.baidu.com/s/1Ms-eR86Ih4qo6jVa8dbn0g?pwd=1111
提取码:1111
mv linuxx64_12201_database.zip /usr/local/oracle/
cd /usr/local/oracle/
unzip linuxx64_12201_database.zip
#解压后出现database目录
chown -R oracle:oinstall /usr/local/oracle/database
#修改db_install.rsp文件
cd /usr/local/oracle/database/response
vi db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/usr/local/oraInventory
ORACLE_HOME=/usr/local/oracle/product/12.1.0/db_1
ORACLE_BASE=/usr/local/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.password.SYS=123456
oracle.install.db.config.starterdb.password.SYSTEM=123456
oracle.install.db.config.starterdb.password.ALL=123456
DECLINE_SECURITY_UPDATES=true
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
/usr/local/oracle/database/runInstaller -silent -responseFile /usr/local/oracle/database/response/db_install.rsp
耐心等待输出,如果安装成功会有以上successful安装成功提示并要求你切换root用户执行两个脚本(脚本是安装时生成的),如果安装失败则按照提示的日志分析原因后重新执行。
su - root
sh /usr/local/oraInventory/orainstRoot.sh
sh /usr/local/oracle/product/12.1.0/db_1/root.sh
四、启动监听及初始化
su - oracle
$ORACLE_HOME/bin/netca -silent -responsefile /usr/local/oracle/database/response/netca.rsp
#查看生成的ora文件
ll $ORACLE_HOME/network/admin/*.ora
#启动监听
lsnrctl start
#查看状态,现在还没有创建数据库
lsnrctl status
#修改dbca.rsp
vi /usr/local/oracle/database/response/dbca.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=orcl
sid=orcl
databaseConfigType=SI
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=orclpdb
templateName=/usr/local/oracle/product/12.1.0/db_1/assistants/dbca/templates/General_Purpose.dbc
emExpressPort=5500
omsPort=0
characterSet=AL32UTF8
listeners=LISTENER
memoryPercentage=40
automaticMemoryManagement=false
#oralce使用的总内存大小这个需要根据实际情况填写(单位是MB)
totalMemory=10240
使用修改过的dbca.rsp执行创建静默库,输入密码后耐心等待进度100%
$ORACLE_HOME/bin/dbca -silent -createDatabase -responsefile /usr/local/oracle/database/response/dbca.rsp
sqlplus "as sysdba"
-- 创建用户并指定密码
create user c##test identified by tydic123;
-- 赋权
GRANT CONNECT,RESOURCE,CREATE SESSION,CREATE USER,DROP USER,ALTER USER ,EXP_FULL_DATABASE,IMP_FULL_DATABASE,CREATE ANY VIEW,DROP ANY VIEW TO c##test;
-- 分配表空间份额
GRANT UNLIMITED TABLESPACE TO c##test;
-- 解锁
alter user c##test account unlock;
-- 查看实例名
select instance_name,status from v$instance;
使用新建用户连接oracle
sqlplus "c##test/tydic123@//192.168.128.130:1521/orcl"
五、可能遇到的问题
-
系统如果没有swap交换区的必须创建,否则安装时swap检查失败不会安装数据库。
创建swap分区:
su - root #1.用dd命令创建一个8G的文件(增加swap大小为bs*count,bs为block,count为数量) dd if=/dev/zero of=/var/swapfree bs=1G count=8 #2.将它创建为Swap虚拟交换文件 mkswap /var/swapfree #3.激活并使用/var/swapfree交换文件 swapon /var/swapfree #4.设置系统启动后自动激活虚拟交换文件 vi /etc/fstab /var/swapfree swap swap defaults 0 0 #5.查看已创建的swap分区 free -g
-
用户权限问题system group specified for central inventory (oraInventory) ownership is invalid
删除oracle用户重新创建并赋权
userdel oracle useradd -g oinstall -G dba -d /home/oracle -r oracle chown -R oracle:oinstall /usr/local/oracle chown -R oracle:oinstall /usr/local/oraInventory chmod -R 775 /home/oracle #重新设置下~/.bash_profile中的ORALE_HOME #清理之前用户产生的临时文件 rm -rf /tmp/OraInstall* rm -rf /tmp/CVU_12*_oracle
-
目录权限问题
chown -R oracle:oinstall /usr/local/oraInventory chown -R 775 /usr/local/oraInventory
-
内存限制问题ORA-27104: system-defined limits for shared memory was misconfigured
一、dbca.rsp中的totalMemory设置过大超过了系统总内存大小, 修改小后重新创建。
二、 sga_max_size设置过大。修改sga_max_size后重启数据库。
sqlplus "as sysdba" -- 查看spfile位置 show parameter spfile -- 备份spfile create pfile='/usr/local/oracle/product/12.1.0/db_1/dbs/pfile0323.ora' from spfile; -- 修改pfile后中的sga_target和sga_max_size之后重启数据库 shutdown startup pfile='/usr/local/oracle/product/12.1.0/db_1/dbs/pfile0323.ora' -- 重新生成spfile create spfile ='spfileORCL0323.ora' from pfile='/usr/local/oracle/product/12.1.0/db_1/dbs/pfile0323.ora'; show parameter spfile
-
没有orainstRoot.sh脚本
没有安装成功或者可能你之前或者重装的时候没有删除/etc/oraInst.loc
可以将/etc/oraInst.loc移走备份后重新安装
参考:
https://blog.csdn.net/qq_23938683/article/details/99936888
https://www.jianshu.com/p/364a2a849605
https://blog.csdn.net/xqy1522/article/details/5509079
https://blog.csdn.net/ishulei/article/details/109026614