版本:(12.1.0.2.0) - Enterprise Edition
Oracle下载地址
官方文档
Linux
安装前配置
修改 hostname
Confirming Host Name Resolution
hostnamectl set-hostname $HOSTNAME
vi /etc/hosts IP对应主机名
关闭 selinux

关闭防火墙

oracle 依赖安装
yum install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel -y

重启
创建用户、组及权限配置
groupadd oinstallgroupadd dbagroupadd opergroupadd osoperuseradd -g oinstall -G dba,oper,osoper oracleecho oracle | passwd --stdin oracle

上传安装程序

创建目录并解压程序
mkdir -p /oracle/app/oracle/product/12.10.2mkdir /oracle/oradatamkdir /oracle/inventorymkdir /oracle/fast_recovery_areamkdir /oracle/oraclesetup# 解压程序unzip linuxx64_12101_database.zip -d /oracle/oraclesetup/# 授权chown -R oracle:oinstall /oraclechmod -R 775 /oracle


修改系统参数
内核参数
vim /etc/sysctl.conf# 写入如下内容fs.aio-max-nr = 1048576fs.file-max = 6815744# 这个值8G为2097152,按比例调整kernel.shmall = 2097152# 这个值为内存(G)的一半*1024*1024*1024kernel.shmmax = 1073741824kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576
oracle用户限制参数
vim /etc/security/limits.conf# 写入如下内容oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 10240

登录参数
vim /etc/pam.d/login# 写入如下内容# 或者写绝对路径 session required /lib64/security/pam_limits.sosession required pam_limits.so


环境变量
全局
vim /etc/profile# 写入如下内容if [ $USER = "oracle" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fifi

Oracle 用户环境变量
vim /home/oracle/.bash_profile# 写入如下内容ORACLE_BASE=/oracle/app/oracleORACLE_HOME=$ORACLE_BASE/product/12.10.2ORACLE_SID=orcl12cPATH=$ORACLE_HOME/bin:$PATHexport ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
ORACLE_SID=orcl12c 此处sid应与后面步骤创建的实例id一致
**
安装操作
切换到 Oracle 用户
复制安装文件
su - oraclecp -R /oracle/oraclesetup/database/response/ . && cd responsevim db_install.rsp
编辑 db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.1.0oracle.install.option=INSTALL_DB_SWONLY+++++++++++++++++++++++++++++++ORACLE_HOSTNAME=oracle 要改成主机名+++++++++++++++++++++++++++++++UNIX_GROUP_NAME=oinstallINVENTORY_LOCATION=/oracle/inventorySELECTED_LANGUAGES=en,zh_CNORACLE_HOME=/oracle/product/12.10.2ORACLE_BASE=/oracleoracle.install.db.InstallEdition=EEoracle.install.db.DBA_GROUP=dbaoracle.install.db.OPER_GROUP=dbaoracle.install.db.BACKUPDBA_GROUP=dbaoracle.install.db.DGDBA_GROUP=dbaoracle.install.db.KMDBA_GROUP=dbaoracle.install.db.rac.configurationType=oracle.install.db.CLUSTER_NODES=oracle.install.db.isRACOneInstall=oracle.install.db.racOneServiceName=oracle.install.db.rac.serverpoolName=oracle.install.db.rac.serverpoolCardinality=oracle.install.db.config.starterdb.type=oracle.install.db.config.starterdb.globalDBName=oracle.install.db.config.starterdb.SID=oracle.install.db.ConfigureAsContainerDB=oracle.install.db.config.PDBName=oracle.install.db.config.starterdb.characterSet=oracle.install.db.config.starterdb.memoryOption=oracle.install.db.config.starterdb.memoryLimit=oracle.install.db.config.starterdb.installExampleSchemas=oracle.install.db.config.starterdb.password.ALL=oracle.install.db.config.starterdb.password.SYS=oracle.install.db.config.starterdb.password.SYSTEM=oracle.install.db.config.starterdb.password.DBSNMP=oracle.install.db.config.starterdb.password.PDBADMIN=oracle.install.db.config.starterdb.managementOption=oracle.install.db.config.starterdb.omsHost=oracle.install.db.config.starterdb.omsPort=oracle.install.db.config.starterdb.emAdminUser=oracle.install.db.config.starterdb.emAdminPassword=oracle.install.db.config.starterdb.enableRecovery=oracle.install.db.config.starterdb.storageType=oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=oracle.install.db.config.asm.diskGroup=oracle.install.db.config.asm.ASMSNMPPassword=MYORACLESUPPORT_USERNAME=MYORACLESUPPORT_PASSWORD=SECURITY_UPDATES_VIA_MYORACLESUPPORT=DECLINE_SECURITY_UPDATES=truePROXY_HOST=PROXY_PORT=PROXY_USER=PROXY_PWD=COLLECTOR_SUPPORTHUB_URL=
执行安装响应文件
/oracle/oraclesetup/database/runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
切换到root用户
sh /home/oracle/inventory/orainstRoot.shsh /home/oracle/product/12.10.2/root.sh
配置静默方式监听
netca /silent /responseFile /home/oracle/response/netca.rsp++++++++++++++++++++++++++ 重点export DISPLAY=:0.0vim /home/oracle/response/dbca.rsp
dbca.rsp
设置后密码为 password ,将替换成自己想要的即可
[GENERAL]RESPONSEFILE_VERSION = "12.1.0"OPERATION_TYPE = "createDatabase"[CREATEDATABASE]GDBNAME = "orcl12c"SID = "orcl12c"TEMPLATENAME = "General_Purpose.dbc"SYSPASSWORD = "password"SYSTEMPASSWORD = "password"DBSNMPPASSWORD = "password"DATAFILEDESTINATION =/oracle/oradataRECOVERYAREADESTINATION=/oracle/fast_recovery_areaCHARACTERSET = "ZHS16GBK"## 总内存的 80%TOTALMEMORY = "26214"[createTemplateFromDB]SOURCEDB = "myhost:1521:orcl"SYSDBAUSERNAME = "system"TEMPLATENAME = "My Copy TEMPLATE"[createCloneTemplate]SOURCEDB = "orcl"TEMPLATENAME = "My Clone TEMPLATE"[DELETEDATABASE]SOURCEDB = "orcl"[generateScripts]TEMPLATENAME = "New Database"GDBNAME = "orcl12c"[CONFIGUREDATABASE]DBSNMPPASSWORD = "password"[ADDINSTANCE]DB_UNIQUE_NAME = "orcl12c"INSTANCENAME = "orcl12c"NODENAME=SYSDBAUSERNAME = "sys"[DELETEINSTANCE]DB_UNIQUE_NAME = "orcl12c"INSTANCENAME = "orcl12c"SYSDBAUSERNAME = "sys"SYSDBAPASSWORD = "password"[CREATEPLUGGABLEDATABASE]SOURCEDB = "orcl"PDBNAME = "PDB1"[UNPLUGDATABASE]SOURCEDB = "orcl"PDBNAME = "PDB1"ARCHIVETYPE = "TAR"[DELETEPLUGGABLEDATABASE]SOURCEDB = "orcl"PDBNAME = "PDB1"[CONFIGUREPLUGGABLEDATABASE]SOURCEDB = "orcl"PDBNAME = "PDB1"
执行安装
dbca -silent -responseFile /home/oracle/response/dbca.rsp

完成后可以使用lsnrctl status 查看监听状态,如果现实ready则正常。
firewall-cmd --permanent --zone=public --add-port=1521/tcp
firewall-cmd --reload
设置开机启动
- vim /data/oracle/product/12.10.2/bin/dbstart
将 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
- vim /data/oracle/product/12.10.2/bin/dbshut
将 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
- vim /etc/oratab
将 orcl:/data/oracle/product/12.10.2:N 中最后的N改为Y,成为 orcl:/data/oracle/product/12.10.2:Y
- 切换到root账户建立自启动脚本 su - root ,vim /etc/rc.d/init.d/oracle 添加以下内容:
#!/bin/bash #chkconfig: 2345 80 25 # /etc/init.d/oracle # description: ORACLE 12c Server # Run-level Startup script. for the Oracle Listener and Instances # It relies on the information on /etc/oratab export ORACLE_BASE=/oracle export ORACLE_HOME=/oracle/product/12.10.2 export ORACLE_SID=orcl12c export ORACLE_OWNR=oracle export PATH=$PATH:$ORACLE_HOME/bin LOCK_FILE=/var/lock/oracle if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ] then echo "Oracle startup: cannot start" exit 1 fi case "$1" in start) # Oracle listener and instance startup if [ -f $LOCK_FILE ];then echo $0 oracle is already running! else echo -n "Starting Oracle: " su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start" su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" touch $LOCK_FILE echo "OK" fi ;; stop) # Oracle listener and instance shutdown if [ ! -f $LOCK_FILE ];then echo $0 oracle is already stopping! else echo -n "Shutdown Oracle: " su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop" su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" rm -f $LOCK_FILE echo "OK" fi ;; reload|restart) $0 stop $0 start ;; status) if [ -f $LOCK_FILE ];then echo $0 oracle is already running! else echo $0 oracle is already stopping! fi ;; *) echo "Usage: `basename $0` start|stop|restart|reload" exit 1 esac exit 0配置开机启动
```bash chmod 755 /etc/init.d/oracle chkconfig oracle on service oracle start/stop/restart
监听操作
lsnrctl start lsnrctl stop lsnrctl status
数据库连接操作
```plsql
sqlplus / as sysdba
select status from v$instance;
# open则代表正常。
# 打开数据库实例
startup
# 关闭实例
shutdown immediate
问题
1.swap区大小不够用
解决方法:增加Swap分区,在命令行执行以下命令
#增加1G大小的交换分区
dd if=/dev/zero of=/home/swapfile bs=1M count=1024
#建立swap的文件系统
mkswap /home/swapfile
#立即启用交换分区文件
swapon /home/swapfile
#使系统开机时自启动,编辑 fstab文件 vi /etc/fstab,添加以下一行内容
/home/swapfile swap swap defaults 0 0
2.net service name没有指定

解决: export ORACLE_SID=orcl12 ,然后重新登录。
3.startup 启动数据库出现 ORA-01078 和 LRM-00109 问题

找到oracle安装目录下的 admin/orcl12c/pfile/init.ora.31120196443
init 文件名不一样
cp /oracle/admin/orcl12c/pfile/init.ora.31120196443 /oracle/product/12.10.2/dbs/initorcl12.ora
