安装环境
- 操作系统:Centos 7.9
- 数据库版本:oracle 11.2.0.4
- 内存:4G
- 网络:公网
安装步骤
1.关闭防火墙、selinux
systemctl stop firewalld.service
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
2.禁用THP(Transparent Huge Pages)
vim /etc/rc.d/rc.local
#增加下列内容
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
#保存退出,给rc.local执行权限
chmod +x /etc/rc.d/rc.local
reboot
检查是否关闭成功,如下输出则是关闭成功
[root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
3.创建用户和用户组
groupadd oinstall
groupadd dba
#创建oracle用户,并加入到oinstall和dba用户组
useradd -g oinstall -G dba -m oracle
#查询用户组是否授权成功
groups oracle
#设置用户密码
passwd oracle
#查看新建的oracle用户
id oracle
4.配置系统内核参数
vim /etc/sysctl.conf
#添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
#kernel.shmall=内存*1024*1024*1024/4096
kernel.shmall = 1048576
#内存4G,kernel.shmmax=4*0.5*1024*1024*1024
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 500 64000 500 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
5.修改用户限制文件
vim /etc/security/limits.conf
#添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
vim /etc/pam.d/login
#添加以下内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
vim /etc/profile
#加入以下内容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
6.创建oracle主目录
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
7.配置oracle用户的环境变量
su - oracle
vim ~/.bash_profile
#添加一下内容
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=American_america.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin
#使配置文件生效
source ~/.bash_profile
8.安装oracle
su - root
#安装需要的依赖包
yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
mkdir /tmp/oracle
#将安装包上传/tmp/oracle目录并解压
cd /tmp/oracle
unzip Oracle_112040_Linux-x86-64_1of7.zip
unzip Oracle_112040_Linux-x86-64_2of7.zip
chown -R oracle:oinstall /tmp/oracle/database
辑静默安装响应文件
cd /tmp/oracle/database/response/
cp db_install.rsp db_install.rsp.bak
#去掉注释和空行
sed -i '/^#/d;/^$/d' db_install.rsp
#修改安装配置文件信息
vim db_install.rsp
#修改以下内容
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracle
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.password.ALL=oracle
DECLINE_SECURITY_UPDATES=true
开始安装
su - oracle
cd /tmp/oracle/database/
./runInstaller -silent -responseFile /tmp/oracle/database/response/db_install.rsp -ignorePrereq
切换到root用户执行上述的脚本
su - root
/u01/app/oracle/inventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
9.创建数据库实例
su - oracle
cd /tmp/oracle/database/response/
cp dbca.rsp dbca.rsp.bak
#去掉注释和空行
sed -i '/^#/d;/^$/d' dbca.rsp
vim dbca.rsp
#修改以下配置
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION = /u01/app/oracle/oradata
RECOVERYAREADESTINATION = /u01/app/oracle/fast_recovery_area
CHARACTERSET = "ZHS16GBK"
#我这边设置TOTALMEMORY = 物理内存*75% MB
TOTALMEMORY = "3072"
TEMPLATENAME = "General_Purpose.dbc"
执行安装命令
dbca -silent -responseFile /tmp/oracle/database/response/dbca.rsp
测试
10.配置监听程序
HOST记得修改
su - oracle
netca /silent /responseFile /tmp/oracle/database/response/netca.rsp
vim /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
#修改以下内容
LISTENER =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.68.130)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(SID_NAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(PRESPAWN_MAX = 20)
(PRESPAWN_LIST =
(PRESPAWN_DESC = (PROTOCOL = tcp)(POOL_SIZE = 2)(TIMEOUT = 1))
)
)
)
ADR_BASE_LISTENER = /u01/app/oracle
vim /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
#修改以下内容
orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.68.130)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
lsnrctl stop
lsnrctl start
此时可以通过plsql连接到数据库服务器了
11.设置自启动
vim /etc/oratab
#修改以下配置
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y
vim /etc/rc.d/rc.local
#添加以下配置
su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start
su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
#如果是在以前的centos版本中,这样就可以了。但是centos7 的/etc/rc.local不会开机执行
chmod +x /etc/rc.d/rc.local
完全卸载删除Oracle数据库
#使用SQL*PLUS停止数据库
sqlplus / as sysdba
SQL> shutdown
SQL> exit
#停止Listener
[oracle@ora920 oracle]$ lsnrctl stop
#停止HTTP服务
[oracle@ora920 oracle]$ $ORACLE_HOME/Apache/Apache/bin/apachectl stop
#将安装目录删除
[root@ora920 /root]# rm -rf /opt/oracle/
#将/usr/bin下的文件删除
[root@ora920 /root]# rm /usr/bin/dbhome
[root@ora920 /root]# rm /usr/bin/oraenv
[root@ora920 /root]# rm /usr/bin/coraenv
#将/etc/oratab删除
[root@ora920 /root]# rm /etc/oratab
#将/etc/oraInst.loc删除
[root@ora920 /root]# rm /etc/oraInst.loc
#把$ORACLE_HOME下面的文件删掉
[root@centos213 /]# $ORACLE_HOME
-bash: /usr/oracle/product: Is a directory
rm -rf /opt/oracle/
#将oracle用户删除
[root@ora920 /root]# userdel oracle
#将用户组删除
[root@ora920 /root]# groupdel oinstall
[root@ora920 /root]# groupdel dba
#将启动服务删除
[root@ora920 /root]# chkconfig --del dbora
问题记录
1.ORACLE修改字符集修改为ZHS16GBK
SQL> shutdown immediate;
SQL> startup mount
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
SQL> shutdown immediate;
SQL> startup
2.导入dmp文件时报错ORA-39006: internal error ORA-39213: Metadata processing is not available
SQL> execute sys.dbms_metadata_util.load_stylesheets;
3.创建dblink 时候出现us.oracle.com 而使数据库链连接不上
4.问题:LRM-00109: could not open parameter file '/home/oracle/app/oracle/product/11.2.0/db_1/dbs/initorcl.ora'
设置$oracle_home/.bash_profile 里面ORACLE_SID为安装实例名