系统环境:硬件——1cpu,2G内存,虚拟机;软件——CentOS7.5,oracle 12c R1_ x86_x64
下载oracle 12c R1_ x86_x64
下载地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
为oracle数据库配置服务器
1、服务器的最低配置要求
磁盘空间要求
Installation Type | Disk Space for SoftwareFiles |
---|---|
Enterprise Edition | 6.4 GB |
Standard Edition | 6.1 GB |
Standard Edition One | 6.1 GB |
Standard Edition | 2 6.1 GB |
# /tmp要求
>1GB
# 服务器内存最低要求
最小: 1 GB of RAM
建议: 2 GB of RAM or more
# swap空间大小要求
if RAM between 1G and 2G,swap = 1.5*RAM;
if RAM between 2G and 16G,swap = RAM;
if RAM>16G,swap = 16G
2、检查服务器硬件和内存配置
检查物理内存大小
[root@localhost ~]# grep MemTotal /proc/meminfo
MemTotal: 1865308 kB #2G内存,满足要求
检查swap空间大小
[root@localhost ~]# grep SwapTotal /proc/meminfo
SwapTotal: 2097148 kB #2G交换空间,满足要求
检查/tmp目录的可用空间大小
[root@localhost ~]# df -h /tmp
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 1.5G 49G 3% / # >1G,满足要求
检查系统的可用磁盘空间
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 1.5G 49G 3% /
devtmpfs 899M 0 899M 0% /dev
tmpfs 911M 0 911M 0% /dev/shm
tmpfs 911M 9.5M 902M 2% /run
tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 497M 135M 362M 28% /boot
/dev/mapper/centos-home 30G 33M 30G 1% /home
/dev/mapper/centos-var 18G 138M 18G 1% /var
tmpfs 183M 0 183M 0% /run/user/0
检查系统上的可用RAM和swap交换空间
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 138M 1.5G 9.5M 190M 1.5G
Swap: 2.0G 0B 2.0G
处理器体系结构是否与要安装的Oracle软件版本匹配
[root@localhost ~]# uname -m
x86_64 #服务器处理器是64位架构,满足要求
3、操作系统软件要求
1)、CentOS7内核要求
3.10.0-123.el7.x86_64 or later
查询操作系统内核版本信息为
[root@localhost ~]# uname -r
3.10.0-862.el7.x86_64 #内核满足要求
2)、关闭selinux(需重启生效)
[root@localhost ~]# vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
修改前:
修改后:
3、关闭防火墙
查看防火墙状态
[root@localhost ~]# systemctl status firewalld.service
关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
再次查看防火墙状态
[root@localhost ~]# systemctl status firewalld.service
禁止使用防火墙(重启也是禁止的)
[root@localhost ~]# systemctl disable firewalld.service
4、修改主机名
[root@localhost ~]# vi /etc/hostname
修改后:
[root@localhost ~]# cat /etc/hostname
oracle
5、升级系统
[root@localhost ~]# yum update -y
6、安装依赖包
[root@localhost ~]# yum -y install binutils compat-libstdc++ compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel glibc-headers ksh libaio-devel libstdc++-devel make sysstat unixODBC-devel binutils-* compat-libstdc++* elfutils-libelf* glibc* gcc-* libaio* libgcc* libstdc++* make* sysstat* unixODBC* wget unzip
7、jdk支持
jdk1.6以上 #是oracle公司的jdk,不是openjdk
[root@localhost ~]# rpm -qa | grep jdk
jdk1.8-1.8.0_172-fcs.x86_64
8、查看服务器的发行版本
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
前面做了一些准备操作,验证了本服务器满足安装oracle12c的条件。
安装准备
1、建立用户和组
[root@localhost ~]# groupadd oinstall #创建用户组oinstall
[root@localhost ~]# groupadd dba #创建用户组dba
[root@localhost ~]# useradd -g oinstall -G dba oracle #创建oracle用户,并加入到oinstall和dba用户组
[root@localhost ~]# passwd oracle #设置用户oracle的登陆密码,密码为123456,报错可不管
更改用户 oracle 的密码 。
新的 密码:# 密码
无效的密码: 密码少于 8 个字符
重新输入新的 密码: #确认密码
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# id oracle #查看新建的oracle用户
uid=1001(oracle) gid=1002(dba) 组=1002(dba)
2、创建安装目录并设置权限
[root@localhost ~]# mkdir -p /opt/oracle #$ORACLE_BASE
[root@localhost ~]# mkdir -p /opt/oracle/12c #$ORACLE_HOME
[root@localhost ~]# mkdir -p /opt/oracle/oradata #数据存放目录
[root@localhost ~]# mkdir -p /opt/oracle/inventory #清单目录
[root@localhost ~]# mkdir -p /opt/oracle/flash_recovery_area #数据恢复目录
[root@localhost ~]# chown -R oracle:oinstall /opt/oracle #修改属组
[root@localhost ~]# chmod -R 775 /opt/oracle #修改权限
3、修改内核参数
[root@localhost ~]# vi /etc/sysctl.conf
添加下列参数:
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
使配置参数生效
[root@localhost ~]# sysctl -p
4、对oracle用户设置限制,提高软件运行性能
[root@localhost ~]# vi /etc/security/limits.conf
添加下列参数:
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
5、关联设置
[root@localhost ~]# vi /etc/pam.d/login
添加下列参数:
session required /lib64/security/pam_limits.so
session required pam_limits.so
6、设置环境变量
[root@localhost ~]# 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@localhost ~]# source /etc/profile
切换Oracle用户进行环境变量配置
[root@localhost ~]# su oracle
[oracle@localhost root]$ vi /home/oracle/.bash_profile
添加下列参数:
# For Oracle12 c
export ORACLE_BASE=/opt/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/12c #oracle数据库路径
export ORACLE_SID=orcl #oracle启动数据库实例名
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
export LANG=C #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题
使上述配置立即生效:
[oracle@localhost root]$ source /home/oracle/.bash_profile
7、上传Oracle12 c R1安装包
8、解压安装包
[oracle@localhost root]$ cd /usr/local/src
[oracle@localhost src]$ ll
总用量 2796248
-rw-r--r--. 1 root root 175274374 7月 1 00:24 jdk-8u172-linux-x64.rpm
-rw-r--r--. 1 root root 1673544724 7月 7 23:43 linuxamd64_12102_database_1of2.zip
-rw-r--r--. 1 root root 1014530602 7月 7 23:43 linuxamd64_12102_database_2of2.zip
解压安装包
[oracle@localhost src]$ unzip linuxamd64_12102_database_1of2.zip -d /opt/oracle
解压过程省略。。。
[oracle@localhost src]$ unzip linuxamd64_12102_database_2of2.zip -d /opt/oracle
解压过程省略。。。
安装数据库软件
下面操作用oracle用户操作
1、复制一个应答文件
[oracle@localhost src]$ cd /opt/oracle/database/response
[oracle@localhost response]$ ll
总用量 112
-rwxrwxr-x. 1 oracle dba 74822 4月 4 2014 dbca.rsp
-rw-rw-r--. 1 oracle dba 25036 7月 7 2014 db_install.rsp
-rwxrwxr-x. 1 oracle dba 6038 1月 24 2014 netca.rsp
备份应答文件
[oracle@localhost response]$ cp dbca.rsp /opt/oracle/database/response/dbca.rsp.bak
[oracle@localhost response]$ cp db_install.rsp /opt/oracle/database/response/db_install.rsp.bak
[oracle@localhost response]$ cp netca.rsp /opt/oracle/database/response/netca.rsp.bak
[oracle@localhost response]$ ll
总用量 224
-rwxrwxr-x. 1 oracle dba 74822 4月 4 2014 dbca.rsp
-rwxr-xr-x. 1 oracle dba 74822 7月 8 00:05 dbca.rsp.bak
-rw-rw-r--. 1 oracle dba 25036 7月 7 2014 db_install.rsp
-rw-r--r--. 1 oracle dba 25036 7月 8 00:05 db_install.rsp.bak
-rwxrwxr-x. 1 oracle dba 6038 1月 24 2014 netca.rsp
-rwxr-xr-x. 1 oracle dba 6038 7月 8 00:05 netca.rsp.bak
[oracle@localhost response]$
修改应答文件
[oracle@localhost response]$ vi db_install.rsp
修改内容如下:
oracle.install.option=INSTALL_DB_SWONLY #安装类型
ORACLE_HOSTNAME=oracle #主机名称
UNIX_GROUP_NAME=oinstall #安装组
INVENTORY_LOCATION=/opt/oracle/inventory #清单目录
SELECTED_LANGUAGES=en,zh_CN #选择语言
ORACLE_HOME=/opt/oracle/12c/ # oracle_home
ORACLE_BASE=/opt/oracle #oracle_base
oracle.install.db.InstallEdition=EE #oracle版本
oracle.install.db.DBA_GROUP=dba #dba用户组
oracle.install.db.OPER_GROUP=oinstall #oper用户组
oracle.install.db.BACKUPDBA_GROUP=dba
oracle.install.db.DGDBA_GROUP=dba
oracle.install.db.KMDBA_GROUP=dba
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE #数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl #globalDBName
oracle.install.db.config.starterdb.SID=orcl #SID
oracle.install.db.config.starterdb.memoryLimit=81920 #自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=123456 #设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true #设置安全更新
2、执行安装程序,等的时间有点长,可以通过下图查看后台日志安装进程,tail -f log ,安装过程有警告可忽略,如下图即为安装成功,根据图示操作
[oracle@localhost response]$ cd /opt/oracle/database/
[oracle@localhost database]$ ./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq
3、切换root用户执行上图脚本,然后回到oracle用户按enter就可以
[oracle@oracle root]$ su root
密码:
[root@oracle ~]# cd /opt/oracle/inventory/
[root@oracle inventory]# ll
总用量 8
drwxrwx---. 2 oracle oinstall 60 7月 1 01:14 ContentsXML
drwxrwx---. 2 oracle oinstall 185 7月 1 01:14 logs
-rw-rw----. 1 oracle oinstall 56 7月 1 01:14 oraInst.loc
-rwxrwx---. 1 oracle oinstall 1540 7月 1 01:14 orainstRoot.sh
drwxrwx---. 2 oracle oinstall 22 7月 1 01:07 oui
[root@oracle inventory]# ./orainstRoot.sh
更改权限/opt/oracle/inventory.
添加组的读取和写入权限。
删除全局的读取, 写入和执行权限。
更改组名/opt/oracle/inventory 到 oinstall.
脚本的执行已完成。
[root@oracle inventory]# cd /opt/oracle/12c/
[root@oracle 12c]# ./root.sh
4、查看默认的监听文件,并安装监听应答文件
[oracle@oracle /]$ vi /opt/oracle/database/response/netca.rsp
参数设置:
INSTALL_TYPE=""custom""安装的类型
LISTENER_NUMBER=1监听器数量
LISTENER_NAMES={"LISTENER"}监听器的名称列表
LISTENER_PROTOCOLS={"TCP;1521"}监听器使用的通讯协议列表
LISTENER_START=""LISTENER""监听器启动的名称
[oracle@oracle root]$ netca /silent /responseFile /opt/oracle/database/response/netca.rsp
5、上述命令执行成功后,会在/opt/oracle/12c/network/admin中生成listener.ora和sqlnet.ora文件
[oracle@oracle root]$ ls /opt/oracle/12c/network/admin/
listener.ora samples shrept.lst sqlnet.ora
6、安装完成后可以查看端口1521是否起来
[oracle@oracle root]$ netstat -tulnp |grep 1521
7、添加数据库实例,修改dbca.rsp文件
[oracle@oracle root]$ vi /opt/oracle/database/response/dbca.rsp
参数设置:
RESPONSEFILE_VERSION = "12.1.0" #默认
OPERATION_TYPE = "createDatabase" #默认
GDBNAME = "orcl" #数据库名字
SID = "orcl" #对应的实例名
TEMPLATENAME = "General_Purpose.dbc" #默认
SYSPASSWORD = "oracle" #sys密码
SYSTEMPASSWORD = "123456" #system密码
DBSNMPPASSWORD = "123456" #dbs密码
DATAFILEDESTINATION =/opt/oracle/oradata #清单目录
RECOVERYAREADESTINATION=/opt/oracle/flash_recovery_area #恢复数据目录
CHARACTERSET = "AL32UTF8" #字符集,重要!!!建库后一般不能更改
8、执行数据库实例安装
这一步执行可能要很久
[oracle@oracle root]$ cd /opt/oracle/12c/bin/
[oracle@oracle bin]$ dbca -silent -responseFile /opt/oracle/database/response/dbca.rsp
9、查看实例进程,监听状态
[oracle@oracle bin]$ ps -ef |grep ora_ |grep -v grep
10、查看实例状态
[oracle@oracle bin]$ sqlplus / as sysdba
SQL> select status from v$instance;
11、oracle的一些命令
开启oracle服务:
$dbstart
$lsnrctl start
$sqlplus / as sysdba
SQL>startup
关闭oracle服务:
$dbshut
$lsnrctl stop
$sqlplus / as sysdba
SQL>shutdown /shutdown immediate