在 CentOS 6 上安装 Oracle Database 11g R2:
我们的网络没有使用任何 DNS 服务器,因此,我们将按如下方式配置本地 DNS 解析器。
[root@omr12c ~]# cat >> /etc/hosts << EOF >170.172.0.121 omr12c.mydomain.com omr12c >170.172.0.123 oms12c.mydomain.com oms12c >EOF
通过执行以下命令调整所需内核的参数。
[root@omr12c ~]# cat >> /etc/sysctl.conf << EOF >fs.file-max = 6815744 >kernel.sem = 250 32000 100 128 >kernel.shmmni = 4096 >kernel.shmall = 1073741824 >kernel.shmmax = 4398046511104 >net.core.rmem_default = 262144 >net.core.rmem_max = 4194304 >net.core.wmem_default = 262144 >net.core.wmem_max = 1048576 >fs.aio-max-nr = 1048576 >net.ipv4.ip_local_port_range = 9000 65500 >EOF [root@omr12c ~]# sysctl -p
执行以下命令为 oracle 用户设置限制。
[root@omr12c ~]# cat >> /etc/security/limits.conf << EOF >oracle soft nofile 1024 >oracle hard nofile 65536 >oracle soft nproc 16384 >oracle hard nproc 16384 >oracle soft stack 10240 >oracle hard stack 32768 >EOF
Oracle Database 11g R2 需要一些包。
我们可以使用 yum 命令从 Internet 在线安装,或者设置本地 yum 存储库。
我们的 CentOS 6 服务器没有连接到 Internet,我们也没有配置任何本地 yum 存储库,因此,我们使用 rpm 从 CentOS 6 安装 DVD/ISO 安装包。
[root@omr12c Packages]# rpm -Uvh binutils-2.20.51.0.2-5.36.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh compat-libcap1-1.10-1.x86_64.rpm [root@omr12c Packages]# rpm -Uvh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh gcc-4.4.7-4.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh gcc-c++-4.4.7-4.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh glibc-2.12-1.132.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh glibc-devel-2.12-1.132.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh ksh-20120801-10.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh libgcc-4.4.7-4.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh libstdc++-4.4.7-4.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh libstdc++-devel-4.4.7-4.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh libaio-0.3.107-10.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh libaio-devel-0.3.107-10.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh libXext-1.3.1-2.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh libXtst-1.2.1-2.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh libX11-1.5.0-4.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh libXau-1.0.6-4.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh libxcb-1.8.1-1.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh libXi-1.6.1-3.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh make-3.81-20.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh sysstat-9.0.4-22.el6.x86_64.rpm [root@omr12c Packages]# rpm -Uvh unixODBC-2.2.14-12.el6_3.x86_64.rpm [root@omr12c Packages]# rpm -Uvh unixODBC-devel-2.2.14-12.el6_3.x86_64.rpm [root@omr12c Packages]# rpm -Uvh elfutils-devel-0.152-1.el6.x86_64.rpm
Oracle Database 11g R2 需要以下用户和组。
我们可以使用以下命令创建这些用户和组。
[root@omr12c ~]# groupadd -g 601 oinstall [root@omr12c ~]# groupadd -g 602 dba [root@omr12c ~]# groupadd -g 603 oper [root@omr12c ~]# useradd -u 601 -g oinstall -G dba,oper oracle [root@omr12c ~]# echo "oracle" | passwd oracle --stdin
我正在为自己创建另一个用户来执行 DBA 任务。
[root@omr12c ~]# useradd -u 603 -g oinstall -G dba,oper jackli [root@omr12c ~]# echo "123" | passwd jackli --stdin
要将 SELinux 模式更改为 permissive,请执行以下命令。
[root@omr12c ~]# sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/sysconfig/selinux [root@omr12c ~]# setenforce permissive
在 Linux 防火墙中允许 Oracle 侦听器端口 1521.
[root@omr12c ~]# iptables -I INPUT 5 -p tcp --dport 1521 -m state --state NEW,ESTABLISHED -j ACCEPT [root@omr12c ~]# service iptables save
执行以下命令添加PAM配置。
[root@omr12c ~]# cat >> /etc/pam.d/login << EOF >session required pam_limits.so >EOF
创建 ORACLE_BASE 目录并将所有者更改为 oracle 用户。
[root@omr12c ~]# mkdir -p /u01/app/oracle [root@omr12c ~]# chown -R oracle:oinstall /u01/app [root@omr12c ~]# chmod -R 775 /u01/app
不过,如果连接到 Internet,CentOS 6 会自动与其 NTP 服务器同步时间。
但是,正如我们之前提到的,我们的机器没有连接到 Internet。
因此,我们必须使用我们的内部 NTP 服务器进行时间同步。
执行以下命令。
[root@omr12c ~]# sed -i 's/^server*/#server/g' /etc/ntp.conf [root@omr12c ~]# cat >> /etc/ntp.conf << EOF >server 170.172.0.3 >server 170.172.0.2 >EOF [root@omr12c ~]# chkconfig ntpd on [root@omr12c ~]# service ntpd start
根据 Oracle Database 11g R2 的要求设置环境参数。
[root@omr12c ~]# su - oracle [oracle@omr12c ~]$ cat >> ~/.bash_profile << EOF >ORACLE_BASE=/u01/app/oracle >ORACLE_SID=omr12c >export ORACLE_BASE ORACLE_SID >unset ORACLE_HOME >unset TNS_ADMIN >EOF
执行 ~/.bash_profile 以将更改应用于环境。
[oracle@omr12c ~]$ . ~/.bash_profile
从 Oracle Database 11g R2 安装目录运行安装程序。
使用默认选项安装 Oracle RDBMS,并创建一个名为 omr12c 的数据库。
[oracle@omr12c ~]$ ./runInstaller
安装后更新 ~/.bash_profile。
[oracle@omr12c ~]$ cat >> ~/.bash_profile << EOF >if [ $USER = "oracle" ]; then > if [ $SHELL = "/bin/ksh" ]; then > ulimit -p 16384 > ulimit -n 65536 > else > ulimit -u 16384 -n 65536 > fi >fi >ORACLE_HOSTNAME=omr12c.mydomain.com >ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 >export ORACLE_HOSTNAME ORACLE_HOME >TNS_ADMIN=$ORACLE_HOME/network/admin >LD_LIBRARY_PATH=$ORACLE_HOME/dbhome_1/lib >PATH=$PATH:$ORACLE_HOME/bin >export TNS_ADMIN LD_LIBRARY_PATH PATH >EOF
在这里,我们将配置一个 Oracle Database 11g 服务器,该服务器将用作 CentOS 6 上 Oracle Enterprise Manager Cloud Control 12c 的 Oracle Management Repository。
但首先,我们想简要定义一些我们可能在本文中经常遇到的术语.
OEM12c 的架构具有三个不同的组件:
- 收集代理(Oracle 管理代理或者 OMA)
- 聚合代理(Oracle 管理服务器或者 OMS)
- 存储库代理(Oracle Management Repository 或者 OMR)
Oracle 管理代理/OMA 在目标主机上运行并收集有关在该目标主机上运行的硬件、操作系统和应用程序的信息。
Oracle Management Server/OMS 在中央服务器上运行并收集由多个 Oracle Management Agents/OMA 生成的数据。
OMS 还提供用于监控和管理服务的 Web 界面。
Oracle Management Repository/OMR 是一个 Oracle Database 11g R2.
OMS 从多个 OMA 中提取信息并将数据聚合到 OMR 中。
在 CentOS 6 上配置 Oracle Management Repoistory 12c:
连接omr12c数据库,调整以下系统参数。
[oracle@omr12c ~]$ sqlplus / AS SYSDBA SQL> ALTER SYSTEM SET processes=300 SCOPE=SPFILE; SQL> ALTER SYSTEM SET session_cached_cursors=200 SCOPE=SPFILE; SQL> ALTER SYSTEM SET sga_target=1200M SCOPE=SPFILE; SQL> ALTER SYSTEM SET shared_pool_size=600M SCOPE=SPFILE; SQL> ALTER SYSTEM SET pga_aggregate_target=300M SCOPE=SPFILE; SQL> ALTER SYSTEM SET job_queue_processes=20 SCOPE=SPFILE; SQL> SHUTDOWN IMMEDIATE SQL> STARTUP
如果我们选择在数据库创建期间配置 EM 的选项,那么我们现在必须将其删除。
SQL> shutdown immediate; SQL> startup restrict; SQL> EXEC sysman.emd_maintenance.remove_em_dbms_jobs; SQL> EXEC sysman.setEMUserContext('',5); SQL> REVOKE dba FROM sysman; SQL> DECLARE SQL> CURSOR c1 IS SQL> SELECT owner, synonym_name name SQL> FROM dba_synonyms SQL> WHERE table_owner = 'SYSMAN' ; SQL> BEGIN SQL> FOR r1 IN c1 LOOP SQL> IF r1.owner = 'PUBLIC' THEN SQL> EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM '||r1.name; SQL> ELSE SQL> EXECUTE IMMEDIATE 'DROP SYNONYM '||r1.owner||'.'||r1.name; SQL> END IF; SQL> END LOOP; SQL> END; SQL> / SQL> DROP USER mgmt_view CASCADE; SQL> DROP ROLE mgmt_user; SQL> DROP USER sysman CASCADE; SQL> ALTER SYSTEM DISABLE RESTRICTED SESSION; SQL> exit [oracle@omr12c ~]$ emca -deconfig dbcontrol db -repos drop
Oracle 建议 Oracle Management Repository/OMR 的重做日志文件大小为 300GB。
SQL> ALTER DATABASE ADD LOGFILE ('/u01/app/oracle/oradata/omr12c/redo04a.log','/u01/app/oracle/oradata/omr12c/redo04b.log') size 300M; SQL> ALTER DATABASE ADD LOGFILE ('/u01/app/oracle/oradata/omr12c/redo05a.log','/u01/app/oracle/oradata/omr12c/redo05b.log') size 300M; SQL> ALTER DATABASE ADD LOGFILE ('/u01/app/oracle/oradata/omr12c/redo06a.log','/u01/app/oracle/oradata/omr12c/redo06b.log') size 300M; SQL> ALTER DATABASE DROP LOGFILE GROUP 1; SQL> ALTER DATABASE DROP LOGFILE GROUP 2; SQL> ALTER DATABASE DROP LOGFILE GROUP 3; SQL> ALTER SYSTEM SWITCH LOGFILE;
我们已经在 CentOS 6 服务器上成功配置了 Oracle Management Repository/OMR 12c。
创建一个服务来自动启动 Oracle 数据库和监听器:
默认情况下,Oracle Installer 在系统启动期间不配置数据库和侦听器的自动启动。
因此,我们必须为此创建一个服务脚本。
[root@omr12c ~]# su - root [root@omr12c ~]# cat >> /etc/init.d/dbora << EOF >#!/bin/sh ># chkconfig: 345 99 10 ># description: Oracle auto start-stop script. ># ># Change the value of ORACLE_HOME to specify the correct Oracle home ># directory for your installation. >ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ># ># Change the value of ORACLE to the login name of the ># oracle owner at your site. ># >ORACLE_USER=oracle >PATH=${PATH}:$ORACLE_HOME/bin >export ORACLE_HOME ORACLE_USER PATH ># >case in >'start') > runuser -l $ORACLE_USER -c '$ORACLE_HOME/bin/dbstart $ORACLE_HOME &' > touch /var/lock/subsys/dbora > ;; >'stop') > runuser -l $ORACLE_USER -c '$ORACLE_HOME/bin/dbshut $ORACLE_HOME' > rm -f /var/lock/subsys/dbora > ;; >*) > echo "usage: ##代码## {start|stop}" > exit > ;; >esac ># >exit >EOF [root@omr12c ~]# chmod 750 /etc/init.d/dbora [root@omr12c ~]# chkconfig dbora on [root@omr12c ~]# sed -i 's/:Y/:N/g' /etc/oratab [root@omr12c ~]# reboot
我们已经在 CentOS 6 上成功安装了 Oracle Database 11g R2.
配置环境
网络设置
Hostname: | omr12c.mydomain.com |
---|---|
IP Address: | 170.172.0.121/16 |
Gateway: | 170.172.0.1 |
DNS Server: | 170.172.0.3 |