• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

centos7静默安装oracle11g

开发技术 开发技术 3周前 (09-10) 22次浏览

#关闭防火墙

systemctl stop firewalld
systemctl status firewalld
systemctl disable firewalld

#关闭SElinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

#yum安装

yum -y install unzip vim* bash-c++ompletion bash-completion-extras nmap tree dos2unix nc wget lsof tcpdump lrzsz telnet screen install 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 pdksh sysstat unixODBC unixODBC-devel

wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm

rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

#添加oracle用户组和用户

groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle

#设置密码

passwd oracle

#优化OS内核参数

vim /etc/sysctl.conf

fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.shmmax = 536870912
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=1048586

#生效

sysctl -p

#限制oracle用户的shell权限

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
oracle  soft    core    unlimited
oracle  hard    core    unlimited

#创建目录

mkdir -p /u01/app/oracle/product/11.2.0
mkdir /u01/app/oracle/oradata
mkdir /u01/app/oracle/oraInventory
mkdir /u01/app/oracle/fast_recovery_area
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle

#创建oraInst.loc

vim /etc/oraInst.loc
inventory_loc
=/u01/app/oracle/oraInventory inst_group=oinstall

#授权

chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc

#设置环境变量 切换到oracle用户下面,修改 .bash_profile

su - oracle
vim .bash_profile

unset TNS_ADMIN

export ORACLE_HOSTNAME=oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=ORCL
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"

source /home/oracle/.bash_profile
env

#解压软件

su - oracle
cd /home/oracle/
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

#设置所属主和组

su - root
cd /home/oracle/
chown -R oracle:oinstall database
chmod -R +x database

su - root
mkdir /home/oracle/etc/
cp /home/oracle/database/response/* /home/oracle/etc/
chmod 777 /home/oracle/etc/*.rsp

su – oracle
vim /home/oracle/etc/db_install.rsp

#这里是选择安装类型:1.只装数据库软件INSTALL_DB_SWONLY  2.安装数据库软件并建库INSTALL_DB_AND_CONFIG  3.升级数据库UPGRADE_DB

oracle.install.option=INSTALL_DB_SWONLY

#这里是指定主机的HOSTNAME

ORACLE_HOSTNAME=你的主机名

#指定oracle inventory目录的所有者,通常会是oinstall或者dba

UNIX_GROUP_NAME=oinstall

#指定oracle inventory目录的路径,如果是Win平台下可以省略

INVENTORY_LOCATION=/u01/app/oracle/oraInventory

#指定添加的语言,可以选择多个,用逗号隔开。大多数库会选择,en, zh_CN即英文和简体中文。

SELECTED_LANGUAGES=en,zh_CN

#设置ORALCE_HOME的路径

ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

#设置ORACLE_BASE的路径

ORACLE_BASE=/u01/app/oracle

#选择Oracle数据库软件的版本,正如Win 7有标准版,高级版、专业版、旗舰版之分,不同的版本功能上会有不同。Oralc++e数据库软件在这里也可以指定安装的版本,通常来说,实验环境我们都选择Enterprise Edition即企业版

oracle.install.db.InstallEdition=EE

#这里是是否自定义Oracle的组件,如果选择false,则会使用默认的组件,否则需要自己在下面一条参数将要安装的组件一一列出。通常来说只要客户购买了相应版权,我们会安装所有的组件,因为后期如果缺乏某个组件,要再次安装会非常的麻烦。

oracle.install.db.isCustomInstall=true

#指定DBA组,通常是dba

oracle.install.db.DBA_GROUP=dba

#指定OPER组,通常是oinstall

oracle.install.db.OPER_GROUP=oinstall

#这里选择数据库的用途,一般用途/事物处理(GENERAL_PURPOSE/TRANSACTION_PROCESSING),数据仓库(DATA_WAREHOUSE)

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

#指定Global Name

oracle.install.db.config.starterdb.globalDBName=orcl

#指定SID

oracle.install.db.config.starterdb.SID=orcl

#非常关键的一步,选择字符集。错误的字符集会给后期带来无尽的麻烦,所以一定要确认好字符集。通常我们选择的是ZHS16GBK, 所谓的国标16位简体中文库

oracle.install.db.config.starterdb.characterSet=AL32UTF8

#指定Oracle自动管理内存的大小,最小是256MB

oracle.install.db.config.starterdb.memoryLimit=512

#所有schemas使用同一个密码

oracle.install.db.config.starterdb.password.ALL=oracle

#是否设置安全更新

DECLINE_SECURITY_UPDATES=true

#开始安装

su - oracle
cd /home/oracle/database
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
#Successfully Setup Software出现这个表示安装成功

#查看日志 需要耐性等待时间 有的时候回很慢

tail -f /u01/app/oracle/oraInventory/logs/xxx.log

#使用root用户执行脚本

/u01/app/oracle/product/11.2.0/db_1/root.sh

#修改oracle的环境变量

su - oracle
vim ~/.bash_profile

export ORACLE_SID=你的主机名或者应用名
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data

source /home/oracle/.bash_profile

#配置监听程序

vim /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
(ADDRESS = (PROTOCOL = TCP)(HOST = 你的主机名或者IP)(PORT = 你启动的端口))

vim /home/oracle/etc/netca.rsp
修改LISTENER_PROTOCOLS={"TCP;你启动的端口"}

#安装监听

/u01/app/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp
#Listener Control complete &Listener started successfully 出现这个表示成功

#查看日志

tail -f /u01/app/oracle/cfgtoollogs/netca/xxx.log

#启动监控程序

su - oracle
/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start

#查看监听程序

/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl status

#静默dbca建库 在root下编辑

su - root

#编辑应答文件

vim /home/oracle/etc/dbca.rsp

SID="你的主机名或者应用名"
SYSPASSWORD = "你的密码" 
SYSTEMPASSWORD = "你的密码" 
CHARACTERSET="AL32UTF8" 
NATIONALCHARACTERSET="UTF8"

#建库 在orcale用户下执行

su - oracle

#需要查看下dbca.rsp里面的sid要和环境变量里面的保持一致

/u01/app/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp

#查看日志

tail -f /u01/app/oracle/cfgtoollogs/dbca/orcl11g/orcl11g.log

cp /u01/app/oracle/admin/orcl11g/pfile/init.ora.724202053030 /u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1/dbs/initorcl11g.ora

#设置Oracle开机启动

vim /etc/oratab
mydb:/u01/app/oracle/product/11.2.0:Y  # //把“N”改成“Y”

# 通过dbstart 启动此实例,监听器

su - oracle
/u01/app/oracle/product/11.2.0/db_1/bin/dbstart $ORACLE_HOME;

# oracle的进程关闭,监听器也停止;

/u01/app/oracle/product/11.2.0/db_1/bin/dbshut $ORACLE_HOME;

# 启动监听

/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start;

#查看监听

/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl status;

#登录Oracle

/u01/app/oracle/product/11.2.0/db_1/bin/sqlplus /nolog

# 进入系统管理用户

SQL> conn / as sysdba
Connected to an idle instance.

# 启动oracle实例

SQL> startup;

#查看数据库版本

SQL> SELECT * FROM V$VERSION;

#查看实例状态

SQL> select status from v$instance;

#查看数据库编码

SQL> select userenv('language') from dual;

#创建用户

SQL> create user 你的用户名 identified by 密码;

#授权dba

SQL> grant dba to 你的用户名;

#授权用户

alter user 你的用户名 default tablespace users;

SQL> disc

#查看用户

SQL> col username for a20
SQL> select username from dba_users;

#修改默认密码

alter user system identified by 密码;
alter user sys identified by 密码;

#查看oracle实例进程

ps -ef | grep ora_ | grep -v grep

#配置启动脚本

vim /etc/init.d/oracle

#!/bin/bash
# oracle: Start/Stop Oracle Database 11g R2
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
#下面的路径写成你自己的 ORACLE_HOME
=/u01/app/oracle/product/11.2.0/db_1 ORACLE_USER=oracle case "$1" in 'start') if [ -f $LOCKFILE ]; then echo $0 already running. exit 1 fi echo -n $"Starting Oracle Database:" su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start" su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" touch $LOCKFILE ;; 'stop') if [ ! -f $LOCKFILE ]; then echo $0 already stopping. exit 1 fi echo -n $"Stopping Oracle Database:" su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop" su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut" rm -f $LOCKFILE ;; 'restart') $0 stop $0 start ;; 'status') if [ -f $LOCKFILE ]; then echo $0 started. else echo $0 stopped. fi ;; *) echo "Usage: $0 [start|stop|status]" exit 1 esac exit 0

#配置开机启动

1.
chmod 755 /etc/init.d/oracle chkconfig oracle on service oracle (start stop status)

或者

2.
vim /etc/rc.d/rc.local su oracle -lc "/u01/app/oracle/product/11.2.0/bin/lsnrctl start" su oracle -lc /u01/app/oracle/product/11.2.0/bin/dbstart

 

vim /etc/oratabmydb:/u01/app/oracle/product/11.2.0:Y  # //把“N”改成“Y”


程序员灯塔 , 版权所有
转载请注明原文链接:https://www.wangt.cc/2020/09/centos7%e9%9d%99%e9%bb%98%e5%ae%89%e8%a3%85oracle11g/
喜欢 (0)