目录
一、系统配置
二、准备工作
三、安装前系统配置
四、安装oracle12C
- 操作系统:centOS Linux Centos7
- 数据库: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
- 最小值为1 GB 内存,建议值为2 GB of RAM 或者更多
- 查询命令:# grep MemTotal /proc/meminfo
满足Oracle 12c的内存安装要求。
- 查询系统位数命令:# uname -m;
- 查询系统版本命令:# cat /proc/version;
- 查询系统内核版本:# uname -r。
经查询可知,本机系统版本和内核版本都在Oracle 12c支持的范围内。
用来安装的Oracle 12c对应版本的目录硬盘保留量至少满足上面的要求,一般情况下,这个都不是问题,如果有疑问,可以用df -h命令查询一下目录所在的硬盘空间使用情况。
- 查询命令:# df -h /tmp,Oracle安装目录中的/oradata目录用来存放数据文件,/tmp目录是根文件系统的一部分。
- 通过命令:# df -h查看各个磁盘的使用情况。
#若执行一遍失败则执行第二遍
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
#检查是否安装成功(31个安装包)
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
如此成功
[root@Oracle ~]# vim /etc/sysctl.conf
#修改或添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744 // 设置最大打开文件数
kernel.shmall = 16777216 // 共享内存的总量,8G内存设置:2097152*4k/1024/1024
kernel.shmmax = 34359738360 // 最大共享内存的段大小,G换算成k计算
kernel.shmmni = 4096 // 整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 // 可使用的IPv4端口范围
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
#生效新配置的系统内核参数
[root@Oracle ~]# sysctl -p
[root@Oracle ~]# groupadd oinstall ----创建oracle用户组
[root@Oracle ~]# groupadd dba ----创建oracle用户组
[root@Oracle ~]# groupadd oper ----创建oracle用户组
[root@Oracle ~]# useradd -g oinstall -G dba,oper oracle --oracle加入新建的2个用户组
[root@Oracle ~]# passwd oracle ---设置oracle用户的密码
[root@Oracle ~]# mkdir /u01
[root@Oracle ~]# mkdir -p /u01/app/oracle //oracle数据库安装目录
[root@Oracle ~]# mkdir -p /u01/app/oraInventory //oracle数据库配置文件目录
[root@Oracle ~]# mkdir -p /u01/app/oracle/oradata //存放数据库的数据目录
[root@Oracle ~]# mkdir -p /u01/app/oracle/oradata_back //存放数据库备份文件
[root@Oracle ~]# chmod -R 775 /u01/app
[root@Oracle ~]# chown -R oracle:oinstall /u01 //设置目录所有者为oinstall用户组的oracle用户
[root@Oracle ~]# 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
[root@Oracle ~]# vi /home/oracle/.bash_profile --添加
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export ORACLE_SID=orcl
export LANG=en_US
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
# 使配置生效
[root@Oracle ~]# source /home/oracle/.bash_profile
[root@Oracle ~] # unzip linuxx64_12201_database.zip -d /u01 # 没有unzip命令,则先安装unzip 解决方法 [root@CentOS ~]# yum install -y unzip zip 重新解压,成功
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0
# 30行 安装类型,只装数据库软件
oracle.install.option=INSTALL_DB_SWONLY
# 35行 用户组
UNIX_GROUP_NAME=oinstall
# 42行 INVENTORY目录(不填就是默认值)
INVENTORY_LOCATION=/u01/app/oraInventory
# 46行 oracle目录
ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1
# 51行 oracle基本目录
ORACLE_BASE=/u01/app/oracle
# 63行 oracle版本
oracle.install.db.InstallEdition=EE
# 80行
oracle.install.db.OSDBA_GROUP=dba
# 86行
oracle.install.db.OSOPER_GROUP=oper
# 91行
oracle.install.db.OSBACKUPDBA_GROUP=dba
# 96行
oracle.install.db.OSDGDBA_GROUP=dba
# 101行
oracle.install.db.OSKMDBA_GROUP=dba
# 106行
oracle.install.db.OSRACDBA_GROUP=dba
# 180行 数据库类型
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
# 185行
oracle.install.db.config.starterdb.globalDBName=orcl
# 190行
oracle.install.db.config.starterdb.SID=orcl
# 216行
oracle.install.db.config.starterdb.characterSet=AL32UTF8
# 384行
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
# 398行 设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)
DECLINE_SECURITY_UPDATES=true
[oracle@vs database]$ ./runInstaller -force -silent -noconfig -ignorePrereq -ignoreSysPreReqs -responseFile /u01/database/response/db_install.rsp
安装成功后会提示如下图命令,需要切换到root身份执行
[root@vs ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@vs ~]# /u01/app/oracle/product/12.2.0/db_1/root.sh
Check /u01/app/oracle/product/12.2.0/db_1/install/root_Oracle_2017-04-15_20-56-27-813321685.log for the output of root script
netca -silent -responsefile /u01/database/response/netca.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=orcl
sid=orcl
databaseConfigType=SI
RACOneNodeServiceName=
policyManaged=
createServerPool=
serverPoolName=
cardinality=
force=
pqPoolName=
pqCardinality=
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=pdborcl
useLocalUndoForPDBs=TRUE
pdbAdminPassword=123456
nodelist=
templateName=General_Purpose.dbc
sysPassword=123456
systemPassword=123456
oracleHomeUserPassword=123456
emConfiguration=
emExpressPort=5500
runCVUChecks=
dbsnmpPassword=
omsHost=
omsPort=
emUser=
emPassword=
dvConfiguration=
dvUserName=
dvUserPassword=
dvAccountManagerName=
dvAccountManagerPassword=
olsConfiguration=
datafileJarLocation=
#要先创建该目录
datafileDestination=/home/u01/app/oracle/oradata/orcl
recoveryAreaDestination=
storageType=
diskGroupName=
asmsnmpPassword=
recoveryGroupName=
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
registerWithDirService=
dirServiceUserName=
dirServicePassword=
walletPassword=
listeners=
variablesFile=
variables=
initParams=
sampleSchema=
memoryPercentage=
databaseType=MULTIPURPOSE
automaticMemoryManagement=FALSE
#根据实际情况定义
totalMemory=4096
[oracle@oracle response]$ dbca -silent -createDatabase -responseFile /u01/database/response/dbca.rsp
ps -ef | grep ora_ | grep -v grep
lsnrctl status
# 以 DBA 身份进入 sqlplus,查看数据库状态
[oracle@Oracle ~]$ sqlplus / as sysdba
SQL> select open_mode from v$database; //查看数据库
SQL> select status from v$instance; //查看数据库实例
# 以 DBA 身份进入 sqlplus,修改管理员用户密码
[oracle@Oracle ~]$ sqlplus / as sysdba
SQL> alter user sys identified by ********; //改sys超级管理员密码
SQL> alter user system identified by ********; //改system管理员密码
# 以 DBA 身份进入 sqlplus,启动数据库
[oracle@Oracle ~]$ sqlplus / as sysdba
SQL> startup
# 以 DBA 身份进入 sqlplus,关闭数据库
[oracle@Oracle ~]$ sqlplus / as sysdba
SQL> shutdown abort
# 修改oratab配置如下,这样就可以通过dbstart 启动实例,也可以通过dbshut关闭实例。
[oracle@Oracle ~]$ vim /etc/oratab
racl:/u01/app/oracle/product/12.2.0/db_1:Y //把“N”改成“Y”
# 此时所有oracle的进程关闭,监听器也停止。
[oracle@Oracle ~]$ dbshut /u01/app/oracle/product/12.2.0/db_1/
# 启动监听器和实例。
[oracle@Oracle ~]$ dbstart /u01/app/oracle/product/12.2.0/db_1/
# 修改 dbstart 和 dbshut,如下
# 修改 #ORACLE_HOME_LISTNER=$1 为 ORACLE_HOME_LISTNER=$ORACLE_HOME
# 在 root 用户下编辑 rc.local
# dbstart 默认将 oratab 中参数为 Y 的所有库启动
[root@Oracle ~]# vi /etc/rc.d/rc.local
# 添加如下命令到 rc.local
# 用oracle用户登录,运行dbstart启动数据库
su - oracle -lc "/u01/app/oracle/product/12.2.0/db_1/bin/dbstart"
# 设置执行权限,因为Oracle linux 7.x 默认rc.local是没有执行权限,需执行chmod自己增加
[root@Oracle ~]# chmod +x /etc/rc.d/rc.local
# 查看监听状态及数据库状态
[oracle@Oracle ~]$ lsnrctl status
# 启动监听
[oracle@Oracle ~]$ lsnrctl start
# 停止监听
[oracle@Oracle ~]$ lsnrctl stop