• 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===================
  • 相关阅读:
    android入门之三【应用程序组成】
    Palm应用开发之一开发环境搭建
    android 入门之一【开发环境搭建】
    在DataGridView中的CheckBox值变更后立即获取值。
    根据字符串返回类型
    CSS模拟不同的拐角效果
    SQL查询生成交叉列表
    LinkButton 的 OnClick 事件 可以是一个方法
    代替marquee的滚动字幕效果代码
    JavaScript实现DataGrid中添加CheckBox列(全选与否)
  • 原文地址:https://www.cnblogs.com/ilifeilong/p/7041676.html
Copyright © 2020-2023  润新知