下载安装包:
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
我解压至:/u01/oracle,安装也在这个目录,你们随意
unzip linux.x64_11gR2_database_1of2.zip -d /u01/oracle
unzip linux.x64_11gR2_database_2of2.zip -d /u01/oracle
解压完成后会生成一个database文件夹
检查硬件需求
1、至少1GB的RAM,可以使用以下命令查看内存大小:
grep MemTotal /proc/meminfo
2、保证/u01/oracle
目录只要有1GB可用空间,查看命令:
df -h /u01/oracle
其它的要求不多说了,直接干
软件包依赖
shell
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11
以使用以下命令查看上面这些软件包的版本是否大于等于上面的要求:
rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
如果出现有未安装的软件包,建议是使用yum把这些软件包都更新一遍:
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
如果更新出现包冲突,可以先卸载旧的安装包,再安装新的包,如:
Error: Protected multilib versions: elfutils-libelf-0.176-4.el7.x86_64 != elfutils-libelf-0.172-2.el7.i686
解决:
rpm -e --nodeps elfutils-libelf-0.172-2.el7.i686
yum install elfutils-libelf-0.176-4.el7.x86_64
添加安装用户和用户组,执行以下命令:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
如果出现oracle已经存在,删除再添加。
执行完后可查看:
配置内核参数
以下命令都需要root用户权限执行
如果安装Oracle用于生产的话,内核参数是一个很重要的优化系统性能的配置项,比如配置信号量,I/O,共享内存等参数配置,这个建议参考官方文档进行详细配置,官方文档对这方面有很详细的说明。如果你和我一样只是安装个Oracle用来学习那只需要使用官方文档中建议的最低配置就行。具体可以在/etc/sysctl.conf
文件中,添加以下内核参数:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 = 1048586
为使上述配置生效而不重启系统,执行如下命令
/sbin/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
文件中添加一行:
session required pam_limits.so
在/etc/profile
文件尾添加以下脚本:
#oracle配置
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
创建安装目录和设置文件权限
安装路径可以自选,我就直接使用/u01/oracle目录,注意权限,命令如下:
mkdir -p /data/oracle/product/11.2.0
mkdir /u01/oracle/oradata
mkdir /u01/oracle/inventory
mkdir /u01/oracle/fast_recovery_area
chown -R oracle:oinstall /u01/oracle
chmod -R 775 /u01/oracle
设置oracle用户环境变量
1、使用su - oracle
命令切换为oracle用户登录
2、使用任意文本编辑器打开Shell启动脚本,如:
vi .bash_profile
添加如下环境变量:
ORACLE_BASE=/u01/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
注意,ORACLE_SID=orcl必须与创建的数据库实例名称一致,否则数据库启动后无法访问。第一次配置完记得source一下
source .bash_profile
编辑静默安装响应文件
复制安装文件夹response到当前oracle用户的家目录下:
cp -R /u01/oracle/database/response/ .
注意命令最后有一个小点,不要忘记复制或输入
往下执行:
cd response/
vim db_install.rsp
此文件内容很多,主要配置以下内容,注意自己的路径:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=CentOS
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/oracle/product/11.2.0
ORACLE_BASE=/u01/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
根据响应文件静默安装Oracle11g
1、转到安装文件目录下
cd /u01/oracle/database/
2、执行安装命令
./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
Q1:遇到了交换空间不足的问题:
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 150565 MB Passed
Checking swap space: 0 MB available, 150 MB required. Failed <<<<
Some requirement checks failed. You must fulfill these requirements before
continuing with the installation,
解决方法:
1、检查 Swap 空间在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。运行以下命令:
swapon -s
如果返回的信息概要是空的,则表示 Swap 文件不存在。
2、检查文件系统在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 。运行以下命令:
df -hal
3、创建并允许 Swap 文件下面使用 dd 命令来创建 Swap 文件。检查返回的信息,还剩余足够的硬盘空间即可。
dd if=/dev/zero of=/swapfile bs=1024 count=512k
参数解读:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >bs=bytes:同时设置读入/输出的块大小为bytes个字节count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。
4、格式化并激活 Swap 文件上面已经创建好 Swap 文件,还需要格式化后才能使用。运行命令:
mkswap /swapfile
激活 Swap ,运行命令:
swapon /swapfile
以上步骤做完,再次运行命令:
swapon -s
你会发现返回的信息概要:
1 Filename Type Size Used Priority
2 /swapfile file 524284 0 -1
如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。用 vim 打开 /etc/fstab 文件,在其最后添加如下一行:
/swapfile swap swap defaults 0 0
最后,赋予 Swap 文件适当的权限:
1 chown root:root /swapfile
2 chmod 0600 /swapfile
Q2:文件权限问题
[INS-32012] Unable to create directory.
CAUSE: Either proper permissions were not granted to create the directory or there was no space left in the volume.
ACTION: Check your permission on the selected directory or choose another directory.
A log of this session is currently saved as: /tmp/OraInstall2020-07-29_07-32-37PM/installActions2020-07-29_07-32-37PM.log. Oracle recommends that if you want to keep this log, you should move it from the temporary location to a more permanent location.
解决:
chmod -R 777 /u01/oracle/
开始Oracle在后台静默安装。安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在后台进行,如果出现Successfully Setup Software,则安装程序已经停止了。
可以在以下位置找到本次安装会话的日志:/u01/oracle/inventory/logs/installActions2020-07-29-46-21PM.log
当出现以下提示时,代表安装成功:
按照要求执行脚本,打开终端,退出到root身份登录,执行脚本:
sh /u01/oracle/inventory/orainstRoot.sh
sh /u01/oracle/product/11.2.0/root.sh
如上图中所示。
以静默方式配置监听
重新使用oracle用户登录:su - oracle
执行:
netca /silent /responseFile /home/oracle/response/netca.rsp
结果如下:
注意此处,必须使用/silent /responseFile格式,而不是-silent -responseFile,因为是静默安装。
成功运行后,在/u01/oracle/product/11.2.0/network/admin中生成listener.ora和sqlnet.ora
通过netstat命令可以查看1521端口正在监听,如果netstat没安装,则安装:yum install net-tools
以静默方式建立新库,同时也建立一个对应的实例
vim /home/oracle/response/dbca.rsp
修改文件中以下参数:
[GENERAL]
# oracle版本,不能更改
RESPONSEFILE_VERSION = "11.2.0"
# Description : Type of operation
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
# Description : Global database name of the database
# 全局数据库的名字=SID+主机域名# 第三方工具链接数据库的时候使用的service名称
GDBNAME = "orcl.test"
# Description : System identifier (SID) of the database
# 对应的实例名字
SID = "orcl"
# Description : Name of the template
# 建库用的模板文件
TEMPLATENAME = "General_Purpose.dbc"
# Description : Password for SYS user
# SYS管理员密码
SYSPASSWORD = "123456"
# Description : Password for SYSTEM user
# SYSTEM管理员密码
SYSTEMPASSWORD = "123456"
# Description : Password for SYSMAN user
# SYSMAN管理员密码
SYSMANPASSWORD = "123456"
# Description : Password for DBSNMP user
# DBSNMP管理员密码
DBSNMPPASSWORD = "123456"
# Description : Location of the data file's
# 数据文件存放目录
DATAFILEDESTINATION =/u01/oracle/oradata
# Description : Location of the data file's
# 恢复数据存放目录
RECOVERYAREADESTINATION=/u01/oracle/fast_recovery_area
# Description : Character set of the database
# 字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
# (CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8")
CHARACTERSET = "ZHS16GBK"
# Description : total memory in MB to allocate to Oracle
# oracle内存1638MB,物理内存2G*80%
TOTALMEMORY = "1638"
进行静默配置:
dbca -silent -responseFile /home/oracle/response/dbca.rsp
建库后进行实例进程检查:
ps -ef | grep ora_ | grep -v grep
如图:
查看监听状态:lsnrctl status
数据库创建完成。
有关详细信息, 请查看以下位置的日志文件: /u01/oracle/cfgtoollogs/dbca/orcl/orcl.log。
数据库信息:
全局数据库名:orcl.test
系统标识符 (SID):orcl
登录查看实例状态:
sqlplus / as sysdba
SQL> select status from v$instance;
为oracle 创建新用户
1、登陆oracle
sqlplus / as sysdba
2、创建用户及密码
CREATE USER test IDENTIFIED BY 123456;
3、解锁新账户
alter user test account unlock;
3、创建会话的权限
grant create session to test;
4、为用户添加权限
grant dba to test;
4、转换新账户登陆
connect test/123456;
到此,整个配置与安装完成。
命令行模式静默删除
1、首先查看dbca的帮助信息
dbca -help
修改/home/oracle/response/dbca.rsp文件里以下几个参数,下面三个参数根据建库实际情况进行修改:
OPERATION_TYPE = "deleteDatabase"
SOURCEDB = "orcl"
SYSDBAUSERNAME = "sys"
SYSDBAPASSWORD = "123456"
然后运行:
dbca -silent -responseFile /home/oracle/response/dbca.rsp
各参数含义如下:
-silent 表示以静默方式删除
-responseFile 表示使用哪个响应文件,必需使用绝对路径
RESPONSEFILE_VERSION 响应文件模板的版本,该参数不要更改
OPERATION_TYPE 安装类型,该参数不要更改
SOURCEDB 数据库名,不是全局数据库名,即不包含db_domain
很简单数据库卸载完成了,请注意,只是数据库卸载完了,数据库软件还是在的。
2、使用DBCA卸载数据库
dbca -silent -delete Database -responseFile dbca.rsp
a.选项-silent表示静默安装,免安装交互,大部分安装信息也不输出
b.选项-responseFile指定应答文件,要求用绝对路径
监听配置及数据库连接问题
1、确认监听文件的正确配置,文件路径 /u01/oracle/product/11.2.0/network/admin
我使用的阿里云服务器安装oracle,在文件listener.ora、tnsnames.ora中,所配置的HOST都是服务器名,并没有使用公IP地址。
listener.ora 文件如下:
tnsnames.ora 文件
监听配置完后需要 关闭与 重启,使生效
进入 su - oracle
关闭命令:lsnrctl stop
重启命令:lsnrctl start
2、打开云服务器中ORACLE 1521端口,
阿里云控制台----安全组规则-----公网入方向----手动添加,如下图配置
3、查看防火墙状态
0.查看防火墙状态
firewall-cmd --state
1.启动防火墙
systemctl start firewalld
2.禁用防火墙
systemctl stop firewalld
3.设置开机启动
systemctl enable firewalld
4.停止并禁用开机启动
sytemctl disable firewalld
5.重启防火墙
firewall-cmd --reload
6.添加端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
7.删除端口
firewall-cmd --zone=public --remove-port=1521/tcp --permanent
如果防火墙是关闭的,不需要开启防火墙的话,就不需要开放端口1521;如果是开启,查看1521端口是否开放的
firewall-cmd --permanent --zone=public --list-ports
如果输出没有1521端口,则开放:
firewall-cmd --zone=public --add-port=1521/tcp --permanent
出现" success" 则表示添加成功。
其它端口也是如此,比如Tomcat的8080端口
至此,便可以使用公网IP访问云服务器的oracle。