Linux(centos7)静默安装Oracle11gR2

安装依赖

[root@VM-0-2-centos ~]# yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel

配置swap分区

#检查交换空间
[root@VM-0-2-centos ~]# free -h  

#交互式分区
[root@VM-0-2-centos ~]# fdisk /dev/vdb 

#格式化分区
[root@VM-0-2-centos ~]# mkfs.xfs /dev/vdb1 

#格式化分区
[root@VM-0-2-centos ~]# mkfs.xfs /dev/vdb2 


#制作swap
[root@VM-0-2-centos ~]# mkswap /dev/vdb1 

#激活swap
[root@VM-0-2-centos ~]# swapon /dev/vdb1

#将剩余的分区挂载到数据盘
[root@VM-0-2-centos ~]# mount /dev/vdb2 /data

#设置开机启动
[root@CentOS7-srv2 /]# vim /etc/fstab 
/dev/vdb1 swap                    swap    defaults        0 0
/dev/vdb2 /data                   xfs     defaults        0 0

在这里插入图片描述

创建oracle用户

# 创建组和用户
[root@VM-0-2-centos ~]# groupadd oinstall
[root@VM-0-2-centos ~]# groupadd dba
[root@VM-0-2-centos ~]# useradd -g oinstall -G dba oracle
[root@VM-0-2-centos ~]# passwd oracle

#查看用户的情况
[root@VM-0-2-centos ~]# id oracle

创建Oracle安装目录与环境变量

[root@VM-0-2-centos ~]# mkdir -p /data/oracle/product/11.2.0
[root@VM-0-2-centos ~]# chown -R oracle:oinstall /data/oracle/
[root@VM-0-2-centos ~]# chmod -R 755 /data/oracle/

--切换到oralce用户
[root@VM-0-2-centos ~]# su - oracle
[root@VM-0-2-centos ~]# vim .bashrc
# 设置如下内容
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

# 刷新,并测试环境变量是否已加载
[oracle@VM-0-2-centos ~]$ source .bashrc
[oracle@VM-0-2-centos ~]$ echo $ORACLE_HOME

#切回root用户
[oracle@VM-0-2-centos ~]$ exit

关闭SELinux

[root@VM-0-2-centos ~]# vim /etc/selinux/config
SELINUX=disabled
[root@VM-0-2-centos ~]# setenforce 0

修改Linux内核参数

[root@VM-0-2-centos ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 10485760                              
fs.file-max = 6815744                                    
kernel.shmall = 4294967296                         
kernel.shmmax = 4294967295                      
kernel.shmmni = 4096                                 
kernel.sem = 5010 641280 5010 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                  

# 刷新内核参数
[root@VM-0-2-centos ~]# sysctl -p

配置用户对资源的使用限制

[root@VM-0-2-centos ~]# vim /etc/security/limits.conf
#在limits.conf中设置Oracle用户的对资源的限制
oracle soft nproc 2047   #oracle用户最大打开进程数
oracle hard nproc 16384
oracle soft nofile 1024  #oracle用户最大打开文件
oracle hard nofile 65536
oracle soft stack 10240
[root@VM-0-2-centos ~]# vim /etc/profile
# 在profile最后添加
if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
   ulimit -p 16384
   ulimit -n 65536
  else
   ulimit -u 16384 -n 65536
  fi
fi

unset i
unset -f pathmunge

[root@VM-0-2-centos ~]# su - oracle
[oracle@VM-0-2-centos ~]$ ulimit -a
[oracle@VM-0-2-centos ~]$ exit

修改登录验证

[root@VM-0-2-centos ~]# vim /etc/pam.d/login
# 添加以下内容:
session    required     /lib64/security/pam_limits.so
session    required     pam_limits.so

添加主机名

[root@VM-0-2-centos ~]# vim /etc/hosts
#将主机名添加到/etc/hosts中
127.0.0.1  VM-0-2-centos localhost localhost.localdomain localhost4 localhost4.localdomain4

添加防火墙规则

#在public区域,添加一个tcp,1521端口,并永久保存
[root@VM-0-2-centos ~]# firewall-cmd --zone=public --add-port=1521/tcp --permanent

上传安装包

ORACLE安装包下载:

linux.x64_11gR2_database_1of2.zip 提取码:enq4

linux.x64_11gR2_database_2of2.zip 提取码:mwkr

[root@VM-0-2-centos ~]# su - oracle
[oracle@VM-0-2-centos home]$ rz
[oracle@VM-0-2-centos ~]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@VM-0-2-centos ~]$ unzip linux.x64_11gR2_database_2of2.zip
[oracle@VM-0-2-centos ~]$ ll -h /home/oracle/database

备份安装配置文件

[oracle@VM-0-2-centos ~]$ cp -a /home/oracle/database/response/ /home/oracle/etc

配置db_install.rsp

[oracle@VM-0-2-centos ~]$ vim /home/oracle/etc/db_install.rsp
#修改以下内容

#安装方式,选择只安装数据库,因为后面我们需要单独安装实例和监听
oracle.install.option=INSTALL_DB_SWONLY
#服务器名称,使用hostname可以查看,需要在/etc/hosts中添加
ORACLE_HOSTNAME=VM-0-2-centos
#oracle用户所在组
UNIX_GROUP_NAME=oinstall
#这个目录没有创建,在安装Oracle时会自动生成
INVENTORY_LOCATION=/data/oracle/oraInventory
#语言设置
SELECTED_LANGUAGES=en,zh_CN
#oracle_home路径,oracle数据库安装的位置
ORACLE_HOME=/data/oracle/product/11.2.0
#oracle的根目录
ORACLE_BASE=/data/oracle
#安装Oracle企业版
oracle.install.db.InstallEdition=EE
#dba用户组
oracle.install.db.DBA_GROUP=dba
#oper操作组,注意:我在创建组时,没有为oracle用户创建oper操作组,所以这里将操作组设置为了dba,读者可以根据实际情况修改
oracle.install.db.OPER_GROUP=dba
#数据库类型,一般类型
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#设置安全更新
DECLINE_SECURITY_UPDATES=true

开始安装

[oracle@VM-0-2-centos oracle]$ /home/oracle/database/runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
# 使用root用户执行
[root@VM-0-2-centos ~]# /data/oracle/oraInventory/orainstRoot.sh
[root@VM-0-2-centos ~]# /data/oracle/product/11.2.0/root.sh

安装监听

#使用oracle用户
[oracle@VM-0-2-centos oracle]$ netca /silent /responseFile /home/oracle/etc/netca.rsp
#查看监听状态
[oracle@VM-0-2-centos oracle]$ lsnrctl status

安装数据库实例

[oracle@VM-0-2-centos oracle]$ vim /home/oracle/etc/dbca.rsp
/home/oracle/etc/dbca.rsp
#数据库名 78行
GDBNAME = "app" 
#sid  149行
SID = "app"       
#数据库字符集   415行
CHARACTERSET = "AL32UTF8"

[oracle@VM-0-2-centos ~]$ dbca -silent -responseFile /home/oracle/etc/dbca.rsp

登录数据库,查看实例状态

[oracle@VM-0-2-centos dbs]$ sqlplus / as sysdba
SQL> startup

若无法启动,并报错 could not open parameter file ‘/data/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora’

https://zhuanlan.zhihu.com/p/146332502

查看IP

[oracle@VM-0-2-centos dbs]$ ifconfig

配置TNS

[oracle@VM-0-2-centos dbs]$ cd $ORACLE_HOME/network/admin
  1. 原来的 listener.ora 中的 localhost 改成你的主机名称;
[oracle@VM-0-2-centos admin]$ vim listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /data/oracle

改为

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = VM-0-2-centos)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /data/oracle
  1. 原来的 **tnsnames.ora ** 中的 localhost 改为IP;
[oracle@VM-0-2-centos oracle]$ vim tnsnames.ora
APP =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = app)
    )
  )

改为

APP =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.61.135)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = app)
    )
  )

重启监听

[oracle@VM-0-2-centos admin]$ lsnrctl stop
[oracle@VM-0-2-centos admin]$ lsnrctl start

开放1521端口

[root@VM-0-2-centos ~]# /sbin/iptables -I INPUT -p tcp --dport 1521 -j ACCEPT 

telnet 测试端口是否连通;确定端口可达;

远程客户端登录

在这里插入图片描述
若无权限访问,即
在这里插入图片描述

检查密码文件

[oracle@VM-0-2-centos admin]$ sqlplus / as sysdba
SQL> select * from v$pwfile_users;

无数据返回;
在这里插入图片描述

SQL> quit
[oracle@VM-0-2-centos admin]$ cd $ORACLE_HOME/dbs
[oracle@VM-0-2-centos dbs]$ ls

发现存在密码文件
在这里插入图片描述
少了 orapworcl 文件:

orapworcl 提取码:30m8

使用 rz 工具上传到 $ORACLE_HOME/dbs
在这里插入图片描述
再次查看密码文件是否存在,并修改SYS的密码为000000(密码设置成什么自己定义);

[oracle@VM-0-2-centos dbs]$ sqlplus / as sysdba
SQL> select * from v$pwfile_users;
SQL> alter user sys identified by "000000";

目前有结果返回了;
在这里插入图片描述
最终远程登录sys用户成功。

创建表空间

  1. 授权 /data
[root@VM-0-2-centos ~]# chmod 777 /data
  1. 创建放数据文件的目录;
[oracle@VM-0-2-centos ~]$ mkdir -p /data/oradata/tablespace/
  1. 创建表空间 ts_app_data
--创建表空间
CREATE TABLESPACE ts_app_data
DATAFILE '/data/oradata/tablespace/ts_app_data.dbf' 
SIZE 1G
AUTOEXTEND ON NEXT 10M
MAXSIZE 10G PERMANENT;

--为已有表空间增加数据文件
ALTER TABLESPACE ts_app_data ADD DATAFILE '/data/oradata/tablespace/ts_app_data_01.dbf' SIZE 1G AUTOEXTEND ON NEXT 10M MAXSIZE 10G;

创建dba用户tool

--创建用户tool
CREATE USER tool                
IDENTIFIED BY "tool"           
DEFAULT TABLESPACE ts_app_data  
quota 20G on users              
TEMPORARY TABLESPACE temp;   

--授权dba权限和显示授权resource以及connect权限
GRANT CONNECT,RESOURCE,DBA TO tool;

创建普通用户bss

--创建普通用户bss
CREATE USER bss                
IDENTIFIED BY "bss"           
DEFAULT TABLESPACE ts_app_data  
quota 20G on users              
TEMPORARY TABLESPACE temp;  

--显示授权resource以及connect权限
GRANT CONNECT,RESOURCE TO tool;

猜你喜欢

转载自blog.csdn.net/qq_33445829/article/details/110265634