RAM |
swap |
1~2G |
RAM的1.5倍 |
2~16G |
与RAM相等 |
大于16G |
16G |
查看内存大小:
grep MemTotal /proc/meminfo
查看交换空间大小:
grep SwapTotal /proc/meminfo
修改swap空间必须以root用户登录。
swapoff -a
dd if=/dev/zero of=/swapfile bs=1M count=5120
bs指的是Block Size,就是每一块的大小,这里是1M。count是告诉程序,新的swapfile要多少个block。5120个block就是5G。
mkswap /swapfile
swapon /swapfile
vi /etc/fstab
在最后面追加:
/swapfile swap swap default 0 0
最小4G
下载地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
必须先同意。另外,下载安装包需要登录,若没有账号,注册一个即可,免费。
根据实际情况,选择对应的安装包。32位系统只能使用32位的安装包,64位系统只能使用64位的安装包。
查看Linux系统版本
cat /etc/issue
查看Linux内核信息
uname -a
我的是64位系统
上传位置自定,我上传至/home/exe/Oracle
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 100 128
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
修改/etc/security/limits.conf
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
然后修改/etc/pam.d/login
vim /etc/pam.d/login
在后面追加
session required /lib/security/pam_limits.so
session required pam_limits.so
最后修改/etc/profile
vim /etc/profile
在后面追加
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
使命令生效
source /etc/profile
groupadd oinstall
groupadd dba
groupadd oper
useradd oracle
passwd oracle
提示输入密码时,需要重复输入两次密码。若提示密码过于简单,可以忽略。
为方便记忆,我设置为“oracle”。
gpasswd -a oracle oinstall
gpasswd -a oracle dba
gpasswd -a oracle oper
我放到根目录下
mkdir -p /Oracle/app/oradata
mkdir -p /Oracle/app/oracle/product
chown -R oracle:oinstall /Oracle/app
首先,切换到新创建的oracle用户下
su - oracle
然后直接输入:
vim .bash_profile
追加如下内容
export ORACLE_BASE=/Oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
使设置生效
source /etc/profile
Oracle需要依赖以下组件:(没安装依赖组件时,Oracle是不会安装成功的,会生成一个安装日志,日志里边有描述哪些依赖组件是需要安装的)
gcc gcc-c++ make binutils compat-libstdc++-33 glibc glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel sysstat elfutils-libelf-devel ksh |
以下这些32位的依赖也是必须的(不知道为什么),注意有些是.i686,有些是.i386
compat-libstdc++-33.i386 glibc.i686 libaio.i386 libaio-devel.i386 libgcc.i386 libstdc++.i386 unixODBC.i386 unixODBC-devel.i386 |
使用yum命令进行安装,yum命令不带版本号时,自动安装最新版,且根据系统位数自动选择32位或64位。
yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 glibc glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel sysstat elfutils-libelf-devel
再安装指定的32位依赖
yum -y install compat-libstdc++-33.i386 glibc.i686 libaio.i386 libaio-devel.i386 libgcc.i386 libstdc++.i386 unixODBC.i386 unixODBC-devel.i386
看到yum没有找到这些.i386的包,只能手动去网上搜了。
可以在清华大学开源站点的CentOS5.11下找到https://mirrors.tuna.tsinghua.edu.cn/centos-vault/5.11/os/x86_64/CentOS/,不过这些版本都老与已经安装的64位的版本,无法进行安装。
怎么办呢?找到对应64位版本号的32位,不行,都是.i686的,先决条件检查不通过。卸载64位的重装老版本,太麻烦,而且libgcc这东西一卸载系统就出错。那就去找Oracle检查先决条件的配置文件,/……/Oracle/database/stage/cvu/cvu_prereq.xml,干它,把.i386都改成.i686。
查找ARCHITECTURE="i386",有45处匹配,替换为ARCHITECTURE="i686"
保存后上传至Linux。然后执行安装
yum -y install compat-libstdc++-33.i686 glibc.i686 libaio.i686 libaio-devel.i686 libgcc.i686 libstdc++.i686 unixODBC.i686 unixODBC-devel.i686
pdksh不能使用yum安装,因为yum找不到pdksh安装包。下载地址:
http://rpm.pbone.net/index.php3 搜索“pdksh-5.2.14”。看清是64位还是32位,不要下载带“debug”的。
安装包上传至Linux,使用下列命令安装
rpm -ivh /home/exe/pdksh-5.2.14-23.x86_64.rpm
rpm命令:
安装:rpm -ivh 文件名(.rpm)
升级:rpm -Uvh 文件名(.rpm)
删除:rpm -e --nodeps 软件名
查看:rpm -qa
Oracle用户登录
su - oracle
切换目录
cd /home/exe/Oracle
执行解压命令
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
若提示无法创建文件夹等错误,需要修改/home/exe/Oracle目录权限,需在root用户下:
chmod 777 /home/exe/Oracle
若提示没有unzip命令,使用yum安装(root用户),需联网
yum –y install unzip zip
cd /home/exe/Oracle/database
mkdir etc
cp /home/exe/Oracle/database/response/* /home/exe/Oracle/database/etc
chmod 777 /home/exe/Oracle/database/etc/*.rsp
vim /home/exe/Oracle/database/etc/db_install.rsp
修改如下内容
oracle.install.option=INSTALL_DB_SWONLY //安装类型
ORACLE_HOSTNAME=RainingTime //主机名称(hostname查询)
UNIX_GROUP_NAME=oinstall // 安装组(前边4.3小节定义的)
INVENTORY_LOCATION=/Oracle/app/oradata //INVENTORY中央库存目录(不填就是默认值)
SELECTED_LANGUAGES=en,zh_CN,zh_TW // 选择语言
ORACLE_HOME=/Oracle/app/oracle/product/11.2.0/dbhome_1 //oracle_home
ORACLE_BASE=/Oracle/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=oper // oper用户组
oracle.install.db.config.starterdb.type=DATA_WAREHOUSE //数据库类型(DATA_WAREHOUSE:数据仓库,GENERAL_PURPOSE:通用型,TRANSACTION_PROCESSING:事务型)
oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName
oracle.install.db.config.starterdb.SID=orcl //SID
oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存(M)
oracle.install.db.config.starterdb.password.ALL=orcl123456 //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //(手动写了false)
DECLINE_SECURITY_UPDATES=true //设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)
开启1521端口
/sbin/iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
使更改生效
/etc/rc.d/init.d/iptables save
查看防火墙运行状态,如果看到“active(running)”,表示防火墙正在运行中;而“disavtive(dead)”,表示防火墙已关闭。
systemctl status firewalld.service
使用以下命令关闭防火墙(仅本次关闭,系统重启后会重新运行):
systemctl stop firewalld.service
永久关闭防火墙,则使用以下命令:
systemctl disable firewalld.service
查看selinux状态,若为“Enforcing”表示已开启,若为“disabled”表示已关闭。
getenforce
临时关闭selinux
setenforce 0
永久关闭selinux,需要修改/etc/selinux/config
vim /etc/selinux/config
修改如下内容
SELINUX=disabled
重启系统后生效。
Oracle用户登录
su - oracle
/home/exe/Oracle/database/runInstaller -silent -force -responseFile /home/exe/Oracle/database/etc/db_install.rsp
出现类似下面情况时,请耐心等待:
出现以下情况,提示安装失败、不满足先决条件,按照提示查看日志:
出现以下情况,表示先决条件检查通过,开始进行安装。
此时打开另一个Linux终端,按上方提示实时查看安装日志:
tail -f /Oracle/app/oradata/logs/installActions2021-03-05_10-41-34AM.log
当日志打印出以下信息,表示已安装完毕:
这时回到先前的终端,会看到以下内容:
这时,打开另一个Linux终端,以root用户登录,运行提示的两个脚本文件,然后当前终端,按Enter键。
以oracle用户登录,输入以下命令
netca /silent /responsefile /home/exe/Oracle/database/etc/netca.rsp
意思是监听程序配置完毕,但是启动监听器失败,看日志找原因:
意思是启动对RainingTime/10.96.103.69:1521的监听失败。一看就觉得是IP有问题,那就改下监听器配置文件吧:
vim /Oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
把这个IP改为localhost,保存。
然后手动启动监听器
lsnrctl start
监听器已经启动。
监听器相关命令:
启动:lsnrctl start
状态:lsnrctl status
停止:lsnrctl stop
静默建立数据库实例。
编辑建库应答文件:
vim /home/exe/Oracle/database/etc/dbca.rsp
文件有多个节点,只编辑第一个全局公用节点即可
修改内容如下
RESPONSEFILE_VERSION = "11.2.0" //Oracle版本,保持不变
OPERATION_TYPE = "createDatabase" //Oracle版本,保持不变
GDBNAME = "dbsrv2" //全局数据库名
SID = "dbsrv2" //服务名
TEMPLATENAME = "General_Purpose.dbc" //保持不变
保存。
开始创建实例
dbca -silent -responseFile /home/exe/Oracle/database/etc/dbca.rsp
需要输入SYS、SYSTEM用户密码。
实例创建完毕,就可以访问数据库了。(保证监听器开启)
sqlplus SYSTEM/orcl123456@localhost:1521/orcl
正常访问。
由于之前配置的监听器只针对本地localhost有效,因此远程机是无法访问的。
如果需要远程访问数据库,需要修改监听器配置文件如下:
vim /Oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = /Oracle/app/oracle/product/11.2.0/dbhome_1)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /Oracle/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.25.128)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /Oracle/app
编辑完毕,保存。
重启监听器:
lsnrctl stop
lsnrctl start
测试远程访问(本文第2.7节已开启1521端口)
成功。