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

 

posted @ 2017-04-01 16:28  feiyun8616  阅读(299)  评论(0编辑  收藏  举报