zoukankan      html  css  js  c++  java
  • unix_12c_db_init

    sample 1: add a new cdb 

    1.for the new db  Aprod

    please apply two new direcotry in Cdb3/Cdb4
    /Aprod  50G
    /Aprodlog 20G



    Aproddb 目前挂载在Cdb4,相关信息如下:

    文件系统:
    /dev/vg_Aproddb/Aproddb                   52101120   79414 48770357    0% /Aproddb
    /dev/vg_Aproddblog/Aproddblog                   20840448   71752 19470660    0% /Aproddblog

    VIP: 192.168.4.124


    4.

    ##在listener.ora 文件 找到正确的listener.ora 如listener1
    ###dbca -slient LISTENERS listener1

    export ORACLE_SID=Aprod
    export pdb_name=pBprod
    export file_dest=/Aproddb/data
    dbca -silent -createDatabase -templateName New_Database.dbt -gdbname $ORACLE_SID  -sid $ORACLE_SID
    -SysPassword oracle123 -systemPassword oracle123 -createAsContainerDatabase true -numberofPDBs 1
     -pdbName $pdb_name  -pdbAdminPassword oracle123  -datafileDestination $file_dest  -responseFile NO_VALUE
     -characterset AL32UTF8 -memoryPercentage 10  -emConfiguration none -storageType FS -listener listener1
     


    5.


    UAT:
    /uniuatdb/data/system01.dbf
    /uniuatdb/data/pdbseed/system01.dbf
    /uniuatdb/data/sysaux01.dbf
    /uniuatdb/data/pdbseed/sysaux01.dbf
    /uniuatdb/data/undotbs01.dbf
    /uniuatdb/data/users01.dbf
    /uniuatdb/data/pBuat/system01.dbf
    /uniuatdb/data/pBuat/sysaux01.dbf


    SELECT total.tablespace_name,
           Round(total.MB, 2)           AS Total_MB,
           Round(total.MB - free.MB, 2) AS Used_MB,
           Round(( 1 - free.MB / total.MB ) * 100, 2)
           || '%'                       AS Used_Pct
    FROM   (SELECT tablespace_name,
                   Sum(bytes) / 1024 / 1024 AS MB
            FROM   dba_free_space
            GROUP  BY tablespace_name) free,
           (SELECT tablespace_name,
                   Sum(bytes) / 1024 / 1024 AS MB
            FROM   dba_data_files
            GROUP  BY tablespace_name) total
    WHERE  free.tablespace_name = total.tablespace_name;

    CDB

    SYSAUX                                  2048          1247   60.89%         801
           732

    SYSTEM                                  1024        799.44   78.07%      224.56
           224

    UNDOTBS1                                1024         27.37    2.67%      996.63
           970

    USERS                                    128          1.37    1.07%      126.63
        126.63


    SQL> conn system/oracle123@pBuat
    Connected.
    SQL> /

    ----------
    B_DATA                               2048          1.44    0.07%     2046.56
       2045.69

    B_IDX                                1024             1    0.10%        1023
          1023

    SYSAUX                                634.41        597.78   94.23%       36.63
            25
    SYSTEM                                 307.2        266.26   86.67%       40.94
         40.19


    6.
    ORA_ORAENV=/usr/local/bin/ora_oraenv


    SIDs on this machine are;
       xprprod
       pcc
       corpprod
       bizprod
       oasprod
       bpsprod
       tgpsprod
       wrlprod
       icomprod
       
     --
     ADD /ETC/ORATAB
     
     
    7. parmeter
    -totalMemory 2048
    -sampleSchema  true
    -initparams audit_file_dest='/u01/app/oracle/admin/UXOCDB/adump'
    -initparams compatible='12.1.0'
    -initparams db_create_file_dest='+DATA'
    -initparams db_create_online_log_dest_1='+DATA'
    -initparams db_create_online_log_dest_2='+FRA'
    -initparams db_recovery_file_dest='+FRA'
    -initparams diagnostic_dest='/u01/app/oracle'
    -initparams parallel_max_servers=8
    -initparams processes=400


    8.
    cd /Aproddb/
    mkdir pfile

    cd /opt/oracle12c/product/12.1/dbs

    sqlplus / as sysdba
    create pfile='/opt/oracle12c/product/12.1/dbs/initAprod.ora' from spfile;

    mv *Aprod* /Aproddb/pfile

    --in db3/db4,sync /etc/listener.ora

    ln -s /Aproddb/pfile/initAprod.ora   initAprod.ora
    ln -s /Aproddb/pfile/orapwAprod      orapwAprod

    SQL> shutdown immediate
    SQL> startup

    10.

    192.168.4.124   pBprod
    192.168.4.124   pAprod

    --in db3/db4. sync /etc/listener.ora  and /etc/tnsnames.ora local_listener


    pBprod =
      (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL=IPC)(KEY= REGISTER_pBprod))
            (ADDRESS = (PROTOCOL = TCP)(HOST = pBprod)(PORT = 15021))
            (ADDRESS = (PROTOCOL = TCPS)(HOST = pBprod)(PORT = 15022))
      )

    SID_LIST_pBprod=
      (SID_LIST =
        (SID_DESC =
          (SID_NAME=Aprod)
          (ORACLE_HOME=/opt/oracle12c/product/12.1)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = pBprod)
          (SID_NAME = Aprod)
          (ORACLE_HOME=/opt/oracle12c/product/12.1)
        )
      )

    SECURE_REGISTER_pBprod = (IPC)
    SECURE_CONTROL_pBprod =(TCPS,IPC)
    ADMIN_RESTRICTIONS_pBprod = ON
    DIAG_ADR_ENABLED_pBprod = OFF




    pAprod =
      (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL=IPC)(KEY= REGISTER_pAprod))
            (ADDRESS = (PROTOCOL = TCP)(HOST = pAprod)(PORT = 15021))
            (ADDRESS = (PROTOCOL = TCPS)(HOST = pAprod)(PORT = 15022))
      )

    SID_LIST_pAprod=
      (SID_LIST =
        (SID_DESC =
          (SID_NAME=Aprod)
          (ORACLE_HOME=/opt/oracle12c/product/12.1)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = pAprod)
          (SID_NAME = Aprod)
          (ORACLE_HOME=/opt/oracle12c/product/12.1)
        )
      )

    SECURE_REGISTER_pAprod = (IPC)
    SECURE_CONTROL_pAprod =(TCPS,IPC)
    ADMIN_RESTRICTIONS_pAprod = ON
    DIAG_ADR_ENABLED_pAprod = OFF


    sqlplus system/oracle123@//192.168.4.124:15021/Aprod
    sqlplus system/oracle123@//192.168.4.124:15021/pBprod
    sqlplus system/oracle123@//192.168.4.125:15021/pAprod


    sqlplus system/oracle123@//192.168.4.124:15021/Aprod

    create pluggable database pAprod from pBprod
    FILE_NAME_CONVERT=('/Aproddb/data/Aprod/pBprod','/Aproddb/data/Aprod/pAprod');
     
     
    11.


    DB scripts: /etc/cmcluster/Aproddb/ora12c.sh,请修改脚本内容。

    --------------
    ORA_ver=12.1.0.2
    SID_NAME=Aprod
    ORACLE_HOME=/opt/oracle12c/product/12.1
    LISTENER=yes
    --modify LISTENER_NAME to LISTENER_PDB*_NAME
    LISTENER_PDB1_NAME=pBprod
    LISTENER_PDB2_NAME=pAprod
    --
    LISTENER_PASS=
    MONITOR_INTERVAL=30
    PACKAGE_NAME=Aprod
    TIME_OUT=30
    set -A MONITOR_PROCESSES ora_pmon_${SID_NAME} ora_dbw0_${SID_NAME} ora_ckpt_${SID_NAME}  ora_smon_${SID_NAME} ora_lgwr_${SID_NAME} ora_reco_${SID_NAME}

    HOST=`hostname`
    DATE=`date`
    PATH=${ORACLE_HOME}/bin:/sbin:/usr/bin:/usr/sbin:/etc:/bin
    export ORACLE_SID=${SID_NAME}
    export ORACLE_HOME

    ----modify LISTENER_NAME to LISTENER_PDB*_NAME

    su oracle -c "${ORACLE_HOME}/bin/lsnrctl start ${LISTENER_PDB1_NAME}"
        if [[ $? != 0 ]]
        then
            print "Oracle lsnrctl start failed."
        else
            print "Oracle lsnrctl start done."
        fi
    su oracle -c "${ORACLE_HOME}/bin/lsnrctl start ${LISTENER_PDB1_NAME}"
        if [[ $? != 0 ]]
        then
        print "Oracle lsnrctl start failed."            
        else                
        print "Oracle lsnrctl start done."  
        fi
        
    ----modify LISTENER_NAME to LISTENER_PDB*_NAME

    su oracle -c "${ORACLE_HOME}/bin/lsnrctl stop ${LISTENER_PDB1_NAME}"
        if [[ $? != 0 ]]
        then
            print "Oracle lsnrctl start failed."
        else
            print "Oracle lsnrctl start done."
        fi
    su oracle -c "${ORACLE_HOME}/bin/lsnrctl stop ${LISTENER_PDB1_NAME}"
        if [[ $? != 0 ]]
        then
        print "Oracle lsnrctl start failed."            
        else                
        print "Oracle lsnrctl start done."  
        fi

    ----modify LISTENER_NAME to LISTENER_PDB*_NAME
    su oracle -c ${ORACLE_HOME}/bin/lsnrctl <<EOF
    set password ${LISTENER_PASS}
    stop ${LISTENER_PDB1_NAME}
    exit
    EOF
     
    su oracle -c ${ORACLE_HOME}/bin/lsnrctl <<EOF1
    set password ${LISTENER_PASS}
    stop ${LISTENER_PDB2_NAME}
    exit
    EOF1


    备份脚本信息:
    /macro/dbbackup_total.sh -- > /macro/Aprod_dbbackup.sh   DB scripts /home/oracle/utility/backup_rman/rman_backup.sh

    no need to change
        
        
    13:
    env

    /Aproddblog
    /Aproddblog/dump
    /Aproddb/data/Aprod
    pBprod

    ALTER PROFILE DEFAULT LIMIT
    PASSWORD_LIFE_TIME 180
    PASSWORD_GRACE_TIME 7
    PASSWORD_REUSE_TIME UNLIMITED
    PASSWORD_REUSE_MAX UNLIMITED
    FAILED_LOGIN_ATTEMPTS 10
    PASSWORD_LOCK_TIME 1
    PASSWORD_VERIFY_FUNCTION null;

    done


    12
    SQL> show parameter diag

    NAME                                 TYPE
    ------------------------------------ ---------------------------------
    VALUE
    ------------------------------
    diagnostic_dest                      string
    /opt/oracle12c/


    --change     diag /opt/oracle12c/ to  /Aproddb
    --chanege db_recovery_file_dest  to none

    --chanege audit_file_dest   to /Aproddb/adump

    audit_file_dest                      string
    /tgpsproddb/adump

    core_dump_dest                       string
    /tgpsproddb/diag/rdbms/tgpspro
    d/tgpsprod/cdump

    --chanege audit_file_dest   to /Aproddb/adump

    --change  log_archive_dest_1 to LOCATION=/Aproddblog

    --change log_archive_format  to Aprod_%r_%t_%s.arc



    --in db3/db4 sync /etc/tnsnames.ora local_listener

    LISTENER_APROD =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.110)(PORT = 15035))
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.124)(PORT = 15021))
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.125)(PORT = 15021))
      )

     
    14. local
    --clean tnsnames.ora
    0 17 1,10,23 * * /home/oracle/utility/macro/tns_log_back_12c.sh pBprod.log >>/home/oracle/utility/log/tns_log_back_12c.log 2>&1  
    0 17 1,10,23 * * /home/oracle/utility/macro/tns_log_back_12c.sh pAprod.log >>/home/oracle/utility/log/tns_log_back_12c.log 2>&1  
     

    check:
    ls -ltr /opt/oracle12c/product/12.1/network/log/*<name>*

    --clean achive log  
    vi /home/oracle/utility/macro/call_autopurge_arch.sh
    ${SCRIPT_DIR}/autopurge_archlog.sh Aprod /Aproddb  24

    check:
    ls -tlr /Aproddblog/*.gz


    --compress archive log
    /home/oracle/utility/macro/compress_all.sh
    $PRG_NAME Aprod /Aproddblog 10

    check:
    ls -tlr /Aproddblog/*.gz

    --clean trace file_dest and clean adump
    /home/oracle/utility/macro/pfdblist

    Aprod /Aproddb/diag/rdbms/Aprod/Aprod/trace .trc 4
    Aprod /Aproddb/diag/rdbms/Aprod/Aprod/trace .trm 4
    Aprod /Aproddb/adump .aud 2



    ---check alert.log

    no need change ,only add rows /etc/oratab

    ----detect_blocker.sh
    no need change
    0,5,10,15,20,25,30,35,40,45,50,55 0-23 * * * /home/oracle/utility/blocker/detect_blocker.sh bizprod 120 > /home/oracle/utility/trace/detect_blocker_bizprod.log 2>&1

     
    15.


    ---for prod for 12c

    加入监控体系

    10,25,40,55 * * * *   /home/oracle/utility/macro/chk_conn_12c.sh 15     >> /database/log/mon_chk_conn_12c.log 2>&1

    -EDIT line 26

    check:
    sqlplus c##oper/oper123@tnsname


    35 8 * * * /home/oracle/monitor/segment_size/all.sh > /database/log/segment_size/tbs_unix_all.log 2>&1

    -EDIT line 15 and 35


    cd /database/log/segment_size
    mkdir log_Aprod

    check:


    17,

    双机切换:



    16.

    -listeners


    PAPROD=
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.125)(PORT = 15021))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = pAprod)
        )
      )

    LISTENER_APROD =
      (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.110)(PORT = 15035))
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.124)(PORT = 15021))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.125)(PORT = 15021))
     )
     
    pBprod =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.124)(PORT = 15021))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = pBprod)
        )
      )

    sample2:

    sample 2 : add pdb to a exist cdb

    1.
    clone db

    cd /centrproddb/data/centrprod

    mkdir pdbprod

    ls -l


    ---CREATE PLUGGABLE DATABASE pdbprod FROM PDB$SEED;
    --sampe
    --

    create pluggable database pdbprod admin user pdb_admin
    identified by pdbadm_123 roles=(CONNECT)
    file_name_convert=('/centrproddb/data/centrprod/pdbseed','/centrproddb/data/centrprod/pdbprod')
    /


    select con_id, NAME, OPEN_MODE,DBID, CON_UID from V$PDBS;

    alter pluggable database pdbprod close;

    alter pluggable database pdbprod open read write;


    SQL> select con_name, instance_name,state,restricted from dba_pdb_saved_states;

    SQL> alter pluggable database all save state;


    lsnrctl status


    2.config listener add service pdbprod

    edit /etc/hosts
    new_vip pdbprod

    edit /etc/listener.ora
    /etc/tnsnames.ora

    sync to another node


    3.
    DB scripts: /etc/cmcluster/Aproddb/ora12c.sh,请修改脚本内容。

    --------------
    ORA_ver=12.1.0.2
    SID_NAME=Aprod
    ORACLE_HOME=/opt/oracle12c/product/12.1
    LISTENER=yes
    --modify LISTENER_NAME to LISTENER_PDB*_NAME
    LISTENER_PDB1_NAME=pBprod
    LISTENER_PDB2_NAME=pAprod
    LISTENER_PDB3_NAME=pdbprod

    --
    LISTENER_PASS=
    MONITOR_INTERVAL=30
    PACKAGE_NAME=Aprod
    TIME_OUT=30
    set -A MONITOR_PROCESSES ora_pmon_${SID_NAME} ora_dbw0_${SID_NAME} ora_ckpt_${SID_NAME} ora_smon_${SID_NAME} ora_lgwr_${SID_NAME} ora_reco_${SID_NAME}

    HOST=`hostname`
    DATE=`date`
    PATH=${ORACLE_HOME}/bin:/sbin:/usr/bin:/usr/sbin:/etc:/bin
    export ORACLE_SID=${SID_NAME}
    export ORACLE_HOME

    ----modify LISTENER_NAME to LISTENER_PDB*_NAME

    su oracle -c "${ORACLE_HOME}/bin/lsnrctl start ${LISTENER_PDB1_NAME}"
    if [[ $? != 0 ]]
    then
    print "Oracle lsnrctl start failed."
    else
    print "Oracle lsnrctl start done."
    fi
    su oracle -c "${ORACLE_HOME}/bin/lsnrctl start ${LISTENER_PDB2_NAME}"
    if [[ $? != 0 ]]
    then
    print "Oracle lsnrctl start failed."
    else
    print "Oracle lsnrctl start done."
    fi
    su oracle -c "${ORACLE_HOME}/bin/lsnrctl start ${LISTENER_PDB3_NAME}"
    if [[ $? != 0 ]]
    then
    print "Oracle lsnrctl start failed."
    else
    print "Oracle lsnrctl start done."
    fi

    ----modify LISTENER_NAME to LISTENER_PDB*_NAME

    su oracle -c "${ORACLE_HOME}/bin/lsnrctl stop ${LISTENER_PDB1_NAME}"
    if [[ $? != 0 ]]
    then
    print "Oracle lsnrctl start failed."
    else
    print "Oracle lsnrctl start done."
    fi
    su oracle -c "${ORACLE_HOME}/bin/lsnrctl stop ${LISTENER_PDB1_NAME}"
    if [[ $? != 0 ]]
    then
    print "Oracle lsnrctl start failed."
    else
    print "Oracle lsnrctl start done."
    fi
    su oracle -c "${ORACLE_HOME}/bin/lsnrctl stop ${LISTENER_PDB3_NAME}"
    if [[ $? != 0 ]]
    then
    print "Oracle lsnrctl stop failed."
    else
    print "Oracle lsnrctl stop done."
    fi

    ----modify LISTENER_NAME to LISTENER_PDB*_NAME
    su oracle -c ${ORACLE_HOME}/bin/lsnrctl <<EOF
    set password ${LISTENER_PASS}
    stop ${LISTENER_PDB1_NAME}
    exit
    EOF

    su oracle -c ${ORACLE_HOME}/bin/lsnrctl <<EOF1
    set password ${LISTENER_PASS}
    stop ${LISTENER_PDB2_NAME}
    exit
    EOF1

    su oracle -c ${ORACLE_HOME}/bin/lsnrctl <<EOF2
    set password ${LISTENER_PASS}
    stop ${LISTENER_PDB3_NAME}
    exit
    EOF2


    SQL> show pdbs

    CON_ID CON_NAME OPEN MODE RESTRICTED
    ---------- ------------------------------ ---------- ----------
    2 PDB$SEED READ ONLY NO
    3 PENRSPROD READ WRITE NO
    4 PIPAMPROD READ WRITE NO

    3. config user and tablespace

    done

    4.db server crontab -e
    add listern keep and sync to another node
    0 12 1,10,20 * * /home/oracle/utility/macro/tns_log_back_12c.sh pprod.log >>/home/oracle/utility/log/tns_log_back_12c.log 2>&1

    5.
    ---for prod for 12c

    加入监控体系

    10,25,40,55 * * * * /home/oracle/utility/macro/chk_conn_12c.sh 15 >> /database/log/mon_chk_conn_12c.log 2>&1

    -EDIT line 26

    check:
    sqlplus c##oper/oper123@tnsname


    35 8 * * * /home/oracle/monitor/segment_size/all.sh > /database/log/segment_size/tbs_unix_all.log 2>&1

    -EDIT line 15 and 35


    cd /database/log/segment_size
    mkdir log_Aprod

    check:

    PS:

    refer http://blog.sina.com.cn/s/blog_5d6df58d0101sotr.html

    unix 区分大小写以及  and / 

    SQL> select name from v$datafile;

    NAME
    --------------------------------------------------------------------------------
    /centrproddb/data/centrprod/system01.dbf
    /centrproddb/data/centrprod/pdbseed/system01.dbf
    /centrproddb/data/centrprod/sysaux01.dbf
    /centrproddb/data/centrprod/pdbseed/sysaux01.dbf
    /centrproddb/data/centrprod/undotbs01.dbf
    /centrproddb/data/centrprod/users01.dbf
    /centrproddb/data/centrprod/penrsprod/system01.dbf
    /centrproddb/data/centrprod/penrsprod/sysaux01.dbf
    /centrproddb/data/centrprod/penrsprod/penrsprod_users01.dbf
    /centrproddb/data/centrprod/pipamprod/system01.dbf
    /centrproddb/data/centrprod/pipamprod/sysaux01.dbf

    NAME
    --------------------------------------------------------------------------------
    /centrproddb/data/centrprod/penrsprod/enrs_data_f01.dbf
    /centrproddb/data/centrprod/penrsprod/enrs_idx_f01.dbf
    /centrproddb/data/centrprod/pipamprod/ipam_data_f01.dbf
    /centrproddb/data/centrprod/pipamprod/ipam_idx_f01.dbf
    /centrproddb/data/centrprod/pipamprod/test.dbf

    16 rows selected.


    SQL> select file_name from dba_data_files;

    FILE_NAME
    --------------------------------------------------------------------------------
    /centrproddb/data/centrprod/system01.dbf
    /centrproddb/data/centrprod/sysaux01.dbf
    /centrproddb/data/centrprod/undotbs01.dbf
    /centrproddb/data/centrprod/users01.d

  • 相关阅读:
    URLEncode解决url中有特殊字符的问题
    监控系统概览
    SpringBoot 上传文件夹
    关于postgresql报 ERROR: XXX does not exist
    postgresql学习
    git学习
    学习博客
    面试准备
    jvm
    线程池面试题
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/6656495.html
Copyright © 2011-2022 走看看