zl程序教程

您现在的位置是:首页 >  系统

当前栏目

CentOS 7 下 静默方式安装 Oracle 11g

centosOracle安装 方式 11g 静默
2023-09-14 09:16:40 时间

一、相关配置

1、配置 hostname

hostnamectl set-hostname oracledb
echo "127.0.0.1   oracledb" >>/etc/hosts

# 关闭 selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config  
setenforce 0

2、下载 oracle

官方网站:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/
根据自己的服务器,下载相应的软件,我的系统是64位的,所以下载的是 Linux x86-64的,下载完的两个文件如下

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

3、安装相关环境

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

 4、创建相关用户

groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba oracle

# 修改密码
passwd oracle

5、配置内核相关参数

vi /etc/sysctl.conf

# 加入
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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


# 立即生效
sysctl -p

6、配置系统相关参数

vi /etc/security/limits.conf

# 添加
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536


vi /etc/pam.d/login

# 添加
session required /lib64/security/pam_limits.so
session required pam_limits.so

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

# 立即生效
source /etc/profile

# 禁用 Transparent HugePages
echo never > /sys/kernel/mm/transparent_hugepage/enabled

 二、开始安装

1、创建安装目录

mkdir -p /data/app/
chown -R oracle:oinstall /data/app/
chmod -R 775 /data/app/

2、配置 oracle 用户环境变量

vi /home/oracle/.bash_profile

# 添加
umask 022
export ORACLE_HOSTNAME=oracledb
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/
export ORACLE_SID=ecs
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

 3、解压安装文件

unzip -q linux.x64_11gR2_database_1of2.zip -d /data
unzip -q linux.x64_11gR2_database_2of2.zip -d /data
mkdir -p /data/etc
cp /data/database/response/* /data/etc/

4、修改安装配置文件

vi /data/etc/db_install.rsp

# 修改相关安装配置
# 选择安装类型:1.只装数据库软件
oracle.install.option=INSTALL_DB_SWONLY

# 指定操作系统主机名,通过hostname命令获得
ORACLE_HOSTNAME=oracledb

# 指定oracleinventory目录的所有者,通常会是oinstall或者dba
UNIX_GROUP_NAME=oinstall

# 指定产品清单oracle inventory目录的路径,如果是Win平台下可以省略
INVENTORY_LOCATION=/data/app/oracle/inventory

# 指定数据库语言,可以选择多个,用逗号隔开。选择en, zh_CN(英文和简体中文)
SELECTED_LANGUAGES=en,zh_CN

# 设置ORALCE_HOME的路径
ORACLE_HOME=/data/app/oracle/product/11.2.0

# 设置ORALCE_BASE的路径
ORACLE_BASE=/data/app/oracle

# 选择Oracle安装数据库软件的版本(企业版)
oracle.install.db.InstallEdition=EE

# 是否自定义Oracle的组件
oracle.install.db.isCustomInstall=true

# 指定拥有OSDBA、OSOPER权限的用户组,通常会是dba组
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall

# 是否需要设置安全更新
DECLINE_SECURITY_UPDATES=true

5、开始安装

su - oracle
cd /data/database
./runInstaller -silent -responseFile /data/etc/db_install.rsp -ignorePrereq


# 可以查看安装进度
tail -f /data/app/oracle/inventory/logs/installActions20**-**-**_**-**-****.log

# 显示如下,表示完成
The following configuration scripts need to be executed as the "root" user. 
#!/bin/sh 
#Root scripts to run

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh
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

Successfully Setup Software.

6、执行脚本

su - root
sh /data/app/oracle/inventory/orainstRoot.sh
sh /data/app/oracle/product/11.2.0/root.sh

 7、启动监听

su - oracle
netca /silent /responsefile /data/etc/netca.rsp

# 查看端口是否启动
netstat -lntp | grep 1521

8、创建数据库

在安装完数据库软件之后,默认会生成响应文件的模板,通过响应文件的方式来创建数据库
默认的响应文件在 /data/etc/dbca.rsp,重新生成的新的响应文件创建数据库

vi /data/etc/ecs_dbca.rsp


# 加入内容
# 创建 ecs 数据库

[GENERAL]

# 数据库版本
RESPONSEFILE_VERSION = "11.2.0"

# 操作类型:创建数据库
OPERATION_TYPE = "createDatabase"

# 当操作类型选择创建数据库CREATEDATABASE会使用下面的选项
[CREATEDATABASE]

# 数据库的全局数据库名称
GDBNAME = "ecs"

# 数据库服务ID
SID = "ecs"

# 引用的模板
TEMPLATENAME = "General_Purpose.dbc"

# SYS管理员密码
SYSPASSWORD = "oracle"

# SYSTEM管理员密码
SYSTEMPASSWORD = "oracle"

SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"

# 数据文件存放目录
DATAFILEDESTINATION =/data/app/oracle/oradata

#恢复数据存放目录
RECOVERYAREADESTINATION=/data/app/oracle/fast_recovery_area

# 字符集,建库后一般不能更改
CHARACTERSET = "AL32UTF8"

# oracle内存,单位M
TOTALMEMORY = "1638"

# 是否创建示例SCHEMA
SAMPLESCHEMA = TRUE

9、开始建库

su - oracle
dbca -silent -responseFile /data/etc/ecs_dbca.rsp

# 显示创建成功
Copying database files
1% complete
3% complete
.......
100% complete
Look at the log file "/data/app/oracle/cfgtoollogs/dbca/ecs/ecs.log" for further details.


# 查看监听状态
lsnrctl status

# 已经成功
.....
Services Summary...
Service "ecs" has 1 instance(s).
  Instance "ecs", status READY, has 1 handler(s) for this service...
....
The command completed successfully


# 查看当前SID
echo $ORACLE_SID
ecs

 

启动

# 启动监听
lsnrctl start

# sys用户进入
$ sqlplus / as sysdba

# 启动数据库
SQL> startup

关闭

# 关闭数据库
SQL> shutdown immediate

# 关闭监听
lsnrctl stop

登陆自带测试表 

# 给默认的 scott 测试用户解锁,必须用 dba 账户操作
alter user scott account unlock;

# 登陆 scott
SQL> conn scott/tiger


# 查看scott下所有表
SQL> select * from tab;

TNAME				TABTYPE
-----------------------------------------------
BONUS                            TABLE
DEPT                             TABLE
EMP                              TABLE
SALGRADE                         TABLE
-----------------------------------------------

 Oracle远程登录报错:ERROR: ORA-01031: insufficient privileges

# 给sys用户赋予sysdba权限
SQL> grant sysdba to sys;

# 如果提示
ORA-01994: GRANT failed: password file missing or disabled

# 解决方法
# 重新建立密码文件,文件位于 $ORACLE_HOME/dbs,先把之前的文件删除,默认以orapw开头的
orapwd file=orapw$ORACLE_SID password=oracle entries=30

# 成功
SQL> grant sysdba to sys;
Grant succeeded.