前言
之前出了一个界面安装的教程,这一次打算记录一下静默安装的全过程,并记录遇到的一些问题。
1.oracle环境搭建
用centos进行依赖的安装,这里有一个问题,yum包管理器里没有pdksh依赖,但是有ksh依赖。而且oracle可以用ksh来取代pdksh,所以在后面进行依赖查询和检查的时候可以忽略这一点。
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
运行结果如下:
2.关闭防火墙和selinux
因为是测试环境所以我使用的是直接关闭防火墙,正式生产环境我们应该只要开发端口即可。(oracle默认1521端口,也可以进行修改。看你的需求)
systemctl stop firewalld #关闭防火墙
firewall-cmd --zone=public --add-port=1521/tcp --permanent #放开1521端口
firewall-cmd --reload #在不改变状态的条件下重新加载防火墙配置文件
systemctl status firewalld #查看防火墙的状态
systemctl disable firewalld.service #关闭防火墙的开机启动。
sestatus -v #查看selinux状态
假如为disable就不用修改,否则使用
vim /etc/selinux/config
进行修改SELINUX。修改之后需要重启才能生效,具体结果如图:
3.创建运行oracle数据库的用户和用户组。
linux基本操作,创建登陆用户创建用户组的博客。密码输入部分就省了,然后使用
id oracle
来查看是否创建成功。
groupadd oinstall #创建用户组oinstall
groupadd dba #创建用户组dba
useradd -g oinstall -G dba -m oracle #创建oracle用户,并加入到oinstall和dba用户组
passwd oracle #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆
4.修改oracle用户的限制
执行
vim /etc/security/limits.conf
命令,修改操作系统对oracle用户资源的限制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
要使limits.conf文件配置生效,必须要确保pam_limits.so文件被加入到启动文件中。
vim /etc/pam.d/login
session required pam_limits.so
5.修改内核参数
要求配置
可以对
vim /etc/sysctl.conf
进行修改,设置相关参数的系统默认值。如果该文件中已有相关参数的设置,则确保参数值不小于如下对应值;如果还没有相关参数的设置,则按照如下格式添加相应的参数设置行。
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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
要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入sysctl -p
6.创建数据库软件目录和数据文件存放目录,并添加权限
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/
7.配置环境变量
因为是oracle用户所以要在去oracle用户下的.bash_profile.
vim /home/oracle/.bash_profile
,执行命令source /home/oracle/.bash_profile
,让配置立即生效。
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=centos
export ROACLE_PID=ora11g
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export LANG="zh_CN.UTF-8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
export PATH=$PATH:$ORACLE_HOME/bin
8.安装oracle
先用ftp服务器把oracle的安装包上传到centos中。 然后把两个压缩包进行解压
unzip linux.x64_11gR2_database_1of2.zip -d /opt
unzip linux.x64_11gR2_database_2of2.zip -d /opt
然后进行授权chown -R oracle:oinstall /opt/database
。
然后进行用户切换,切换成oracle,假如没切换安装的时候会报异常。
mkdir etc
cp /opt/database/response/* /home/oracle/etc/
chmod 700 /home/oracle/etc/*.rsp
ls etc/
这时候能看到会出现dbca.rsp db_install.rsp netca.rsp三个文件。后续会告诉你这三个文件的作用。
9.配置db_install.rsp文件
db_install.rsp文件就是配置文件,一定要配置好才能进行安装。
vi /home/oracle/etc/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY # 安装类型
ORACLE_HOSTNAME=Centos # 主机名称(hostname查询)
UNIX_GROUP_NAME=oinstall # 安装组
INVENTORY_LOCATION=/u01/app/oraInventory # INVENTORY目录(不填就是默认值)
SELECTED_LANGUAGES=en,zh_CN,zh_TW # 选择语言
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 # oracle_home
ORACLE_BASE=/u01/app/oracle # oracle_base
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=centos # SID
oracle.install.db.config.starterdb.memoryLimit=81920 # 自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle # 设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
10.写好之后可以开始安装
直接去database文件夹下
./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
当出现如下提升表示安装成功,假如失败可已看看包错日志找到报错信息。
然后根据以上提示,执行脚本。
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh
11.配置监听器
netca.rsp就是监听器配置文件,我这边采用默认配置。
netca /silent /responsefile /home/oracle/etc/netca.rsp
用lsnrctl start
启动,可以用lsnrctl status
来查看。
12.建库
建库需要操作之前说的dbca.rsp文件,并对文件进行修改。 然后输入
dbca -silent -responseFile dbca.rsp
,这时候会弹出要输入口令,在我们之前配置的安装环境的密码。
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "centos"
SID = "centos"
TEMPLATENAME = "General_Purpose.dbc"
CHARACTERSET = "AL32UTF8"
然后使用cat /u01/app/oracle/cfgtoollogs/dbca/centos/centos.log
13.测试
通过
sqlplus / as sysdba
与select * from dual
; 指令进行测试. 测试最好切换到oracle用户,否则会提升无法找到sqlplus这个程序。
这时候就可以使用远程连接了,我使用的是重新创建一个账号。也可以使用之前的账号。
create user xiaowen identified by xiaowen;
grant dba to xiaowen; ---DBA
grant create session to xiaowen; ---登陆权限,这个权限是能让这个用户能被其他程序调用,比如plsql
grant unlimited tablespace to xiaowen; ---使用表空间的权限
grant create table,create view,create trigger, create sequence,create procedure,create type to xiaowen; ---创建表,视图,触发器,序列,存储过程,type的权限。
然后就可以在自己的连接工具中使用了,我的是DataGrip,密码就是用户名。
14.后期问题总结。
1.因为使用的虚拟机环境,所以我们得设置开机自启。
先启动监听
lsnrctl start
,然后使用dbstart
. 这时候会报错
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME
处理方式
sudo vi /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
sudo vi /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
将ORACLE_HOME_LISTNER=$1
修改为:ORACLE_HOME_LISTNER=$ORACLE_HOME
这时候还需要修改sudo vim /etc/oratab
将orcl:/u01/app/oracle/product/12.1.0/dbhome_1:N
修改为:orcl:/u01/app/oracle/product/10.2.0/db_1:Y
这时候就可以正常启动了。 在配置启动文件rc.load,一定要在root用户下进行
chmod +x /etc/rc.d/rc.local
vim /etc/rc.local
su - oracle -c 'lsnrctl start'
su - oracle -c dbstart
2.用远程连接失败,一定要注意防火墙,当我们没有开机关闭这个选项的时候,防火墙会自己开启,就会导致之前好好的连接失效,