Oracle 11.2.0.4.0 Dataguard部署和日常维护(1)-数据库安装篇

本次测试环境

系统版本 CentOS release 6.8
主机名 ec2t-userdata-01 ec2t-userdata-01
IP地址 10.189.102.118 10.189.100.195  
数据库版本 11.2.0.4.0  
数据库角色 primary   standby

Oracle 11.2.0.4.0下载地址

https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_1of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_1of7.zip

https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_2of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_2of7.zip

1. 系统配置

  1.1. CentOS系统安装,IP,主机名配置(略),swap大小是内存的1.5~2倍

  1.2. 在主从节点创建oracle用户和dba组

# groupadd -r -g 501 oinstall
# groupadd -r -g 502 dba
# useradd -r -u 501 -g oinstall -G dba,root oracle -d /home/oracle
# echo "888888" | passwd --stdin oracle

   1.3. 在主从节点创建oracle安装目录并赋予oracle用户和组权限

# mkdir -p /u01/app/oracle/product/11.2.0/db_1
# chown -R oracle:oinstall /u01/
# chmod -R 775 /u01/

   1.4. 在主从节点配置oracle用户环境变量

  •  主节点
$ cat /home/oracle/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

export TMP=/tmp
export TMPDIR=/tmp
export TEMP=/tmp
export ORACLE_HOSTNAME=ec2t-userdata-01
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=/usr/bin:/usr/sbin:/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export ORACLE_SID=userdata
export ORACLE_UNQNAME=userdata1
export NLS_LANG=AMERICAN_AMERICA.UTF8
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=/usr/lib:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$ORACLE_HOME/ctx/lib:/lib:/usr/lib64
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
  • 从节点
$ cat /home/oracle/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

export TMP=/tmp
export TMPDIR=/tmp
export TEMP=/tmp
export ORACLE_HOSTNAME=ec2t-userdata-02
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=/usr/bin:/usr/sbin:/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export ORACLE_SID=userdata
export ORACLE_UNQNAME=userdata2
export NLS_LANG=AMERICAN_AMERICA.UTF8
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=/usr/lib:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$ORACLE_HOME/ctx/lib:/lib:/usr/lib64
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib   1.5. 在主从节点关闭防火墙和selinux
# service iptables stop
# chkconfig iptables off
# setenforce 0
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

    1.5. 在主从节点优化内核参数

# tail -n 11 /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 12884901888
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 = 1048586
# sysctl -p

     1.6. 在主从节点优化oracle用户资源使用限制

       1.6.1. 修改用户限制配置文件,增加如下参数

# tail -n 6 /etc/security/limits.conf
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

       1.6.2 修改login配置文件,将用户限制加入到登录验证模块

# grep 'pam_limits.so' /etc/pam.d/login 
session       required    /lib64/security/pam_limits.so

       1.6.3 编辑环境变量文件,增加对oracle用户的限制

# tail -n 10 /etc/profile
if [ $USER = "oracle" ];
  then
    if [ $SHELL = "/bin/ksh" ];
      then
        ulimit -p 16384
        ulimit -n 65536
      else
        ulimit -u 16384 -n 65536
    fi
fi

     1.7. 在主从节点安装依赖软件包

       1.7.1 在主从节点安装oracle依赖包

yum -y install  binutils-* compat-libstdc++-* elfutils-libelf-* elfutils-libelf-devel-* gcc-* gcc-c++-* glibc-* glibc-common-* glibc-devel-* glibc-headers-* ksh-* libaio-* libaio-devel-* libgcc-* libgomp-* libstdc++-* libstdc++-devel* make-* sysstat-* unixODBC-* libXp ksh readline readline-devel

       1.7.2 在主从节点安装rlwrap包(用以解决sqlplus不能查询历史命令和后退键不能回退的问题)

# wget http://download.openpkg.org/components/cache/rlwrap/rlwrap-0.42.tar.gz
# tar -zxf rlwrap-0.42.tar.gz
# cd rlwrap-0.42
# ./configure
# make
# make install
# echo "alias sqlplus='rlwrap sqlplus'" >> /home/oracle/.bashrc
# echo "alias rman='rlwrap rman'" >> /home/oracle/.bashrc

     1.8. 配置主从节点oracle用户之间的信任关系

  • 主节点
$ ssh-keygen -t rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ ssh-copy-id oracle@ec2t-userdata-02
  • 从节点
$ ssh-keygen -t rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ ssh-copy-id oracle@ec2t-userdata-01

2. 在主节点安装oracle数据库(静默方式)

     2.1. 安装oracle数据库软件

       2.1.1. 创建oracle数据库软件安装的应答文件

$ unzip p13390677_112040_Linux-x86-64_1of7.zip ; unzip p13390677_112040_Linux-x86-64_2of7.zip
$
cp database/response/db_install.rsp /home/oracle/ $ cat /home/oracle/db_install.rsp | grep -v "#"|grep -v "^$" oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME=ec2t-userdata-01 UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oracle/oraInventory SELECTED_LANGUAGES=en,zh_CN ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.EEOptionsSelection=false oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0 oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=dba oracle.install.db.CLUSTER_NODES= oracle.install.db.isRACOneInstall=false oracle.install.db.racOneServiceName= oracle.install.db.config.starterdb.type=GENERAL_PURPOSE oracle.install.db.config.starterdb.globalDBName=userdata oracle.install.db.config.starterdb.SID=userdata oracle.install.db.config.starterdb.characterSet=AL32UTF8 oracle.install.db.config.starterdb.memoryOption=true oracle.install.db.config.starterdb.memoryLimit=2048 oracle.install.db.config.starterdb.installExampleSchemas=false oracle.install.db.config.starterdb.enableSecuritySettings=true oracle.install.db.config.starterdb.password.ALL=888888 oracle.install.db.config.starterdb.password.SYS= oracle.install.db.config.starterdb.password.SYSTEM= oracle.install.db.config.starterdb.password.SYSMAN= oracle.install.db.config.starterdb.password.DBSNMP= oracle.install.db.config.starterdb.control=DB_CONTROL oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL= oracle.install.db.config.starterdb.automatedBackup.enable=false oracle.install.db.config.starterdb.automatedBackup.osuid= oracle.install.db.config.starterdb.automatedBackup.ospwd= oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= oracle.install.db.config.asm.diskGroup= oracle.install.db.config.asm.ASMSNMPPassword= MYORACLESUPPORT_USERNAME= MYORACLESUPPORT_PASSWORD= SECURITY_UPDATES_VIA_MYORACLESUPPORT= DECLINE_SECURITY_UPDATES=true PROXY_HOST= PROXY_PORT= PROXY_USER= PROXY_PWD= PROXY_REALM= COLLECTOR_SUPPORTHUB_URL= oracle.installer.autoupdates.option= oracle.installer.autoupdates.downloadUpdatesLoc= AUTOUPDATES_MYORACLESUPPORT_USERNAME= AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

     从节点需要修改"ORACLE_HOSTNAME"的值

       2.1.2. 安装oracle数据库软件

$ ./database/runInstaller -silent -responseFile /home/oracle/db_install.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 5262 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 4095 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2017-06-19_09-28-46AM. Please wait ...[oracle@ec2t-userdata-02 u01]$ [WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
   CAUSE: The Central Inventory is located in the Oracle base.
   ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
You can find the log of this install session at:
 /u01/app/oracle/oraInventory/logs/installActions2017-06-19_09-28-46AM.log
The installation of Oracle Database 11g was successful.
Please check '/u01/app/oracle/oraInventory/logs/silentInstall2017-06-19_09-28-46AM.log' for more details.

As a root user, execute the following script(s):
    1. /u01/app/oracle/oraInventory/orainstRoot.sh
    2. /u01/app/oracle/product/11.2.0/db_1/root.sh


Successfully Setup Software.


$ cat /u01/app/oracle/oraInventory/logs/silentInstall2017-06-19_09-28-46AM.log | grep "OverallStatus:"
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL
INFO: OverallStatus:SUCCESSFUL

       2.1.3. 重新打开一个session窗口以root用户执行以上两个脚本

# /u01/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oracle/oraInventory to oinstall.
The execution of the script is complete.
# /u01/app/oracle/product/11.2.0/db_1/root.sh
Check /u01/app/oracle/product/11.2.0/db_1/install/root_ec2t-userdata-02_2017-06-19_09-40-24.log for the output of root script
# cat /u01/app/oracle/product/11.2.0/db_1/install/root_ec2t-userdata-02_2017-06-19_09-40-24.log
Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/db_1
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
Finished product-specific root actions.

         2.1.4. 安装软件错误解决

  • 内核参数值设置不正确
INFO: *********************************************
INFO: OS Kernel Parameter: shmmax: This is a prerequisite condition to test whether the OS kernel parameter "shmmax" is properly set.
INFO: Severity:IGNORABLE
INFO: OverallStatus:VERIFICATION_FAILED
INFO: -----------------------------------------------
INFO: Verification Result for Node:ec2t-userdata-01
INFO: Expected Value:Current=1909168128; Configured=1909168128
INFO: Actual Value:Current=536870912; Configured=536870912
INFO: Error Message:PRVG-1201 : OS kernel parameter "shmmax" does not have proper value on node "ec2t-userdata-01" [Expected = "1909168128" ; Current = "536870912"; Configured = "536870912"].
INFO: Cause: Kernel parameter configured value does not meet the requirement.

      修改shmmax为Expected的值

  • 缺少pdksh-5.2.14包
INFO: *********************************************
INFO: Package: pdksh-5.2.14: This is a prerequisite condition to test whether the package "pdksh-5.2.14" is available on the system.
INFO: Severity:IGNORABLE
INFO: OverallStatus:VERIFICATION_FAILED
INFO: -----------------------------------------------
INFO: Verification Result for Node:ec2t-userdata-01
INFO: Expected Value:pdksh-5.2.14
INFO: Actual Value:missing
INFO: Error Message:PRVF-7532 : Package "pdksh" is missing on node "ec2t-userdata-01"
INFO: Cause: A required package is either not installed or, if the package is a kernel module, is not loaded on the specified node.

        下载安装即可

# wget http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
# rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm --nodeps

     2.2. 安装oracle监听程序

       2.2.1. 创建oracle监听程序安装的应答文件

$ cp ./database/response/netca.rsp /home/oracle/

       2.2.2. 创建oracle监听程序

$ netca /silent /responsefile /home/oracle/netca.rsp

Parsing command line arguments:
    Parameter "silent" = true
    Parameter "responsefile" = /home/oracle/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
    Running Listener Control: 
      /u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0

      2.3. 安装oracle数据库

       2.2.1. 创建oracle数据库安装的应答文件

$ cp ./database/response/dbca.rsp /home/oracle/
$ cat /home/oracle/dbca.rsp | grep -v "#"|grep -v "^$"
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "userdata"
SID = "userdata"
TEMPLATENAME = "General_Purpose.dbc"
DATAFILEDESTINATION = "/u01/app/oracle/oradata"
RECOVERYAREADESTINATION="/u01/app/oracle/flash_recovery_area"
CHARACTERSET = "AL32UTF8"
NATIONALCHARACTERSET= "UTF8"
[createTemplateFromDB]
SOURCEDB = "myhost:1521:orcl"
SYSDBAUSERNAME = "system"
TEMPLATENAME = "My Copy TEMPLATE"
[createCloneTemplate]
SOURCEDB = "orcl"
TEMPLATENAME = "My Clone TEMPLATE"
[DELETEDATABASE]
SOURCEDB = "orcl"
[generateScripts]
TEMPLATENAME = "New Database"
GDBNAME = "orcl11.us.oracle.com"
[CONFIGUREDATABASE]
[ADDINSTANCE]
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
NODELIST=
SYSDBAUSERNAME = "sys"
[DELETEINSTANCE]
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
INSTANCENAME = "orcl11g"
SYSDBAUSERNAME = "sys"

       2.2.2. 修改引用的通用模板General_Purpose.dbc

$ cp $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc.bak
$ cat $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc
<?xml version = '1.0'?>
<DatabaseTemplate name="General_Purpose" description=" " version="11.2.0.0.0">
   <CommonAttributes>
      <option name="OMS" value="false"/>
      <option name="JSERVER" value="true"/>
      <option name="SPATIAL" value="true"/>
      <option name="IMEDIA" value="true"/>
      <option name="XDB_PROTOCOLS" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="ORACLE_TEXT" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="SAMPLE_SCHEMA" value="false"/>
      <option name="CWMLITE" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="EM_REPOSITORY" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="APEX" value="true"/>
      <option name="OWB" value="true"/>
      <option name="DV" value="false"/>
   </CommonAttributes>
   <Variables/>
   <CustomScripts Execute="false"/>
   <InitParamAttributes>
      <InitParams>
         <initParam name="db_name" value=""/>
         <initParam name="dispatchers" value="(PROTOCOL=TCP) (SERVICE={SID}XDB)"/>
         <initParam name="audit_file_dest" value="{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump"/>
         <initParam name="compatible" value="11.2.0.4.0"/>
         <initParam name="remote_login_passwordfile" value="EXCLUSIVE"/>
         <initParam name="processes" value="600"/>
         <initParam name="undo_tablespace" value="UNDOTBS1"/>
         <initParam name="control_files" value="(&quot;{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl&quot;, &quot;{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl&quot;)"/>
         <initParam name="diagnostic_dest" value="{ORACLE_BASE}"/>
         <initParam name="db_recovery_file_dest" value="{ORACLE_BASE}/fast_recovery_area"/>
         <initParam name="audit_trail" value="db"/>
         <initParam name="memory_target" value="2048" unit="MB"/>
         <initParam name="db_block_size" value="8" unit="KB"/>
         <initParam name="open_cursors" value="600"/>
         <initParam name="db_recovery_file_dest_size" value="4096" unit="MB"/>
         <initParam name="JAVA_JIT_ENABLED" value="FALSE"/>
      </InitParams>
      <MiscParams>
         <databaseType>MULTIPURPOSE</databaseType>
         <maxUserConn>20</maxUserConn>
         <percentageMemTOSGA>40</percentageMemTOSGA>
         <customSGA>false</customSGA>
         <archiveLogMode>false</archiveLogMode>
         <initParamFileName>{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/pfile/init.ora</initParamFileName>
      </MiscParams>
      <SPfile useSPFile="true">{ORACLE_HOME}/dbs/spfile{SID}.ora</SPfile>
   </InitParamAttributes>
   <StorageAttributes>
      <DataFiles>
         <Location>{ORACLE_HOME}/assistants/dbca/templates/Seed_Database.dfb</Location>
         <SourceDBName>seeddata</SourceDBName>
         <Name id="1" Tablespace="SYSTEM" Contents="PERMANENT" Size="740" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf</Name>
         <Name id="2" Tablespace="SYSAUX" Contents="PERMANENT" Size="470" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf</Name>
         <Name id="3" Tablespace="UNDOTBS1" Contents="UNDO" Size="25" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf</Name>
         <Name id="4" Tablespace="USERS" Contents="PERMANENT" Size="5" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf</Name>
      </DataFiles>
      <TempFiles>
         <Name id="1" Tablespace="TEMP" Contents="TEMPORARY" Size="20">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf</Name>
      </TempFiles>
      <ControlfileAttributes id="Controlfile">
         <maxDatafiles>200</maxDatafiles>
         <maxLogfiles>16</maxLogfiles>
         <maxLogMembers>3</maxLogMembers>
         <maxLogHistory>1</maxLogHistory>
         <maxInstances>8</maxInstances>
         <image name="control01.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
         <image name="control02.ctl" filepath="{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/"/>
      </ControlfileAttributes>
      <RedoLogGroupAttributes id="1">
         <reuse>false</reuse>
         <fileSize unit="KB">102400</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo01.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="2">
         <reuse>false</reuse>
         <fileSize unit="KB">102400</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo02.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="3">
         <reuse>false</reuse>
         <fileSize unit="KB">102400</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo03.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
   </StorageAttributes>
</DatabaseTemplate>

       2.2.3. 安装oracle数据库

$ dbca -silent -responseFile /home/oracle/dbca.rsp
Enter SYS user password: 888888
Enter SYSTEM user password: 888888                         
Copying database files                                                                                                                                                                       
1% complete                                                                                                                                                                                  
2% complete                                                                                                                                                                                  
4% complete                                                                                                                                                                                  
37% complete                                                                                                                                                                                 
Creating and starting Oracle instance                                                                                                                                                        
38% complete                                                                                                                                                                                 
40% complete                                                                                                                                                                                 
45% complete                                                                                                                                                                                 
50% complete                                                                                                                                                                                 
51% complete                                                                                                                                                                                 
56% complete                                                                                                                                                                                 
57% complete                                                                                                                                                                                 
61% complete                                                                                                                                                                                 
62% complete                                                                                                                                                                                 
Completing Database Creation                                                                                                                                                                 
66% complete                                                                                                                                                                                 
70% complete                                                                                                                                                                                 
73% complete                                                                                                                                                                                 
74% complete                                                                                                                                                                                 
85% complete                                                                                                                                                                                 
86% complete
98% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/userdata/userdata.log" for further details.

       2.2.4. 在glogin.sql文件增加常用的配置

$ cat $ORACLE_HOME/sqlplus/admin/glogin.sql
--
-- Copyright (c) 1988, 2011, Oracle and/or its affiliates. 
-- All rights reserved. 
--
-- NAME
--   glogin.sql
--
-- DESCRIPTION
--   SQL*Plus global login "site profile" file
--
--   Add any SQL*Plus commands here that are to be executed when a
--   user starts SQL*Plus, or uses the SQL*Plus CONNECT command.
--
-- USAGE
--   This script is automatically run
--
define_editor=vi
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 200
set pagesize 9999
column plan_plus_exp format a80
column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user) || '@' || substr(global_name,1,decode( dot,0,length(global_name),dot-1) ) global_name from (select global_name,instr(global_name,'.') dot from global_name );
set sqlprompt '&gname> '
set termout on
set sqlprompt"_user'@'_connect_identifier>"
column member format a50
column name format a50
column DEST_NAME format a30
column DESTINATION format a40
column FILE_NAME format a60

-- Used by Trusted Oracle 
COLUMN ROWLABEL FORMAT A15

-- Used for the SHOW ERRORS command 
COLUMN LINE/COL FORMAT A8 
COLUMN ERROR FORMAT A65 WORD_WRAPPED

-- Used for the SHOW SGA command 
COLUMN name_col_plus_show_sga FORMAT a24 
COLUMN units_col_plus_show_sga FORMAT a15 
-- Defaults for SHOW PARAMETERS 
COLUMN name_col_plus_show_param FORMAT a36 HEADING NAME 
COLUMN value_col_plus_show_param FORMAT a30 HEADING VALUE

-- Defaults for SHOW RECYCLEBIN 
COLUMN origname_plus_show_recyc   FORMAT a16 HEADING 'ORIGINAL NAME' 
COLUMN objectname_plus_show_recyc FORMAT a30 HEADING 'RECYCLEBIN NAME' 
COLUMN objtype_plus_show_recyc    FORMAT a12 HEADING 'OBJECT TYPE' 
COLUMN droptime_plus_show_recyc   FORMAT a19 HEADING 'DROP TIME'

-- Defaults for SET AUTOTRACE EXPLAIN report 
-- These column definitions are only used when SQL*Plus 
-- is connected to Oracle 9.2 or earlier. 
COLUMN id_plus_exp FORMAT 990
COLUMN parent_id_plus_exp FORMAT 990
COLUMN plan_plus_exp FORMAT a60 
COLUMN object_node_plus_exp FORMAT a8 
COLUMN other_tag_plus_exp FORMAT a29 
COLUMN other_plus_exp FORMAT a44

 3. 在从节点安装oracle数据库(静默方式,仅需要安装数据库软件和创建监听)

    步骤略,参考步骤2

4. 主库状态查看

  • 查看数据库信息
column PLATFORM_NAME format a20
column NAME format a10
column DB_UNIQUE_NAME format a15
column OPEN_MODE format a10
column LOG_MODE format a15
column FLASHBACK_ON format a15
select PLATFORM_NAME,NAME,DBID,DB_UNIQUE_NAME,CREATED,OPEN_MODE,CURRENT_SCN,LOG_MODE,FORCE_LOGGING,FLASHBACK_ON from v$database;

PLATFORM_NAME         NAME      DBID       DB_UNIQUE_NAME  CREATED            OPEN_MODE  CURRENT_SCN  LOG_MODE        FORCE_LOG FLASHBACK_ON
-------------------- ---------- ---------- --------------- ------------------- ---------- ----------- --------------- --------- ---------------
Linux x86 64-bit     USERDATA   3890525137 userdata        2017-06-21 19:44:17 READ WRITE 995537      NOARCHIVELOG    NO        NO

column INSTANCE_NAME format a10
column HOST_NAME format a20
column VERSION format a15
column STATUS format a10
column DATABASE_STATUS format a10
column INSTANCE_ROLE format a20
column ACTIVE_STATE format a10
select INSTANCE_NAME,HOST_NAME,VERSION,STARTUP_TIME,STATUS,DATABASE_STATUS,INSTANCE_ROLE,ACTIVE_STATE from v$instance;

INSTANCE_N HOST_NAME        VERSION     STARTUP_TIME        STATUS     DATABASE_S INSTANCE_ROLE        ACTIVE_STA
---------- -------------------- --------------- ------------------- ---------- ---------- -------------------- ----------
userdata   ec2t-userdata-01    11.2.0.4.0    2017-06-21 19:47:53 OPEN       ACTIVE      PRIMARY_INSTANCE     NORMAL
  •  查看数据库控制文件信息
column NAME format a60
select NAME,STATUS,TO_CHAR(block_size*file_size_blks,'999,999,999,999') File_Size from v$controlfile;

NAME                                                         STATUS                FILE_SIZE
------------------------------------------------------------ --------------------- ------------------------------------------------
/u01/app/oracle/oradata/userdata/control01.ctl                                     11,108,352
/u01/app/oracle/fast_recovery_area/userdata/control02.ctl                          11,108,352
  • 查看联机重做日志文件信息
column SIZE_MB format 999
column STATUS format a10
column TYPE format a10
column NEXT_CHANGE# format 999999999999999
SELECT l.thread#,
       lf.group#,
       lf.member,
       TRUNC(l.bytes/1024/1024) AS size_mb,
       l.status,
       l.archived,
       lf.type,
       lf.is_recovery_dest_file AS rdf,
       l.sequence#,
       l.first_change#,
       l.next_change#   
FROM   v$logfile lf
       JOIN v$log l ON l.group# = lf.group#
ORDER BY l.thread#,lf.group#, lf.member;
THREAD#
GROUP# MEMBER SIZE_MB STATUS ARCHIVED TYPE RDF SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# ---------- ---------- -------------------------------------------------- ------- ---------- --------- ---------- --------- ---------- ------------- ---------------- 1 1 /u01/app/oracle/oradata/userdata/redo01.log 100 CURRENT NO ONLINE NO 4 990659 281474976710655 1 2 /u01/app/oracle/oradata/userdata/redo02.log 100 INACTIVE NO ONLINE NO 2 929203 961989 1 3 /u01/app/oracle/oradata/userdata/redo03.log 100 INACTIVE NO ONLINE NO 3 961989 990659
  •  查看数据文件使用信息
SET PAGESIZE 100
SET LINESIZE 265
COLUMN tablespace_name FORMAT A20
COLUMN file_name FORMAT A50
COLUMN USED_PCT FORMAT A20

SELECT df.tablespace_name,
       df.file_name,
       df.size_mb,
       f.free_mb,
       df.max_size_mb,
       f.free_mb + (df.max_size_mb - df.size_mb) AS max_free_mb,
       RPAD(' '|| RPAD('X',ROUND((df.max_size_mb-(f.free_mb + (df.max_size_mb - df.size_mb)))/max_size_mb*10,0), 'X'),11,'-') AS used_pct
FROM   (SELECT file_id,
               file_name,
               tablespace_name,
               TRUNC(bytes/1024/1024) AS size_mb,
               TRUNC(GREATEST(bytes,maxbytes)/1024/1024) AS max_size_mb
        FROM   dba_data_files) df,
       (SELECT TRUNC(SUM(bytes)/1024/1024) AS free_mb,
               file_id
        FROM dba_free_space
        GROUP BY file_id) f
WHERE  df.file_id = f.file_id (+)
ORDER BY df.tablespace_name,
         df.file_name;
TABLESPACE_NAME
FILE_NAME SIZE_MB FREE_MB MAX_SIZE_MB MAX_FREE_MB USED_PCT -------------------- -------------------------------------------------- ------- ---------- ----------- ----------- -------------------- SYSAUX /u01/app/oracle/oradata/userdata/sysaux01.dbf 520 31 32767 32278 ---------- SYSTEM /u01/app/oracle/oradata/userdata/system01.dbf 740 0 32767 32027 ---------- UNDOTBS1 /u01/app/oracle/oradata/userdata/undotbs01.dbf 75 66 32767 32758 ---------- USERS /u01/app/oracle/oradata/userdata/users01.dbf 5 3 32767 32765 ----------
  • 查看表空间使用信息
column TABLESPACE_NAME format a15

SELECT UPPER(F.TABLESPACE_NAME) "TABLESPACE_NAME",
D.TOT_GROOTTE_MB "TABLESPACE_SIZE(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "TABLESPACE_USED(M)",
F.TOTAL_BYTES "TABLESPACE_FREE(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "USED_PERCENTAGE",
F.MAX_BYTES "MAX_BLOCK(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
 ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1;
TABLESPACE_NAME TABLESPACE_SIZE(M) TABLESPACE_USED(M) TABLESPACE_FREE(M) USED_PERCENTAGE MAX_BLOCK(M)
--------------- ------------------ ------------------ ------------------ ------------------------ ------------ SYSAUX 520 488.87 31.13 94.01% 31.13 SYSTEM 740 739.12 .88 99.88% .88 UNDOTBS1 75 9.5 65.5 12.67% 44 USERS 5 1.31 3.69 26.20% 3.69
  • 查看每个数据文件的IO信息
COLUMN 'File Name' FORMAT A50
COLUMN 'Blocks Read' FORMAT 999999
COLUMN 'Blocks Writen' FORMAT 999999
COLUMN 'Total I/O' FORMAT 999999

SELECT Substr(d.name,1,50) "File Name",
       f.phyblkrd "Blocks Read",
       f.phyblkwrt "Blocks Writen",
       f.phyblkrd + f.phyblkwrt "Total I/O"
FROM   v$filestat f,
       v$datafile d
WHERE  d.file# = f.file#
ORDER BY f.phyblkrd + f.phyblkwrt DESC;

File Name                                          Blocks Read Blocks Writen Total I/O
-------------------------------------------------- ----------- ------------- ---------
/u01/app/oracle/oradata/userdata/system01.dbf      20333        2525         22858
/u01/app/oracle/oradata/userdata/sysaux01.dbf       7586        8515         16101
/u01/app/oracle/oradata/userdata/undotbs01.dbf        22        5480          5502
/u01/app/oracle/oradata/userdata/users01.dbf          34           0            34
===================来自一泽涟漪的博客,转载请标明出处 www.cnblogs.com/ilifeilong===================
原文地址:https://www.cnblogs.com/ilifeilong/p/7041676.html