本文记录从无到有部署一个CentOS 7+Oracle 11gR2单实例,做为主要学习试验环境。由于本人在安装的过程中踩了很多次坑,故下定决心将实战过程记录下来,希望对众网友有所帮助。
¶一、前置准备
¶1. 检查系统安装条件
1 | 物理内存不小于1G: 查看方式: |
¶2. 关闭firewalld防火墙
1 | systemctl status firewalld.service #查看firewalld防火墙状态 |
¶3. 修改系统标识和内核参数
由于Oracle默认不支持CentOS,故需要修改,修改系统标识文件
1 | vim /etc/redhat-release |
1 | 将文件内容替换为redhat-7 |
修改内核参数文件
1 | vim /etc/sysctl.conf |
1 | 在最后添加以下内容 |
修改完后,启用新的配置
1 | sysctl -p |
¶4. 安装依赖库
1 | yum -y install binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* elfutils* unixODBC* unzip lrzsz |
¶5. 创建用户以及组
1 | groupadd oinstall #创建安装oracle程序用户组 |
¶6. 创建安装目录并设置权限
1 | 创建相关目录 |
1 | ll /data #查看目录权限 |
¶7. 修改oracle用户的安全性能设置
1 | vim /etc/security/limits.conf |
1 | 在文件最后一行前,追加以下内容 |
¶8. 修改用户环境变量
修改用户环境变量文件
1 | vim /home/oracle/.bashrc |
1 | 在最后追加以下内容 |
修改完后立即启用生效:
1 | source /home/oracle/.bashrc |
¶9. 关闭selinux
修改selinux配置文件
1 | vim /etc/selinux/config |
1 | SELINUX=disabled #修改SELINUX的值为disabled |
保存后需要重启机器
1 | reboot |
¶二、安装Oracle
¶1. 下载
安装包下载地址:https://www.oracle.com/database/technologies/112010-linx8664soft.html
下载两个oracle安装包:linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip
💁♂温馨提示:
如果官方下载地址失效,可到本人网盘下载:
链接:https://pan.baidu.com/s/1YwFRecm1_O3pA5efxak7iw
提取码:e5rj
¶2. 解压安装包到安装目录
1 | unzip linux.x64_11gR2_database_1of2.zip -d /data/src/ |
¶3. 设置安装目录权限
1 | chown -R oracle:oinstall /data/src/ |
1 | 查看目录权限 |
¶4. 安装Oracle
切换为Oracle用户
1 | su oracle |
修改静默安装响应文件
1 | vim /data/src/database/response/db_install.rsp |
1 | 修改以下内容 |
启动安装程序
1 | /data/src/database/runInstaller -silent -responseFile /data/src/database/response/db_install.rsp -ignorePrereq |
漫长的等待…(时间的话看机器性能咯)
当出现如下画面时候,请照做
要执行配置脚本,请执行以下操作:
(1)打开另外一个终端窗口(注意是另外一个终端窗口)
(2)以"root"身份登陆
(3)运行脚本
1 | /data/inventory/orainstRoot.sh |
(5)返回此窗口并按"Enter"键继续
到这里Oracle主程序就安装完啦…
¶5. 配置Oracle监听程序
编辑监听配置文件
1 | vim /data/src/database/response/netca.rsp |
修改以下参数
1 | INSTALL_TYPE=""custom"" # 安装的类型 |
执行命令安装监听程序:
1 | /data/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /data/src/database/response/netca.rsp |
默认安装后就会启动,查看监听程序是否运行
1 | netstat -tnulp | grep 1521 |
¶6. 配置数据库实例
编辑数据库实例文件
1 | vim /data/src/database/response/dbca.rsp |
1 | 修改以下参数 |
¶7. 创建数据库实例
执行以下命令创建数据库实例
1 | /data/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /data/src/database/response/dbca.rsp |
查看实例是否运行
1 | ps -ef | grep ora_ | grep -v grep |
¶8. 启动和关闭oracle服务
¶8.1 启动
1 | su - oracle |
或者
1 | su - oracle |
¶8.2 关闭
1 | su - oracle |
或者
1 | su - oracle |
¶10. 开机自启动Oracle服务
对于以上,每次重启都需要手动执行相关命令来开启Oracle实例,为了不用每次开机都有手动启动Oracle,可以设置开机自启动Oracle服务。
oracle用户模式下修改oracle相关文件:
1 | su oracle |
1 | vim /etc/oratab |
root用户模式下修改linux自启动配置文件:
1 | su |
1 | vim /etc/rc.d/rc.local |
¶三、客户端连接oracle实例
¶1. sqlplus连接
当前服务器的sqlplus客户端直接连接
1 | su oracle |
创建用户
1 | SQL> create user qcmoke identified by 123456; |
¶2. PLSQL Developer客户端连接
①安装PLSQL Developer
官方下载地址:https://www.allroundautomations.com/
傻瓜式安装完即可。
②安装oracle客户端插件
instantclient客户端插件官方下载地址:https://www.oracle.com/database/technologies/instant-client/downloads.html
注意:如果PLSQL Developer是64位那么instantclient也要是64位,如果PLSQL Developer是32位,那么instantclient也要是32位。
下载包如下:
下载后解压到任意目录下即完成安装。此外还需要配置监听文件,在instantclient
目录下新建network/admin
目录,在该目录下建立tnsnames.ora
文件,在tnsnames.ora
中写入数据库连接字符串,示例如下:
1 | ORCL = |
③PLSQL Developer配置instantclient插件
④PLSQL Developer登录
密码是oracle
⑤创建并授权用户
¶3. Navicat客户端连接
配置instantclient插件,但不需要像PLSQL Developer那样还需要配置监听文件tnsnames.ora
登录
密码是oracle
¶五、问题解决方案
¶1. 设置启动脚本(可选)
1 | [root@localhost ~]# vim /etc/init.d/oracle |
1 | service oracle start #开启服务,包括开启监听+开启实例 |
¶2. swap不足报错
报错:Checking swap space: 0 MB available, 150 MB required. Failed <<<<
当运行如下安装命令报错:
1 | [oracle@localhost database]$ ./runInstaller -silent -responseFile /home/oracle/db_install.rsp |
解决方法:
1、检查 Swap 空间在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。运行以下命令:
1 | swapon -s |
如果返回的信息概要是空的,则表示 Swap 文件不存在。
2、检查文件系统在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 。运行以下命令:
1 | df -hal |
3、创建并允许 Swap 文件下面使用 dd 命令来创建 Swap 文件。检查返回的信息,还剩余足够的硬盘空间即可。
1 | 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 文件,还需要格式化后才能使用。
1 | mkswap /swapfile |
激活 Swap
1 | swapon /swapfile |
以上步骤做完,再次运行命令
1 | swapon -s |
- 机器重启的时候自动挂载 Swap
1 | vim /etc/fstab |
1 | 在/etc/fstab最后添加如下一行 |
最后,赋予 Swap 文件适当的权限:
1 | chown root:root /swapfile |
¶3. 禁止oracle用户ssh登录
可以将oracle用户添加到禁止SSH登录的名单中,防止破解登录。但可以通过其他用户登录到服务器后切换到oracle用户。
1 | vim /etc/ssh/sshd_config |
1 | 重新启动sshd服务 |
¶六、19C安装
需要提前下载好oracle19c的安装包:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#19c,下载Linux x86-64的ZIP包即可,下载后得到LINUX.X64_193000_db_home.zip。
¶1、禁用防火墙和 selinux
1 | systemctl stop firewalld.service |
¶2、创建用户和组、安装目录以及设置权限
1 | /usr/sbin/groupadd -g 65431 oinstall |
¶3、修改用户安全限制
1 | cat >> /etc/security/limits.conf << EOF |
¶4、shell限制
1 | echo "session required pam_limits.so" >> /etc/pam.d/login |
¶5、修改内核参数
1 | cat >> /etc/sysctl.conf << EOF |
提示:kernel.shmmax和kernel.shmall的配置需要特别注意
参数设置计算:
kernel.shmmax = 当前内存GB * 1024 * 1024 * 1024 * 0.9
注:当前内存推荐至少4GB
kernel.shmall = kernel.shmmax / kernel.shmmni详细解释:
shmall 是全部允许使用的共享内存大小
shmmax 是单个段允许使用的大小
这两个可以设置为内存的 90%
例如 16G 内存,1610241024102490% = 15461882265
shmall 的大小为 15461882265/4k(getconf PAGESIZE可得到) = 3774873
¶6、设置用户环境变量
1 | 切换到oracle用户 |
¶7、依赖和安装包准备
1 | 注:从oracle 18c开始,必须把压缩文件解压到 $ORACLE_HOME 里面 |
¶8、静默安装oracle
1 | 解压缩到$ORACLE_HOME里 |
¶9、启动监听服务器
1 | su - oracle |
¶10、创建数据库
1 | su - oracle && cd $ORACLE_HOME |
1 | sqlplus / as sysdba |
其他操作:
1 | #查看oracle版本 |