1、准备安装包:
安装包下载地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html
2、先临时关闭 selinux:
[root@Centos ~]# setenforce 0
3、安装依赖的软件包:
[root@Centos ~]# 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
4、检查依赖的软件包是否已安装:
[root@Centos ~]# 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 binutils-2.27-41.base.el7_7.1.x86_64 compat-libcap1-1.10-7.el7.x86_64 compat-libstdc++-33-3.2.3-72.el7.x86_64 compat-libstdc++-33-3.2.3-72.el7.i686 gcc-4.8.5-39.el7.x86_64 gcc-c++-4.8.5-39.el7.x86_64 glibc-2.17-292.el7.x86_64 glibc-2.17-292.el7.i686 glibc-devel-2.17-292.el7.x86_64 glibc-devel-2.17-292.el7.i686 ksh-20120801-139.el7.x86_64 libaio-0.3.109-13.el7.x86_64 libaio-0.3.109-13.el7.i686 libaio-devel-0.3.109-13.el7.x86_64 libaio-devel-0.3.109-13.el7.i686 libgcc-4.8.5-39.el7.x86_64 libgcc-4.8.5-39.el7.i686 libstdc++-4.8.5-39.el7.x86_64 libstdc++-4.8.5-39.el7.i686 libstdc++-devel-4.8.5-39.el7.x86_64 libstdc++-devel-4.8.5-39.el7.i686 libXi-1.7.9-1.el7.x86_64 libXi-1.7.9-1.el7.i686 libXtst-1.2.3-1.el7.x86_64 libXtst-1.2.3-1.el7.i686 make-3.82-24.el7.x86_64 sysstat-10.1.5-18.el7.x86_64 unixODBC-2.3.1-14.el7.x86_64 unixODBC-2.3.1-14.el7.i686 unixODBC-devel-2.3.1-14.el7.x86_64 unixODBC-devel-2.3.1-14.el7.i686 [root@Centos ~]#
5、创建 oinstall 和 dba 组:
[root@Centos ~]# groupadd oinstall [root@Centos ~]# groupadd dba
6、创建 oracle 用户:
[root@Centos ~]# useradd -g oinstall -G dba oracle
7、设置 oracle 用户密码:
[root@Centos ~]# passwd oracle
8、验证创建是否正确:
[root@Centos ~]# id oracle uid=1002(oracle) gid=1002(oinstall) 组=1002(oinstall),1003(dba) [root@Centos ~]#
9、修改内核参数:
[root@docker ~]# vim /etc/sysctl.conf # 红色部分是要添加的内容
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 #最低:536870912,最大值:比物理内存小1个字节的值,建议超过物理内存的一半 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576
参数的值不能小于上面的配置,这是oracle官方建议的最小值,生产环境建议调整这些参数,以优化系统性能。
10、修改后使之生效:
[root@Centos ~]# sysctl -p
11、对oracle用户设置限制,提高软件运行性能:
[root@Centos ~]# vim /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
12、创建 oracle 相关安装目录:
[root@Centos ~]# mkdir -p /u01/app/oracle [root@Centos ~]# mkdir -p /u01/app/oraInventory
13、设置目录权限:
[root@Centos ~]# chown -R oracle:oinstall /u01/app/ [root@Centos ~]# chmod -R 775 /u01/app/
14、配置环境变量:
[oracle@Centos ~]$ vim ~/.bash_profile # 红色部分是要添加的内容 export ORACLE_BASE=/u01/app/oracle export ORACLE_SID=centos export ROACLE_PID=ora11g export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 export LANG="zh_CN.UTF-8" export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8" export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' export PATH=$PATH:$ORACLE_HOME/bin
15、使之生效:
[oracle@Centos ~]$ source ~/.bash_profile
16、解压安装包:
[root@Centos opt]# unzip linux.x64_11gR2_database_1of2.zip [root@Centos opt]# unzip linux.x64_11gR2_database_2of2.zip
17、复制响应文件模板:
[oracle@Centos ~]$ mkdir etc [oracle@Centos ~]$ cp /opt/database/response/* /home/oracle/etc/ [oracle@Centos ~]$ ls etc/ dbca.rsp db_install.rsp netca.rsp [oracle@Centos ~]$
18、设置响应文件权限:
[oracle@Centos ~]$ su - [root@Centos ~]# chmod 700 /home/oracle/etc/*.rsp
19、静默安装 oracle:
su - oracle
修改响应文件 /home/oracle/etc/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY # 安装类型 ORACLE_HOSTNAME=Centos # 主机名称(hostname查询) UNIX_GROUP_NAME=oinstall # 安装组 INVENTORY_LOCATION=/u01/app/oraInventory # INVENTORY目录(不填就是默认值) SELECTED_LANGUAGES=en,zh_CN,zh_TW # 选择语言 ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 # oracle_home ORACLE_BASE=/u01/app/oracle # oracle_base oracle.install.db.InstallEdition=EE # oracle版本 oracle.install.db.isCustomInstall=false # 自定义安装,否,使用默认组件 oracle.install.db.DBA_GROUP=dba # dba用户组 oracle.install.db.OPER_GROUP=oinstall # oper用户组 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE # 数据库类型 oracle.install.db.config.starterdb.globalDBName=orcl # globalDBName oracle.install.db.config.starterdb.SID=centos # SID oracle.install.db.config.starterdb.memoryLimit=81920 # 自动管理内存的内存(M) oracle.install.db.config.starterdb.password.ALL=oracle # 设定所有数据库用户使用同一个密码 SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true
20、开始静默安装:
[oracle@Centos ~]$ ./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
查看安装日志:
tail -f /u01/app/oraInventory/logs/installActions2019-12-01_06-56-29PM.log
出现类似如下提示表示安装完成:
以下配置脚本需要以 "root" 用户的身份执行。 #!/bin/sh #要运行的 Root 脚本 /u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/db_1/root.sh 要执行配置脚本, 请执行以下操作: 1. 打开一个终端窗口 2. 以 "root" 身份登录 3. 运行脚本 4. 返回此窗口并按 "Enter" 键继续 Successfully Setup Software.
使用 root 用户执行脚本:
[oracle@Centos ~]$ su - [root@Centos ~]# /u01/app/oraInventory/orainstRoot.sh [root@Centos ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh
21、配置监听程序:
[oracle@Centos ~]$ netca /silent /responsefile /home/oracle/etc/netca.rsp
22、启动监听程序,验证是否配置成功:
[oracle@Centos etc]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 01-12月-2019 02:39:48 Copyright (c) 1991, 2009, Oracle. All rights reserved. 启动/u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: 请稍候... TNSLSNR for Linux: Version 11.2.0.1.0 - Production 系统参数文件为/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora 写入/u01/app/oracle/diag/tnslsnr/Centos/listener/alert/log.xml的日志信息 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Centos)(PORT=1521))) 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) LISTENER 的 STATUS ------------------------ 别名 LISTENER 版本 TNSLSNR for Linux: Version 11.2.0.1.0 - Production 启动日期 01-12月-2019 02:40:09 正常运行时间 0 天 0 小时 0 分 21 秒 跟踪级别 off 安全性 ON: Local OS Authentication SNMP OFF 监听程序参数文件 /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora 监听程序日志文件 /u01/app/oracle/diag/tnslsnr/Centos/listener/alert/log.xml 监听端点概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Centos)(PORT=1521))) 监听程序不支持服务 命令执行成功 [oracle@Centos etc]$
23、静默 dbca 建库:
编辑应答文件
[GENERAL] RESPONSEFILE_VERSION = "11.2.0" OPERATION_TYPE = "createDatabase" [CREATEDATABASE] GDBNAME = "centos" SID = "centos" TEMPLATENAME = "General_Purpose.dbc" CHARACTERSET = "AL32UTF8"
24、创建实例:
[oracle@Centos etc]$ dbca -silent -responseFile dbca.rsp 输入 SYS 用户口令: # 这里的口令对应第 19 步中的配置 输入 SYSTEM 用户口令: # 这里同样也是对应第 19 步中的配置 复制数据库文件 1% 已完成 3% 已完成 11% 已完成 18% 已完成 26% 已完成 37% 已完成 正在创建并启动 Oracle 实例 40% 已完成 45% 已完成 50% 已完成 55% 已完成 56% 已完成 60% 已完成 62% 已完成 正在进行数据库创建 66% 已完成 70% 已完成 73% 已完成 85% 已完成 96% 已完成 100% 已完成 有关详细信息, 请参阅日志文件 "/u01/app/oracle/cfgtoollogs/dbca/centos/centos.log"。 [oracle@Centos etc]$
查看输出日志:
[oracle@Centos etc]$ cat /u01/app/oracle/cfgtoollogs/dbca/centos/centos.log 复制数据库文件 DBCA_PROGRESS : 1% DBCA_PROGRESS : 3% DBCA_PROGRESS : 11% DBCA_PROGRESS : 18% DBCA_PROGRESS : 26% DBCA_PROGRESS : 37% 正在创建并启动 Oracle 实例 DBCA_PROGRESS : 40% DBCA_PROGRESS : 45% DBCA_PROGRESS : 50% DBCA_PROGRESS : 55% DBCA_PROGRESS : 56% DBCA_PROGRESS : 60% DBCA_PROGRESS : 62% 正在进行数据库创建 DBCA_PROGRESS : 66% DBCA_PROGRESS : 70% DBCA_PROGRESS : 73% DBCA_PROGRESS : 85% DBCA_PROGRESS : 96% DBCA_PROGRESS : 100% 数据库创建完成。有关详细信息, 请查看以下位置的日志文件: /u01/app/oracle/cfgtoollogs/dbca/centos。 数据库信息: 全局数据库名:centos 系统标识符 (SID):centos [oracle@Centos etc]$
至此完成数据库实例的创建。
附:
(1)删除实例:
[oracle@Centos ~]$ dbca -silent -deleteDatabase -sourcedb centos
(2)监听程序相关命令:
lsnrctl status # 查看监听程序状态 lsnrctl start # 启动监听程序 lsnrctl stop # 停止监听程序
(3)实例相关命令:
sqlplus / as sysdba # 无口令登录,Oracle采用的是操作系统认证方式,当属于操作系统DBA组用户登陆到数据库服务器,那么Oracle认为这样的用户就可以授权以SYSDBA身份登录数据库 startup # 启动实例 shutdown immediate # 卸载实例
(4)用户和表空间相关:
# 创建 test 表空间,大小为 1G(1024m) CREATE TABLESPACE test DATAFILE '/home/oracle/data/test.ora' SIZE 1024m; # 创建 test 用户,密码为 test,关联 test 表空间 CREATE USER test IDENTIFIED BY "test" DEFAULT TABLESPACE test QUOTA 1024m ON USERS; # 给 test 用户授予权限 GRANT CONNECT,DBA,RESOURCE TO test;
参考链接:https://www.cnblogs.com/zydev/p/5827207.html