Pdb

 insert_pdb() {


  echo "Running PDB onboarding..." | tee -a "$LOGFILE"


  TGT_TYPE="Pluggable Database"

  HOST_NAME=$(hostname -f)


  for ENV_FILE in /home/oracle/*.env; do


    source "${ENV_FILE}"


    if [[ -z "$ORACLE_SID" || -z "$ORACLE_HOME" ]]; then

      echo "Environment variables not set in $ENV_FILE. Skipping..." | tee -a "$LOGFILE"

      continue

    fi


    # Verify if the CDB is running

    DB_STATUS=$(ps -ef | grep "[p]mon_${ORACLE_SID}" | wc -l)


    if [[ "$DB_STATUS" -eq 0 ]]; then

      echo "CDB $ORACLE_SID is not running. Skipping..." | tee -a "$LOGFILE"

      continue

    fi


    echo "Processing CDB: $ORACLE_SID" | tee -a "$LOGFILE"


    # Fetch PDBs in NORMAL status

    PDBS=$(sqlplus -s / as sysdba <<EOF

SET HEAD OFF FEEDBACK OFF

SELECT pdb_name FROM cdb_pdbs WHERE pdb_name != 'PDB\$SEED' AND status = 'NORMAL';

EXIT;

EOF

)


    if [ -z "$PDBS" ]; then

      echo "No PDBs in NORMAL status for $ORACLE_SID. Skipping..." | tee -a "$LOGFILE"

      continue

    fi


    for PDB_NAME in $PDBS; do


      TGT_NAME="${ORACLE_SID}_${PDB_NAME}"

      DEFAULT_SERVICE_NAME="$PDB_NAME"

      IS_APPLICATION_PDB="NO"

      IS_APPLICATION_ROOT="NO"

      CONTAINER_NAME="$ORACLE_SID"

      ONBOARDED="YES"  # Added a default value for ONBOARDED


      echo "Onboarding PDB: $PDB_NAME" | tee -a "$LOGFILE"


      sqlplus -s "$DB_USER/$DB_PASS@$DB_SID" <<EOF

        INSERT INTO TEST.OEM_ONBOARD_PDB

        (TGT_NAME, TGT_TYPE, HOST_NAME, ONBOARDED, ONBOARD_DT, DEFAULT_SERVICE_NAME, IS_APPLICATION_PDB, IS_APPLICATION_ROOT, CONTAINER)

        VALUES

        ('$TGT_NAME', '$TGT_TYPE', '$HOST_NAME', '$ONBOARDED', SYSDATE, '$DEFAULT_SERVICE_NAME', '$IS_APPLICATION_PDB', '$IS_APPLICATION_ROOT', '$CONTAINER_NAME');

        COMMIT;

        EXIT;

EOF


      echo "PDB onboarding completed for: $TGT_NAME" | tee -a "$LOGFILE"


    done


  done


}

Comments

Popular posts from this blog

Database growth

DBA Day-2 ve

Asm