检查服务器配置
1、检查服务器硬件资源 Linux系统(x86-64)下的硬件要求:
物理内存:最少1GB
交互空间:物理内存为1GB至2GB之间时,交互空间为物理内存的1.5倍;物理内存为2GB至8GB之间时,交互空间为物理内存的1倍;物理内存为8GB以上时,交互空间为物理内存的0.75倍。
磁盘空间:企业版4.35GB;标准版3.22GB;自定义(最大值):3.45GB
2、检查内存情况:
# grep MemTotal /proc/meminfo
# grep SwapTotal /proc/meminfo
查看系统版本
cat /etc/redhat-release
uname -r
cat /proc/meminfo | grep MemTotal
关闭防火墙
systemctl status firewalld
修改主机名
hostnamectl set-hostname 110-DB
yum -y install binutils compat-libstdc++-33 compat-libcap1 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make elfutils-libelf-devel sysstat
yum -y install binutils compat compat-libstdc gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
yum -y install binutils-* compat-libcap1-* gcc-* gcc-c++-* glibc-* glibc-devel-* glibc-headers-* libstdc* elfutils-libelf-devel* libaio-devel* unixODBC-* pdksh-* libaio-* libgcc-* libXi-* libXtst-* make-* sysstat-* ld-linux.so.2 libc.so.6*
使用root用户操作:
创建安装oracle 所需的组和用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
110passwd
创建Oracle安装目录
mkdir -p /data/ora11/product/11r2
mkdir -p /data/oraInventory
chown -R oracle:oinstall /data/ora11
chown -R oracle:oinstall /data/oraInventory
chmod -R 775 /data/ora11
chmod -R 775 /data/oraInventory
编辑/etc/sysctl.conf文件,添加或修改如下的行:
cp /etc/sysctl.conf /etc/sysctl_bak
vim /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6553600
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
查看当前内核参数的值
/sbin/sysctl -p
打开文件数和进程数的限制
cp /etc/security/limits.conf /etc/security/bak_limits_bak
vim /etc/security/limits.conf
加入下面的行到文件/etc/security/limits.conf
#use for oracle
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
加入下面的行到文件/etc/pam.d/login
session required pam_limits.so
session required /lib/security/pam_limits.so (如果是32位系统则要加上这一句)
cp /etc/pam.d/login /etc/pam.d/login_bak
vim /etc/pam.d/login
修改bash和ksh的默认配置文件以及cshell的默认登陆脚本
添加下面内容到/etc/profile
#use for oracle
if [ $USER = "oracle" ];then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
cp /etc/profile /etc/profile_bak
vim /etc/profile
修改/home/oracle/.bash_profile文件
cp /home/oracle/.bash_profile /home/oracle/.bash_profile_bak
vim /home/oracle/.bash_profile
#use for oracle
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_USER=oracle
export ORACLE_BASE=/data/ora11
export ORACLE_HOME=$ORACLE_BASE/product/11r2
export ORACLE_SID=scjg12315
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export PATH=$ORACLE_HOME/bin:/usr/bin:/bin:$HOME/bin:$PATH
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
检查设置的环境变量,如果命令执行后啥都没显示,那就退出oracle 用户,重新切换oracle用户就可以了。
su - oracle
echo $ORACLE_HOME
echo $ORACLE_BASE
echo $ORACLE_SID
exit
修改HOSTS文件:
cp /etc/hosts /etc/hosts_bak
vim /etc/hosts
将主机IP地址和hostname加到第一行。否则会在后面安装数据库时报错 00600的错。
注:127.0.0.1这一行不能动,否则后面监听会启动不了
防止建实例时出现ORA-27125错
su - oracle
id oracle
more /proc/sys/vm/hugetlb_shm_group
下面用root执行下面的命令,将dba组添加到系统内核中:
exit
echo 1001 > /proc/sys/vm/hugetlb_shm_group
more /proc/sys/vm/hugetlb_shm_group
(注:此处的1001是根据上面id oracle查到的dba的编号来的)
可以看到已经由上面的0变成了dba的编号了。
做完上面的操作后已经可以创建实例了,但你会发现在服务器重启后,数据库依然不能随系 统自动启动,还需要通过上面的命令来进行修改才可以,意味则上面命令只是修改了内 存空间没有进行记录。要解决这个问题需要修改/etc/sysctl.conf文件,添加下面参数。
vim /etc/sysctl.conf
#use for oracle
vm.hugetlb_shm_group = dba 1002的编号
上传oracle安装包:到/home/oracle
unzip p13390677_112040_Linux-x86-64_database.zip
cd p13390677_112040_Linux-x86-64
mv database /home/oracle/
chown -R oracle:oinstall database
chmod -R 775 database
编辑配置db_install.rsp文件
less /home/oracle/database/response/db_install.rsp |grep -v "#"|grep -v "^$"
执行如下命令,用Oracle账号 注:不能直接用root切换到oracle账号否则无法安装
./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp
正在启动 Oracle Universal Installer...
检查临时空间: 必须大于 120 MB。 实际为 433156 MB 通过
检查交换空间: 必须大于 150 MB。 实际为 2047 MB 通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2015-07-09_10-05-51AM. 请稍候...[oracle@CL 可选要求。
原因: 不满足一些可选的先决条件。有关详细信息, 请查看日志。/tmp/OraInstall2015-07-09_10-05-51AM/instal
操作: 从日志 /tmp/OraInstall2015-07-09_10-05-51AM/installActions2015-07-09_10-05-51AM.log 中确定失败满足这些先决条件的适当配置, 并手动进行修复。
[WARNING] [INS-13014] 目标环境不满足一些可选要求。
原因: 不满足一些可选的先决条件。有关详细信息, 请查看日志。/tmp/OraInstall2015-07-09_10-05-51AM/instal
操作: 从日志 /tmp/OraInstall2015-07-09_10-05-51AM/installActions2015-07-09_10-05-51AM.log 中确定失败满足这些先决条件的适当配置, 并手动进行修复。
可以在以下位置找到本次安装会话的日志:
/data/oraInventory/logs/installActions2015-07-09_10-05-51AM.log
以下配置脚本需要以 "root" 用户的身份执行。
#!/bin/sh
#要运行的 Root 脚本
/data/oraInventory/orainstRoot.sh
/data/ora11/product/11r2/root.sh
要执行配置脚本, 请执行以下操作:
1. 打开一个终端窗口
2. 以 "root" 身份登录
3. 运行脚本
sh /data/oraInventory/orainstRoot.sh
sh /data/ora11/product/11r2/root.sh
4. 返回此窗口并按 "Enter" 键继续
Successfully Setup Software.
配置netca一般是默认
[oracle@CL database]$ netca /silent /responseFile /home/oracle/database/response/netca.rsp
正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /home/oracle/database/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 监听程序启动:
正在运行监听程序控制:
/data/ora11/product/11r2/bin/lsnrctl start LISTENER
监听程序控制完成。
监听程序已成功启动。
监听程序配置完成。
成功完成 Oracle Net Services 配置。退出代码是0
配置dbca
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0" //不能更改
OPERATION_TYPE = " createDatabase "
[CREATEDATABASE]
GDBNAME = "ora11" //数据库的名字
SID = "ora11" //对应的实例名字
TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件
SYSPASSWORD = "oracle" //SYS管理员密码
SYSTEMPASSWORD = "oracle" //SYSTEM管理员密码
DATAFILEDESTINATION = /data/ora11/oradata //数据文件存放目录
RECOVERYAREADESTINATION=/data/ora11/fast_recovery_area //恢复数据存放目录
CHARACTERSET = "ZHS16GBK" //字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
TOTALMEMORY = "3276" //oracle内存3276MB(allmem*80%)
dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
复制数据库文件
1% 已完成
3% 已完成
11% 已完成
18% 已完成
37% 已完成
正在创建并启动 Oracle 实例
40% 已完成
45% 已完成
50% 已完成
55% 已完成
56% 已完成
60% 已完成
62% 已完成
正在进行数据库创建
66% 已完成
70% 已完成
73% 已完成
85% 已完成
96% 已完成
100% 已完成
有关详细信息, 请参阅日志文件 "/data/ora11/cfgtoollogs/dbca/scjg12315/scjg1231.log"。
删除库
dbca -silent -deleteDatabase -sourceDB 库名
查看监听状态:
lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-2月 -2020 20:02:02
Copyright (c) 1991, 2013, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for Linux: Version 11.2.0.4.0 - Production
启动日期 15-2月 -2020 19:43:20
正常运行时间 0 天 0 小时 18 分 41 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 /data/ora11/product/11r2/network/admin/listener.ora
监听程序日志文件 /data/ora11/diag/tnslsnr/oracle_db/listener/alert/log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle_db)(PORT=1521)))
服务摘要..
服务 "scjg12315" 包含 1 个实例。
实例 "scjg12315", 状态 READY, 包含此服务的 1 个处理程序...
服务 "scjg12315XDB" 包含 1 个实例。
实例 "scjg12315", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功
查看数据库状态:
sqlplus /nolog
SQL*Plus: Release 11.2.0.4.0 Production on 星期六 2月 15 20:03:51 2020
Copyright (c) 1982, 2013, Oracle. All rights reserved.
SQL> conn /as sysdba
已连接。
SQL> select status from v$instance;
STATUS
------------
OPEN
修改、查询Oracle参数
(1)查询字符集(非常重要,必须查)
select userenv('language') from dual;
结果SIMPLIFIED CHINESE_CHINA.ZHS16GBK
修改Oracle配置(非常重要)
(2)修改Oracle密码180限制
Oracle 11G 默认用户密码必须在180天后修改问题,如果到时间没修改密码那用户就会被锁定,使远程用户无法使用工具连接。修改方法:
select * from dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; #此命令是查看是密码规则是否是需要180天修改的,反正如下,我们可以看到返回数据为180天。
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; #此命令就是将密码规则修改为无限制
配置文件已更改
select * from dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; #此命令是查看是密码规则是否是需要180天修改的,反正如下,我们可以看到返回数据为180天。
修改数据库参数,防止数据库空表导出报错
Oracle11G数据库默认无法导出空表
alter system set deferred_segment_creation=false;
注意该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用,所以我们在安装好数据库后就应该 马上执行此操作。
alter system set processes=800 scope=spfile;
alter system set sessions=850 scope=spfile;
创建自启动:
编辑启动脚本,需使用root用户
vim /etc/rc.d/init.d/oracle,加入以下内容:
注:ORA_HOME= 后面的参数要根据现场实际情况修改
#!/bin/sh
# chkconfig: 345 99 10
##其中chkconfig:345 99 10 是指脚本将为运行级3、4、5启动Oracle 10g服务,启动优先级为99,关闭优先级为10
# description: Oracle auto start-stop script.
# /etc/rc.d/init.d/oracle
# description: starts the oracle database
ORA_HOME=/data/ora11/product/11r2
ORA_OWNER=oracle
case "$1" in
start)
echo -n "Starting Oracle Databases: "
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >> /var/log/oracle
echo "Done."
echo -n "Starting Oracle Listeners: "
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle
echo "Done."
su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole" >> /var/log/oracle
echo "Done."
echo ""
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
stop)
echo -n "Shutting Down Oracle Listeners: "
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole" >> /var/log/oracle
echo "Done."
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
echo -n "Shutting Down Oracle Databases: "
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >> /var/log/oracle
echo "Done."
echo ""
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
;;
restart)
echo -n "Restarting Oracle Databases: "
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >> /var/log/oracle
echo "Done."
echo -n "Restarting Oracle Listeners: "
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle
echo "Done."
su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole" >> /var/log/oracle
echo "Done."
echo ""
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
*)
echo "Usage: oracle { start | stop | restart }"
exit 1
esac
exit 0
修改/etc/rc.d/init.d/oracle执行权限并创建启动脚本所需的软链接
chmod 755 /etc/rc.d/init.d/oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S10oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc4.d/S10oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc5.d/S10oracle
注:这里链接目的地要rc3.d、rc4.d、rc5.d和启动脚本#chkconfig: 345 99 10 中的345一致,S10也要和#chkconfig: 345 99 10 中的10一致。
添加oracle服务
chkconfig --add oracle
设置oracle服务自启动
chkconfig --level 345 oracle on //这个会报“You have mail in /var/spool/mail/root”的错,原因还没找到。
chkconfig --levels 345 oracle on //上面那个报错就执行这行
chkconfig --list|grep oracle //3,4,5级别上已经运行
oracle 0:关闭 1:关闭 2:关闭 3:启用 4:启用 5:启用 6:关闭
这里的345是runlevel级别,要和启动脚本#chkconfig: 345 99 10 中的345一致。
测试脚本是否可以正常启动、关闭、重启oracle命令
启动oracle数据库:
service oracle start
关闭oracle数据库:
service oracle stop
重启oracle数据库
service oracle restart
#创建表空间:
CREATE TABLESPACE SCJG
LOGGING
DATAFILE '/data/ora11/oradata/scjg12315/SCJG.dbf' SIZE
16384M AUTOEXTEND
ON NEXT 50M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE ARDT_DATA
LOGGING
DATAFILE '/data/ora11/oradata/scjg12315/ARDT_DATA.dbf' SIZE
16384M AUTOEXTEND
ON NEXT 50M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
#创建用户:
create user scjg
identified by Arkj12#$
default tablespace SCJG
temporary tablespace temp
profile DEFAULT;
grant connect to scjg;
grant dba to scjg;
grant resource to scjg;
grant unlimited tablespace to scjg;
create user scjg_cx
identified by Arkj12#$
default tablespace SCJG
temporary tablespace temp
profile DEFAULT;
grant connect to scjg_cx;
grant dba to scjg_cx;
grant resource to scjg_cx;
grant unlimited tablespace to scjg_cx;
create user ardt
identified by Arkj12#$
default tablespace ARDT_DATA
temporary tablespace temp
profile DEFAULT;
grant connect to ardt;
grant dba to ardt;
grant resource to ardt;
grant unlimited tablespace to ardt;
删除表空间:drop tablespace 表空间名 including contents and datafiles cascade constraint;
CREATE TABLESPACE FSSJJ
LOGGING
DATAFILE 'D:\app\myadmin.fs\oradata\FS12315\FSSJJ.dbf' SIZE
16384M AUTOEXTEND
ON NEXT 50M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
#创建用户:
create user FS12315
identified by Arkj12#$
default tablespace FSSJJ
temporary tablespace temp
profile DEFAULT;
grant connect to FS12315;
grant dba to FS12315;
grant resource to FS12315;
grant unlimited tablespace to FS12315;
导入数据:
imp scjg/Arkj12#$ file=/home/oracle/scjg.dmp log=/home/oracle/scjg_gx_20191203.log full=y ignore=y;
imp scjg_cx/Arkj12#$ file=/home/oracle/scjg_cx.dmp log=/home/oracle/scjg_cx_20191203.log full=y ignore=y;
vim /etc/profile
#user for tomcat
JAVA_HOME=/usr/java/jdk1.8.0_144
JRE_HOME=/usr/java/jdk1.8.0_144/jre
PATH=$PATH:$JAVA_HOME/bin:JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
source /etc/profile
tomcat 内存优化:
export JAVA_OPTS="$JAVA_OPTS -server -Xms2024m -Xmx4096m -XX:PermSize=256M -XX:MaxPermSize=512m"
优化命令
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
export JAVA_HOME=/usr/java/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
ardt 8080
site 80
service 8081
zk:172.24.9.12:2182
redis:172.24.9.12:6379
rpm -Uvh *.rpm --nodeps --force
在/usr/local/redis目录下,执行如下命令,启动redis
./bin/redis-server ./redis.conf
如下命令为关闭数据库命令
./bin/redis-cli -p 6379 -a arkj1234 shutdown
使用kill关进程可能会损失数据
建立本地yum:
mkdir /home/iso
mount -o loop /opt/setup/CentOS-7.3-x86_64-DVD-1611.iso /home/iso/
vi CentOS-local.repo
[base-local]
name=CentOS7.3-local
baseurl=file:///home/iso
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
yum clean all&&yum makecache
安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法
1.点击 开始->运行 ,输入regedit ,然后回车键进入注册编辑器
2.找到并点击HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters
3.如果AutoShareServer和AutoShareWks为0,则将该值修改为1