1 oracle安装环境说明
1.1 环境说明
1.1.1 操作系统版本
宿主机: window7 企业版vmware版本: VMware® Workstation 14 Pro
虚拟机镜像: centos7
1.1.2 数据库版本
oracle 11.2.0.1.0 企业版1.1.3 安装文件清单
linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip
1.1.4 文件安装路径说明
目录名称 | 所属用户 | 所属用户组 | 文件描述 |
---|---|---|---|
/u01/app/oracle | oracle | oinstall | ORACLE_BASE |
/u01/app/oracle/oraInventory | oracle | oinstall | ORACLE_BASE |
$ORACLE_BASE/admin/ORCL/adump | oracle | oinstall | oracle相关日志的存放位置 |
$ORACLE_BASE/oradata/orcl | oracle | oinstall | 数据文件,控制文件、在线重做日志文件的存放目录 |
$ORACLE_BASE/flash_recovery_area/db_1 | oracle | oinstall | 闪回日志的存放目录 |
1.2 硬件要求
1.2.1 内存
oracle安装,内存至少为1G。建议的值为:大于2G◆ 查看系统内存的大小
grep MemTotal /proc/meminfo
交换空间(swap)的大小取决于物理内存的大小,参照如下:
物理内存大小 | 交换内存的大小 |
---|---|
1G~2G | 1.5倍的物理内存 |
2G~16G | 和物理内存相等 |
>16G | 16G |
◆ 查看交换内存的大小
[root@bogon ~]# grep SwapTotal /proc/meminfo
1.2.2 磁盘空间
◆ /tmp目录空间至少大于1G
◆ oracle安装目录建议大于10G
1.3 软件要求
◆ 操作系统
https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#LADBI1106
◆ 内核
https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#LADBI1110
◆ 软件依赖包
https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#LADBI1111
2 静默方式安装oracle
2.1 安装前准备
2.1.1 oracle软件依赖包的安装
◆ 校验安装包是否安装,根据输出的结果,判断是否需要安装
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers pdksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
2.1.2 创建操作系统所需的用户和用户组
◆ 创建oinstall用户组
/usr/sbin/groupadd oinstall
◆ 创建dba用户组
/usr/sbin/groupadd -g 502 dba
◆ 创建oracle用户
/usr/sbin/useradd -u 502 -g oinstall -G dba oracle
2.1.3 修改操作系统的内核参数
◆ 修改/etc/sysctl.conf,如果值存在,修改,不存在,则添加
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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
◆ 使立即生效
sbin/sysctl -p
2.1.4 修改用户资源限制
◆ 推荐的配置如下:
修改/etc/security/limits.conf在末尾加上如下配置:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
2.1.5 使用oracle提供的oracle-rdbms-server来简化数据库的安装
使用oracle-rdbms-server-11gR2-preinstall来简化oracle的安装
这个包是oracle官方提供给安装oracle用户的,用来简化oracle软件的安装。执行这个步骤,可以省略上述带有删除线的步骤。
◆ 根据操作系统的版本,选择合适的yum源:
注:根据linux的版本,选择合适的yum源。笔者在搭建环境的过程中,操作系统的版本为:Red Hat Enterprise Linux Server release 6.8,一不小心,yum源选择了linux7的yum源,安装之后,安装失败了,又选择安装了linux6的yum源,导致系统的bash被删除掉了,导致系统不能启动。选择yum源的过程,http://yum.oracle.com/getting-started.html
wget http://yum.oracle.com/public-yum-ol7.repo -O /etc/yum.repos.d/public-yum-ol7.repo
◆ 选择合适的GPG KEY,进行验证安装:
wget https://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
◆ 安装oracle-rdbms-server-11gR2-preinstall:
yum install oracle-rdbms-server-11gR2-preinstall
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers pdksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
yum install elfutils-libelf-devel
yum install glibc-2.5
yum install pdksh
yum install unixODBC
yum install unixODBC-devel
◆ 设置oracle的用户的密码:
passwd oracle
◆ 创建oracle安装目录:
mkdir -p /u01/app/oracle
mkdir /u01/app/oracle/oraInventory
chown -R oracle:oinstall /u01/app/oracle
chmod -R 755 /u01/app/oracle/
◆ 设置环境变量:
vi /home/oracle/.bash_profile
ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_HOME
ORACLE_SID=orcl
export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin
source /home/oracle/.bash_profile
◆ 设置操作系统的hostname:
vi /etc/hosts
realip hostname.domain.com hostname
192.168.233.133 oracledb.localdomain.com oracledb
hostname oracledb
◆ 重启服务器:
reboot
2.2 安装oracle实例
2.2.1 解压缩oracle的安装文件
unzip linux.x64_11gR2_database_1of2.zip -d /upload/
unzip linux.x64_11gR2_database_2of2.zip -d /upload/
chown -R oracle:oinstall /upload/database/
2.2.2 准备应答文件
oracle解压缩之后,在database/response中存放着一些应答文件的模板,可以使用这些应答模板进行修改,来执行非交互式的数据库软件和数据库的安装。
◆ dbca.rsp:创建数据库的应答文件模板
◆ db_install.rsp:安装数据库软件的应答文件模板:
◆ netca.rsp:配置oracle中的网络使用的应答文件的模板
cd /u01/app/oracle
mkdir responseFiles
cp /upload/database/response/* responseFiles/
cp responseFiles/db_install.rsp responseFiles/enterprise.rsp
chown -R oracle:oinstall responseFiles
chmod -R 755 responseFiles/
enterprise.rsp中改动的内容如下:
oracle.install.option=INSTALL_DB_SWONLY // 安装类型
ORACLE_HOSTNAME=oracledb // 主机名称(hostname查询)
UNIX_GROUP_NAME=oinstall // 安装组
INVENTORY_LOCATION=/u01/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN,zh_TW // 选择语言
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
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=orcl //SID
oracle.install.db.config.starterdb.memoryLimit=512//自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false(手动写了false)
DECLINE_SECURITY_UPDATES=true(如果不设置成true,安装失败,会提示输入邮件地址)
2.2.3 执行命令完成安装
cd database/
su - oracle
cd /upload/database/
./runInstaller -silent -force -ignoreSysPrereqs -ignorePrereq -responseFile /u01/app/oracle/responseFiles/enterprise.rsp
-silent:z指定安装的类型
-ignoreSysPrereqs:忽略系统先决条件的检查
-ignorePrereq:忽略系统运行条件的检查
-ignorePrereq:执行应答文件的位置
当日志出现如下时,以root用户登录,执行以下脚本:
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
要执行配置脚本, 请执行以下操作:
1. 打开一个终端窗口
2. 以 "root" 身份登录
3. 运行脚本
4. 返回此窗口并按 "Enter" 键继续
sh /u01/app/oracle/oraInventory/orainstRoot.sh
sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
2.2.4 验证安装结果
sqlplus / as sysdba
出现如下时,说明oracle实例安装完成
SQL*Plus: Release 11.2.0.1.0 Production on Sat Mar 17 12:16:29 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
2.3 创建数据库
2.3.1 创建数据文件相关目录
mkdir -p /u01/app/oracle/admin/ORCL/adump #oracle相关日志的存放位置
mkdir -p /u01/app/oracle/oradata/orcl #oracle数据文件的存放位置
mkdir -p /u01/app/oracle/flash_recovery_area/db_1 #oracle闪存恢复的工作空间
2.3.2 准备参数文件
vi /u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora
ORCL.__db_cache_size=486539264
ORCL.__java_pool_size=16777216
ORCL.__large_pool_size=16777216
ORCL.__oracle_base='/u01/app/oracle'
ORCL.__pga_aggregate_target=620756992
ORCL.__sga_target=973078528
ORCL.__shared_io_pool_size=0
ORCL.__shared_pool_size=402653184
ORCL.__streams_pool_size=33554432
*.aq_tm_processes=0
*.audit_file_dest='/u01/app/oracle/admin/ORCL/adump'
*.audit_trail='db'
*.compatible='11.2.0.1.0'
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='db1'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=4070572032
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
*.job_queue_processes=0
*.memory_target=400M
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
2.3.3 准备和执行create database语句
◆ 启动数据库到mount状态 SQL> startup nomount pfile=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora;
出现如下信息,则说明数据库切换到nomount状态成功
ORACLE instance started.
Total System Global Area 417546240 bytes
Fixed Size 2213936 bytes
Variable Size 268437456 bytes
Database Buffers 142606336 bytes
Redo Buffers 4288512 bytes
SQL>
◆ 执行语句
CREATE DATABASE db1
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
MAXLOGMEMBERS 5
MAXLOGFILES 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
LOGFILE
GROUP 1 ('/u01/app/oracle/oradata/orcl/redo01.log') SIZE 100M,
GROUP 2 ('/u01/app/oracle/oradata/orcl/redo02.log') SIZE 100M,
GROUP 3 ('/u01/app/oracle/oradata/orcl/redo03.log') SIZE 100M
DATAFILE
'/u01/app/oracle/oradata/orcl/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE
'/u01/app/oracle/oradata/orcl/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE UNDOTBS1
DATAFILE '/u01/app/oracle/oradata/orcl/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
◆ 执行create database语句出错, 删除相关目录,重新执行create语句
rm -rf /u01/app/oracle/admin/orcl/adump/*
rm -rf /u01/app/oracle/oradata/orcl/*
2.3.4 运行sql脚本生成数据字典
SQL> @?/rdbms/admin/catalog.sql
SQL> @?/rdbms/admin/catproc.sql
SQL> @?/sqlplus/admin/pupbld.sql#[以system用户运行]
#==================create statpack=================
SQL> @?/rdbms/admin/spcreate;
#==========下面三个脚本是重建重建WMSYS用户的WMSYS.WM_CONCAT===========
SQL> @?/rdbms/admin/owmctab.plb;
SQL> @?/rdbms/admin/owmaggrs.plb;
SQL> @?/rdbms/admin/owmaggrb.plb;
注:如果不执行 spcreate脚本,生成ASH时,可能会报如下错误:
Ora-20200: No Ash Samples Exist For Database/Instance
2.4 安装完成后的配置
2.4.1 配置服务端监听
在$ORACLE_HOME/network/admin/下,新建listener.ora 文件,内容如下:LISTENER=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=/soft/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME=orcl))
(SID_DESC=
(SID_NAME=plsextproc)
(ORACLE_HOME=/soft/app/oracle/product/11.2.0/dbhome_1)
(PROGRAM=extproc)))
2.4.2 配置客户端tnsnames.ora
在$ORACLE_HOME/network/admin/下,新建tnsnames.ora 文件,内容如下:orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.133)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)