标准分区(仅供参考)
/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




