ORACLE11G实战演练--数据库安装篇(一)

2023-05-16

作为一个主要职责为DBA的开发人员,基本上部门内所有的数据库问题,小到安装、sql开发,大到系统恢复、优化,每天遇到的大大小小的问题非常多。每次遇到问题的时候,有时候凭借经验,有时候需要查阅一些相关的文档和资料,虽然事后也有一些工作总结文档,但大都很零碎,所以这次下决心把长时间积累的东西做一份总结性文档,既是对自己的知识体系在巩固的过程,也是希望发到博客上来,抛砖引玉,和同行之间多多交流。

为什么标题叫做实战演练,因为整个过程都是自己亲自从头操练了一遍,文章中所涉及的代码全部经过了实际环境的测试验证,根据自身的项目环境稍作修改即可实用。

关于内容,比较偏向于实用性,现在的项目一般都是在虚拟机上运行的,数据库也不例外,所以在开篇会将在虚拟机安装oracle11g的详细过程,后续的问题会按照以往项目经验,逐一展开,系统地论述。

 

数据库安装篇

 

准备文件

虚拟机安装文件

VMware-workstation-full-15.0.4-12990004.exe

Centos镜像文件

CentOS-7-x86_64-DVD-1810.iso

Oracle11g服务端文件

 

系统环境

虚拟机及版本:VMware® Workstation 15 Pro

Centos内核版本:Linux bogon 4.14.35-1844.4.5.el7uek.x86_64 #2 SMP Tue Apr 9 00:29:47 PDT 2019 x86_64 x86_64 x86_64 GNU/Linux

ORACLE版本:11.2.0
 

虚拟机安装

 

这部分不做重点讲解,一般一路按照提示操作即可,没有什么难度,但是也有可能会出现意外,下边会列举几个常见问题解决方法。

一般情况下,安装过程应勾选桌面版,但是如果安装时忘记了误选了命令行版本,可以按照下边方法解决:

安装过程中忘记了选择桌面版

首先配置网络

https://img-blog.csdnimg.cn/20181230113954435.png

改变以下参数

https://img-blog.csdnimg.cn/20181230114028909.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1MzYxODU5,size_16,color_FFFFFF,t_70

重新启动网络服务

https://img-blog.csdnimg.cn/20181230114118570.png

测试与主机互ping可通即说明成功。

 

接下来,我们需要做的是:

第一步,安装一个桌面(GNOME Desktop,命令:yum groupinstall -y  "GNOME Desktop"),

第二步,设定左面启动(命令:systemctl set-default graphical.target ),

第三步,重启,reboot now

重启后,来到桌面设置向导,设置密码如下图

调整分辨率的方法

虚拟机下的默认分辨率很低,应该根据实际情况适当调整

 

使用拖拽文件法有传输过程最后却报错,文件也找不到

如果不用第三方ftp工具,简单的拖拽文件也能达到文件传输效果,但有时候会发生一些小问题,比如拖拽后文件消失了?

实际情况是文件可能已经传输完成,在home/usrname/.cache/vmware文件夹中查找,注意要开启隐藏文件可见

 

好了,到这里,虚拟机安装部分就完成了。

 

数据库安装前的准备

 

检查系统配置(root用户)

(1)查看内存情况,注意大小写的写法

grep MemTotal /proc/meminfo

(2)查看swap情况

grep SwapTotal /proc/meminfo

(3)查看磁盘空间

df -k

(4)/tmp目录空间大小(大于400MB)

df -h /tm

测试如下图:

 

检查软件安装包情况(root)

(1)检查内核版本

(2)检查软件包的安装情况

此项先略过,后边会有说明

 

环境配置

创建用户和用户组,操作顺序如下:

(1)创建用户组oinstall,命令如下:

groupadd oinstall

添加完后,可以在/etc/group查询

(2)创建用户组dba,命令如下:

groupadd dba

(3)设定安全策略,首先允许修改这类文件配置文件。命令如下:

chattr -i /etc/passwd /etc/shadow

(4)把用户oracle加入oinstall和dba组,命令如下:

useradd –g oinstall –G dba oracle

(5)开始修改密码,命令如下:

passwd oracle

(6)创建用户完成,设定配置文件权限,避免信息篡改,命令如下:

chattr +i /etc/passwd /etc/shadow

配置linux内核参数(root用户)

(1)修改/etc/sysctl.conf文件,增加以下内容:

以下为分配了3GB内存

fs.aio-max-nr = 1048576

fs.file-max = 6815744

 

kernel.shmmax = 3221225472

kernel.shmmni = 4096

kernel.shmall = 786432

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 = 1048576

 

net.ipv4.tcp_wmem = 262144 262144 262144

net.ipv4.tcp_rmem = 4194304 4194304 4194304

(2)修改后:sysctl –p 设置生效

      

配置资源使用情况(root)

[root@bogon ~]# mkdir /home/U01

[root@bogon ~]# ln -s /home/U01 /U01

[root@bogon ~]# mkdir -p /U01/app/oracle/

[root@bogon ~]# chown -R oracle:oinstall /U01/

[root@bogon ~]# chmod -R 775 /U01/

修改/etc/pam.d/login文件,增加以下内容:

session required pam_limits.so

配置环境变量(oracle用户)

假设数据库实例名为test,则修改.bash_profile,增加以下内容:

export ORACLE_BASE=/U01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/produce/11.2.0/db1

export ORACLE_SID=test

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH

export LANG="en_US.UTF-8"

export NLS_LANG=american_AMERECA.UTF8

export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

 

ORACLE安装

在此只列举了最常用的OUI安装,得到安装包后,执行./runInstaller开始图形化安装过程,但是一般第一次安装的时候,会发生一个DISPLAY的错误,解决方法如下:

DISPLAY错误

解决方法:

在执行xhost +命令(使得所有客户都可以访问)

 

若返回信息为: 
access control disabled,clients can connect from any host   

表示xhost +可执行直接切换至oracle用户运行安装oracle

 

如果xhost +不能执行,

第一步:用root登陆linux,启动vnc服务;

第二步:根据vnc起来的端口,设置export DISPLAY=:11表示vnc在第一个tty上启动的),vnc的启动信息见下文的linux操作日志;

第三步:xhost + ip ip为主机ip地址)如果是本机访问,可以省略ip

2、以oracle用户登录

那么在该oracle用户下执行一下export DISPLAY=:1.0

然后再执行xdpyinfo命令,如果能出现信息说明你已经成功了

这样就可以解决linux下安装oracle出现的xhost问题。

 

安装过程

 

关键步骤

第三步,选择服务器模式

第四步,选择单实例配置即可

第五步,选择高级安装

第六步,选择英语和简体中文

第七步,选择企业版

第八步,选择产品安装路径,默认会读取刚才配置oracle用户的环境变量,默认就可以,点击下一步,如下图所示:

第九步,指定orainventory路径,默认即可

第十步,选择数据库的安装模板。11g有三种模板可供选择,分别是General purpose or Transaction Processing\Custom Database\Data Warehouse,此过程中仅显示两个。如果单独运行DBCA,则可以看到三个。对于模板类型主要有seed和noseed两种,主要区别在于是否包含数据文件,简单来说,seed就是从RMAN备份中恢复数据库,由于是恢复所以也不能做其他更多的定制修改,但是最大的特点是创建速度快,OLTP和OLAP的模板就属于seed模板类型;而“定制数据库”则属于noseed模板,不包含数据文件,需要使用create database命令创建数据库,创建时间要稍微长一些,对于大部分系统业务来说,需要根据自己的需求来选择合适的模板类型。

第十一步,会读取oracle的环境变量,全局数据库名和oracle数据库标识符尽量一样,如下图所示,点击下一步:

第十二步,指定配置选项,标签页1(内存),AMM11g的新特性,根据实际情况开启,这里为了测试开启了

标签页2(字符集),根据情况选择

标签页3(安全性)

标签页4(简单示例),示例方案根据个人需求选,如果是自己测试使用,建议勾选,如下图所示:

第十三步,默认选则,点击下一步:

第十四步,默认读取oracle用户环境变量,点击下一步,如下图所示:

第十五步,生产环境启用自动备份,如下图所示,点击下一步:

 

第十六步,选择对所有用户使用相同的口令, 并设定密码,密码需要满足复杂度校验,否则如下图所示,设定好后点击下一步:

第十七步

第十八步,先决条件检查

 

内核参数修复方法,按照提示修复即可

 

 

依赖包的安装方法

未修复之前,有19个依赖包需要安装

yum -y install gcc

安装后剩余16个依赖包需要安装

yum -y install gcc-c++

安装后剩余14个依赖包需要安装

yum -y install compat-libstdc++-33

安装后剩余13个依赖包需要安装

yum -y install elfutils-libelf-devel

安装后剩余12个依赖包需要安装

yum -y install libaio-devel

安装后剩余11个依赖包需要安装

yum -y install unixODBC

安装后剩余10个依赖包需要安装

yum -y install unixODBC-devel

安装后剩余9个依赖包需要安装

yum -y install pdksh

报错,百度搜原因:pdksh是一个老包了,新的oracle都使用ksh包

改执行:yum -y install ksh

 

操作截图示例:

 

利用oracle-rdbms-server-11gR2-preinstall --nongpgcheck 更新后没有作用,此操作可以自动完成很多前置操作,在下一次的12c演练中会详细操作

 

最后剩下的9个依赖包

如果有x64同名依赖包,可以忽略i386的

内核参数semmni在cent7下即使设置正确也会报错,可以忽略掉

是否影响使用,有待验证

最后会出现下图问题

 

注意:85%进度出现警告(如上图),可以忽略。主要是10.2.0.4补丁建议em访问方式改为https而不是原来的http;

如果想要使用https方式,请根据警告提示的步骤去执行。

Error securing Database control,Database control has been brought up in non-secure mode ……

 

第十九步,切换root安装脚本

 

启动数据库服务发现ora—000845错误解决方法

 

ORA-00845: MEMORY_TARGET not supported on this system

这个错误的主要原因是tmpfs的值小于memory_target的值。

 

[root@dac-vm02 ~]#oerr ora 845

00845, 00000, "MEMORY_TARGET notsupported on this system"

// *Cause: The MEMORY_TARGET parameter wasnot supported on this operating system or /dev/shm was not sized correctly onLinux.

// *Action: Refer to documentation for alist of supported operating systems. Or, size /dev/shm to be at least theSGA_MAX_SIZE on each Oracle instance running on the system.

解决方案:

因此我们只需要将tmpfs的值改大一点就好了。

先来看一下memory_target的值是多大

SQL> show parameter memory_target

 

NAME TYPE VALUE

------------------------------------ -------------------------------- ------------------------------

 

memory_target big integer 1296M

SQL>

只需要将tmpfs的值设置大于800M即可,tmpfs的初始值为内存的一半

编辑/etc/tmpfs文件,将tmpfs的值定为3G

/dev/VolGroup00/LogVol00 / ext3 defaults 1 1

LABEL=/boot /boot ext3 defaults 1 2

tmpfs /dev/shm tmpfs defaults,size=3G 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

/dev/VolGroup00/LogVol01 swap swap defaults 0 0

加入红显部分即可,接着要将tmpfs重新mount一下

[root@Ginna ~]# umount tmpfs

 

[root@Ginna ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

28G 11G 16G 40% /

/dev/sda1 99M 22M 72M 24% /boot

 

[root@Ginna ~]# mount tmpfs

 

[root@Ginna ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

28G 11G 16G 40% /

/dev/sda1 99M 22M 72M 24% /boot

tmpfs 3.0G 0 3.0G 0% /dev/shm

 

OK,更改完毕,接着就可以启动Oracle数据库了。

客户端连接测试

1防火墙配置(root,适用于centos7)

查看已开放的端口(默认无)

firewall-cmd --zone=public --list-ports

添加

firewall-cmd --add-port=<port>[-<port>]/<protocol>

firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]

firewall-cmd [--permanent] [--zone=<zone>] --add-port=<port>[-<port>]/<protocol>

添加1158或1521端口放行

禁用

firewall-cmd --remove-port=<port>[-<port>]/<protocol>

firewall-cmd [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>

firewall-cmd [--permanent] [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>

打开、关闭、重启防火墙

systemctl stop firewalld

systemctl start firewalld

systemctl restart firewalld

 开启/关闭 开机自启动防火墙

systemctl enable firewalld

systemctl disable firewalld

 

2本地tnsnames.ora配置

客户端(windows系统)dos命令中执行tnsping FLIKS

 

3使用pl/sql等工具连接测试

 

利用sys账号检测客户端连接访问数据库均无问题后,可以进行下一个环节的操作了。

 

--------------------本节末尾--------------------

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ORACLE11G实战演练--数据库安装篇(一) 的相关文章

随机推荐