共计 7295 个字符,预计需要花费 19 分钟才能阅读完成。
Linux静默安装Oracle11g
一、配置安装环境
Oracle11g需要提前安装好JDK环境,这里就不演示安装JDK了
1、关闭防火墙
systemctl status firewalld.service #查看firewalld防火墙状态
systemctl stop firewalld.service #关闭firewalld防火墙
systemctl disable firewalld.service #禁止开机使用firewalld防火墙
2、修改CentOS系统标识
由于Oracle默认不支持,所以需要修改文件:/etc/redhat-release
将文件内容替换为:redhat-7
3、修改内核参数
修改文件:/etc/sysctl.conf
添加以下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 2147483648
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
修改完后,启用新的配置:sysctl -p
4、安装Oracle依赖包
# yum包管理
sudo yum -y install binutils compat-libstdc+±33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++ -devel make sysstat
# apt包管理
sudo apt-get -y install binutils libaio1 libaio-dev libc6-dev libcap-dev libstdc++6 libstdc++6-4.4-dev gcc g++ make sysstat
5、创建用户以及组
groupadd oinstall #创建安装oracle程序用户组
groupadd dba #创建DBA用户组
useradd -g dba -m oracle #创建用户oracle 并加入到dba组
usermod -a -G oinstall oracle #将用户oracle加入到oinstall组
passwd oracle #修改用户oracle的密码
id oracle
6、创建安装目录
mkdir -p /data/oracle #创建oracle主目录
mkdir -p /data/inventory #创建oralce配置目录
mkdir -p /data/src #创建oracle压缩包解压目录
chown -R oracle:oinstall /data/oracle #修改目录权限
chown -R oracle:oinstall /data/inventory
chown -R oracle:oinstall /data/src
ll /data #查看目录权限
7、修改oracle用户的安全性能设置
修改文件:/etc/security/limits.conf
在文件最后一行前,追加以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
8、修改用户环境变量
修改文件:/home/oracle/.bashrc
追加以下内容:
export PATH
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
修改完后立即启用:
source /home/oracle/.bashrc
9、上传并解压Oracle11g安装包
unzip linux.x64_11gR2_database_1of2.zip -d /data/src/
unzip linux.x64_11gR2_database_2of2.zip -d /data/src/
chown -R oracle:oinstall /data/src/
ll /data/src/
10、关闭selinux并重启
修改文件:/etc/selinux/config
,关闭SELINUX
SELINUX=disabled
重启
reboot
二、安装配置Oracle
1、安装主程序
切换到oracle
用户,完成后续操作,su oracle
输入hostname
查看主机名
编辑数据库安装文件 /data/src/database/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY # 安装类型
ORACLE_HOSTNAME=oracle.server # 主机名称输入
UNIX_GROUP_NAME=oinstall # 安装组
INVENTORY_LOCATION=/data/inventory # INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN # 选择语言
ORACLE_HOME=/data/oracle/product/11.2.0/db_1 # oracle_home
ORACLE_BASE=/data/oracle # oracle_base
oracle.install.db.InstallEdition=EE # oracle版本
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=orcl # SID
oracle.install.db.config.starterdb.characterSet=ZHS16GBK # 默认数据库编码
oracle.install.db.config.starterdb.memoryLimit=800 # 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle11g # 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true # 设置安全更新
安装命令:
/data/src/database/runInstaller -silent -responseFile /data/src/database/response/db_install.rsp -ignorePrereq
漫长的等待.............(时间的话看机器性能咯)
当出现如下画面时候,请照做
要执行配置脚本,请执行以下操作:
- 打开一个终端窗口
- 以"root"身份登陆
- 运行脚本
/data/inventory/orainstRoot.sh
/data/oracle/product/11.2.0/db_1/root.sh
- 返回此窗口并按"Enter"键继续
Oracle主程序就安装完啦。
2、配置监听程序
编辑监听配置文件:/data/src/database/response/netca.rsp
修改以下参数:
INSTALL_TYPE=""custom"" # 安装的类型
LISTENER_NUMBER=1 # 监听器数量
LISTENER_NAMES={"LISTENER"} # 监听器的名称列表
LISTENER_PROTOCOLS={"TCP;1521"} # 监听器使用的通讯协议列表
LISTENER_START=""LISTENER"" # 监听器启动的名称
执行该命令,初始化监听
/data/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /data/src/database/response/netca.rsp
如果报错运行不了出现异常信息:
UnsatisfiedLinkError exception loading native library: njni11
java.lang.UnsatisfiedLinkError: /data/oracle/product/11.2.0/db_1/lib/libnjni11.so: libclntsh.so.11.1: cannot open shared object file: No such file or directory
java.lang.UnsatisfiedLinkError: jniGetOracleHome
at oracle.net.common.NetGetEnv.jniGetOracleHome(Native Method)
at oracle.net.common.NetGetEnv.getOracleHome(Unknown Source)
at oracle.net.ca.NetCALogger.getOracleHome(NetCALogger.java:230)
at oracle.net.ca.NetCALogger.initOracleParameters(NetCALogger.java:215)
at oracle.net.ca.NetCALogger.initLogger(NetCALogger.java:130)
at oracle.net.ca.NetCA.main(NetCA.java:404)
Error: jniGetOracleHome
Oracle Net Services configuration failed. The exit code is 1
执行下方命令解决:
cp /data/oracle/product/11.2.0/db_1/inventory/Scripts/ext/lib/libclntsh.so.11.1 /data/oracle/product/11.2.0/db_1/lib
查看监听程序是否运行
netstat -tnulp | grep 1521
关于监听的启动和关闭
开启监听:/data/oracle/product/11.2.0/db_1/bin/lsnrctl start
关闭监听:/data/oracle/product/11.2.0/db_1/bin/lsnrctl stop
3、创建数据库实例
编辑数据库实例文件:/data/src/database/response/dbca.rsp
修改以下参数:
RESPONSEFILE_VERSION ="11.2.0" # 不要变哦
OPERATION_TYPE ="createDatabase" # 操作为创建实例
GDBNAME ="orcl" # 数据库名
SID ="orcl" # 实例名
TEMPLATENAME = "General_Purpose.dbc" # 建库用的模板文件
SYSPASSWORD = "oracle" # SYS管理员密码
SYSTEMPASSWORD = "oracle" # SYSTEM管理员密码
SYSMANPASSWORD= "oracle" # SYSMAN密码
DBSNMPPASSWORD= "oracle" # DBSNMP密码
DATAFILEDESTINATION =/data/oracle/oradata # 数据文件存放目录
RECOVERYAREADESTINATION=/data/oracle/flash_recovery_area # 恢复数据存放目录
CHARACTERSET ="ZHS16GBK" # 字符集
NATIONALCHARACTERSET= "AL16UTF16" # 字符集
TOTALMEMORY ="1638" # 物理内存按情况进行配置
如果需要创建其他实例,复制一份实例文件,修改好库名和实例名称以及内存大小执行下方命令即可,只需要把实例文件名改成备份的文件即可。
创建实例命令:
/data/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /data/src/database/response/dbca.rsp
查看实例是否运行
ps -ef | grep ora_ | grep -v grep
修改启动和关闭实例的程序
修改文件:
/data/oracle/product/11.2.0/db_1/bin/dbstart
/data/oracle/product/11.2.0/db_1/bin/dbshut
将ORACLE_HOME_LISTNER=$1
修改为:ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1
启动或者关闭实例
启动实例:/data/oracle/product/11.2.0/db_1/bin/dbstart
关闭实例:/data/oracle/product/11.2.0/db_1/bin/dbshut
三、收尾工作
1、配置开机自启动
root用户模式下:
chmod +x /etc/rc.d/rc.local
修改文件 /etc/rc.d/rc.local
在文件最后追加以下内容:
su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/dbstart"
设置数据库实例自启动,修改/etc/oratab
orcl:/data/oracle/product/11.2.0:N
修改为,设置实例开机自启动
orcl:/data/oracle/product/11.2.0:Y
2、定时备份
如果有做服务器快照,可以忽略这一步!!!
编辑Oracleautobackup.sh
脚本文件,输入以下内容:
#!/bin/bash
# 设置数据库账号密码
username=databasename
password=password
# 设置备份数据
dbname=asset
# 设置连接信息
sid=127.0.0.1/databasename
# 设置时间
Ymd=`date +%Y%m%d%H%M%S`
# 设置备份路径
bakdir=/data/oracle/backup/
connect=$username/$password@$sid
# 设置备份文件名
backupfile=$bakdir$dbname'_backup_'$Ymd
su - oracle -c "/data/oracle/product/11.2.0/db_1/bin/exp $connect file=$backupfile.dmp owner=$dbname"
su - oracle -c "7za a $backupfile.7z $backupfile.dmp"
su - oracle -c "rm -rf $backupfile.dmp"
echo 备份完成,备份文件在$backupfile.7z
这里使用的是7zip压缩,需要安装7zip依赖包:
# yum包管理方式
sudo yum install epel-release
sudo yum install p7zip
# apt包管理方式
sudo apt install p7zip-full p7zip-rar
添加到Linux定时任务中
首先查看crond
服务是否在运行,输入systemctl status crond
running
则继续下一步,若为灰色则执行systemctl start crond
启动该服务,centos系统默认开启该服务。
crontab命令: -l 查看定时任务
crontab -r 删除定时任务
crontab -e 添加定时任务
crontab -e
添加定时任务,下图内容表示每天16:34执行该任务(时间按照实际情况填写)
crontab 时间格式
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
保存之后出现下图提示则配置成功
3、开启防火墙,和永久放行端口
开启防火墙并开机自启动
# 重新加载配置
systemctl daemon-reload
# 启动防火墙
systemctl start firewalld
# 开机自启动
systemctl enable firewalld
放行1521端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload