Deepin Server静默安装Oracle 11.2.0.4
最近整理博客,很多内容虽然已经很过时了,但是能让我想起当年做运维工作时候的日子,还是重新整理下格式发出来吧。
Deepin Server静默安装Oracle 11.2.0.4
1. 安装依赖
需要安装的依赖包(版本号只能大于规定的版本,不能小于)
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
unixODBC-2.3.1-6.el7.i686
unixODBC-2.3.1-6.el7.x86_64
unixODBC-devel-2.3.1-6.el7.i686
unixODBC-devel-2.3.1-6.el7.x86_64
安装命令:
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
安装完成后,检查依赖是否安装成功:
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 | grep "not installed"
2. 安装oracle
2.1. 修改内核参数
vim /etc/sysctl.conf
修改内容如下:
net.ipv4.ip_local_port_range= 9000 65500
fs.file-max = 6815744
kernel.shmall = 10523004
kernel.shmmax = 6465333657
kernel.shmmni = 4096
kernel.sem = 250 32000 100128
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=1048576
fs.aio-max-nr = 1048576
然后运行以下命令使配置生效:
sysctl -p
2.2. 修改用户限制文件
运行以下命令修改用户限制文件
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
2.3. 修改login文件
运行以下命令修改login文件
vim /etc/pam.d/login
修改内容如下:
session required /lib64/security/pam_limits.so
session required pam_limits.so
2.4. 创建用户及组
创建用户及组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -d /data oracle
passwd oracle
依次创建以下目录
创建安装目录
mkdir -p /data/app/oracle/product/11.2.0/dbhome_1
数据文件存放目录
mkdir -p /data/app/oracle/oradata
数据恢复目录
mkdir -p /data/app/oracle/recovery_area
数据库创建及使用过程中的日志目录
mkdir -p /data/app/oracle/oraInventory
修改安装目录权限
chown -R oracle:oinstall /data/app/oracle
chmod 775 /data/app/oracle
2.5. 修改bash文件
使用oracle用户修改bash文件
su – oracle
vim .bash_profile
修改内容如下:
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/lib
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
执行以下命令让修改生效。
source .bash_profile
2.6. 导入oracle安装包
使用工具或命令将oracle安装包上传到/data文件夹下,可上传后解压,也可以解压后上传。
安装包中有三个配置文件作用如下:
db_install.rsp 安装应答配置文件
dbca.rsp 创建数据库应答
netca.rsp 建立监听、本地服务名等网络设置应答
后续会用到,我们继续安装:
2.7. 修改db_install文件安装数据库软件
执行以下命令修改db_install文件
vim /data/database/response/db_install.rsp
修改内容如下:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=localhost
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/data/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/data/app/oracle/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/data/app/oracle/recovery_area
DECLINE_SECURITY_UPDATES=true //一定要设为true
2.8. 安装数据库软件
使用oracle用户进行登录,并执行安装语句安装数据库软件:
su – oracle
cd /data/database
./runInstaller -silent -responseFile /data/database/response/db_install.rsp
如果提示-bash: ./runInstaller: Permission denied,证明我们当前的oracle账户要运行的程序没有对应的权限,执行:
su - root
chmod 777 /data/database/runInstaller
chmod 777 /data/database/install/.oui
chmod 777 /data/database/install/unzip
再次执行安装脚本,如果报错[INS-30131],则证明oracle在tmp生成的临时文件没有执行权限,检测脚本无法执行,那么我们执行:
chmod 755 /tmp/CVU_*_oracle/ -R
再次执行安装脚本。
注意:
安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。
打开另一个终端,执行命令可以实时跟踪查看安装日志,了解安装的进度。
tail -f /data/app/oracle/oraInventory/logs/installActions*
当出现以 root 用户的身份执行以下脚本:
/data/app/oracle/oraInventory/orainstRoot.sh
/data/app/oracle/product/11.2.0/dbhome_1/root.sh
当出现Successfully Setup Software.说明已安装成功,则需要按提示操作,操作完返回Enter成功
2.9. 配置监听
监听配置文件不需要修改,直接运行下面的命令:
netca /silent /responsefile /data/database/response/netca.rsp
注:
成功运行后,/data/app/oracle/product/11.2.0/dbhome_1/network/admin目录下生成sqlnet.ora和listener.ora两个文件。
完成后通过下面的命令可以查看监听状态
netstat -tlnp | |
---|---|
lsnrctl status | 查看监听状态 |
lsnrctl start | 开启监听 |
lsnrctl stop | 关闭监听 |
- 如果防火墙是开启状态,且没有开放1521端口,那么会导致其他机器无法访问1521端口,监听器无法正常工作,如果遇到此情况,切换到root用户下执行下列语句,执行完成后请使用其他主机访问本服务器,验证1521端口是否可用:
开启防火墙
service iptables status
查看已经开放的端口:
firewall-cmd --list-ports
开放1521端口:
firewall-cmd --zone=public --add-port=1521/tcp --permanent
重新启动防火墙:
firewall-cmd --reload
2.10. 修改数据库静默安装应答文件
修改dbca文件,切换到root用户下:
vim /data/database/response/dbca.rsp
修改内容如下:
OPERATION_TYPE = "createDatabase"
GDBNAME = "orcl" //全局数据库的名字=SID+主机域名
SID = "orcl" //对应的实例名字
TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件
SYSPASSWORD = "Okw123"
SYSTEMPASSWORD = "Okw123"
DATAFILEDESTINATION = /data/app/oracle/oradata //数据文件存放目录
RECOVERYAREADESTINATION=/data/app/oracle/recovery_area //恢复数据存放目录
CHARACTERSET = "AL32UTF8" //字符集,重要!!!
TOTALMEMORY = "5120" //oracle内存5120MB
2.11. 静默安装数据库实例
dbca -silent -responseFile /data/database/response/dbca.rsp
执行上述语句之后,终端窗口会显示安装百分比,安装好之后,可运行以下语句验证安装后的oracle及实例是否可用:
sqlplus / as sysdba
select name from v$database;
3. 设置开机启动
数据库及实例安装好后,我们需要设置开机自启动
3.1. 修改dbstart和dbshut
vim /data/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
vim /data/app/oracle/product/11.2.0/dbhome_1/bin/dbshut
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME,修改后保存退出,可以手动在oracle用户下执行dbstart和dbshut验证这两个命令是否可以正常使用,能正常使用这两条语句是开机自启的前提。
3.2. 修改文件,开机启动实例
vim /etc/oratab
修改内容如下:
orcl:/data/app/oracle/product/11.2.0/dbhome_1:Y
把lsnrctl start和dbstart添加到rc.local文件中
su – root
vim /etc/rc.d/rc.local
添加内容如下:
//启动监听和数据库
su - oracle -lc "/data/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"
su - oracle -lc "/data/app/oracle/product/11.2.0/dbhome_1/bin/dbstart"
注意:CentOs7中/etc/rc.d/rc.local不会开机执行,需添加执行权限。
ll /etc/rc.d/rc.local //查看文件权限
chmod +x /etc/rc.d/rc.local //为文件赋予运行权限
重启查看监听、数据库是否运行正常,远程主机能否通过数据库连接工具连接数据库,如果重启后查看监听器,报如下内容,说明监听器没有匹配的实例。
The listener supports no services
The command completed successfully
解决方式如下:
vim /data/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
添加如下内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(SID_NAME = orcl)
)
)
4. Oracle卸载
Oracle本身带有deinstall功能,执行下列语句
cd /data/u01/app/oracle/product/11.2.0.4/db_1/deinstall
//记得替换成oracle实际安装的目录
./deinstall
//卸载过程应该是自动的,包括扫描到的实例名、监听器名以及安装路径等,没问题就回车或y,直到最后显示”Oracle Universal Installer cleanup was successful.”,程序执行完成,需要我们根据提示手动执行命令,我的提示如下:
Run 'rm -rf /etc/oraInst.loc' as root on node(s) 'localhost' at the end of the session.
Run 'rm -rf /opt/ORCLfmap' as root on node(s) 'localhost' at the end of the session.
Run 'rm -rf /etc/oratab' as root on node(s) 'localhost' at the end of the session.
切换到root账号下根据提示的要求执行命令即可。