暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux7系统+Oracle11g+维护

大月半子与良品 2020-02-14
552

标准分区(仅供参考)

/boot 200M 

/swap 内存的1.5-2倍

这里交换空间的大小可以根据分配的内存进行选择,一般小于8G的交换空间设置为内存的两倍;大于8G小于32G的交换空间设置内存大小一样;高于32G内存的交换空间设置为内存的一半

/  根分区全部

可选分区

home分区

作用:存放用户数据,HOME的结构一般是 HOME/userName/userFile,如果不分则默认在/目录下

分区建议:如果用户数据多可以将此分区适当增大,请参考“根分区”分区建议;一般硬盘的主要容量几乎都在Home分区和根分区下

var分区

作用:用于log日志的文件的存放,如果不分则默认在/目录下

分区建议:如果你安装的linux是用于服务器或者经常做日志分析,请划分var分区,避免日志文件不断膨胀塞满导致根分区而引发问题。

tmp分区

作用:放置一些临时文件和程序运行中的临时文件

分区建议:一些运行高负载的服务器建议划分出来。

建议至少留50G不分配,留作以后扩展分区使用,cat /proc/partitions查看分区

查看操作系统相关信息

uname -m

cat /etc/redhat-release 

grep MemTotal /proc/meminfo

grep SwapTotal /proc/meminfo

free

df -h /dev/shm/

df -h /tmp


hostname修改

cat /etc/sysconfig/network 

networking=yes

hostname=ora11g

修改/etc/hosts文件

#echo 192.168.3.111 ora11g>>/etc/hosts

127.0.0.1 localhost

192.168.3.111 ora11g

linux7以上系统用:hostnamectl set-hostname ora11g

备注:

1、hosts文件,路径:/etc/hosts,此文是在网络上使用的,用于解析计算机名称和IP地址的映射关系,功能相当于windows下面的c:\windows\system32\drivers\etc\hosts文件,如果想使用计算机名称来访问对方的主机,需要把对方计算机的名称和IP地址写到本机的hosts文件中

2、network文件,路径:/etc/sysconfig/network,此文件是针对本计算机的,是给计算机起的一个名字,是计算机的一个标识。可以使用uname -n 命令来查看本地计算机的计算机名称

3, hostname 主机名  是临时修改hostname,可以让主机名生效

关闭selinux

查看selinux状态:getenforce 或者sestatus -v

临时关闭:setenforce 0

永久关闭:vim /etc/selinux/config

设置SELINUX=disabled


关闭firewalld 安装iptables

systemctl stop firewalld.service

systemctl disable firewalld.service

systemctl status firewalld.service

yum -y install iptables-services

systemctl restart iptables.service

systemctl enable iptables.service

修改ip

命令如下:vi /etc/sysconfig/network-scripts/ifcfg-eth0

对其内容做如下修改:

ONBOOT从no改为yes

BOOTPROTO从dhcp改为static

然后再添加三行:

IPADDR=192.168.3.111

NETMASK=255.255.255.0

GATEWAY=192.168.3.1

service network restart

systemctl restart network

oracle用户设置Shell限制:

vi /etc/security/limits.conf

在该文件的最后,添加如下内容:

oracle              soft    nproc   2047

oracle              hard    nproc   16384

oracle              soft    nofile  1024

oracle              hard    nofile  65536

oracle              soft    stack   10240

第1行是设置进程数软限制;第2行是设置进程数硬限制;第3行是设置文件数软限制;第4行是设置文件数硬限制

PAM认证  将配置文件加入到登录验证模块

#vi /etc/pam.d/login  //在文件最后添加下面一行

session required /lib64/security/pam_limits.so 

#session required pam_limits.so

备注:64位 32位 选择一个,注释另一个

pam_securetty.so读取/etc/securrety,设定root用户可以登陆的终端,一般只设置tty而没有pts/0,telnet使用该模块故无法使用root用户登录,而sshd没有使用到该模块故不受限制;

/etc/security/limits.conf 文件配置生效,必须要确保 PAM验证模块pam_limits.so 文件被加入到启动文件中

内核参数修改 添加

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

保存后sysctl -p

*************************************************

拓展 sed命令使用,非实际操作内容

sysctl  -a|grep sem

sysctl  -a|grep sem|sed 's/32/100/2' --第二次出现替换为100

sysctl  -a|grep sem|sed 's/32/100/2' >>/etc/sysctl.conf  --追加

sysctl  -a|grep ip_local|sed 's/32768/1024/' -e 's/61/65/' --多次替换

sysctl  -a|grep ip_local|sed 's/32768/1024/' -e 's/61/65/'>>/etc/sysctl.conf

sysctl  -a|grep rmem_d|sed 's/109568/262144/''>>/etc/sysctl.conf

sysctl  -a|grep rmem_ma|sed 's/131071/262144/''>>/etc/sysctl.conf

sysctl  -a|grep wmem_ma|sed 's/131071/262144/''>>/etc/sysctl.conf

sysctl  -a|grep wmem_de|sed 's/109568/262144/''>>/etc/sysctl.conf

sysctl  -a|grep file-m|sed 's/83762/65536/''>>/etc/sysctl.conf

tail -7 /etc/sysctl.conf

sysctl -P

****************************************

建立用户及组

在命令行中依次输入如下命令

groupadd -g 1000 oinstall

groupadd -g 1001 dba

useradd -u 1000 -g oinstall -G dba oracle

passwd oracle


创建目录

依次输入如下命令:

mkdir -p /u01/app/

chown -R oracle:oinstall /u01/

chmod -R 775 /u01/app/

cd 

su - oracle

cd /u01

ls -lrt

环境变量

vim /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

使之生效:source /etc/profile

source /etc/profile

配置环境变量

在命令行中依次输入如下命令:

cd

vi .bash_profile

在该文件的最后,添加如下内容:

export ORACLE_BASE=/u01/app

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0

export ORACLE_SID=ora11g

export ORACLE_TERM=xterm

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

--export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

umask 022

#就是设定文件权限为777-022=755

再输入 source .bash_profile,从而让前面的设置生效。

可以使用echo $ORACLE_SID命令来查看前面设置有无错误:

上传安装包并解压

unzip db_112040_Linux-x86-64_1of7.zip

unzip db_112040_Linux-x86-64_2of7.zip

chown -R oracle:oinstall database/

远程借助的是xmanager

打开xmanager-passive  看端口

解决远程无法调用图形安装的问题

如果报错:Could not execute auto check for display colors using command /usr/bin/xdpyinfo,试着执行xdpyinfo:

$ /usr/bin/xdpyinfo

-bash: /usr/bin/xdpyinfo: No such file or directory

发现该命令不存在,开始怀疑是xdpyinfo问题,于是安装xdpyinfo:

#xdpyinfo | grep local localhost:0

yum -y install xdpyinfo


如果没有这个命令,需要用yum安装桌面

centos6/redhat6:

yum groupinstall -y "X Window System"

yum groupinstall -y "Desktop"

yum groupinstall -y "Chinese Support"

centos7/redhant7:

yum groupinstall  "GNOMEDesktop"  -y

yumgroupinstall -y "X Window System"

安装完后重启再执行命令xdpyinfo | grep local查看

oracle:export DISPLAY=:0.0

root: xhost +

安装数据库软件

su - oracle

cd /u01/database

./runInstaller

查看数据库uanzhuang日

tail -f /u01/app/oraInventory/logs/installActions2020-02-14_06-56-29PM.log

数据库检查后安装缺的rpm包

rpm -ivh

mount /dev/cdrom /mnt

cd /mnt/Packags

rpm -ivh libaio-devel使用tab键自动补齐

用本地模式

*****************

mount /dev/cdrom /mnt

cd /etc/yum.repos.d

输入ls,查看其中的文件,如果有redhat.repo,使用vi命令编辑此文件,然后将其中的内容全部删除。输入

vi redhat-base.repo

[local]

name=Red Hat Enterprise Linux 6.7

baseurl=file:///mnt

enabled=1

gpgcheck=1

gpgkey=file:///mnt/RPM-GPG-KEY-redhat-release

#gpgkey=file:///mnt/Packags

yum clean all

yum install ....

*****************

报错处理

CentOS 7 安装oracle 11.2.0.4 Error in invoking target 'agent nmhs' of makefile 时出现报错   

Error in invoking target 'agent nmhs' of makefile

解决方案

在makefile中添加链接libnnz11库的参数

修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11

建议修改前备份原始文件

$ cd $ORACLE_HOME/sysman/lib

$ cp ins_emagent.mk ins_emagent.mk.bak

$ vi ins_emagent.mk

进入vi编辑器后  命令模式输入/NMECTL 进行查找,快速定位要修改的行

在后面追加参数-lnnz11

$(SYSMANBIN)emdctl:

$(MK_EMAGENT_NMECTL) -lnnz11

第一个是字母l   后面两个是数字1

保存退出后Retry

脚本执行

Linux安装oracle数据库时,中途出现需要root用户执行命令(step 10 of 11)

sh /u01/oraInventory/orainstRoot.sh

sh /u01/app/product/11.2.0/root.sh

创建监听

在命令行中输入如下命令:

su - oracle

netca

DBCA安装数据库

注意选择内存管理及语言归档


数据库安装完成后设置

1、进程数、密码有效期

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

ALTER SYSTEM SET PROCESSES=3000 SCOPE=SPFILE;修改最大连接数           

ALTER SYSTEM SET OPEN_CURSORS=1000 SCOPE=BOTH;

--ALTER SYSTEM SET DB_FILES=300 SCOPE=SPFILE;

2、配置归档

mkdir /u01/archive

chown -R oracle /u01/archive/

alter system set log_archive_dest1='locatin=/u01/archive' scope=both;

alter system set log_archive_format='log%t_%s_%r.arc' scope=spfile;

shutdown immediate

startup mount

alter database archivelog;

archive log list;

alter database open;

alter database switch logfile;

3、配置删除归档计划任务

service crond start|stop|restart 

crontab -e

crontab -l

tail -f /var/log/cron

0 0 * * * /home/oracle/rmarchive.sh

脚本1:

rmarchive.sh

find /u01/archive/ -name "*.dbf" -mtime +15 -exec rm {} \;--15天文件删除

脚本2:

vi rmarchive.sh

#! /bin/bash

#qin delete archive

source ~/.bash_profile

$ORACLE_HOME/bin/rman target /<<EOF

#$ORACLE_HOME/bin/rman log=/u01/archive/rmarch`date +%Y%m%d-%H%M`.log <<EOF

#connect target /

run{

crosscheck archivelog all;

delete noprompt expired archivelog all;

delete noprompt archivelog all completed before 'SYSDATE-7';

report obsolete;

delete noprompt obsolete;

}

exit

EOF

数据库卸载

第一种方法:使用oracle自带的runInstaller 卸载;

$ cd /u01/app/product/11.2.0/dbhome_1/deinstall/

$ export LANG=en

$ ./deinstall

第二种方法:通过删除文件的方式卸载;(即:删除Oracle安装目录下的所有文件和文件夹)

shutdown immediate

lsnrctl stop

kill -9 ps -ef |grep oracle |grep -v grep |awk '{print $2}'

# service httpd stop

# rm -rf /u01/

# rm /usr/local/bin/dbhome

# rm /usr/local/bin/oraenv

# rm /usr/local/bin/coraenv

# rm /etc/oratab

# rm /etc/oraInst.loc

$ cd /home/oracle/

$ rm –rf *

# userdel –r oracle

# groupdel oinstall

# groupdel dba

# chkconfig --del dbora

文章转载自大月半子与良品,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论