Posts

Exadata Topics

 EXA DBA+ OCI Senior Specialist Design implement and manage Exadata Cloud Service ExaCS database solutions Develop and maintain database architecture strategies to support business goals Lead the migration and integration of databases across multicloud database environments including Oracle Cloud AWS Azure and Google Cloud Ensure high availability scalability and performance of database systems Collaborate with crossfunctional teams to define and implement database solutions that meet business requirements Handson experience with migrating large database to Exadata ExaCS ExaCC platform Expereince with migrating database to ATPADW Design Database consolidation and reduce OPEX spending Provide technical leadership and mentorship to junior database architects and administrators Conduct performance tuning capacity planning and security assessments Stay updated with the latest advancements in database technologies and cloud offerings Implement and manage Exadata X9 hardware including pe...

Checklist

  Here’s a short 5-point version you can show your manager: Maintain a CSV list of migrated databases with hostname, CDB name, and migration date. Load this CSV into a repository staging table using SQL*Loader, skip duplicates, and log any already-present entries. Check OEM onboarding by querying MGMT$TARGET_PROPERTIES for each migrated database. Check CMDB onboarding by querying CMDB_TAB in the repository database. Generate a YES/NO status report for OEM & CMDB onboarding and schedule the process to run periodically.

Check2

 #!/bin/bash export ORACLE_SID=<your_cdb_sid> export ORAENV_ASK=NO . oraenv > /dev/null 2>&1 LOG_DIR=/tmp/post_migration_check mkdir -p "$LOG_DIR" LOGFILE="$LOG_DIR/post_migration_check_$(date +%Y%m%d_%H%M%S).log" exec_sql() { sqlplus -s "/ as sysdba" <<EOF set pages 100 lines 200 feedback off heading on echo off col name for a20 col open_mode for a20 col restricted for a15 col object_type for a20 col object_name for a40 col owner for a20 col comp_name for a35 col status for a15 col wallet_status for a20 col tablespace_name for a30 col encrypted for a10 col activating_pdbname for a25 $1 exit EOF } check_flag() {   if grep -iq "$2" <<< "$1"; then     echo "$3 : PASSED" | tee -a $LOGFILE   else     echo "$3 : NOT PASSED" | tee -a $LOGFILE   fi } echo "=== Post Migration Certification Checks ===" | tee -a $LOGFILE # ASM SID detection ASM_SID=$(ps -ef | grep pmon | grep ASM | grep...

Post check 1

#!/bin/bash export ORACLE_SID=<your_cdb_sid> export ORAENV_ASK=NO . oraenv > /dev/null 2>&1 LOG_DIR=/tmp/post_migration_check mkdir -p "$LOG_DIR" LOGFILE="$LOG_DIR/post_migration_check_$(date +%Y%m%d_%H%M%S).log" exec_sql() { sqlplus -s "/ as sysdba" <<EOF set pages 100 lines 200 feedback off heading on echo off col name for a20 col open_mode for a20 col restricted for a15 col object_type for a20 col object_name for a40 col owner for a20 col comp_name for a35 col status for a15 col wallet_status for a20 col tablespace_name for a30 col encrypted for a10 col activating_pdbname for a25 $1 exit EOF } check_flag() {   if grep -iq "$2" <<< "$1"; then     echo "$3 : PASSED" | tee -a $LOGFILE   else     echo "$3 : NOT PASSED" | tee -a $LOGFILE   fi } echo "=== Post Migration Certification Checks ===" | tee -a $LOGFILE # ASM SID detection ASM_SID=$(ps -ef | grep pmon | grep ASM | grep ...

Post check

#!/bin/bash # Set Oracle environment export ORACLE_SID=<your_cdb_sid> export ORAENV_ASK=NO . oraenv > /dev/null # Log file setup LOG_DIR=/tmp/post_migration_check mkdir -p $LOG_DIR LOGFILE="$LOG_DIR/post_migration_check_$(date +%Y%m%d_%H%M%S).log" # SQL execution wrapper exec_sql() { sqlplus -s "/ as sysdba" <<EOF set pagesize 500 set linesize 200 set feedback off set echo off $1 exit EOF } echo "=== Post Migration Certification Checks ===" | tee -a $LOGFILE # 1. CDB & PDB open modes echo -e "\n--- 1. CDB & PDB Open Modes ---" | tee -a $LOGFILE exec_sql "SELECT name, open_mode, restricted FROM v\$pdbs;" | tee -a $LOGFILE # 2. PDB violations echo -e "\n--- 2. PDB Plug-in Violations ---" | tee -a $LOGFILE exec_sql "SELECT * FROM pdb_plug_in_violations WHERE status='PENDING';" | tee -a $LOGFILE # 3. Listener parameters echo -e "\n--- 3. Listener Parameter ---" | tee -a $LOGFILE e...

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\...

Sql1

#!/bin/bash LOGFILE="/home/oracle/pdb_output.log" : > $LOGFILE # Clear the log file get_pdb_details() {   echo "CDB_UNIQUE_NAME|PDB_NAME|CPU|SGA_MAX_SIZE_GB|SGA_TARGET_GB|PGA_GB|DB_SIZE_GB" > $LOGFILE   # Iterate over each CDB   for ENV_FILE in /home/oracle/*.env; do     source "${ENV_FILE}"     # Validate environment variables     if [[ -z "$ORACLE_SID" || -z "$ORACLE_HOME" ]]; then       continue     fi     # Check if CDB is running     INSTANCE_STATUS=$(timeout 5 sqlplus -s / as sysdba <<EOF SET HEAD OFF FEEDBACK OFF SELECT instance_name FROM v\$instance WHERE status = 'OPEN'; EXIT; EOF )     if [[ -z "$INSTANCE_STATUS" ]]; then       continue     fi     # Fetch CDB unique name     CDB_UNIQUE_NAME=$(sqlplus -s / as sysdba <<EOF SET HEAD OFF FEEDBACK OFF SELECT value FROM v\$parameter WHERE name = 'db_unique_name'; EXIT; EO...