Centos7静默安装Oracle11G r2
I’m coming !!!
如题,进行操作吧!!!!!
环境准备
软件包在此提取码:vt9f
步骤
安装yum源
在这里用的是阿里云的yum源
[root@test ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@test ~]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.yun-idc.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
源标识 源名称 状态
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,068+2
centos centos 9,909+2
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,414+2
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 412
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 900
repolist: 34,703
检查空间状态
[root@test ~]# grep MemTotal /proc/meminfo # 物理内存不小于1G
MemTotal: 1865280 kB
[root@test ~]# df -h # 可用硬盘不小于8G
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 8.1G 9.0G 48% /
devtmpfs 899M 0 899M 0% /dev
tmpfs 911M 4.0K 911M 1% /dev/shm
tmpfs 911M 9.7M 902M 2% /run
tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sr0 8.8G 8.8G 0 100% /mnt/guazai
/dev/sda1 1014M 142M 873M 14% /boot
tmpfs 183M 0 183M 0% /run/user/0
[root@test ~]# grep SwapTotal /proc/meminfo # Swap分区空间不小于2G
SwapTotal: 2097148 kB
[root@test ~]# vim /etc/redhat-release # 修改CentOS系统标识(由于Oracle默认不支持CentOS)
redhat-tian
关闭防火墙
[root@test ~]# systemctl stop firewalld.service
[root@test ~]# systemctl disable firewalld.service
安装依赖包
[root@test ~]# yum -y install 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@test ~]# 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-43.base.el7_8.1.x86_64
compat-libcap1-1.10-7.el7.x86_64
compat-libstdc++-33-3.2.3-72.el7.x86_64
gcc-4.8.5-39.el7.x86_64
gcc-c++-4.8.5-39.el7.x86_64
glibc-2.17-307.el7.1.x86_64
glibc-2.17-307.el7.1.i686
glibc-devel-2.17-307.el7.1.x86_64
ksh-20120801-142.el7.x86_64
libaio-0.3.109-13.el7.x86_64
libaio-devel-0.3.109-13.el7.x86_64
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
libXi-1.7.9-1.el7.x86_64
libXtst-1.2.3-1.el7.x86_64
make-3.82-24.el7.x86_64
sysstat-10.1.5-19.el7.x86_64
unixODBC-2.3.1-14.el7.x86_64
unixODBC-devel-2.3.1-14.el7.x86_64
如果上述命令报错,则直接直接下面的命令。
[root@test ~]# yum -y install xz wget gcc-c++ ncurses ncurses-devel cmake make perl openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype* make gcc-c++ cmake bison perl perl-devel perl perl-devel glibc-devel.i686 glibc-devel libaio readline-devel zlib.x86_64 zlib-devel.x86_64 libcurl-* net-tool* sysstat lrzsz dos2unix telnet.x86_64 iotop unzip ftp.x86_64 xfs* expect vim psmisc openssh-client* libaio bzip2 epel-release automake binutils bzip2 elfutils expat gawk gcc ksh less make openssh-server rpm sysstat unzip unzip cifs-utils libXext.x86_64 glibc.i686 binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel libnsl
创建oracle用户
[root@test ~]# groupadd -g 502 oinstall # 产品的所有者
[root@test ~]# groupadd -g 503 dba # 数据库的安全审核
[root@test ~]# groupadd -g 504 oper
[root@test ~]# groupadd -g 505 asmadmin
[root@test ~]# useradd -u 502 -g oinstall -G oinstall,dba,asmadmin,oper -s /bin/bash -m oracle
[root@test ~]# passwd oracle # 当前设置的密码为1231qqq...A
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
解压Oracle数据库安装包
将Oracle 11gR2安装文件上传(可以使用sftp上传)到该操作目录下面,然后顺序解压安装文件到该目录。
[root@test ~]# su - oracle
[oracle@test ~]$ ll
总用量 2295592
-rw-r--r-- 1 oracle oinstall 1239269270 7月 22 18:15 linux.x64_11gR2_database_1of2.zip
-rw-r--r-- 1 oracle oinstall 1111416131 7月 22 18:13 linux.x64_11gR2_database_2of2.zip
解压
[oracle@test ~]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@test ~]$ unzip linux.x64_11gR2_database_2of2.zip
[oracle@test ~]$ ls
database linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip
[oracle@test ~]$ cd database/
[oracle@test database]$ ls
doc install response rpm runInstaller sshsetup stage welcome.html
修改内核配置
[root@test ~]# vim /etc/sysctl.conf
11 fs.aio-max-nr = 1048576
12 fs.file-max = 6815744
13 kernel.shmall = 2097152
14 kernel.shmmax = 4294967295
15 kernel.shmmni = 4096
16 kernel.sem = 250 32000 100 128
17 net.ipv4.ip_local_port_range = 9000 65500
18 net.core.rmem_default = 262144
19 net.core.rmem_max = 4194304
20 net.core.wmem_default = 262144
21 net.core.wmem_max = 1048576
#####
# kernel.shmall :
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB/4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304 符合要求。
# kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,例如,如果为16GB物理内存,可取16*1024*1024*1024-1=17179869183。
# kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
# kernel.sem = 250 32000 100 128 的意思是:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
完成后使用命令sysctl -p载入sysctl配置文件,如果-p后面不接任何的参数则默认执行/etc/sysctl.conf文件
[root@test ~]# sysctl -p
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
修改操作系统的配置
[oracle@test ~]$ exit
登出
[root@test ~]# vim /etc/security/limits.conf
在末尾进行如下的配置
62 oracle soft nproc 2047
63 oracle hard nproc 16384
64 oracle soft nofile 1024
65 oracle hard nofile 65536
66 oracle soft stack 10240
修改系统环境
[root@test ~]# vim /etc/profile
77 if [ $USER = "oracle" ]; then
78 if [ $SHELL = "/bin/ksh" ]; then
79 ulimit -p 16384
80 ulimit -n 65535
81 else
82 ulimit -u 16384 -n 65535
83 fi
84 umask 0222
85 fi
86 unset i
执行,使环境变量生效
[root@test ~]# . /etc/profile
创建Oracle安装目录
[root@test ~]# su - oracle
[oracle@test ~]$ mkdir -p ~/tools/oracle11g
修改环境变量
[oracle@test ~]$ vim ~/.bash_profile
在文件末尾添加如下配置
13 export ORACLE_BASE=/home/oracle/tools/oracle11g
14 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
15 export ORACLE_SID=orcl
16 export ORACLE_UNQNAME=orcl
17 export NLS_LANG=.AL32UTF8
18 export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib64
执行环境变量配置使其生效
[oracle@test ~]$ . ~/.bash_profile # .相当于source
修改Oracle配置文件
备份一份配置文件模板到当前
[oracle@test ~]$ cp database/response/db_install.rsp .
[oracle@test ~]$ vim db_install.rsp
29 oracle.install.option=INSTALL_DB_AND_CONFIG # 选择安装类型:1.只装数据库软件 2.安装数据库软件并建库 3.升级数据库,此处为安装数据库软件并建库
37 ORACLE_HOSTNAME=test # 指定操作系统主机名,通过hostname命令获得
42 UNIX_GROUP_NAME=oinstall # 指定oracleinventory目录的所有者,通常会是oinstall或者dba
47 INVENTORY_LOCATION=/home/oracle/tools/oraInventory # 指定产品清单oracle inventory目录的路径,如果是Win平台下可以省略
78 SELECTED_LANGUAGES=en,zh_CN # 指定数据库语言,可以选择多个,用逗号隔开。选择en, zh_CN(英文和简体中文)
83 ORACLE_HOME=/home/oracle/tools/oracle11g/product/11.2.0/dbhome_1 # 设置ORALCE_HOME的路径
88 ORACLE_BASE=/home/oracle/tools/oracle11g # 设置ORALCE_BASE的路径
99 oracle.install.db.InstallEdition=EE # 选择Oracle安装数据库软件的版本(企业版,标准版,标准版1),不同的版本功能不同,EE为企业版
142 oracle.install.db.DBA_GROUP=dba # 指定拥有OSDBA、OSOPER权限的用户组,通常会是dba组
147 oracle.install.db.OPER_GROUP=oper
160 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE # 选择数据库的用途,一般用途/事物处理,数据仓库,此处选择的是一般用途
165 oracle.install.db.config.starterdb.globalDBName=orcl # 指定GlobalName
170 oracle.install.db.config.starterdb.SID=orcl # 指定SID
184 oracle.install.db.config.starterdb.characterSet=AL32UTF8 # 选择字符集。不正确的字符集会给数据显示和存储带来麻烦无数。通常中文选择的有ZHS16GBK简体中文库,建议选择unicode的AL32UTF8国际字符集
192 oracle.install.db.config.starterdb.memoryOption=true # 11g的新特性自动内存管理,也就是SGA_TARGET和PAG_AGGREGATE_TARGET都不用设置了,Oracle会自动调配两部分大小。
200 oracle.install.db.config.starterdb.memoryLimit=1024 # 指定Oracle自动管理内存的大小,最小是256MB,如果后面安装时报错 原因: 系统中的可用共享内存总量 (908 MB) 小于所选目标数据库内存 (1024 MB)。操作: 请为目标数据库内存输入小于 908MB 的值。那么将它的值调小一点即可
206 oracle.install.db.config.starterdb.installExampleSchemas=false # 是否载入模板示例
233 oracle.install.db.config.starterdb.password.ALL=oracle # 设定所有数据库用户使用同一个密码,其它数据库用户就不用单独设置了。
261 oracle.install.db.config.starterdb.control=DB_CONTROL # 数据库本地管理工具DB_CONTROL,远程集中管理工具GRID_CONTROL
273 oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false # 是否启用Email通知, 启用后会将告警等信息发送到指定邮箱
278 oracle.install.db.config.starterdb.dbcontrol.emailAddress=tian15511@163.com # 设置通知EMAIL地址
299 oracle.install.db.config.starterdb.automatedBackup.enable=false # 设置自动备份,和OUI里的自动备份一样。
324 oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE #自动备份,要求指定使用的文件系统存放数据库文件还是ASM,这里指定的是存放数据库的文件
332 oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/home/oracle/tools/oracle1 1g/oradata # 使用文件系统存放数据库文件才需要指定数据文件、控制文件、Redo log的存放目录
339 oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/home/oracle/tools/ora cle11g/fast_recovery_area # 使用文件系统存放数据库文件才需要指定备份恢复目录
385 DECLINE_SECURITY_UPDATES=true # False表示不需要设置安全更新,注意,在11.2的静默安装中疑似有一个BUG,ResponseFile中必须指定为true,否则会提示错误,不管是否正确填写了邮件地址
静默安装oracle11gr2
[oracle@test ~]$ ls
database linux.x64_11gR2_database_1of2.zip tools
db_install.rsp linux.x64_11gR2_database_2of2.zip
[oracle@test ~]$ cd database/
[oracle@test database]$ ./runInstaller -silent -ignoreSysPrereqs -responseFile /home/oracle/db_install.rsp
# ignoreSysPrereqs:让Oracle忽略系统检查,因为Oracle官方声明只支持Linux服务器产品,所以要在非服务器产品的Linux上安装就必须指定此参数。-ignorePrereq: 如果哪块没有符合要求,不添加可能就安装不过去了
# silent :让安装程序以静默模式运行。
# responseFile:指定一个应答文件。
出现以下字样则代表安装成功:
[oracle@test database]$ 以下配置脚本需要以 "root" 用户的身份执行。
#!/bin/sh
#要运行的 Root 脚本
/home/oracle/tools/oraInventory/orainstRoot.sh
/home/oracle/tools/oracle11g/product/11.2.0/dbhome_1/root.sh
要执行配置脚本, 请执行以下操作:
1. 打开一个终端窗口
2. 以 "root" 身份登录
3. 运行脚本
4. 返回此窗口并按 "Enter" 键继续
Successfully Setup Software.
ps:中间可能会报出各种各样的问题,请耐心等待,即可安装成功,如果报出系统中的可用共享内存总量 (908 MB) 小于所选目标数据库内存,则在配置文件中修改第200行目标数据库的大小即可
开启一个root身份的终端,执行脚本:
[root@test ~]# . /home/oracle/tools/oraInventory/orainstRoot.sh
更改权限/home/oracle/tools/oraInventory.
添加组的读取和写入权限。
删除全局的读取, 写入和执行权限。
更改组名/home/oracle/tools/oraInventory 到 oinstall.
脚本的执行已完成。
[root@test ~]# . /home/oracle/tools/oracle11g/product/11.2.0/dbhome_1/root.sh
Check /home/oracle/tools/oracle11g/product/11.2.0/dbhome_1/install/root_test_2020-07-31_10-34-21.log for the output of root script
安装成功!进行测试
查看端口
[root@test ~]# netstat -nutlp | grep 1521
tcp6 0 0 :::1521 :::* LISTEN 23905/tnslsnr
登录数据库
[root@test ~]# su - oracle
[oracle@test ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jul 31 10:46:14 2020
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select status from v$instance; # 查询当前实例的状态
STATUS
------------
OPEN
SQL> select userenv('language') from dual; # 查看字符集
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
SQL> select * from v$version; # 查看数据库的版本
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> select name from v$database ; # 查看当前数据库名
NAME
---------
ORCL
创建临时表空间table_test
[root@test ~]# mkdir /home/oracle/oracle_file
[root@test ~]# chown -R oracle.oinstall /home/oracle/oracle_file/
[root@test ~]# ll /home/oracle/
总用量 2295624
drwxr-xr-x. 8 oracle oinstall 128 7月 29 18:05 database
-rw-r--r--. 1 oracle oinstall 22867 7月 29 18:05 db_install.rsp
-rw-r--r--. 1 oracle oinstall 1239269270 7月 29 17:48 linux.x64_11gR2_database_1of2.zip
-rw-r--r--. 1 oracle oinstall 1111416131 7月 29 17:48 linux.x64_11gR2_database_2of2.zip
drwxr-xr-x. 2 oracle oinstall 6 7月 31 11:25 oracle_file
-r--r-----. 1 oracle oinstall 104865792 7月 31 11:23 table_test.dbf
drwxr-xr-x. 5 oracle oinstall 58 7月 29 18:08 tools
SQL> create temporary tablespace table_test tempfile # 表空间名称
2 '/home/oracle/oracle_file/table_test.dbf' # 文件路径
3 size 100m ; # 初始大小
在另一个终端查看文件是否创建成功
[root@test ~]# ls /home/oracle/oracle_file/
table_test.dbf
激活Scott用户
SQL> alter user scott account unlock ;
User altered.
SQL> alter user scott identified by scott ;
User altered.
SQL> select username,account_status from dba_users ;
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW OPEN
SYS OPEN
SYSTEM OPEN
DBSNMP OPEN
SYSMAN OPEN
SCOTT OPEN
OUTLN EXPIRED & LOCKED
FLOWS_FILES EXPIRED & LOCKED
MDSYS EXPIRED & LOCKED
ORDSYS EXPIRED & LOCKED
EXFSYS EXPIRED & LOCKED
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
WMSYS EXPIRED & LOCKED
APPQOSSYS EXPIRED & LOCKED
APEX_030200 EXPIRED & LOCKED
OWBSYS_AUDIT EXPIRED & LOCKED
ORDDATA EXPIRED & LOCKED
CTXSYS EXPIRED & LOCKED
ANONYMOUS EXPIRED & LOCKED
XDB EXPIRED & LOCKED
ORDPLUGINS EXPIRED & LOCKED
OWBSYS EXPIRED & LOCKED
SI_INFORMTN_SCHEMA EXPIRED & LOCKED
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
OLAPSYS EXPIRED & LOCKED
ORACLE_OCM EXPIRED & LOCKED
XS$NULL EXPIRED & LOCKED
MDDATA EXPIRED & LOCKED
DIP EXPIRED & LOCKED
APEX_PUBLIC_USER EXPIRED & LOCKED
SPATIAL_CSW_ADMIN_USR EXPIRED & LOCKED
SPATIAL_WFS_ADMIN_USR EXPIRED & LOCKED
30 rows selected.
> 以下是oracle数据库提供的系统表:
> dba_开头
dba_users # 数据库用户信息
dba_segments # 表段信息
dba_extents # 数据区信息
dba_objects # 数据库对象信息
dba_tablespaces # 数据库表空间信息
dba_data_files # 数据文件设置信息
dba_temp_files # 临时数据文件信息
dba_rollback_segs # 回滚段信息
dba_ts_quotas # 用户表空间配额信息
dba_free_space # 数据库空闲空间信息
dba_profiles # 数据库用户资源限制信息
dba_sys_privs # 用户的系统权限信息
dba_tab_privs # 用户具有的对象权限信息
dba_col_privs # 用户具有的列对象权限信息
dba_role_privs # 用户具有的角色信息
dba_audit_trail # 审计跟踪记录信息
dba_stmt_audit_opts # 审计设置信息
dba_audit_object # 对象审计结果信息
dba_audit_session # 会话审计结果信息
dba_indexes # 用户模式的索引信息
> user_开头
user_objects # 用户对象信息
user_source # 数据库用户的所有资源对象信息
user_segments # 用户的表段信息
user_tables # 用户的表对象信息
user_tab_columns # 用户的表列信息
user_constraints # 用户的对象约束信息
user_sys_privs # 当前用户的系统权限信息
user_tab_privs # 当前用户的对象权限信息
user_col_privs # 当前用户的表列权限信息
user_role_privs # 当前用户的角色权限信息
user_indexes # 用户的索引信息
user_ind_columns # 用户的索引对应的表列信息
user_cons_columns # 用户的约束对应的表列信息
user_clusters # 用户的所有簇信息
user_clu_columns # 用户的簇所包含的内容信息
user_cluster_hash_expressions # 散列簇的信息
> v$开头
v$database # 数据库信息
v$datafile # 数据文件信息
v$controlfile # 控制文件信息
v$logfile # 重做日志信息
v$instance # 数据库实例信息
v$log # 日志组信息
v$loghist # 日志历史信息
v$sga # 数据库SGA信息
v$parameter # 初始化参数信息
v$process # 数据库服务器进程信息
v$bgprocess # 数据库后台进程信息
v$controlfile_record_section # 控制文件记载的各部分信息
v$thread # 线程信息
v$datafile_header # 数据文件头所记载的信息
v$archived_log # 归档日志信息
v$archive_dest # 归档日志的设置信息
v$logmnr_contents # 归档日志分析的DML DDL结果信息
v$logmnr_dictionary # 日志分析的字典文件信息
v$logmnr_logs # 日志分析的日志列表信息
v$tablespace # 表空间信息
v$tempfile # 临时文件信息
v$filestat # 数据文件的I/O统计信息
v$undostat # Undo数据信息
v$rollname # 在线回滚段信息
v$session # 会话信息
v$transaction # 事务信息
v$rollstat # 回滚段统计信息
v$pwfile_users # 特权用户信息
v$sqlarea # 当前查询过的sql语句访问过的资源及相关的信息
v$sql # 与v$sqlarea基本相同的相关信息
v$sysstat # 数据库系统状态信息
> all_开头
all_users # 数据库所有用户的信息
all_objects # 数据库所有的对象的信息
all_def_audit_opts # 所有默认的审计设置信息
all_tables # 所有的表对象信息
all_indexes # 所有的数据库对象索引的信息
> session_开头
session_roles # 会话的角色信息
session_privs # 会话的权限信息
> index_开头
index_stats # 索引的设置和存储信息
> 伪表
dual # 系统伪列表信息