# Tutorial: Instalación de Oracle Grid Infrastructure 21c, RDBMS y Creación de Base de Datos 21c.

### **Requisitos Previos**

1. **Sistema Operativo**: Linux 8.
    
2. **Usuario**: Acceso de root o un usuario con privilegios de sudo.
    
3. **Espacio en Disco**: Al menos 20 GB de espacio libre (para Grid, RDBMS y la base de datos).
    
4. **Memoria RAM**: Mínimo 4 GB (recomendado 8 GB o más).
    
5. **Descarga de Software**:
    
    * Oracle Grid Infrastructure 21c desde [OTN](https://www.oracle.com/database/technologies/oracle21c-linux-downloads.html).
        
    * Oracle Database 21c desde [OTN](https://www.oracle.com/database/technologies/oracle21c-linux-downloads.html).
        

---

### **Paso 1: Preparar el Entorno**

1. **Actualizar el Sistema**:
    
    ```sql
    sudo yum update -y
    ```
    
2. **Instalar Paquetes Requeridos**:
    
    ```sql
    sudo yum install -y oracle-database-preinstall-21c
    ```
    
3. **Configurar Usuario y Grupos**:  
    Verifica que el usuario `oracle` y los grupos `oinstall`, `dba`, y `oper` estén creados:
    
    ```sql
    id oracle
    ```
    
4. **Configurar Variables de Entorno**:  
    Edita el archivo `.bash_profile` del usuario `oracle`:
    
    ```sql
    su - oracle
    vi ~/.bash_profile
    ```
    
    Agrega las siguientes líneas:
    
    ```sql
    export ORACLE_BASE=/opt/oracle
    export ORACLE_HOME=/opt/oracle/product/21c/grid
    export ORACLE_SID=+ASM
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    ```
    
    Guarda y cierra el archivo, luego ejecuta:
    
    ```sql
    source ~/.bash_profile
    ```
    

---

### **Paso 2: Instalar Oracle Grid Infrastructure**

1. **Descomprimir el Software de Grid**:  
    Copia el archivo descargado (por ejemplo, `LINUX.X64_213000_grid_home.zip`) a un directorio temporal:
    
    ```sql
    sudo mv LINUX.X64_213000_grid_home.zip /tmp/
    sudo unzip /tmp/LINUX.X64_213000_grid_home.zip -d /opt/oracle/product/21c/grid
    sudo chown -R oracle:oinstall /opt/oracle
    ```
    
2. **Crear Archivo de Respuestas para Grid**:  
    Crea un archivo llamado `grid_install.rsp`:
    
    ```sql
    vi /opt/oracle/product/21c/grid/grid_install.rsp
    ```
    
    Agrega el siguiente contenido:
    
    ini
    
    ```sql
    oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v21.0.0
    oracle.install.option=HA_CONFIG
    ORACLE_BASE=/opt/oracle
    ORACLE_HOME=/opt/oracle/product/21c/grid
    oracle.install.asm.OSDBA=asmdba
    oracle.install.asm.OSOPER=asmoper
    oracle.install.asm.OSASM=asmadmin
    oracle.install.crs.config.gpnp.scanName=scan-cluster
    oracle.install.crs.config.gpnp.scanPort=1521
    oracle.install.crs.config.ClusterConfiguration=STANDALONE
    oracle.install.crs.config.configureAsmCluster=true
    oracle.install.crs.config.gpnp.configureGNS=false
    oracle.install.crs.config.autoConfigureClusterNodeVIP=false
    oracle.install.asm.SYSASMPassword=Oracle_123
    oracle.install.asm.diskGroup.name=DATA
    oracle.install.asm.diskGroup.redundancy=EXTERNAL
    oracle.install.asm.diskGroup.disks=/dev/sdb1
    oracle.install.asm.diskGroup.diskDiscoveryString=/dev/sdb*
    ```
    
3. **Ejecutar la Instalación de Grid en Modo Silent**:
    
    ```sql
    cd /opt/oracle/product/21c/grid
    ./gridSetup.sh -silent -responseFile /opt/oracle/product/21c/grid/grid_install.rsp
    ```
    
4. **Ejecutar Scripts de Post-Instalación**:  
    Al finalizar, ejecuta los scripts como root:
    
    ```sql
    sudo /opt/oracle/product/21c/grid/root.sh
    ```
    

---

### **Paso 3: Instalar Oracle RDBMS**

1. **Descomprimir el Software de RDBMS**:  
    Copia el archivo descargado (por ejemplo, `LINUX.X64_213000_db_home.zip`) a un directorio temporal:
    
    ```sql
    sudo mv LINUX.X64_213000_db_home.zip /tmp/
    sudo unzip /tmp/LINUX.X64_213000_db_home.zip -d /opt/oracle/product/21c/dbhome_1
    sudo chown -R oracle:oinstall /opt/oracle
    ```
    
2. **Crear Archivo de Respuestas para RDBMS**:  
    Crea un archivo llamado `db_install.rsp`:
    
    ```sql
    vi /opt/oracle/product/21c/dbhome_1/db_install.rsp
    ```
    
    Agrega el siguiente contenido:
    
    ```sql
    oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0
    oracle.install.option=INSTALL_DB_SWONLY
    ORACLE_HOSTNAME=localhost
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/opt/oracle/oraInventory
    ORACLE_HOME=/opt/oracle/product/21c/dbhome_1
    ORACLE_BASE=/opt/oracle
    oracle.install.db.InstallEdition=EE
    oracle.install.db.OSDBA_GROUP=dba
    oracle.install.db.OSOPER_GROUP=oper
    oracle.install.db.OSBACKUPDBA_GROUP=dba
    oracle.install.db.OSDGDBA_GROUP=dba
    oracle.install.db.OSKMDBA_GROUP=dba
    oracle.install.db.OSRACDBA_GROUP=dba
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
    DECLINE_SECURITY_UPDATES=true
    ```
    
3. **Ejecutar la Instalación de RDBMS en Modo Silent**:
    
    ```sql
    cd /opt/oracle/product/21c/dbhome_1
    ./runInstaller -silent -responseFile /opt/oracle/product/21c/dbhome_1/db_install.rsp
    ```
    
4. **Ejecutar Scripts de Post-Instalación**:  
    Al finalizar, ejecuta los scripts como root:
    
    ```sql
    sudo /opt/oracle/oraInventory/orainstRoot.sh
    sudo /opt/oracle/product/21c/dbhome_1/root.sh
    ```
    

---

### **Paso 4: Crear la Base de Datos con ASM**

1. **Crear Archivo de Respuestas para DBCA**:  
    Crea un archivo llamado `dbca.rsp`:
    
    ```sql
    vi /opt/oracle/product/21c/dbhome_1/dbca.rsp
    ```
    
    Agrega el siguiente contenido:
    
    ```sql
    responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v21.0.0
    gdbName=orcl
    sid=orcl
    databaseConfigType=SI
    storageType=ASM
    diskGroupName=DATA
    recoveryGroupName=RECO
    characterSet=AL32UTF8
    nationalCharacterSet=AL16UTF16
    ```
    
2. **Ejecutar DBCA en Modo Silent**:
    
    ```sql
    dbca -silent -createDatabase -responseFile /opt/oracle/product/21c/dbhome_1/dbca.rsp
    ```
    

---

### **Paso 5: Verificar la Instalación**

1. **Conectar a la Base de Datos**:
    
    ```sql
    sqlplus / as sysdba
    ```
    
2. **Verificar el Almacenamiento ASM**:
    
    ```sql
    SELECT name, total_mb, free_mb FROM v$asm_diskgroup;
    ```
