1.创建oralce用户以及用户组
groupadd -g 601 oinstall groupadd -g 602 dba groupadd -g 603 oper groupadd -g 604 backupdba groupadd -g 605 dgdba groupadd -g 606 kmdba useradd -u 601 -g oinstall -G dba,backupdba,dgdba,kmdba,oper oracle echo "oracle" | passwd --stdin oracle |
2.创建目录结构
mkdir -p /u01/app/oracle mkdir -p /u01/app/oraInventory mkdir -p /u01/app/oracle/product/18.3.0/db_1 chown -R oracle:oinstall /u01/ chmod -R 775 /u01/ |
3.修改/etc/security/limits.conf
cp /etc/security/limits.conf /etc/security/limits.conf.bak echo "oracle soft nproc 16384" >>/etc/security/limits.conf echo "oracle hard nproc 16384" >>/etc/security/limits.conf echo "oracle soft nofile 1024" >>/etc/security/limits.conf echo "oracle hard nofile 65536" >>/etc/security/limits.conf echo "oracle soft stack 10240" >>/etc/security/limits.conf echo "oracle hard stack 32768" >>/etc/security/limits.conf |
4.修改20-nproc.conf
cp /etc/security/limits.d/20-nproc.conf /etc/security/limits.d/20-nproc.conf.bak echo "# Default limit for number of user's processes to prevent" > /etc/security/limits.d/20-nproc.conf echo "# accidental fork bombs." >> /etc/security/limits.d/20-nproc.conf echo "# See rhbz #432903 for reasoning." >> /etc/security/limits.d/20-nproc.conf echo "root soft nproc unlimited" >> /etc/security/limits.d/20-nproc.conf echo "* - nproc 16384" >> /etc/security/limits.d/20-nproc.conf |
5.修改/etc/pam.d/login
cp /etc/pam.d/login /etc/pam.d/login.bak echo "session required pam_limits.so" >>/etc/pam.d/login |
6.修改/etc/sysctl.conf
cp /etc/sysctl.conf /etc/sysctl.conf.bak echo "kernel.panic_on_oops = 1" >> /etc/sysctl.conf echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf echo "fs.file-max = 6815744" >> /etc/sysctl.conf echo "kernel.shmmni = 4096" >> /etc/sysctl.conf echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf echo "net.core.wmem_max = 1048586" >> /etc/sysctl.conf echo "kernel.shmmax = 4294967296" >> /etc/sysctl.conf echo "kernel.shmall = 3774873" >> /etc/sysctl.conf echo "Modifing the /etc/sysctl.conf has been succeed." echo "Now make the changes take effect....." sysctl -p |
7.修改oracle用户环境变量
cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak echo "export TMP=/tmp">> /home/oracle/.bash_profile echo 'export TMPDIR=$TMP'>>/home/oracle/.bash_profile echo "export ORACLE_HOSTNAME=centos">> /home/oracle/.bash_profile echo "export ORACLE_SID=orcl">> /home/oracle/.bash_profile echo "export ORACLE_BASE=/u01/app/oracle">> /home/oracle/.bash_profile echo 'export ORACLE_HOME=$ORACLE_BASE/product/18.3.0/db_1'>> /home/oracle/.bash_profile echo "export ORACLE_UNQNAME=rac">> /home/oracle/.bash_profile echo 'export TNS_ADMIN=$ORACLE_HOME/network/admin' >> /home/oracle/.bash_profile echo "export ORACLE_TERM=xterm">> /home/oracle/.bash_profile echo 'export PATH=.:$PATH:$HOME/bin:$ORACLE_BASE/product/18.3.0/db_1/bin:$ORACLE_HOME/bin'>> /home/oracle/.bash_profile echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib'>> /home/oracle/.bash_profile echo 'export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib'>> /home/oracle/.bash_profile echo "export THREADS_FLAG=native" >> /home/oracle/.bash_profile echo "export LANG=en_US" >> /home/oracle/.bash_profile echo "export NLS_LANG=american_america.AL32UTF8" >> /home/oracle/.bash_profile echo "export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'" >> /home/oracle/.bash_profile echo 'if [ $USER = "oracle" ]||[ $USER = "grid" ]; then' >> /home/oracle/.bash_profile echo 'if [ $SHELL = "/bin/ksh" ]; then' >> /home/oracle/.bash_profile echo 'ulimit -p 16384' >> /home/oracle/.bash_profile echo 'ulimit -n 65536' >> /home/oracle/.bash_profile echo 'else' >> /home/oracle/.bash_profile echo 'ulimit -u 16384 -n 65536' >> /home/oracle/.bash_profile echo 'fi' >> /home/oracle/.bash_profile echo 'umask 022' >> /home/oracle/.bash_profile echo 'fi' >> /home/oracle/.bash_profile |
8、安装依赖包
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 ibaio-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 |
9、关闭安全防护
systemctl stop firewalld systemctl disable firewalld echo "NOZEROCONF=yes" >> /etc/sysconfig/network cp /etc/selinux/config /etc/selinux/config.bak
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config setenforce 0 |
10.修改/etc/hosts
echo "192.168.0.189 centos" >> /etc/hosts |
注意修改为自己的ip地址
11.上传包至tmp文件夹并且解压到ORACLE_HOME目录
unzip /tmp/LINUX.X64_180000_db_home.zip -d /u01/app/oracle/product/18.3.0/db_1/ chown -R oracle:oinstall /u01/ |
12.静默安装数据库软件
切换至Oracle用户
$ORACLE_HOME/runInstaller -silent -force -noconfig -ignorePrereq \ oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v18.0.0 \ oracle.install.option=INSTALL_DB_SWONLY \ UNIX_GROUP_NAME=oinstall \ INVENTORY_LOCATION=/u01/app/oraInventory \ ORACLE_BASE=/u01/app/oracle \ oracle.install.db.InstallEdition=EE \ oracle.install.db.OSDBA_GROUP=dba \ oracle.install.db.OSOPER_GROUP=oper \ oracle.install.db.OSBACKUPDBA_GROUP=backupdba \ oracle.install.db.OSDGDBA_GROUP=dgdba \ oracle.install.db.OSKMDBA_GROUP=kmdba \ oracle.install.db.OSRACDBA_GROUP=dba \ oracle.install.db.config.starterdb.type=GENERAL_PURPOSE |
13.使用root用户执行
/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/18.3.0/db_1/root.sh |
14.静默创建监听
cd $ORACLE_HOME/bin ./netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp |
15.静默创建实例
/u01/app/oracle/product/18.3.0/db_1/bin/dbca -silent -createDatabase \ -gdbName orcl \ -sid orcl \ -sysPassword oracle -systemPassword oracle \ -databaseConfigType SI \ -createAsContainerDatabase false \ -useLocalUndoForPDBs true \ -templateName /u01/app/oracle/product/18.3.0/db_1/assistants/dbca/templates/General_Purpose.dbc \ -dvConfiguration false \ -olsConfiguration false \ -datafileJarLocation /u01/app/oracle/product/18.3.0/db_1/assistants/dbca/templates/ \ -datafileDestination /u01/app/oracle/oradata/orcl/ \ -storageType FS \ -registerWithDirService false \ -variables ORACLE_BASE_HOME=/u01/app/oracle,DB_UNIQUE_NAME=orcl,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=orcl,ORACLE_HOME=/u01/app/oracle/product/18.3.0/db_1,SID=orcl \ -initParams undo_tablespace=UNDOTBS1,db_block_size=8KB,diagnostic_dest=/u01/app/oracle,remote_login_passwordfile=EXCLUSIVE,db_create_file_dest=/u01/app/oracle/oradata/orcl/,processes=1000,sga_target=2048MB,pga_aggregate_target=1589M,open_cursors=300,compatible=18.0.0,db_name=orcl,audit_trail=none \ -sampleSchema FALSE \ -emConfiguration NONE |
注意修改sga_target大小
16.修改权限版本
$ORACLE_HOME/network/admin/sqlnet.ora文件下新增以下语句
SQLNET.ALLOWED_LOGON_VER
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8 |
SION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
17.设置大小写不敏感
Sqlplus中执行
alter system set sec_case_sensitive_logon=false;
18.Oracle开机自启动设置
1.修改/u01/app/oracle/product/18.3.0/db_1/bin/dbstart
[oracle@Centos ~]$ vi /u01/app/oracle/product/18.3.0/db_1/bin/dbstart
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
2.修改/u01/app/oracle/product/18.3.0/db_1/bin/dbshut
[oracle@Centos ~]$ vi /u01/app/oracle/product/18.3.0/db_1/bin/dbshut
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
3.修改/etc/oratab文件(没有此文件可手动创建一个)
[oracle@Centos ~]$ vi /etc/oratab
将orcl:/u01/app/oracle/product/18.3.0/db_1:N中最后的N改为Y,成为orcl:/u01/app/oracle/product/18.3.0/db_1:Y
4.切换到root账户建立自启动脚本
[oracle@Centos ~]$ su - root
[root@Centos ~]# vi /etc/rc.d/init.d/oracle
添加以下内容(有些值如ORACLE_HOME和ORACLE_USER等根据实际情况可以修改):
#!/bin/bash
# oracle: Start/Stop Oracle Database 11g R2
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/u01/app/oracle/product/18.3.0/db_1
ORACLE_USER=oracle
case "$1" in
'start')
if [ -f $LOCKFILE ]; then
echo $0 already running.
exit 1
fi
echo -n $"Starting Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch $LOCKFILE
;;
'stop')
if [ ! -f $LOCKFILE ]; then
echo $0 already stopping.
exit 1
fi
echo -n $"Stopping Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f $LOCKFILE
;;
'restart')
$0 stop
$0 start
;;
'status')
if [ -f $LOCKFILE ]; then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
esac
exit 0
5.修改/etc/init.d/oracle服务文件权限
[root@Centos init.d]# chmod 755 /etc/init.d/oracle
6.设置为开机启动
[root@Centos ~]# chkconfig oracle on
chkconfig --list oracle
- 进行service oracle start/stop/restart测试
- Reboot重启查看Oracle监听和实例进程均能自动启动。
注:如果自启动有问题,可使用dbstart命令手动启动数据库,用lsnrctl start启动监听。
[oracle@Centos ~]$ dbstart
[oracle@Centos ~]$ lsnrctl start
word版本下载word版本下载