You are on page 1of 76

████████████████████████████

██ Create_DB_Silent_PROD ██
████████████████████████████

Solicitud
*********

I.Validar SO
▒▒▒▒▒▒▒▒▒▒▒▒
192.168.178.129
192.168.178.129
═════════════
══════════════
Log
Log
─── ───

II.Instalar el Motor en Modo Silent(NO SE HIZO)


▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Test 3: Como se creó el 13 de Agosto de 2021 (NO SE HIZO)
══════
# Silent mode.
./runInstaller -ignorePrereq -waitforcompletion -silent \
-responseFile /oracle19c/product/19.3.0/db/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOSTNAME=ip-10-97-100-206.ec2.internal \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/oradump/orainventory \
SELECTED_LANGUAGES=en,en_GB \
ORACLE_HOME=/oracle19c/product/19.3.0/db \
ORACLE_BASE=/oradump \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
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

As a root user, execute the following script(s):


════════════════════════════════════════════════
1. /oradump/orainventory/orainstRoot.sh
2. /u01/app/oracle/product/19.0.0/root.sh

Notas: Lenguajes: https://oracle-base.com/articles/misc/12cR1.rsp


Install : https://oracle-base.com/articles/19c/oracle-db-19c-
installation-on-oracle-linux-7

I.Instalar el Motor en Modo Silent


══════════════════════════════════
http://www.br8dba.com/install-oracle-19c-database-software-in-silent-mode/#7
III.Crear DB PROD
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Caracteres de la Base de Datos de PROD
════════════════════════════════════════
set linesize 200 pagesize 100
col parameter for a30
col value for a30
col dbname for a20
SELECT (SELECT name FROM v$database) dbname,
parameter,
value
FROM nls_database_parameters;

192.168.178.129
════════════
Log

───

Componentes (NO SE HIZO)


═══════════
--➤Componentes
set linesize 100 pagesize 100
col comp_id for a10
col version for a11
col status for a10
col comp_name for a37
SELECT comp_id,comp_name,version,status
FROM dba_registry
ORDER BY comp_id;

--➤Borrar componentes: Oracle Workspace Manager


https://mikedietrichde.com/2017/07/26/remove-clean-components-oracle-11-2-12-2/
How to Install/Deinstall Oracle Workspace Manager (Doc ID 263428.1)

--➤Activar Oracle Label Security

--➤Opciones
set linesize 200 pagesize 100
col parameter for a40
col value for a10
SELECT parameter,
value
FROM v$option
WHERE parameter LIKE '%Oracle Label Security%'
OR parameter LIKE '%Oracle Database Vault%';

SELECT username FROM dba_users WHERE username='LBACSYS';

set linesize 300


SELECT DISTINCT name,
detected_usages,
last_usage_date
FROM dba_feature_usage_statistics
WHERE name IN
(
'ADDM','Automatic SQL Tuning Advisor', 'Automatic Workload Repository', 'AWR
Baseline', 'AWR Baseline Template',
'AWR Report', 'EM Performance Page', 'Real-Time SQL Monitoring', 'SQL Access
Advisor', 'SQL Monitoring and Tuning pages',
'SQL Performance Analyzer', 'SQL Tuning Advisor', 'SQL Tuning Set (system)', 'SQL
Tuning Set (user)','Label Security'
)
ORDER BY name;

set linesize 300


col name for a30
SELECT DISTINCT name,
detected_usages,
last_usage_date
FROM dba_feature_usage_statistics
WHERE name = 'Label Security';

set linesize 200 pagesize 100


col name for a30
col status for a10
col description for a38
SELECT name, status, description FROM dba_ols_status;

--Labels y Label tags para Oracle Label Security Policies


SELECT * FROM DBA_SA_DATA_LABELS;

--Information about Oracle Label Security Policy Groups


SELECT * FROM DBA_SA_GROUPS;

--Information about Oracle Label Security Audit Options


SELECT * FROM DBA_SA_AUDIT_OPTIONS;

--Information about levels associated with a Policy


SELECT * FROM DBA_SA_LABELS;

--Information about Oracle Label Security Policies, basado en el procedure


SA_SYSDBA.CREATE_POLICY
SELECT * FROM DBA_SA_POLICIES;

--Information about privileges that Oracle Label Security users have


SELECT * FROM DBA_SA_USERS;

--Information about label-specific information about users.


SELECT * FROM DBA_SA_USER_LEVELS;

--Information about the current user Oracle Label Security policy labels and tags,
based on the SA_LABEL_ADMIN.CREATE_LABEL procedure settings
SELECT * FROM ALL_SA_DATA_LABELS;

Notas
https://docs.oracle.com/en/database/oracle/oracle-database/21/olsag/
part2.html#GUID-94A26B03-E088-42DE-B76B-E6FF3F990AB1
https://stackoverflow.com/questions/45994266/oracle-label-security-in-oracle-12c-
not-configured
https://ofmcanberra.wordpress.com/2014/10/22/oracle-label-security-part-1-intro/
https://ofmcanberra.wordpress.com/2014/10/31/oracle-label-security-part-2-policy-
creation/
https://mikedietrichde.com/2017/07/29/oracle-label-security-ols-clean-oracle-
database-11-2-12-2/
https://www.oracle.com/assets/label-security-wp-12c-1896140.pdf
https://www.oracle.com/mx/database/technologies/security/label-security.html
https://oracle-base.com/articles/9i/oracle-label-security-9i
https://docs.oracle.com/en/database/oracle/oracle-database/21/olsag/oracle-label-
security-reference.html#GUID-3EF3FD4E-A001-4110-9036-23022F2CD001

192.168.178.129

192.168.178.129
══════════════

══════════════
Log

Log
───
───
COMP_ID COMP_NAME VERSION STATUS
COMP_ID COMP_NAME
VERSION STATUS
---------- ------------------------------------- ----------- ----------
---------- ------------------------------------- ----------- ----------
CATALOG Oracle Database Catalog Views 12.1.0.2.0 VALID
CATALOG Oracle Database Catalog Views 19.0.0.0.0 VALID
CATPROC Oracle Database Packages and Types 12.1.0.2.0 VALID
CATPROC Oracle Database Packages and Types 19.0.0.0.0 VALID
DV Oracle Database Vault 12.1.0.2.0 VALID
DV Oracle Database Vault 19.0.0.0.0 VALID
OLS Oracle Label Security 12.1.0.2.0 VALID
OLS Oracle Label Security 19.0.0.0.0 VALID
OWM Oracle Workspace Manager 12.1.0.2.0 VALID
OWM Oracle Workspace Manager 19.0.0.0.0 VALID
XDB Oracle XML Database 12.1.0.2.0 VALID
RAC Oracle Real Application Clusters 19.0.0.0.0 OPTION OFF

XDB Oracle XML Database 19.0.0.0.0 VALID


6 rows selected.

7 rows selected.

Deinstall Oracle Workspace Manager (NO SE HIZO)


──────────────────────────────────

1. Disable versioning on all version-enabled tables in the database

-------------------------------------------------------------------

sqlplus / as sysdba

SELECT * FROM all_wm_versioned_tables; --> 0 (proceed


with the deinstall)

2. To uninstall Workspace Manager, run the following script, as SYS:

--------------------------------------------------------------------

@?/rdbms/admin/owmuinst.plb

3.Validar objetos inválidos

---------------------------

SELECT COUNT(*) FROM dba_objects WHERE status = 'INVALID';

Log
───

[oracle@192.168.178.129]#$ORACLE_HOME/bin/sqlplus "/ as sysdba"

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Oct 3 12:22:55 2023

Version 19.20.0.0.0

Copyright (c) 1982, 2022, Oracle. All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.20.0.0.0

SQL> select * from all_wm_versioned_tables;

no rows selected

SQL> @?/rdbms/admin/owmuinst.plb

Session altered.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

Session altered.

SQL> SELECT COUNT(*) FROM dba_objects WHERE status = 'INVALID';


COUNT(*)

----------

SQL>

--Oracle Label Security


PARAMETER VALUE
PARAMETER
VALUE
---------------------------------------- ----------
---------------------------------------- ----------
Oracle Label Security FALSE
Oracle Label Security FALSE
Oracle Database Vault FALSE
Oracle Database Vault FALSE

2 rows selected.
2 rows selected.

USERNAME

USERNAME
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
LBACSYS
LBACSYS
1 row selected.
1 row selected.

NAME DETECTED_USAGES LAST_USAGE_DATE


NAME
DETECTED_USAGES LAST_USAGE_DATE
------------------------------ --------------- ---------------
------------------------------ --------------- ---------------
Label Security 0
Label Security 0
1 row selected.
1 row selected.

NAME STATUS DESCRIPTION


NAME STATUS
DESCRIPTION
------------------------------ ---------- --------------------------------------
------------------------------ ---------- --------------------------------------
OLS_CONFIGURE_STATUS FALSE Determines if OLS is configured
OLS_CONFIGURE_STATUS FALSE Determines if OLS is configured
OLS_DIRECTORY_STATUS FALSE Determines if OID is enabled with OLS
OLS_DIRECTORY_STATUS FALSE Determines if OID is enabled with OLS
OLS_ENABLE_STATUS FALSE Determines if OLS is enabled
OLS_ENABLE_STATUS FALSE Determines if OLS is enabled
3 rows selected.
3 rows selected.

no rows selected.

no rows selected.
no rows selected.
no rows selected.
no rows selected.
no rows selected.
no rows selected.
no rows selected.
no rows selected.
no rows selected.
no rows selected.
no rows selected.
no rows selected.
no rows selected.
no rows selected.
no rows selected.

[oracle@192.168.178.129]#$ORACLE_HOME/bin/sqlplus "/ as sysdba" (NO SE


HIZO)

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Oct 3 21:14:50 2023

Version 19.20.0.0.0

Copyright (c) 1982, 2022, Oracle. All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.20.0.0.0

SQL> set linesize 200

col date for a30

SELECT TO_CHAR(sysdate,'DD-MON-YYYY hh24:mi:ss') as "DATE",

name,

db_unique_name,SQL> SQL> 2 3

open_mode,

database_role,
flashback_on

FROM v$database;

4 5 6 7

DATE NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE


FLASHBACK_ON

------------------------------ --------- ------------------------------


-------------------- ---------------- ------------------

03-OCT-2023 21:14:51 PROD PROD READ WRITE PRIMARY


NO

SQL> !

[oracle@192.168.178.129]#hostname

qrocyfqdb01

[oracle@192.168.178.129]#exit

exit

SQL> select name, status, description from dba_ols_status;

NAME STATUS DESCRIPTION

-------------------- ------ -------------------------------

OLS_CONFIGURE_STATUS FALSE Determines if OLS is configured

OLS_DIRECTORY_STATUS FALSE Determines if OID is enabled with OLS

OLS_ENABLE_STATUS FALSE Determines if OLS is enabled

SQL> EXEC LBACSYS.CONFIGURE_OLS;

PL/SQL procedure successfully completed.

SQL> EXEC LBACSYS.OLS_ENFORCEMENT.ENABLE_OLS;

PL/SQL procedure successfully completed.

SQL> shu immediate

Database closed.

Database dismounted.
ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 2432695120 bytes

Fixed Size 8928080 bytes

Variable Size 1191182336 bytes

Database Buffers 1224736768 bytes

Redo Buffers 7847936 bytes

Database mounted.

Database opened.

SQL> select name, status, description from dba_ols_status;

NAME STATUS DESCRIPTION

-------------------- ------ -------------------------------

OLS_CONFIGURE_STATUS TRUE Determines if OLS is configured

OLS_DIRECTORY_STATUS FALSE Determines if OID is enabled with OLS

OLS_ENABLE_STATUS TRUE Determines if OLS is enabled

SQL>

Objetos inválidos
═════════════════
set linesize 200 pagesize 100
col owner for a5
col object_name for a30
col object_type for a20
SELECT owner,
object_type,
object_name,
TO_CHAR(created,'dd-mm-yy hh24:mi:ss') created,
status
FROM dba_objects
WHERE status = 'INVALID'
ORDER BY owner,object_type,created;

@?/rdbms/admin/utlrp.sql
Log: 192.168.178.129 (NO SE HIZO)

Log: 192.168.178.129
─── ══════════════
───
══════════════
OWNER OBJECT_TYPE OBJECT_NAME CREATED STATUS
OWNER OBJECT_TYPE
OBJECT_NAME CREATED STATUS
----- -------------------- ------------------------------ ----------------- -------
----- -------------------- ------------------------------ ----------------- -------
RCVRY FUNCTION GET_INSERT_SCRIPT 04-10-17 17:31:21 INVALID
RCVRY FUNCTION GET_INSERT_SCRIPT 17-10-23 17:08:01 INVALID
RCVRY MATERIALIZED VIEW PHONE_SEARCH_MV_TEST 18-07-22 17:46:01 INVALID
RCVRY MATERIALIZED VIEW PHONE_SEARCH_MV_TEST 17-10-23 17:23:08 INVALID
RCVRY PROCEDURE ADECUADELQMST 04-10-17 17:31:21 INVALID
RCVRY PROCEDURE ADECUADELQMST 17-10-23 17:08:01 INVALID
RCVRY VIEW QUE_DECTBL_VR 04-10-17 17:31:22 INVALID
RCVRY VIEW QUE_DECTBL_VR 17-10-23 17:08:04 INVALID
RCVRY VIEW VAL_FUNCTIONS 04-10-17 17:31:22 INVALID
RCVRY VIEW VAL_FUNCTIONS 17-10-23 17:08:04 INVALID

5 rows selected.
5 rows selected.

vi 19c.env (NO SE HIZO)


══════════
export ORACLE_HOME=/u01/app/oracle/product/19.0.0
export PATH=$ORACLE_HOME/bin:$PATH:.
export ORACLE_SID=PROD

vi .bash_profile (NO SE HIZO)


════════════════
alias sql='$ORACLE_HOME/bin/sqlplus sys/Systemsys19 as sysdba'

Crear BD
════════
1.Crear Estructura de Directorios
---------------------------------
------ >>> Creacion de carpetas
mkdir -p /u02/PROD/dbf; # Tablespaces de Sistema
y USERS: SYSAUX, SYSTEM, USERS,UNDOTBS1
mkdir -p /u03/PROD/dbf; # Tablespaces de Usuario:
mkdir -p /oratemp/PROD/dbf;

ls -lrhtd /u02/PROD/dbf;
ls -lrhtd /u03/PROD/dbf;
ls -lrhtd /oratemp/PROD/dbf; # Tablespace Temporary

--- >>>> Path de Archiveds # Archiveds


mkdir -p /oraarch/PROD
ls -lrhtd /oraarch/PROD;
--- >>> Redo Logs de 200MB #Redo Log Files
Online
mkdir -p /oraoriglogA/PROD/redo;
mkdir -p /oraoriglogB/PROD/redo;
mkdir -p /oramirrlogA/PROD/redo;
mkdir -p /oramirrlogB/PROD/redo;

ls -lrhtd /oraoriglogA/PROD/redo;
ls -lrhtd /oramirrlogB/PROD/redo;
ls -lrhtd /oramirrlogA/PROD/redo;
ls -lrhtd /oraoriglogB/PROD/redo;

--- >>>> Nombres de los RLFs Online


/oraoriglogA/PROD/redo/redog01m01.log
/oramirrlogA/PROD/redo/redog01m02.log

/oraoriglogB/PROD/redo/redog02m01.log
/oramirrlogB/PROD/redo/redog02m02.log

/oraoriglogA/PROD/redo/redog03m01.log
/oramirrlogA/PROD/redo/redog03m02.log

--- >>> Control


# Control Files
mkdir -p /oraoriglogA/PROD/cntrl;
mkdir -p /oraoriglogB/PROD/cntrl;
mkdir -p /oramirrlogB/PROD/cntrl;
mkdir -p /oramirrlogA/PROD/cntrl;

ls -lrhtd /oramirrlogB/PROD/cntrl;
ls -lrhtd /oraoriglogA/PROD/cntrl;
ls -lrhtd /oraoriglogB/PROD/cntrl;
ls -lrhtd /oramirrlogA/PROD/cntrl;

-- >>> Crear Paths para los Archivos de Administración


show parameter dump
show parameter audit
mkdir -p /u01/app/oracle/admin/PROD/adump (Se crea sola)
mkdir -p /u01/app/oracle/diag/rdbms/PROD/PROD/cdump

ls -lrhtd /u01/app/oracle/admin/PROD/adump
ls -lrhtd /u01/app/oracle/diag/rdbms/PROD/PROD/cdump

2.Modificar el Template create_db.dbt


-----------------------------------------
--Transferir el Template
172.17.201.243 oracle (Servidor Origen)
cat /etc/passwd | grep oracle
bash
. ./.bash_profile
cd $ORACLE_HOME/assistants/dbca/templates
sftp ctrlfraud@172.17.203.61
C1frado2
put create_db.dbt
--192.168.178.129 oracle (Servidor Destino)
. ./19c.env
cd $ORACLE_HOME/assistants/dbca/templates
sftp ctrlfraud@172.17.203.61
C1frado2
cd /gss/19.19_Linux
get create_db.dbt
cp create_db.dbt create_db.dbt.bkp

--Modificar parámetros del Template create_db.dbt


--Cambiar el nombre de la BD
vi create_db.dbt
:1,$ s/TXNMGRP/PROD/g

grep -i nls_territory create_db.dbt


grep -i nls_iso_currency create_db.dbt
vi create_db.dbt

--Test 1
$ORACLE_HOME/bin/dbca -silent \
-createDatabase \
-responseFile NO_VALUE \
-templateName create_db.dbt \
-gdbname PROD \
-sid PROD \
-sysPassword Liverpool_01 \
-systemPassword Liverpool_01 \
-characterSet AL32UTF8 \
-nationalCharacterSet AL16UTF16 \
-createListener LISTENER:1527 \
-ignorePreReqs

192.168.178.129
════════════
Log
───
[oracle@192.168.178.129]#$ORACLE_HOME/bin/dbca -silent \
> -createDatabase \
> -responseFile NO_VALUE \
> -templateName create_db.dbt \
> -gdbname PROD \
> -sid PROD \
> -sysPassword Liverpool_01 \
> -systemPassword Liverpool_01 \
> -characterSet AL32UTF8 \
> -nationalCharacterSet AL16UTF16 \
> -createListener LISTENER:1527 \
> -ignorePreReqs
Prepare for db operation
10% complete
Creating and starting Oracle instance
14% complete
15% complete
20% complete
Creating database files
21% complete
30% complete
Creating data dictionary views
33% complete
39% complete
40% complete
41% complete
42% complete
48% complete
51% complete
54% complete
60% complete
Completing Database Creation
66% complete
69% complete
70% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/u01/app/oracle/cfgtoollogs/dbca/PROD.
Database Information:
Global Database Name:PROD
System Identifier(SID):PROD
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/PROD/PROD0.log" for further
details.
[oracle@192.168.178.129]#

--Test: NOHUP
nohup dbca -silent -responseFile xyz_dbca.rsp -continueOnNonFatalErrors true >
create_db_.log 2>&1 &

export ORACLE_SID=TEST
nohup $ORACLE_HOME/bin/dbca -silent \
-createDatabase \
-responseFile NO_VALUE \
-templateName create_db.dbt \
-gdbname TEST \
-sid TEST \
-sysPassword Liverpool_01 \
-systemPassword Liverpool_01 \
-createListener LISTENER_TEST:1521 \
-ignorePreReqs > create_db.log 2>&1 &

tail -500f create_db.log

tail -500f /u01/app/oracle/diag/rdbms/PROD/PROD/trace/alert_PROD.log

https://alldba.com/install-oracle-software-with-silent-mode/

192.168.178.129

═════════════

Log

───
[oracle@172.17.201.243]#$ORACLE_HOME/bin/dbca -silent \
-createDatabase \
-responseFile NO_VALUE \
-templateName create_db.dbt \
-gdbname PROD \
-sid PROD \
-sysPassword Liverpool_01 \
-systemPassword Liverpool_01 \
-createListener LISTENER:1527 \
-ignorePreReqs> > > > > > > > >
Prepare for db operation
10% complete
Creating and starting Oracle instance
14% complete
15% complete
20% complete
Creating database files
21% complete
30% complete
Creating data dictionary views
33% complete
39% complete
40% complete
41% complete
42% complete
48% complete
51% complete
54% complete
60% complete
Completing Database Creation
66% complete
69% complete
70% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/u01/app/oracle/cfgtoollogs/dbca/PROD.
Database Information:
Global Database Name:PROD
System Identifier(SID):PROD
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/PROD/PROD1.log" for further
details.
[oracle@172.17.201.243]#

Borrar Database
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
$ORACLE_HOME/bin/dbca -silent -deleteDatabase -sourceDB TEST -sysDBAUserName sys -
sysDBAPassword Liverpool_01

Crear/Validar el Listener (NO SE HIZO)


▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
cd $ORACLE_HOME/network/admin

Notas
═════
https://www.oracledbworld.com/l1oracledba/listener-in-oracle-19c/

Log:
───
Dynamic Registration --> Cuando se levanta el listener localmente (se usa el
local_listener)
Static Registration --> Cuando se requiere levantar el Listener Remotamente, por
ejemplo, en un Data Guard.

Dynamic Registration
════════════════════
set linesize 200 pagesize 100
col name for a30
col value for a20
col isses_modifiable for a17
col isses_modifiable for a17
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name ='local_listener';

vi listener.ora
---------------
[oracle@192.168.178.129]#cat listener.ora
# listener.ora Network Configuration File:
/u01/app/oracle/product/19.0.0/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.178.129)(PORT = 1527))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1527))
)
)

vi tnsnames.ora
---------------
# tnsnames.ora Network Configuration File:
/u01/app/oracle/product/19.0.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.178.129)(PORT = 1527))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PROD)
)
)

LISTENER_PROD =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.178.129)(PORT = 1527))

Static Registration of Database Service


═══════════════════════════════════════
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = PROD)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0)
(SID_NAME = PROD)
)
)

Restart Listener
════════════════
show parameter remote_listener # Limpio
show parameter forward_listener # Limpio
show parameter local_listener
show parameter service_names # Global Name: SELECT * FROM props$ WHERE
name='GLOBAL_DB_NAME';
SELECT * FROM global_name;

SELECT name,value FROM


v$parameter WHERE name = 'global_names';

https://www.oracledbworld.com/l1oracledba/listener-in-oracle-19c/
show parameter instance_name

lsnrctl stop LISTENER


lsnrctl start LISTENER
lsnrctl status LISTENER

Log

───
SQL> show parameter remote_listener

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
remote_listener string
SQL> show parameter forward_listener

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
forward_listener string
SQL> show parameter local_listener

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
local_listener string LISTENER_PROD
SQL> show parameter service_names

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
service_names string PROD
SQL> show parameter instance_name

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
instance_name string PROD
SQL>

[oracle@s1 admin]$ lsnrctl


LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 10-DEC-2023 00:40:44

Copyright (c) 1991, 2019, Oracle. All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> set current_listener LISTENER


Current Listener is LISTENER
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.178.129)
(PORT=1527)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 09-DEC-2023 21:28:27
Uptime 0 days 3 hr. 12 min. 22 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/19.0.0/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/s1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=s1.gss.com)(PORT=1527)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1527)))
Services Summary...
Service "PROD" has 1 instance(s).
Instance "PROD", status READY, has 1 handler(s) for this service...
Service "PRODXDB" has 1 instance(s).
Instance "PROD", status READY, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>

[oracle@s1 admin]$ lsnrctl stop LISTENER

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 10-DEC-2023 00:43:21

Copyright (c) 1991, 2019, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.178.129)
(PORT=1527)))
The command completed successfully

[oracle@s1 admin]$ lsnrctl start LISTENER

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 10-DEC-2023 00:43:28

Copyright (c) 1991, 2019, Oracle. All rights reserved.

Starting /u01/app/oracle/product/19.0.0/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 19.0.0.0.0 - Production


System parameter file is /u01/app/oracle/product/19.0.0/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/s1/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.178.129)
(PORT=1527)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1527)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.178.129)
(PORT=1527)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 10-DEC-2023 00:43:28
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/19.0.0/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/s1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.178.129)(PORT=1527)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1527)))
The listener supports no services
The command completed successfully

[oracle@s1 admin]$ lsnrctl status LISTENER

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 10-DEC-2023 00:43:33

Copyright (c) 1991, 2019, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.178.129)
(PORT=1527)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 10-DEC-2023 00:43:28
Uptime 0 days 0 hr. 0 min. 5 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/19.0.0/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/s1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.178.129)(PORT=1527)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1527)))
The listener supports no services
The command completed successfully
[oracle@s1 admin]$ lsnrctl status LISTENER

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 10-DEC-2023 00:44:32

Copyright (c) 1991, 2019, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.178.129)
(PORT=1527)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 10-DEC-2023 00:43:28
Uptime 0 days 0 hr. 1 min. 4 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/19.0.0/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/s1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.178.129)(PORT=1527)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1527)))
Services Summary...
Service "PROD" has 1 instance(s).
Instance "PROD", status READY, has 1 handler(s) for this service...
Service "PRODXDB" has 1 instance(s).
Instance "PROD", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@s1 admin]$

Crear usuario RMANADMIN


▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
ALTER USER RMANADMIN IDENTIFIED BY rman;
DROP USER RMANADMIN CASCADE;

CREATE USER RMANADMIN


IDENTIFIED BY rman
HTTP DIGEST DISABLE
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;

-- 2 Roles for RMANADMIN


GRANT CONNECT TO RMANADMIN;
GRANT DBA TO RMANADMIN;
ALTER USER RMANADMIN DEFAULT ROLE ALL;

-- 2 System Privileges for RMANADMIN


GRANT CREATE SESSION TO RMANADMIN;
GRANT UNLIMITED TABLESPACE TO RMANADMIN;

Validar la Creacion de la BD
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
export ORACLE_SID=PROD
sqlplus / as sysdba

--➤Modo Archivelog
set linesize 200 pagesize 100
SELECT name, open_mode, log_mode FROM v$database;

archive log list


show parameter db_recovery_file

--➤Componentes
set linesize 200 pagesize 100
col comp_name for a40
col comp_id for a10
col file_name for a80
SELECT comp_id,comp_name, status FROM dba_registry WHERE comp_id<>'RAC';
--➤Data Files
set linesize 200 pagesize 900
col file_name for a80
SELECT file_name FROM dba_data_files
UNION ALL
SELECT file_name FROM dba_temp_files
UNION ALL
SELECT member FROM v$logfile
UNION ALL
SELECT value FROM v$parameter WHERE name ='control_files';

SELECT file_name FROM dba_data_files;

--➤Temp Files
SELECT file_name FROM dba_temp_files;

--➤Control Files
SELECT value FROM v$parameter WHERE name ='control_files';

--➤Redo Log Files Online


--Agregar Miembros a cada Grupo de Redos (NO SE HIZO)
--Validar Online Redos en la Base de Datos
set linesize 200
col (bytes) for a5
col status for a20
SELECT group#, sequence#, members,SUM(bytes)/1024/1024 MB, status
FROM v$log
GROUP BY group#, sequence#, members, status
ORDER BY group#;

set linesize 200


set pagesize 200
col group# for 999
col member for a80
SELECT a.group#, b.member, a.status, SUM(a.bytes)/1024/1024 MB
FROM v$log a, v$logfile b
WHERE a.group#=b.group#
GROUP BY a.group#, b.member, a.status
ORDER BY a.group#;

--Add Groups
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 4
('/oraoriglogA/PROD/REDO/redo_g4m1.log','/oramirrlogB/PROD/REDO/redo_g4m2.log')
SIZE 512M REUSE;
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 5
('/oraoriglogA/PROD/REDO/redo_g5m1.log','/oraoriglogB/PROD/REDO/redo_g5m2.log')
SIZE 512M REUSE;

--Drop Groups
ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 3;

--Add Groups
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 1
('/oraoriglogA/PROD/REDO/redo_g1m1.log','/oraoriglogB/PROD/REDO/redo_g1m2.log')
SIZE 512M REUSE;
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 2
('/oramirrlogA/PROD/REDO/redo_g2m1.log','/oramirrlogB/PROD/REDO/redo_g2m2.log')
SIZE 512M REUSE;
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 3
('/oraoriglogB/PROD/REDO/redo_g3m1.log','/oramirrlogA/PROD/REDO/redo_g3m2.log')
SIZE 512M REUSE;

1 /oraoriglogA/PROD/REDO/redo_g1m1.log
1 /oraoriglogB/PROD/REDO/redo_g1m2.log

2 /oramirrlogA/PROD/REDO/redo_g2m1.log
2 /oramirrlogB/PROD/REDO/redo_g2m2.log

3 /oramirrlogA/PROD/REDO/redo_g3m2.log
3 /oraoriglogB/PROD/REDO/redo_g3m1.log

4 /oramirrlogB/PROD/REDO/redo_g4m2.log
4 /oraoriglogA/PROD/REDO/redo_g4m1.log

5 /oraoriglogA/PROD/REDO/redo_g5m1.log
5 /oraoriglogB/PROD/REDO/redo_g5m2.log

--Switch Logfile
alter system switch logfile;
alter system checkpoint;

--Add Members
ALTER DATABASE ADD LOGFILE MEMBER TO GROUP 4;
ALTER DATABASE ADD LOGFILE MEMBER '/oradata/FINEPS/redo02a.log' TO GROUP 5;
ALTER DATABASE ADD LOGFILE MEMBER '/oradata/FINEPS/redo03a.log','' TO GROUP 3;

--➤Memoria
show parameter memory_max_target
show parameter memory_target
show parameter sga_max_size
show parameter sga_target
show parameter pga_aggregate_target

set linesize 200


col name for a20
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
NVL(value/1024/1024,0) mb,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'memory_max_target',
'memory_target',
'sga_max_size',
'sga_target',
'pga_aggregate_target',
'pga_aggregate_limit'
);

--➤Tablespaces
set linesize 200 pagesize 100
col tablespace_name for a20
col encrypted for a9
SELECT tablespace_name,
status,
contents,
encrypted
FROM dba_tablespaces ORDER BY 1;

set linesize 200 pagesize 100


col tablespace_name for a20
col file_name for a60
SELECT tablespace_name,file_name,encrypted
FROM dba_data_files
--WHERE tablespace_name IN ('KM_PATD','LOGMNRTS','TBS_APL_OTP','TBS_PRODD')
ORDER BY tablespace_name,file_name;

set linesize 200 pagesize 100


col tablespace_name for a20
col file_name for a60
SELECT tablespace_name,file_name
FROM dba_temp_files
WHERE tablespace_name IN ('TEMP','KM_TEMP')
ORDER BY tablespace_name,file_name;

➤Identificar si tiene TDE


--➤12c
set linesize 200 pagesize 100
col name for a10
col open_mode for a10
col log_mode for a10
col keystore_mode for a20
col con_id for 999999
col wallet_type for a15
col wrl_parameter for a50
col status for a10
SELECT (SELECT name FROM v$database) db_name,
(SELECT open_mode FROM v$database) open_mode,
(SELECT log_mode FROM v$database) log_mode,
con_id,
wallet_type,
wrl_parameter,
status
FROM v$encryption_wallet;

--Validar la TDE Master Encryption Key


set linesize 200
col key_id for a55
col creation_time for a40
col activation_time for a50
SELECT key_id,
creation_time,
activation_time,
key_use,
keystore_type
FROM v$encryption_keys;

--➤19c
--Parámetros
set linesize 200
col name for a20
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN ('wallet_root','tde_configuration');

set linesize 200 pagesize 100


col name for a10
col open_mode for a10
col log_mode for a10
col keystore_mode for a20
col con_id for 999999
col wallet_type for a15
col wrl_parameter for a50
col status for a10
SELECT (SELECT name FROM v$database) db_name,
(SELECT open_mode FROM v$database) open_mode,
(SELECT log_mode FROM v$database) log_mode,
con_id,
wallet_type,
wrl_parameter,
status,
keystore_mode
FROM v$encryption_wallet;

192.168.178.129

═══════════════
Log

───
NAME OPEN_MODE LOG_MODE
--------- -------------------- ------------
PROD READ WRITE ARCHIVELOG
1 row selected.

SQL> archive log list


Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Next log sequence to archive 3
Current log sequence 3

SQL> show parameter db_recovery_file

NAME
TYPE VALUE
------------------------------------ -----------
------------------------------
db_recovery_file_dest string
/oraarch
db_recovery_file_dest_size big integer 30G
SQL> host df -h /oraarch
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/datavg-oraarch 60G 481M 60G 1% /oraarch

SQL>

➤Componentes
COMP_ID COMP_NAME STATUS
---------- ---------------------------------------- -----------
CATALOG Oracle Database Catalog Views VALID
CATPROC Oracle Database Packages and Types VALID
XDB Oracle XML Database VALID
OWM Oracle Workspace Manager VALID

4 rows selected.

➤Data Files
FILE_NAME
--------------------------------------------------------------------------------
/u02/PROD/dbf/system01.dbf
/u02/PROD/dbf/sysaux01.dbf
/u02/PROD/dbf/undotbs01.dbf
/u02/PROD/dbf/users01.dbf
/oratemp/PROD/dbf/temp01.dbf
/oraoriglogA/PROD/redo/redog01m01.log
/oramirrlogA/PROD/redo/redog01m02.log
/oraoriglogB/PROD/redo/redog02m01.log
/oramirrlogB/PROD/redo/redog02m02.log
/oraoriglogA/PROD/redo/redog03m01.log
/oramirrlogA/PROD/redo/redog03m02.log
/oraoriglogA/PROD/cntrl/control01.ctl, /oraarch/PROD/control02.ctl

12 rows selected.

➤Temp Files

FILE_NAME
--------------------------------------------------------------------------------
/oratemp/PROD/dbf/temp01.dbf
1 row selected.

➤Control Files

VALUE
--------------------------------------------------------------------------------
/oraoriglogA/PROD/cntrl/control01.ctl, /oraarch/PROD/control02.ctl
1 row selected.

➤Redo Log Files

GROUP# SEQUENCE# MEMBERS MB STATUS


---------- ---------- ---------- ---------- --------------------
1 1 2 512 INACTIVE
2 2 2 512 INACTIVE
3 3 2 512 CURRENT

3 rows selected.

GROUP# MEMBER
STATUS MB
------
--------------------------------------------------------------------------------
-------------------- ----------
1 /oramirrlogA/PROD/redo/redog01m02.log
INACTIVE 512
1 /oraoriglogA/PROD/redo/redog01m01.log
INACTIVE 512
2 /oramirrlogB/PROD/redo/redog02m02.log
INACTIVE 512
2 /oraoriglogB/PROD/redo/redog02m01.log
INACTIVE 512
3 /oramirrlogA/PROD/redo/redog03m02.log
CURRENT 512
3 /oraoriglogA/PROD/redo/redog03m01.log
CURRENT 512

6 rows selected.

➤Memoria
NAME MB ISSES_MODIFIABLE ISSYS_MODIFIABLE
-------------------- ---------- ---------------- ----------------
sga_max_size 2320 FALSE FALSE
sga_target 2320 FALSE IMMEDIATE
memory_target 0 FALSE IMMEDIATE
memory_max_target 0 FALSE FALSE
pga_aggregate_target 774 FALSE IMMEDIATE
pga_aggregate_limit 12000 FALSE IMMEDIATE
5 rows selected.

➤TDE

➤Tablespaces
TABLESPACE_NAME STATUS CONTENTS ENCRYPTED
-------------------- --------- --------------------- ---------
SYSAUX ONLINE PERMANENT NO
SYSTEM ONLINE PERMANENT NO
TEMP ONLINE TEMPORARY NO
UNDOTBS1 ONLINE UNDO NO
USERS ONLINE PERMANENT NO

5 rows selected.

SYSTEM (NO SE HIZO)


══════
set linesize 200 pagesize 100
col tablespace_name for a20
col file_name for a60
SELECT tablespace_name,file_name,bytes/1024/1024 mb
FROM dba_data_files
WHERE tablespace_name IN ('SYSTEM')
ORDER BY tablespace_name,file_name;

ALTER TABLESPACE system ADD DATAFILE '/u21/PROD/dbf/system02.dbf' SIZE 1024M;


ALTER TABLESPACE system ADD DATAFILE '/u23/PROD/dbf/system03.dbf' SIZE 1024M;

192.168.178.129
192.168.178.129
══════════════
══════════════
Log
Log
─── ───

SYSAUX (NO SE HIZO)


══════
set linesize 200 pagesize 100
col tablespace_name for a20
col file_name for a60
SELECT tablespace_name,file_name,bytes/1024/1024 mb
FROM dba_data_files
WHERE tablespace_name IN ('SYSAUX')
ORDER BY tablespace_name,file_name;

ALTER TABLESPACE sysaux ADD DATAFILE '/u22/PROD/dbf/sysaux02.dbf' SIZE 1024M;

192.168.178.129
192.168.178.129
══════════════
══════════════
Log
Log
─── ───

USERS (NO SE HIZO)


═════
set linesize 200 pagesize 100
col tablespace_name for a20
col file_name for a60
SELECT tablespace_name,file_name,bytes/1024/1024 mb
FROM dba_data_files
WHERE tablespace_name IN ('USERS')
ORDER BY tablespace_name,file_name;

ALTER TABLESPACE users ADD DATAFILE '/u13/PROD/dbf/users02.dbf' SIZE 1024M;


ALTER TABLESPACE users ADD DATAFILE '/u17/PROD/dbf/users03.dbf' SIZE 1024M;
ALTER TABLESPACE users ADD DATAFILE '/u19/PROD/dbf/users04.dbf' SIZE 1024M;
ALTER TABLESPACE users ADD DATAFILE '/u19/PROD/dbf/users05.dbf' SIZE 1024M;

192.168.178.129
192.168.178.129
══════════════
══════════════
Log
Log
─── ───
5 rows
selected.

USERS (NO SE HIZO)


▒▒▒▒▒
Rename Datafile
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--Paths del Datafile
set linesize 200 pagesize 100
col tablespace_name for a20
col file_name for a60
SELECT tablespace_name,file_name,bytes/1024/1024 mb
FROM dba_data_files
WHERE tablespace_name IN ('USERS')
ORDER BY tablespace_name,file_name;

1.Move Data File Online


═══════════════════════
alter database move datafile '/u02/PROD/dbf/PROD/users01.dbf' to
'/u02/PROD/dbf/users01.dbf' reuse;
192.168.178.129
192.168.178.129
══════════════
══════════════
Log
Log
─── ───

UNDOTBS1 (NO SE HIZO)


▒▒▒▒▒▒▒▒
Rename Datafile
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--Paths del Datafile
set linesize 200 pagesize 100
col tablespace_name for a20
col file_name for a60
SELECT tablespace_name,file_name,bytes/1024/1024 mb
FROM dba_data_files
WHERE tablespace_name IN ('UNDOTBS1')
ORDER BY tablespace_name,file_name;

1.Move Data File Online


═══════════════════════
alter database move datafile '/u02/PROD/dbf/PROD/undotbs01.dbf' to
'/u02/PROD/dbf/undotbs01.dbf' reuse;

192.168.178.129
192.168.178.129
══════════════
══════════════
Log
Log
─── ───

Notas:
──────
https://logic.edchen.org/how-to-rename-datafile-in-oracle/
https://ronekins.com/2018/08/10/on-line-migration-of-oracle-18c-filesystem-
datafiles-to-oracle-asm/

SYSTEM (NO SE HIZO)


▒▒▒▒▒▒
Rename Datafile
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--Paths del Datafile
set linesize 200 pagesize 100
col tablespace_name for a20
col file_name for a60
SELECT tablespace_name,file_name,bytes/1024/1024 mb
FROM dba_data_files
WHERE tablespace_name IN ('SYSTEM')
ORDER BY tablespace_name,file_name;

1.Move Data File Online


═══════════════════════
alter database move datafile '/u02/PROD/dbf/PROD/system01.dbf' to
'/u02/PROD/dbf/system01.dbf';

Nota
────
How to Relocate and Rename SYSTEM datafiles (Doc ID 191540.1)

192.168.178.129
192.168.178.129
══════════════
══════════════
Log
Log
─── ───

SYSAUX (NO SE HIZO)


▒▒▒▒▒▒
Rename Datafile
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--Paths del Datafile
set linesize 200 pagesize 100
col tablespace_name for a20
col file_name for a60
SELECT tablespace_name,file_name,bytes/1024/1024 mb
FROM dba_data_files
WHERE tablespace_name IN ('SYSAUX')
ORDER BY tablespace_name,file_name;

1.Move Data File Online


═══════════════════════
alter database move datafile '/u02/PROD/dbf/PROD/sysaux01.dbf' to
'/u02/PROD/dbf/sysaux01.dbf';

Nota
────
How to Relocate and Rename SYSTEM datafiles (Doc ID 191540.1)

192.168.178.129
192.168.178.129
══════════════
══════════════
Log
Log
─── ───

TEMP (NO SE HIZO)


▒▒▒▒
Rename Tempfile
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--Paths del Tempfile
set linesize 200 pagesize 100
col tablespace_name for a20
col file_name for a60
SELECT tablespace_name,file_name,bytes/1024/1024 mb
FROM dba_temp_files
WHERE tablespace_name IN ('TEMP','KM_TEMP')
ORDER BY tablespace_name,file_name;

1.Offline TempFile
══════════════════
alter database tempfile '/u02/PROD/dbf/PROD/temp01.dbf' offline;

2.Move TempFile
═══════════════
cd /u02/PROD/dbf/PROD
mv temp01.dbf /oratemp/PROD/dbf

3.Rename TempFile
═════════════════
alter database rename file '/u02/PROD/dbf/PROD/temp01.dbf' to
'/oratemp/PROD/dbf/temp01.dbf';

4.Online Tempfile
═════════════════
alter database tempfile '/oratemp/PROD/dbf/temp01.dbf' online;
alter tablespace TEMP add tempfile '/oratemp/PROD/dbf/temp02.dbf' size 1024M;
alter database tempfile '/oratemp/PROD/dbf/temp01.dbf' resize 2048M;
alter database tempfile '/oratemp/PROD/dbf/temp02.dbf' resize 20480M;

192.168.178.129
192.168.178.129
══════════════
══════════════
Log
Log
─── ───

Rename Control File


▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
show parameter control_files

set linesize 200 pagesize 100


col value for a120
SELECT value
FROM v$parameter
WHERE name ='control_files';

1.Alter the control_files parameter


═══════════════════════════════════
set linesize 200 pagesize 100
col value for a120
SELECT value
FROM v$parameter
WHERE name ='control_files';

CREATE pfile='/home/oracle/dba/reports/initPROD.ora.9Dic23_0101' FROM spfile;


host ls /home/oracle/dba/reports/initPROD.ora.9Dic23_0101
ALTER SYSTEM SET
control_files='/oraoriglogA/PROD/cntrl/control01.ctl','/oraoriglogB/PROD/cntrl/
control02.ctl' SCOPE=spfile;
ALTER SYSTEM SET
control_files='/oraoriglogA/PROD/cntrl/control01.ctl','/oramirrlogA/PROD/cntrl/
control02.ctl' SCOPE=spfile;

2.Shutdown the database


═══════════════════════
shu immediate;

3.Rename the physical file on the OS


════════════════════════════════════
cd /oraarch/PROD/
mv control02.ctl /oramirrlogA/PROD/cntrl
ls -lrht /oramirrlogA/PROD/cntrl/control02.ctl

4.Start the database


════════════════════
startup

set linesize 200 pagesize 100


col value for a120
SELECT value
FROM v$parameter
WHERE name ='control_files';

Log

───

VALUE
----------------------------------------------------------------------------
/oraoriglogA/PROD/cntrl/control01.ctl, /oramirrlogA/PROD/cntrl/control02.ctl

SQL>

Shared Memory (NO SE HIZO)


▒▒▒▒▒▒▒▒▒▒▒▒▒
set linesize 200 pagesize 100
col value for a60
col name for a20
col isses_modifiable for a17
col issys_modifiable for a17
SELECT name,
NVL(value/1024/1024,0) mb,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'sga_max_size',
'sga_target',
'pga_aggregate_target',
'pga_aggregate_limit',
'memory_target',
'memory_max_target'
)
ORDER BY name;

CREATE pfile='/home/oracle/dba/reports/initPROD.ora.9Dic23_1300' FROM spfile;


ALTER SYSTEM SET pga_aggregate_limit=0 SCOPE=both;
ALTER SYSTEM SET pga_aggregate_target=1175M SCOPE=both;
ALTER SYSTEM SET sga_max_size=3536M SCOPE=spfile;
shu immediate;
startup;
ALTER SYSTEM SET sga_target=3536M SCOPE=both;

Log

───

Validación Final
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
set linesize 200 pagesize 900
col file_name for a80
SELECT file_name FROM dba_data_files
UNION ALL
SELECT file_name FROM dba_temp_files
UNION ALL
SELECT member FROM v$logfile
UNION ALL
SELECT value FROM v$parameter WHERE name ='control_files';

Log

───

FILE_NAME
--------------------------------------------------------------------------------
/u02/PROD/dbf/system01.dbf
/u02/PROD/dbf/sysaux01.dbf
/u02/PROD/dbf/undotbs01.dbf
/u02/PROD/dbf/users01.dbf
/oratemp/PROD/dbf/temp01.dbf
/oraoriglogA/PROD/redo/redog01m01.log
/oramirrlogA/PROD/redo/redog01m02.log
/oraoriglogB/PROD/redo/redog02m01.log
/oramirrlogB/PROD/redo/redog02m02.log
/oraoriglogA/PROD/redo/redog03m01.log
/oramirrlogA/PROD/redo/redog03m02.log
/oraoriglogA/PROD/cntrl/control01.ctl, /oramirrlogA/PROD/cntrl/control02.ctl

12 rows selected.

SQL>

Modificar el parametro processes (NO SE HIZO)


▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--Respaldar SPFILE
CREATE pfile='/home/oracle/dba/reports/initPROD.ora.23Oct23_1135' FROM spfile;
CREATE pfile='/home/oracle/dba/reports/initPROD.ora.8Ago23_0936' FROM spfile;

--Status Inicial
set linesize 200
col name for a40
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'processes',
'open_cursors',
'log_archive_max_processes',
'archive_lag_target'
);

--Realizar el cambio
ALTER SYSTEM SET processes=3000 scope=spfile;
--ALTER SYSTEM SET open_cursors=3000 scope=both;
--ALTER SYSTEM SET log_archive_max_processes=10 scope=both;

--Reiniciar la BD
shu immediate;
startup;

--Status Final
set linesize 200
col name for a40
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'processes',
'open_cursors',
'log_archive_max_processes',
'archive_lag_target',
'sessions'
);

Log

───
NAME VALUE
ISSES_MODIFIABLE ISSYS_MODIFIABLE
---------------------------------------- ----------------------------------------
---------------- ----------------
processes 4000
FALSE FALSE
sessions 6024
FALSE IMMEDIATE
log_archive_max_processes 4
FALSE IMMEDIATE
archive_lag_target 0
FALSE IMMEDIATE
open_cursors 300
FALSE IMMEDIATE

5 rows selected.

Modificar Parámetros Hardening 1 (NO SE HIZO)


▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--Hardening
resource_limit = TRUE
sec_case_sensitive_logon = TRUE
sec_max_failed_login_attempts = 6
sec_protocol_error_further_action = "(DROP,3)"
sec_protocol_error_trace_action = "LOG"
sec_return_server_release_banner = FALSE
sql92_security = TRUE

--Respaldar SPFILE
CREATE pfile='/home/oracle/dba/reports/initPROD.ora.11Ago23_0749' FROM spfile;

--Status Inicial
set linesize 200
col name for a40
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'resource_limit',
'sec_case_sensitive_logon',
'log_archive_max_processes',
'sec_max_failed_login_attempts',
'sec_protocol_error_further_action',
'sec_protocol_error_trace_action',
'sec_return_server_release_banner',
'sql92_security'
);

--Realizar el cambio
ALTER SYSTEM SET processes=1200 scope=spfile;
ALTER SYSTEM SET open_cursors=3000 scope=both;
ALTER SYSTEM SET log_archive_max_processes=10 scope=both;
ALTER SYSTEM SET sec_protocol_error_trace_action = 'LOG' SCOPE = both;
ALTER SYSTEM SET sec_max_failed_login_attempts = 6 SCOPE = spfile;

--Reiniciar la BD
shu immediate;
startup;

--Status Final
set linesize 200
col name for a40
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'resource_limit',
'sec_case_sensitive_logon',
'log_archive_max_processes',
'sec_max_failed_login_attempts',
'sec_protocol_error_further_action',
'sec_protocol_error_trace_action',
'sec_return_server_release_banner',
'sql92_security'
);

Log

───

Modificar Parámetros Hardening (NO SE HIZO)


▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--Hardening
audit_sys_operations
audit_trail
global_names
O7_DICTIONARY_ACCESSIBILITY
os_roles
remote_login_passwordfile
remote_os_authent
remote_os_roles
sec_case_sensitive_logon
sec_max_failed_login_attempts
sec_protocol_error_further_action
sec_protocol_error_trace_action
SEC_RETURN_SERVER_RELEASE_BANNER
sql92_security
_trace_files_public
resource_limit

--Respaldar SPFILE
CREATE pfile='/home/oracle/dba/reports/initPROD.ora.11Ago23_0753' FROM spfile;
--Status Inicial
set linesize 200
col name for a40
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'audit_sys_operations',
'audit_trail',
'global_names',
'O7_DICTIONARY_ACCESSIBILITY',
'os_roles',
'remote_login_passwordfile',
'remote_os_authent',
'remote_os_roles',
'sec_case_sensitive_logon',
'sec_max_failed_login_attempts',
'sec_protocol_error_further_action',
'sec_protocol_error_trace_action',
'SEC_RETURN_SERVER_RELEASE_BANNER',
'sql92_security',
'_trace_files_public',
'resource_limit'
);

--Realizar el cambio
ALTER SYSTEM SET audit_trail='DB','EXTENDED' SCOPE = spfile;
ALTER SYSTEM SET "_trace_files_public" = FALSE SCOPE = spfile;
ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY=FALSE SCOPE=spfile;

--Reiniciar la BD
shu immediate;
startup;

--Status Final
set linesize 200
col name for a40
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'audit_sys_operations',
'audit_trail',
'global_names',
'O7_DICTIONARY_ACCESSIBILITY',
'os_roles',
'remote_login_passwordfile',
'remote_os_authent',
'remote_os_roles',
'sec_case_sensitive_logon',
'sec_max_failed_login_attempts',
'sec_protocol_error_further_action',
'sec_protocol_error_trace_action',
'SEC_RETURN_SERVER_RELEASE_BANNER',
'sql92_security',
'_trace_files_public',
'resource_limit'
);

ALTER SYSTEM SET audit_trail='DB','EXTENDED' SCOPE = spfile;


ALTER SYSTEM SET "_trace_files_public" = FALSE SCOPE = spfile;

Log

───

Modificar el parametro db_files (NO SE HIZO)


▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--Respaldar SPFILE
create pfile='/home/oracle/dba/cc/3.16Dic21_Parametro_db_files/initFINEPS.ora' from
spfile;

--Status Inicial
set linesize 200
col name for a40
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'db_files'
);

--Realizar el cambio
ALTER SYSTEM SET db_files=1000 scope=spfile;

--Reiniciar la BD
shu immediate;
startup;

--Status Final
set linesize 200
col name for a40
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'db_files'
);

Log
───

Poner Modo Archivelog (NO SE HIZO)


▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--Status Inicial
set linesize 200
col name for a40
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'log_archive_dest_1',
'log_archive_dest_state_1',
'log_archive_format',
'db_recovery_file_dest',
'db_recovery_file_dest_size'
);

--Punto de retorno
create pfile='/home/oracle/dba/reports/initPROD.ora' from spfile;

--Realizar el cambio
ALTER SYSTEM SET log_archive_dest_1='LOCATION=/oraarch/PROD' SCOPE=both;
ALTER SYSTEM SET log_archive_dest_state_1 = 'ENABLE' SCOPE=BOTH;
ALTER SYSTEM SET db_recovery_file_dest_size=140G SCOPE=BOTH;
ALTER SYSTEM SET log_archive_format='PROD_%t_%s_%r.dbf' SCOPE=spfile;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ARCHIVE LOG LIST;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ALTER SYSTEM SWITCH LOGFILE;
host ls -rlth /oraarch/PROD

--Status Final
set linesize 200
col name for a40
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN
(
'log_archive_dest_1',
'log_archive_dest_state_1',
'log_archive_format',
'db_recovery_file_dest',
'db_recovery_file_dest_size'
);

Log
───

Desinstalar Componentes (NO SE HIZO)


■■■■■■■■■■■■■■■■■■■■■■■

Nota
----
http://topexperts.co.il/how-to-remove-components-from-an-oracle-database/

Respaldo de RMAN (NO SE HIZO)


■■■■■■■■■■■■■■■■
Crear Shell
***********
cd /home/oracle/dba/shells/backups/rman
vi rman_disk_full.sh
--------------------
#**********************************************************************************
***********
# FECHA AUTOR SCRIPT: rman_disk_full.sh
#----------- -----------------------------
-------------------------------------------------
# 09-Nov-2021 Jesus Norberto Enciso Flores Shell script para realizar respaldo
RMAN
# Gerardo Santana Soto
#**********************************************************************************
***********
# Shell
#!/usr/bin/bash

# Debug
set -x

# Variables
FECHA=$(date +"%d%m%y%H%M")
export ORACLE_SID=$1
export ORACLE_HOME=/oracle19c/product/19.3.0/db
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_DATE_FORMAT="DD-MM-YYYY HH24:MI:SS"
ADMIN="jesus.enciso@elektra.com.mx; gerardo.santana@elektra.com.mx;"

# Depura los Backupsets del Respaldo Anterior de la Base de Datos SPEIWEB


cd /backups/rman/${ORACLE_SID}
rm snapcf_${ORACLE_SID}.f
log=`ls -lrt /backups/rman/${ORACLE_SID}/full_daily_${ORACLE_SID}*.log |head -n 1|
awk '{ print $9 }'`
backupsets=`grep -i "piece handle" $log| awk '{print substr($2, 29, length($2) -
length($NF) -1)}';`

for i in ${backupsets};
do echo $i;
done

for i in ${backupsets};
do rm $i;
done

mv $log $log.txt

tail -97 /var/spool/mail/oracle

/usr/bin/find /backups/rman/${ORACLE_SID}/full_daily_${ORACLE_SID}*.txt -atime +1 -


exec rm {} \;

# Borrar Log de RMAN


rm /home/oracle/dba/logs/rman/Report_${ORACLE_SID}_*.log

# Realiza el respaldo
rman target / log=/backups/rman/${ORACLE_SID}/full_daily_${ORACLE_SID}_$FECHA.log
<< EOF
set echo on;
run {
allocate channel ${ORACLE_SID}1 device type disk format '/backups/rman/$
{ORACLE_SID}/FULL_%d_%s_%T';
allocate channel ${ORACLE_SID}2 device type disk format '/backups/rman/$
{ORACLE_SID}/FULL_%d_%s_%T';
allocate channel ${ORACLE_SID}3 device type disk format '/backups/rman/$
{ORACLE_SID}/FULL_%d_%s_%T';
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backups/rman/$
{ORACLE_SID}/CTRL_AUTO_%F';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/backups/rman/${ORACLE_SID}/snapcf_$
{ORACLE_SID}.f';
SQL 'alter system archive log current';
crosscheck archivelog all;
backup as compressed backupset full database plus archivelog;
delete noprompt archivelog until time 'sysdate - 1/24';
release channel ${ORACLE_SID}1;
release channel ${ORACLE_SID}2;
release channel ${ORACLE_SID}3;
}
exit;
EOF

#Identifica si hay errores ORA- RMAN-


cat /backups/rman/${ORACLE_SID}/full_daily_${ORACLE_SID}_$FECHA.log |grep RMAN-
> /home/oracle/dba/logs/rman/Report_${ORACLE_SID}_error_RMAN-bkp.log
cat /backups/rman/${ORACLE_SID}/full_daily_${ORACLE_SID}_$FECHA.log |grep ORA-
>> /home/oracle/dba/logs/rman/Report_${ORACLE_SID}_error_ORA-bkp.log
cat /home/oracle/dba/logs/rman/Report_${ORACLE_SID}_error_RMAN-bkp.log >>
/home/oracle/dba/logs/rman/Report_${ORACLE_SID}_error_ORA-bkp.log
sed '/invalid archived log deletion policy/d' /home/oracle/dba/logs/rman/Report_$
{ORACLE_SID}_error_ORA-bkp.log >> /home/oracle/dba/logs/rman/Report_$
{ORACLE_SID}_errors_bkp.log

#Envia mail del status del respaldo


if [ -s /home/oracle/dba/logs/rman/Report_${ORACLE_SID}_errors_bkp.log ]
then
mail -s "Backup Database ${ORACLE_SID} FAILED !!! " $ADMIN < /backups/rman/$
{ORACLE_SID}/full_daily_${ORACLE_SID}_$FECHA.log
else
mail -s "Backup Database ${ORACLE_SID} SUCCESSFULL !!! " $ADMIN <
/backups/rman/${ORACLE_SID}/full_daily_${ORACLE_SID}_$FECHA.log
fi

#Borra logs
rm /home/oracle/dba/logs/rman/Report_${ORACLE_SID}_error_RMAN-bkp.log
rm /home/oracle/dba/logs/rman/Report_${ORACLE_SID}_error_ORA-bkp.log

Programar Respaldo
******************
1.Configuración de RMAN
-----------------------
RMAN> show all;

using target database control file instead of recovery catalog


RMAN configuration parameters for database with db_unique_name FINUBS are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'/backups/rman/FINUBS/CTRL_AUTO_%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD
TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO
'/oracle19c/product/19.3.0/db/dbs/snapcf_FINUBS.f'; # default

RMAN>

2.FINEPS
---------
#**********************************************************************************
*
# RMAN Full Disk
#**********************************************************************************
*
30 16 * * * /home/oracle/dba/shells/backups/rman/FINEPS/rman_disk_full.sh FINEPS

Configurar TDE (
■■■■■■■■■■■■■■
************************************************************************
* Step 1: Configure the Software Keystore Location and Type (Keystore) *
************************************************************************
Configurar los parámetros WALLET_ROOT y TDE_CONFIGURATION para definir el
path y el Tipo del Keystore de TDE

I.Configurar el parámetro wallet_root


*************************************
════════════════
1.Status Inicial
════════════════
--Base de Datos
select name, open_mode from v$database;

--Parámetros TDE
set linesize 200
col name for a20
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN ('wallet_root','tde_configuration');

show parameter db_unique_name

════════════════════
2.Realizar el Cambio
════════════════════
1.Setear el parámetro wallet_root
─────────────────────────────────
--Definir el Directorio para el Keystore
Opción 1
--------
If the ORACLE_BASE environment variable is set, then the
$ORACLE_BASE/admin/db_unique_name/wallet directory.

echo $ORACLE_BASE
alter system set wallet_root='$ORACLE_BASE/admin/PROD/wallet' scope=spfile
sid='*';

Opción 2
--------
If ORACLE_BASE is not set, then $ORACLE_HOME/admin/db_unique_name/wallet.

echo $ORACLE_HOME
alter system set wallet_root='$ORACLE_HOME/admin/PROD/wallet' scope=spfile
sid='*';

Plan
----
--Respaldar PFILE
create pfile='/home/oracle/dba/reports/PROD.ora.5Oct23_0747' from spfile;
host ls /home/oracle/dba/reports/PROD.ora.5Oct23_0740
host ls /home/oracle/dba/reports/PROD.ora.5Oct23_0747
--Crear la ruta tomando el ORACLE_BASE
env | grep ORACLE_BASE
mkdir -p /u01/app/oracle/admin/PROD/wallet
ls -ld /u01/app/oracle/admin/PROD/wallet

--Definir el Directorio para el Keystore con ORACLE_BASE


alter system set wallet_root='/u01/app/oracle/admin/PROD/wallet' scope=spfile;

--Reiniciar la BD
shu immediate;
startup;

--Status
set linesize 200
col name for a20
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN ('wallet_root','tde_configuration');

Log
---
[oracle@192.168.178.129]#$ORACLE_HOME/bin/sqlplus "/ as sysdba"

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Oct 5 07:46:43 2023


Version 19.20.0.0.0

Copyright (c) 1982, 2022, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0

SQL> --Base de Datos


select name, open_mode from v$database;SQL>

NAME OPEN_MODE
--------- --------------------
PROD READ WRITE

SQL> --Parámetros TDE


set linesize 200
col name for a20
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN ('wallet_root','tde_configuration');SQL> SQL> SQL> SQL> SQL> SQL> 2
3 4 5 6

NAME VALUE
ISSES_MODIFIABLE
ISSYS_MODIFIABLE
-------------------- ---------------------------------------- ----------------
----------------
wallet_root
FALSE
FALSE
tde_configuration
FALSE
IMMEDIATE

SQL> set linesize 200


col date for a30
SELECT TO_CHAR(sysdate,'DD-MON-YYYY hh24:mi:ss') as "DATE",
name,
db_unique_name,
SQL> SQL> 2 3 4 open_mode,
database_role,
flashback_on
FROM v$database;
5 6 7
DATE NAME
DB_UNIQUE_NAME
OPEN_MODE DATABASE_ROLE
FLASHBACK_ON
------------------------------ --------------------
------------------------------ -------------------- ----------------
------------------
05-OCT-2023 07:47:04 PROD PROD
READ WRITE
PRIMARY NO

SQL> create pfile='/home/oracle/dba/reports/PROD.ora.5Oct23_0747' from spfile;

File created.

SQL> host ls /home/oracle/dba/reports/PROD.ora.5Oct23_0747


/home/oracle/dba/reports/PROD.ora.5Oct23_0747

SQL> !
[oracle@192.168.178.129]#env | grep ORACLE_BASE
ORACLE_BASE=/u01/app/oracle
[oracle@192.168.178.129]#mkdir -p /u01/app/oracle/admin/PROD/wallet
[oracle@192.168.178.129]#ls -ld /u01/app/oracle/admin/PROD/wallet
drwxr-xr-x. 2 oracle oinstall 6 Oct 5 07:48 /u01/app/oracle/admin/PROD/wallet
[oracle@192.168.178.129]#exit
exit

SQL> alter system set wallet_root='/u01/app/oracle/admin/PROD/wallet' scope=spfile;

System altered.

SQL> shu immediate;


Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.

Total System Global Area 2432695120 bytes


Fixed Size 8928080 bytes
Variable Size 1191182336 bytes
Database Buffers 1224736768 bytes
Redo Buffers 7847936 bytes
Database mounted.
Database opened.
SQL> --Status
set linesize 200
col name for a20
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN ('wallet_root','tde_configuration');SQL> SQL> SQL> SQL> SQL> SQL> 2
3 4 5 6

NAME VALUE
ISSES_MODIFIABLE
ISSYS_MODIFIABLE
-------------------- ---------------------------------------- ----------------
----------------
wallet_root /u01/app/oracle/admin/PROD/wallet FALSE
FALSE
tde_configuration
FALSE
IMMEDIATE

SQL>

II.Configurar el parámetro keystore_configuration --> Definir el Tipo de


Keystore: FILE
─────────────────────────────────────────────────
--Respaldar PFILE
create pfile='/home/oracle/dba/reports/PROD.ora.5Oct23_0750' from spfile;
host ls /home/oracle/dba/reports/PROD.ora.5Oct23_0750

--Status Inicial
set linesize 200
col name for a20
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN ('wallet_root','tde_configuration');

--Realizar Cambio
alter system set tde_configuration="KEYSTORE_CONFIGURATION=FILE" scope=both;

--Status Final
set linesize 200
col name for a20
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN ('wallet_root','tde_configuration');

Log
---
SQL> --Respaldar PFILE
create pfile='/home/oracle/dba/cc/2.16Dic21_Config_TDE_FINEPS/initFINEPS_II.ora'
from spfile;SQL>

File created.

SQL> --Status Inicial


set linesize 200
col name for a20
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN ('wallet_root','tde_configuration');SQL> SQL> SQL> SQL> SQL> SQL> 2
3 4 5 6

NAME VALUE
ISSES_MODIFIABLE
ISSYS_MODIFIABLE
-------------------- ---------------------------------------- ----------------
----------------
wallet_root /u01/app/oracle/admin/PROD/wallet FALSE
FALSE
tde_configuration
FALSE
IMMEDIATE

SQL>

SQL> create pfile='/home/oracle/dba/reports/PROD.ora.5Oct23_0750' from spfile;

File created.

SQL> host ls /home/oracle/dba/reports/PROD.ora.5Oct23_0750


/home/oracle/dba/reports/PROD.ora.5Oct23_0750

SQL> --Realizar Cambio


alter system set tde_configuration="KEYSTORE_CONFIGURATION=FILE" scope=both;SQL>
System altered.

SQL> --Status Final


set linesize 200
col name for a20
col value for a40
col isses_modifiable for a16
col issys_modifiable for a16
SELECT name,
value,
isses_modifiable,
issys_modifiable
FROM v$parameter
WHERE name IN ('wallet_root','tde_confSQL> SQL> SQL> SQL> SQL> SQL> 2 3 4
5 6 iguration');

NAME VALUE
ISSES_MODIFIABLE
ISSYS_MODIFIABLE
-------------------- ---------------------------------------- ----------------
----------------
wallet_root /u01/app/oracle/admin/PROD/wallet FALSE
FALSE
tde_configuration KEYSTORE_CONFIGURATION=FILE
FALSE IMMEDIATE

SQL>

****************************************
* Step 2: Create the Software Keystore *
****************************************
═════════════════════════════════════════════════
I.Creating a Password-Protected Software Keystore
═════════════════════════════════════════════════
--Status Inicial
set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;

--Crear el Wallet con Password


ADMINISTER KEY MANAGEMENT CREATE KEYSTORE IDENTIFIED BY "cf1ncc511pl6f3b18";

--Validar la Creación del Directorio "TDE" bajo la ruta del parametro


"wallet_root", y
--Validar la Creación del Archivo del Wallet Protegido con Password: ewallet.p12
host ls -lrht /u01/app/oracle/admin/PROD/wallet
host ls -lrht /u01/app/oracle/admin/PROD/wallet/tde/ewallet.p12

--Validar status del Wallet


set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;

--Open the Software Keystore


ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "cf1ncc511pl6f3b18";

set linesize 100 pagesize 100


col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;

Log
---
SQL> --Status Inicial
set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;SQL> SQL> SQL> SQL> SQL> SQL> 2

WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE


--------------- ---------------------------------------- --------------------
--------------------
FILE /u01/app/oracle/admin/PROD/wallet/tde/ NOT_AVAILABLE UNKNOWN

SQL> ADMINISTER KEY MANAGEMENT CREATE KEYSTORE IDENTIFIED BY "cf1ncc511pl6f3b18";

keystore altered.

SQL>

--Validar la Creación del Directorio "TDE" bajo la ruta del parametro


"wallet_root", y
--Validar la Creación del Archivo del Wallet Protegido con Password: ewallet.p12

SQL> host ls -lrht /u01/app/oracle/admin/PROD/wallet


total 0
drwxr-x---. 2 oracle oinstall 25 Oct 5 07:56 tde

SQL> host ls -lrht /u01/app/oracle/admin/PROD/wallet/tde/ewallet.p12


-rw-------. 1 oracle oinstall 2.5K Oct 5 07:56
/u01/app/oracle/admin/PROD/wallet/tde/ewallet.p12

SQL>

SQL> --Validar status del Wallet


set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;SQL> SQL> SQL> SQL> SQL> SQL> 2
WRL_TYPE WRL_PARAMETER
STATUS
WALLET_TYPE
--------------- ---------------------------------------- --------------------
--------------------
FILE /u01/app/oracle/admin/PROD/wallet/tde/ CLOSED
UNKNOWN

SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "cf1ncc511pl6f3b18";

keystore altered.

SQL> set linesize 100 pagesize 100


col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;SQL> SQL> SQL> SQL> SQL> 2

WRL_TYPE WRL_PARAMETER
STATUS
WALLET_TYPE
--------------- ---------------------------------------- --------------------
--------------------
FILE /u01/app/oracle/admin/PROD/wallet/tde/
OPEN_NO_MASTER_KEY PASSWORD

SQL>

********************************************************************
* Step 3:.Crear la TDE Master Encryption Key del Keystore (Wallet) *
********************************************************************
--Validar si el Keystore tiene una TDE Master Encryption Key
SELECT status FROM v$encryption_wallet;

--Crear la TDE Master Encryption Key del Keystore


ADMINISTER KEY MANAGEMENT CREATE KEY IDENTIFIED BY "cf1ncc511pl6f3b18" WITH BACKUP
USING 'PROD_master_key_bkp';
host ls -lrht /u01/app/oracle/admin/PROD/wallet/tde/

--Validar status del Wallet


set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;

--Validación Status de la Activación de la Master Key: ACTIVATION_TIME


set lines 200 pages 500
col key_id for a55
col creation_time for a40
col activation_time for a10
SELECT key_id, creation_time, activation_time, key_use, keystore_type FROM
v$encryption_keys;
--Activar la TDE Master Encryption Key del Keystore
ADMINISTER KEY MANAGEMENT USE KEY
'AfXLr2Eo90+gvymSiS45IJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA' IDENTIFIED BY
"cf1ncc511pl6f3b18" WITH BACKUP;

--Validación Status de la Activación de la Master Key: ACTIVATION_TIME


set lines 200 pages 500
col key_id for a55
col creation_time for a40
col activation_time for a31
select key_id, creation_time, activation_time, key_use, keystore_type from
v$encryption_keys;

--Validar status del Wallet (Keystore)


set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;

--Close Keystore
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "cf1ncc511pl6f3b18";

--Validar Keystore
set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;

--Open Keystore
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "cf1ncc511pl6f3b18";

--Validar Keystore
set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;

Log
----
SQL> --Validar si el Keystore tiene una TDE Master Encryption Key
SQL> SELECT status FROM v$encryption_wallet;

STATUS
--------------------
OPEN_NO_MASTER_KEY

SQL> ADMINISTER KEY MANAGEMENT CREATE KEY IDENTIFIED BY "cf1ncc511pl6f3b18" WITH


BACKUP USING 'PROD_master_key_bkp';
keystore altered.

SQL> host ls -lrht /u01/app/oracle/admin/PROD/wallet/tde/


total 8.0K
-rw-------. 1 oracle oinstall 2.5K Oct 5 08:11
ewallet_2023100514112524_PROD_master_key_bkp.p12
-rw-------. 1 oracle oinstall 3.8K Oct 5 08:11 ewallet.p12

SQL> --Validar status del Wallet


set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;SQL> SQL> SQL> SQL> SQL> SQL> 2

WRL_TYPE WRL_PARAMETER
STATUS
WALLET_TYPE
--------------- ---------------------------------------- --------------------
--------------------
FILE /u01/app/oracle/admin/PROD/wallet/tde/
OPEN_NO_MASTER_KEY PASSWORD

SQL> --Validación Status de la Activación de la Master Key: ACTIVATION_TIME


set lines 200 pages 500
col key_id for a55
col creation_time for a40
col activation_time for a10
SELECT key_id, creation_time, activation_time, key_use, keystore_type FROM
v$encryptioSQL> SQL> SQL> SQL> SQL> n_keys;

KEY_ID

CREATION_TIME
ACTIVATION KEY_USE KEYSTORE_TYPE
-------------------------------------------------------
---------------------------------------- ---------- ---------- -----------------
AfXLr2Eo90+gvymSiS45IJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 05/10/23 08:11:25.380363
-06:00 TDE SOFTWARE
KEYSTORE

SQL> --Activar la TDE Master Encryption Key del Keystore


SQL> ADMINISTER KEY MANAGEMENT USE KEY
'AfXLr2Eo90+gvymSiS45IJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA' IDENTIFIED BY
"cf1ncc511pl6f3b18" WITH BACKUP;

keystore altered.

SQL> --Validación Status de la Activación de la Master Key: ACTIVATION_TIME


set lines 200 pages 500
col key_id for a55
col creation_time for a40
col activation_time for a31
select key_id, creation_time, activation_time, key_use, keystore_type from
v$encryptioSQL> SQL> SQL> SQL> SQL> n_keys;

KEY_ID
CREATION_TIME
ACTIVATION_TIME
KEY_USE KEYSTORE_TYPE
-------------------------------------------------------
---------------------------------------- -------------------------------
---------- -----------------
AfXLr2Eo90+gvymSiS45IJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 05/10/23 08:11:25.380363
-06:00 05/10/23 08:12:52.181731 -06:00 TDE
SOFTWARE KEYSTORE

SQL> --Validar status del Wallet (Keystore)


set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;SQL> SQL> SQL> SQL> SQL> SQL> 2

WRL_TYPE WRL_PARAMETER
STATUS
WALLET_TYPE
--------------- ---------------------------------------- --------------------
--------------------
FILE /u01/app/oracle/admin/PROD/wallet/tde/
OPEN PASSWORD

SQL> --Close Keystore


ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "cf1ncc511pl6f3b18";SQL>

keystore altered.

SQL> --Validar Keystore


set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;SQL> SQL> SQL> SQL> SQL> SQL> 2

WRL_TYPE WRL_PARAMETER
STATUS
WALLET_TYPE
--------------- ---------------------------------------- --------------------
--------------------
FILE /u01/app/oracle/admin/PROD/wallet/tde/
CLOSED UNKNOWN

SQL> --Open Keystore


ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "cf1ncc511pl6f3b18";SQL>

keystore altered.

SQL> --Validar Keystore


set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;SQL> SQL> SQL> SQL> SQL> SQL> 2

WRL_TYPE WRL_PARAMETER
STATUS
WALLET_TYPE
--------------- ---------------------------------------- --------------------
--------------------
FILE /u01/app/oracle/admin/PROD/wallet/tde/
OPEN PASSWORD

SQL>

--Crear user USRFINEPS (NO SE HIZO)


Enter the master(DBA) username: USRFINEPS
Enter the password for the master(DBA) username: Us5rRF1nPyMtEps

CREATE USER USRFINEPS IDENTIFIED BY Us5rRF1nPyMtEps;


GRANT CREATE SESSION,CONNECT TO USRFINEPS;
GRANT CREATE TABLE TO USRFINEPS;
ALTER USER USRFINEPS QUOTA UNLIMITED ON USERS;
REVOKE CREATE TABLE FROM USRFINEPS;
GRANT DBA TO USRFINEPS;

--Encriptar columnas de una tabla


--Crear tabla
CREATE TABLE USRFINEPS.PROFESORES
(
ID NUMBER,
NOMBRE VARCHAR2(100),
CELULAR NUMBER
);

INSERT INTO USRFINEPS.PROFESORES VALUES (1,'Norberto1',252654871);


INSERT INTO USRFINEPS.PROFESORES VALUES (2,'Norberto2',252654872);
INSERT INTO USRFINEPS.PROFESORES VALUES (3,'Norberto3',252654873);
INSERT INTO USRFINEPS.PROFESORES VALUES (4,'Norberto4',252654874);
COMMIT;

COL NOMBRE FOR A40


SELECT * FROM USRFINEPS.PROFESORES;

--Validar que no tenga columnas cifradas--


select * from dba_encrypted_columns where table_name='PROFESORES';

no rows selected

--Cifrar columnas
ALTER TABLE USRFINEPS.PROFESORES MODIFY (celular ENCRYPT USING 'AES256');
ALTER TABLE USRFINEPS.PROFESORES MODIFY (nombre ENCRYPT USING 'AES256');

--Validar
set lines 200
col OWNER for a12
col TABLE_NAME for a20
col COLUMN_NAME for a20
select * from dba_encrypted_columns where table_name='PROFESORES';

--Close Keystore
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "SysWallet19";

--Consultar la tabla
SELECT * FROM USRFINEPS.PROFESORES;

--Close Keystore
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "SysWallet19";

---Borrar la Tabla
DROP TABLE USRFINEPS.PROFESORES PURGE;
SELECT * FROM USRFINEPS.PROFESORES;

Log
---

--Crear user USRFINEPS


SQL> CREATE USER USRFINEPS IDENTIFIED BY Us5rRF1nPyMtEps;
GRANT CREATE SESSION,CONNECT TO USRFINEPS;
User created.

SQL>

Grant succeeded.

SQL> GRANT CREATE TABLE TO USRFINEPS;

Grant succeeded.

SQL> REVOKE CREATE TABLE FROM USRFINEPS;


GRANT DBA TO USRFINEPS;
Revoke succeeded.

SQL>

Grant succeeded.

SQL>

SQL> set linesize 200


col open_mode for a20
col created for a20
col date for a20
SELECT TO_CHAR(sysdate,'DD-MON-YYYY hh24:mi:ss') as "DATE",
name,
open_mode,
TO_CHAR(created,'DD-MON-YYYY hh24:mi:ss') as "CREATED"
FROM v$database;
SQL> SQL> SQL> SQL> 2 3 4 5
DATE NAME OPEN_MODE CREATED
-------------------- ---------------------------------------- --------------------
--------------------
16-DEC-2021 22:02:22 FINEPS READ WRITE 16-DEC-2021
16:20:52
SQL>

SQL> conn USRFINEPS/Us5rRF1nPyMtEps


Connected.
SQL> show user
USER is "USRFINEPS"

--Encriptar columnas de una tabla


--Crear tabla
SQL> CREATE TABLE USRFINEPS.PROFESORES
(
ID NUMBER,
NOMBRE VARCHAR2(100),
CELULAR NUMBER
);

INSERT INTO USRFINEPS.PROFESORES VALUES (1,'Norberto1',252654871);


INSERT INTO USRFINEPS.PROFESORES VALUES (2,'Norberto2',252654872);
INSERT INTO USRFINEPS.PROFESORES VALUES (3,'Norberto3',252654873);
INSERT INTO USRFINEPS.PROFESORES VALUES (4,'Norberto4',252654874);
COMMIT; 2 3 4 5 6
Table created.

SQL> SELECT * FROM USRFINEPS.PROFESORES;

ID NOMBRE CELULAR
---------- ---------------------------------------- ----------
1 Norberto1 252654871
2 Norberto2 252654872
3 Norberto3 252654873
4 Norberto4 252654874

SQL> select * from dba_encrypted_columns where table_name='PROFESORES';

no rows selected

SQL> ALTER TABLE USRFINEPS.PROFESORES MODIFY (celular ENCRYPT USING 'AES256');

Table altered.

SQL> ALTER TABLE USRFINEPS.PROFESORES MODIFY (nombre ENCRYPT USING 'AES256');

Table altered.

SQL> --Validar
set lines 200
col OWNER for a12
col TABLE_NAME for a20
col COLUMN_NAME for a20
select * from dba_encrypted_columns where table_name='PROFESORES';

OWNER TABLE_NAME COLUMN_NAME ENCRYPTION_ALG SAL


INTEGRITY_AL
------------ -------------------- --------------------
----------------------------- --- ------------
USRFINEPS PROFESORES NOMBRE AES 256 bits key YES
SHA-1
USRFINEPS PROFESORES CELULAR AES 256 bits key YES
SHA-1
--Close Keystore
SQL> --Close Keystore
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "SysWallet19";SQL>

keystore altered.

QL> SELECT * FROM USRFINEPS.PROFESORES;


SELECT * FROM USRFINEPS.PROFESORES
*
ERROR at line 1:
ORA-28365: wallet is not open

SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "SysWallet19";

keystore altered.

--Consultar la tabla
SQL> SELECT * FROM USRFINEPS.PROFESORES;SQL>

ID NOMBRE CELULAR
---------- ---------------------------------------- ----------
1 Norberto1 252654871
2 Norberto2 252654872
3 Norberto3 252654873
4 Norberto4 252654874

--Borrar la tabla
SQL> DROP TABLE USRFINEPS.PROFESORES PURGE;

Table dropped.

SQL> SELECT * FROM USRFINEPS.PROFESORES;


SELECT * FROM USRFINEPS.PROFESORES
*
ERROR at line 1:
ORA-00942: table or view does not exist

═════════════════════════════════════════════════
II.Creating a Auto-Login Software Keystore
═════════════════════════════════════════════════
ADMINISTER KEY MANAGEMENT CREATE [LOCAL] AUTO_LOGIN KEYSTORE
FROM KEYSTORE 'keystore_location' -----> En Teoria lo debe de crear en la
carpeta de TDE.
IDENTIFIED BY software_keystore_password;

--Crear el Auto-Login Keystore (Wallet)


ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE
'/u01/app/oracle/admin/PROD/wallet/tde' IDENTIFIED BY "cf1ncc511pl6f3b18";

--Validar la Creación del Archivo del Wallet con AUTO_LOGIN: cwallet.sso


host ls -lrht /u01/app/oracle/admin/PROD/wallet/tde/cwallet.sso

--Validar Keystore
set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;

--Reiniciar la Base de Datos


shu immediate;
startup;

--Validar Keystore
set linesize 300 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
col dbname for a10
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;

SELECT (SELECT name FROM v$database)


dbname,wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;

Log
---
SQL> --Crear el Auto-Login Keystore (Wallet)
ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE
'/u01/app/oracle/admin/PROD/wallet/tde' IDENTIFIED BY "cf1ncc511pl6f3b18";SQL>

keystore altered.

SQL> host ls -lrht /u01/app/oracle/admin/PROD/wallet/tde/cwallet.sso


-rw-------. 1 oracle oinstall 4.0K Oct 5 08:21
/u01/app/oracle/admin/PROD/wallet/tde/cwallet.sso

SQL> --Validar Keystore


set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;SQL> SQL> SQL> SQL> SQL> SQL> 2

WRL_TYPE WRL_PARAMETER
STATUS
WALLET_TYPE
--------------- ---------------------------------------- --------------------
--------------------
FILE /u01/app/oracle/admin/PROD/wallet/tde/ OPEN
PASSWORD

SQL> --Reiniciar la Base de Datos


shu immediate;SQL>
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.

Total System Global Area 2432695120 bytes


Fixed Size 8928080 bytes
Variable Size 1191182336 bytes
Database Buffers 1224736768 bytes
Redo Buffers 7847936 bytes
Database mounted.
Database opened.
SQL> --Validar Keystore
set linesize 100 pagesize 100
col wrl_type for a15
col wrl_parameter for a40
col status for a20
col wallet_type for a20
SELECT wrl_type,wrl_parameter,status,wallet_type
FROM v$encryption_wallet;SQL> SQL> SQL> SQL> SQL> SQL> 2

WRL_TYPE WRL_PARAMETER
STATUS
WALLET_TYPE
--------------- ---------------------------------------- --------------------
--------------------
FILE /u01/app/oracle/admin/PROD/wallet/tde/ OPEN
AUTOLOGIN

SQL>

DBNAME WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE


---------- --------------- ----------------------------------------
-------------------- --------------------
PROD FILE /u01/app/oracle/admin/PROD/wallet/tde/ OPEN AUTOLOGIN

Notas
*****
https://orahow.com/configure-auto-login-wallet-in-oracle-19c/
https://anuragkumarjoy.blogspot.com/2021/04/how-to-configure-tde-in-oracle-19c.html
TDE Wallet Problem in 12c: Cannot do a Set Key operation when an auto-login wallet
is present (Doc ID 1944507.1)
https://orakldba.com/transparent-data-encryption-in-oracle/

IV.Restore (Pending) (NO SE HIZO)


**********
Identificar Todos los Usuarios de Aplicación
--------------------------------------------
set linesize 200 pagesize 100
col username for a20
col created for a20
col profile for a20
col account_status for a20
col expiry_date for a20
col default_tablespace for a20
col temporary_tablespace for a20

SELECT username,
created,
profile,
account_status,
expiry_date,
default_tablespace,
temporary_tablespace
FROM dba_users
WHERE username NOT IN
(
'ANONYMOUS','APPQOSSYS','AUDSYS','CTXSYS','DBSFWUSER','DBSNMP','DIP','DVF','DVSYS',
'GGSYS','GSMADMIN_INTERNAL',
'GSMCATUSER','GSMROOTUSER','GSMUSER','LBACSYS','MDDATA','MDSYS','OJVMSYS','OLAPSYS'
,'ORACLE_OCM','ORDDATA',
'ORDPLUGINS','ORDSYS','OUTLN','REMOTE_SCHEDULER_AGENT','SI_INFORMTN_SCHEMA','SYS','
SYS$UMF','SYSBACKUP',
'SYSDG','SYSKM','SYSRAC','SYSTEM','WMSYS','XDB','XS$NULL'
)
ORDER BY username ASC;

AWS
***
USERNAME CREATED PROFILE ACCOUNT_STATUS
EXPIRY_DATE DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
-------------------- -------------------- -------------------- --------------------
-------------------- -------------------- --------------------
APDMADM 07-OCT-21 DEFAULT OPEN
05-APR-22 APDM TEMP
CRMBATCHUSER 07-OCT-21 DEFAULT OPEN
09-APR-22 CRM_DEFAULT TEMP
CRMUSER 07-OCT-21 DEFAULT OPEN
05-APR-22 CRM_DEFAULT TEMP
DEDUPADM 07-OCT-21 DEFAULT OPEN
05-APR-22 CRM_DEFAULT TEMP
DEDUPBATUSER 07-OCT-21 DEFAULT OPEN
09-APR-22 CRM_DEFAULT TEMP
DNLDADM 07-OCT-21 DEFAULT OPEN
05-APR-22 CDC_DEFAULT TEMP
FARCADM 07-OCT-21 DEFAULT OPEN
05-APR-22 FINF_MASTERS_TS TEMP
FDMADM 07-OCT-21 DEFAULT OPEN
05-APR-22 FDM_TBLSPC TEMP
FIEJB 07-OCT-21 DEFAULT OPEN
05-APR-22 FI_GENERAL TEMP
FIMASTER 07-OCT-21 DEFAULT OPEN
05-APR-22 FI_GENERAL TEMP
FINBATCHPERF 07-OCT-21 DEFAULT OPEN
05-APR-22 FINBATCHPERF_TBLSPC TEMP
FINFADM 07-OCT-21 DEFAULT OPEN
05-APR-22 FINF_MASTERS_TS TEMP
FINFBGN 07-OCT-21 DEFAULT OPEN
09-APR-22 FINF_MASTERS_TS TEMP
FINFGEN 07-OCT-21 DEFAULT OPEN
05-APR-22 FINF_MASTERS_TS TEMP
FINFUTL 07-OCT-21 DEFAULT OPEN
05-APR-22 FINF_MASTERS_TS TEMP
FISALONE 07-OCT-21 DEFAULT OPEN
05-APR-22 FI_GENERAL TEMP
GSMROOTUSER 17-APR-19 DEFAULT LOCKED
USERS TEMP
INTADM 07-OCT-21 DEFAULT OPEN
05-APR-22 CRM_DEFAULT TEMP
INTBATCHUSER 07-OCT-21 DEFAULT OPEN
09-APR-22 CRM_DEFAULT TEMP
JBPMADM 24-SEP-21 DEFAULT OPEN
23-MAR-22 JBPMADM TEMP
MIGADM 07-OCT-21 DEFAULT OPEN
05-APR-22 CRM_DEFAULT TEMP
MIGBATCHUSER 07-OCT-21 DEFAULT OPEN
05-APR-22 CRM_DEFAULT TEMP
TBAADM 07-OCT-21 DEFAULT OPEN
05-APR-22 FCORE_DEFAULT TEMP
TBAGEN 07-OCT-21 DEFAULT OPEN
05-APR-22 FCORE_DEFAULT TEMP
TBAUTIL 07-OCT-21 DEFAULT OPEN
05-APR-22 FCORE_DEFAULT TEMP
USRFINUBS 30-AUG-21 DEFAULT OPEN
26-FEB-22 USER_TBS TEMP
WASADM 07-OCT-21 DEFAULT OPEN
05-APR-22 SESSION_TBLSPC TEMP

27 rows selected.

SELECT username,
created,
profile,
account_status,
expiry_date,
default_tablespace,
temporary_tablespace
FROM dba_users
WHERE username IN
(
'APDMADM',
'CRMBATCHUSER',
'CRMUSER',
'DEDUPADM',
'DEDUPBATUSER',
'DNLDADM',
'FARCADM',
'FDMADM',
'FIEJB',
'FIMASTER',
'FINBATCHPERF',
'FINFADM',
'FINFBGN',
'FINFGEN',
'FINFUTL',
'FISALONE',
'GSMROOTUSER',
'INTADM',
'INTBATCHUSER',
'JBPMADM',
'MIGADM',
'MIGBATCHUSER',
'TBAADM',
'TBAGEN',
'TBAUTIL',
'USRFINUBS',
'WASADM'
)
ORDER BY username;

Users
-----
APDMADM
CRMBATCHUSER
CRMUSER
DEDUPADM
DEDUPBATUSER
DNLDADM
FARCADM
FDMADM
FIEJB
FIMASTER
FINBATCHPERF
FINFADM
FINFBGN
FINFGEN
FINFUTL
FISALONE
GSMROOTUSER
INTADM
INTBATCHUSER
JBPMADM
MIGADM
MIGBATCHUSER
TBAADM
TBAGEN
TBAUTIL
WASADM

Import
------
Directorio
----------
create or replace directory backup as '/oradump/backups';
select directory_name,directory_path from dba_directories where
directory_name='BACKUP';

Shell
-----
vi impdp_schema.sh
------------------
#!/bin/bash
export ORACLE_HOME=/oracle19c/product/19.3.0/db
export ORACLE_SID=FINUBSQA
export PATH=$ORACLE_HOME/bin:$PATH:.
echo $ORACLE_SID

# Restore
impdp sys/Systemsys19 parfile=impdp_schema.par

vi impdp_schema.par
-------------------
SCHEMAS=APDMADM,
CRMBATCHUSER,
CRMUSER,
DEDUPADM,
DEDUPBATUSER,
DNLDADM,
FARCADM,
FDMADM,
FIEJB,
FIMASTER,
FINBATCHPERF,
FINFADM,
FINFBGN,
FINFGEN,
FINFUTL,
FISALONE,
GSMROOTUSER,
INTADM,
INTBATCHUSER,
JBPMADM,
MIGADM,
MIGBATCHUSER,
TBAADM,
TBAGEN,
TBAUTIL,
WASADM
DIRECTORY=BACKUP
DUMPFILE=EXP_CBSBDQA_FULL_%U.dmp
LOGFILE=IMPDP_CBSBDQA_FULL_04_14Oct21_1625.log

Log
---

Notas
*****
https://confluence.atlassian.com/bitbucketserverkb/linux-installer-fails-with-java-
lang-noclassdeffounderror-could-not-initialize-class-sun-awt-
x11graphicsenvironment-error-938843519.html
https://access.redhat.com/solutions/3887371

https://programmerclick.com/article/3569623516/

Quitar el AutoExtend
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
set linesize 200 pagesize 100
col file_name for a60
col autoextensible for a20
SELECT 'ALTER DATABASE DATAFILE '''||file_name||''' AUTOEXTEND OFF;'
FROM dba_data_files
WHERE autoextensible='YES';

set linesize 200 pagesize 100


col file_name for a60
col autoextensible for a20
SELECT 'ALTER DATABASE TEMPFILE '''||file_name||''' AUTOEXTEND OFF;' as
"AUTOEXTEND_OFF"
FROM dba_temp_files
WHERE autoextensible='YES';

Log: 192.168.178.129
───
'ALTERDATABASEDATAFILE'''||FILE_NAME||'''AUTOEXTENDOFF;'
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------
ALTER DATABASE DATAFILE '/u02/PROD/dbf/system01.dbf' AUTOEXTEND OFF;
ALTER DATABASE DATAFILE '/u02/PROD/dbf/sysaux01.dbf' AUTOEXTEND OFF;
ALTER DATABASE DATAFILE '/u02/PROD/dbf/undotbs01.dbf' AUTOEXTEND OFF;
ALTER DATABASE DATAFILE '/u02/PROD/dbf/users01.dbf' AUTOEXTEND OFF;
ALTER DATABASE DATAFILE '/u04/PROD/dbf/encryp_01.dbf' AUTOEXTEND OFF;

5 rows selected.

AUTOEXTEND_OFF
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------------
ALTER DATABASE TEMPFILE '/oratemp/PROD/dbf/temp01.dbf' AUTOEXTEND OFF;
1 row selected.

Database altered.
Database altered.
Database altered.
Database altered.
Database altered.
Database altered.

no rows selected.
no rows selected.

Crear el Job de las Estadísticas


▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
Crear Procedure y Job
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

--Crear Procedure
CREATE OR REPLACE procedure SYS.pr_schema_stats is
begin
for c in (
select u.username,
row_number() over (order by u.username) as rn
from dba_users u
where oracle_maintained='N'
)
loop
begin
dbms_stats.gather_schema_stats(c.username,degree => 6, cascade =>
TRUE,NO_INVALIDATE => FALSE, METHOD_OPT => 'FOR ALL COLUMNS SIZE 1');
exception when others then
dbms_output.put_line(sqlerrm);
end;
end loop;
end;
/

--Programar Job
BEGIN
SYS.DBMS_SCHEDULER.DROP_JOB
(job_name => 'SYS.ESTADISTICAS_DBA');
END;
/

BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'SYS.ESTADISTICAS_DBA'
,start_date => TO_TIMESTAMP_TZ('2023/08/11 08:30:00.000000 -
06:00','yyyy/mm/dd hh24:mi:ss.ff tzr')
,repeat_interval => 'freq=weekly; byday=sat; byhour=03; byminute=0;
bysecond=0;'
,end_date => NULL
,job_class => 'DEFAULT_JOB_CLASS'
,job_type => 'PLSQL_BLOCK'
,job_action => 'BEGIN SYS.pr_schema_stats; END;'
,comments => 'Se ejecutara cada sabado'
);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'RESTARTABLE'
,value => FALSE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'LOGGING_LEVEL'
,value => SYS.DBMS_SCHEDULER.LOGGING_OFF);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'MAX_FAILURES');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'MAX_RUNS');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'STOP_ON_WINDOW_CLOSE'
,value => FALSE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'JOB_PRIORITY'
,value => 3);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'SCHEDULE_LIMIT');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'AUTO_DROP'
,value => TRUE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'RESTART_ON_RECOVERY'
,value => FALSE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'RESTART_ON_FAILURE'
,value => FALSE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'STORE_OUTPUT'
,value => TRUE);

SYS.DBMS_SCHEDULER.ENABLE
(name => 'SYS.ESTADISTICAS_DBA');
END;
/

Log
───

Log
───
SQL> --Crear Procedure
CREATE OR REPLACE procedure SYS.pr_schema_stats is
begin
for c in (
select u.username,
row_number() over (order by u.username) as rn
from dba_users u
where oracle_maintained='N'
SQL> 2 3 4 5 6 7 8 )
loop
begin
dbms_stats.gather_schema_stats(c.username,degree => 6, cascade =>
TRUE,NO_INVALIDATE => FALSE, METHOD_OPT => 'FOR ALL COLUMNS SIZE 1');
exception when others then
dbms_output.put_line(sqlerrm);
end;
end loop;
end;
/ 9 10 11 12 13 14 15 16 17

Procedure created.

SQL>

SQL> BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'SYS.ESTADISTICAS_DBA'
,start_date => TO_TIMESTAMP_TZ('2023/10/18 14:30:00.000000 -
06:00','yyyy/mm/dd hh24:mi:ss.ff tzr')
,repeat_interval => 'freq=weekly; byday=sat; byhour=03; byminute=0;
bysecond=0;'
,end_date => NULL
,job_class => 'DEFAULT_JOB_CLASS'
,job_type => 'PLSQL_BLOCK'
,job_action => 'BEGIN SYS.pr_schema_stats; END;'
,comments => 'Se ejecutara cada 2 3 4 5 6 7 8 9
10 11 sabado'
);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'RESTARTABLE'
,value => FALSE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'LOGGING_LEVEL'
,value => SYS.DBMS_SCHEDULER.LOGGING_OFF);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'MAX_FAILURES');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'MAX_RUNS');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'STOP_ON_WINDOW_CLOSE'
,value => FALSE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( n 12 ame => 'SYS.ESTADISTICAS_DB 13 14 A'
,attribute => 'JOB_PRIORITY'
,value => 3);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'SCHEDULE_LIMIT');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADIST 15 ICAS_DBA'
,attribute => 'AUTO_DROP'
,value => TRUE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'RESTART_ON_RECOVERY'
,value => FALSE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 16 17 18 'SYS.ESTADISTICAS_DBA'
,attribute => 'RESTART_ON_FAILURE'
,value => FALSE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'SYS.ESTADISTICAS_DBA'
,attribute => 'STORE_OUTPUT'
,value => TRUE);

SYS.DBMS_SCHEDULER.ENABLE 19 20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
47 48 49 50 51 52 53 54 55
(name => 'SYS.ESTADISTICAS_DBA');
END;
/ 56 57 58

PL/SQL procedure successfully completed.

SQL>

Tareas Automáticas
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
I.Activar/Desactivar Todas las Tareas Automáticas para Todas las Ventanas (sin
argumentos)
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--➤Status de las Tareas Automáticas
SELECT client_name, status FROM dba_autotask_operation;

--➤Status de las Ventanas Automáticas de Mantenimiento


set linesize 200
col window_name for a30
SELECT window_name,
autotask_status,optimizer_stats,segment_advisor,sql_tune_advisor FROM
dba_autotask_window_clients;

--➤Desactivar todas las Ventanas Automáticas


EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;

--➤Disable las Tareas Automáticas


EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name=>'sql tuning advisor',
operation=>NULL, window_name=>NULL);
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name=>'auto space advisor',
operation=>NULL, window_name=>NULL);
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name=>'auto optimizer stats collection',
operation=>NULL, window_name=>NULL);

Log
───
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED
auto space advisor ENABLED
sql tuning advisor ENABLED

3 rows selected.

WINDOW_NAME AUTOTASK_STATUS OPTIMIZER_STATS SEGMENT_ADVISOR


SQL_TUNE_ADVISOR
------------------------------ --------------- --------------- ---------------
----------------
SATURDAY_WINDOW ENABLED ENABLED ENABLED
ENABLED
MONDAY_WINDOW ENABLED ENABLED ENABLED
ENABLED
FRIDAY_WINDOW ENABLED ENABLED ENABLED
ENABLED
WEDNESDAY_WINDOW ENABLED ENABLED ENABLED
ENABLED
THURSDAY_WINDOW ENABLED ENABLED ENABLED
ENABLED
TUESDAY_WINDOW ENABLED ENABLED ENABLED
ENABLED
SUNDAY_WINDOW ENABLED ENABLED ENABLED
ENABLED

7 rows selected.

SQL> SELECT client_name, status FROM dba_autotask_operation;

SQL> --Desactivar todas las Tareas Automáticas


EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;SQL>

PL/SQL procedure successfully completed.

CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED
auto space advisor ENABLED
sql tuning advisor ENABLED

3 rows selected.

WINDOW_NAME AUTOTASK_STATUS OPTIMIZER_STATS SEGMENT_ADVISOR


SQL_TUNE_ADVISOR
------------------------------ --------------- --------------- ---------------
----------------
SATURDAY_WINDOW DISABLED ENABLED ENABLED
ENABLED
MONDAY_WINDOW DISABLED ENABLED ENABLED
ENABLED
FRIDAY_WINDOW DISABLED ENABLED ENABLED
ENABLED
WEDNESDAY_WINDOW DISABLED ENABLED ENABLED
ENABLED
THURSDAY_WINDOW DISABLED ENABLED ENABLED
ENABLED
TUESDAY_WINDOW DISABLED ENABLED ENABLED
ENABLED
SUNDAY_WINDOW DISABLED ENABLED ENABLED
ENABLED

7 rows selected.

CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection DISABLED
auto space advisor DISABLED
sql tuning advisor DISABLED

3 rows selected.

Creación de Usuarios
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
DBA_SOPRT
INF_MONTR"
Creación de usuarios DBA_SOPCC

--▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
--▓▓ Creación de Users de Admon ▓▓
--▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
--I.Identificar users
--▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--Users
set linesize 200 pagesize 100
col username for a15
col account_status for a15
col expiry_date for a25
col profile for a15
col default_tablespace for a20
col temporary_tablespace for a20
SELECT username,
account_status,
TO_CHAR(expiry_date,'dd-mm-yyyy hh24:mi:ss') expiry_date,
profile,
default_tablespace,
temporary_tablespace
FROM dba_users
WHERE username IN
('DBA_SOPRT','INF_MONTR','RMANADMIN','C##RMANADMIN','C##INF_MONTR','DBA_SOPCC');

--Tablespaces
SELECT tablespace_name,contents,encrypted FROM dba_tablespaces ORDER BY contents;

--Profiles
SELECT DISTINCT profile FROM dba_profiles WHERE profile IN
('ADMUSERS','DEFAULT','PRODUSERS') ORDER BY profile;

# II.Crear DBA_SOPRT
#▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--➤Crear la Verify Function
CREATE OR REPLACE FUNCTION SYS.ADMUSERS_VERIFYFUNCTION
(username varchar2,
password varchar2,
old_password varchar2)
RETURN boolean IS
n boolean;
m integer;
differ integer;
isdigit boolean;
ischar boolean;
ispunct boolean;
digitarray varchar2(20);
punctarray varchar2(25);
chararray varchar2(52);

BEGIN
digitarray:= '0123456789';
chararray:= 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
punctarray:='!"#$%&()``*+,-/:;<=>?_';

-- Check if the password is same as the username


IF NLS_LOWER(password) = NLS_LOWER(username) THEN
raise_application_error(-20001, 'Password same as or similar to user');
END IF;

-- Check for the minimum length of the password


IF length(password) < 9 THEN
raise_application_error(-20002, 'Password length less than 9');
END IF;

-- Check if the password is too simple. A dictionary of words may be


-- maintained and a check may be made so as not to allow the words
-- that are too simple for the password.
IF NLS_LOWER(password) IN ('welcome', 'database', 'account', 'user', 'password',
'oracle', 'computer', 'abcd') THEN
raise_application_error(-20002, 'Password too simple');
END IF;

-- Check if the password contains at least one letter, one digit and one
-- punctuation mark.
-- 1. Check for the digit
isdigit:=FALSE;
m := length(password);
FOR i IN 1..10 LOOP
FOR j IN 1..m LOOP
IF substr(password,j,1) = substr(digitarray,i,1) THEN
isdigit:=TRUE;
GOTO findchar;
END IF;
END LOOP;
END LOOP;
IF isdigit = FALSE THEN
raise_application_error(-20003, 'Password should contain at least one digit,
one character and one punctuation (digit missing)');
END IF;
-- 2. Check for the character
<<findchar>>
ischar:=FALSE;
FOR i IN 1..length(chararray) LOOP
FOR j IN 1..m LOOP
IF substr(password,j,1) = substr(chararray,i,1) THEN
ischar:=TRUE;
GOTO findpunct;
END IF;
END LOOP;
END LOOP;
IF ischar = FALSE THEN
raise_application_error(-20003, 'Password should contain at least one digit,
one character and one punctuation (character missing
)');
END IF;
-- 3. Check for the punctuation
<<findpunct>>
ispunct:=FALSE;
FOR i IN 1..length(punctarray) LOOP
FOR j IN 1..m LOOP
IF substr(password,j,1) = substr(punctarray,i,1) THEN
ispunct:=TRUE;
GOTO endsearch;
END IF;
END LOOP;
END LOOP;
IF ispunct = FALSE THEN
raise_application_error(-20003, 'Password should contain at least one digit,
one character and one punctuation (punctuation missi
ng)');
END IF;

<<endsearch>>
-- Check if the password differs from the previous password by at least
-- 3 letters
IF old_password IS NOT NULL THEN
differ := length(old_password) - length(password);

IF abs(differ) < 3 THEN


IF length(password) < length(old_password) THEN
m := length(password);
ELSE
m := length(old_password);
END IF;
differ := abs(differ);
FOR i IN 1..m LOOP
IF substr(password,i,1) != substr(old_password,i,1) THEN
differ := differ + 1;
END IF;
END LOOP;

IF differ < 3 THEN


raise_application_error(-20004, 'Password should differ by at least 3
characters');
END IF;
END IF;
END IF;
-- Everything is fine; return TRUE ;
RETURN(TRUE);
END;
/

--➤Crear Profile ADMUSERS


CREATE PROFILE ADMUSERS LIMIT
SESSIONS_PER_USER 25
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME 120
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PRIVATE_SGA UNLIMITED
FAILED_LOGIN_ATTEMPTS 3
INACTIVE_ACCOUNT_TIME 60
PASSWORD_LIFE_TIME 90
PASSWORD_REUSE_TIME 120
PASSWORD_REUSE_MAX 20
PASSWORD_LOCK_TIME 5
PASSWORD_GRACE_TIME 5
--PASSWORD_ROLLOVER_TIME DEFAULT
PASSWORD_VERIFY_FUNCTION ADMUSERS_VERIFYFUNCTION;

--➤Crear User
CREATE USER DBA_SOPRT
IDENTIFIED BY Liverpool_01
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE ADMUSERS
ACCOUNT UNLOCK;

-- 1 Role for DBA_SOPRT


GRANT DBA TO DBA_SOPRT;
ALTER USER DBA_SOPRT DEFAULT ROLE ALL;

-- 2 System Privileges for DBA_SOPRT


GRANT CREATE SESSION TO DBA_SOPRT;
GRANT UNLIMITED TABLESPACE TO DBA_SOPRT;

--Cambiar de Profile
ALTER USER DBA_SOPRT PROFILE DEFAULT;
ALTER USER DBA_SOPRT IDENTIFIED BY Liverpool_01;
conn DBA_SOPRT/Liverpool_01
ALTER USER DBA_SOPRT PROFILE ADMUSERS;
ALTER USER DBA_SOPRT ACCOUNT UNLOCK;

Log
───
ALTER TABLESPACE DQSTAGE_ENC256 ADD DATAFILE '/u06/MDMQAS/dbf/DQSTAGE_ENCRY02.dbf'
SIZE 1G;

# III.Crear INF_MONTR
#▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--➤Crear User
CREATE USER INF_MONTR
IDENTIFIED BY M0n_lp344
HTTP DIGEST DISABLE
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;

-- 3 Roles for INF_MONTR


GRANT CONNECT TO INF_MONTR;
GRANT OEM_ADVISOR TO INF_MONTR;
GRANT OEM_MONITOR TO INF_MONTR;
ALTER USER INF_MONTR DEFAULT ROLE ALL;

-- 3 System Privileges for INF_MONTR


GRANT ADMINISTER SQL TUNING SET TO INF_MONTR;
GRANT SELECT ANY DICTIONARY TO INF_MONTR;
GRANT UNLIMITED TABLESPACE TO INF_MONTR;

-- 5 Object Privileges for INF_MONTR


GRANT SELECT ON SYS.DBA_OBJECTS TO INF_MONTR;
GRANT EXECUTE ON SYS.DBMS_AUTO_SQLTUNE TO INF_MONTR;
GRANT EXECUTE ON SYS.DBMS_WORKLOAD_REPOSITORY TO INF_MONTR;
GRANT SELECT ON SYS.GV_$SESSION TO INF_MONTR;
GRANT SELECT ON SYS.V_$LOCKED_OBJECT TO INF_MONTR;

--Cambiar de Profile
ALTER USER INF_MONTR PROFILE DEFAULT;
ALTER USER INF_MONTR IDENTIFIED BY M0n_lp344;
conn INF_MONTR/M0n_lp344
ALTER USER INF_MONTR PROFILE ADMUSERS;
ALTER USER INF_MONTR ACCOUNT UNLOCK;

Log
───

# IV.Crear RMANADMIN
#▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
CREATE USER RMANADMIN
IDENTIFIED BY rman
HTTP DIGEST DISABLE
DEFAULT TABLESPACE PSAPSR3DB
TEMPORARY TABLESPACE PSAPTEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;

-- 2 Roles for RMANADMIN


GRANT CONNECT TO RMANADMIN;
GRANT DBA TO RMANADMIN;
ALTER USER RMANADMIN DEFAULT ROLE ALL;

-- 2 System Privileges for RMANADMIN


GRANT CREATE SESSION TO RMANADMIN;
GRANT UNLIMITED TABLESPACE TO RMANADMIN;

--➤Cambiar de Profile
ALTER USER RMANADMIN PROFILE DEFAULT;
ALTER USER RMANADMIN IDENTIFIED BY rman;
conn RMANADMIN/rman
ALTER USER RMANADMIN PROFILE ADMUSERS;
ALTER USER RMANADMIN ACCOUNT UNLOCK;

Log
───

--IV.Crear DBA_SOPCC
--▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
CREATE USER DBA_SOPCC
IDENTIFIED BY Liverpool_01
HTTP DIGEST ENABLE
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;

-- 2 Roles for DBA_SOPCC


GRANT CONNECT TO DBA_SOPCC;
GRANT DBA TO DBA_SOPCC;
ALTER USER DBA_SOPCC DEFAULT ROLE ALL;

-- 1 System Privilege for DBA_SOPCC


GRANT UNLIMITED TABLESPACE TO DBA_SOPCC;

Log
───
USERNAME ACCOUNT_STATUS EXPIRY_DATE PROFILE
DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
--------------- --------------- ------------------------- ---------------
-------------------- --------------------
RMANADMIN OPEN DEFAULT USERS
TEMP
INF_MONTR OPEN DEFAULT USERS
TEMP
DBA_SOPRT OPEN 18-01-2024 17:11:09 ADMUSERS USERS
TEMP

3 rows selected.

Modificar el Intervalo de los Snapshots


▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
I.Intervalo entre Snaps(30 mins) y Periodo de retencion dias (365)
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
--➤Status de las Tareas Automáticas
We can change the snap_interval and retention period for the automatic awr
snapshot
collection, using modify_snapshot_settings function.

The default settings for 'interval' and 'retention' are 60 minutes and 8 days .

DEFAULT SETTING:

select snap_interval, retention from dba_hist_wr_control;

Modify the snapshot setting:( snap_interval 30 min and retention 30 days(60*24*30)

The values for both 'interval' and 'retention' are expressed in minutes .

execute dbms_workload_repository.modify_snapshot_settings(interval => 30,retention


=> 43200);

--➤Status Inicial/Final
set linesize 200 pagesize 100
col snap_interval for a20
col retention for a20
SELECT snap_interval, retention FROM dba_hist_wr_control;

➤--Modificar Intervalo de los Snapshots y su Retención


execute dbms_workload_repository.modify_snapshot_settings(interval => 30,retention
=> 525600);

--
SELECT
extract( day from snap_interval) 2460+
extract( hour from snap_interval) *60+
extract( minute from snap_interval ) "Intervalo entre Snaps",
extract( day from retention) 2460+
extract( hour from retention) *60+
extract( minute from retention ) "Periodo de retencion min" ,
extract( day from retention) "Periodo de retencion dias"
FROM dba_hist_wr_control;

--- > un aÃo


execute dbms_workload_repository.modify_snapshot_settings (interval => 30,retention
=> 525600);

--- > 90 Dias


execute dbms_workload_repository.modify_snapshot_settings (interval => 30,retention
=> 129600);
en dev y qa que sean de 90 dias

Log
───
SNAP_INTERVAL RETENTION
-------------------- --------------------
+00000 01:00:00.0 +00008 00:00:00.0
1 row selected.

SQL> execute dbms_workload_repository.modify_snapshot_settings(interval =>


30,retention => 525600);

PL/SQL procedure successfully completed.


SQL>

SNAP_INTERVAL RETENTION
-------------------- --------------------
+00000 00:30:00.0 +00365 00:00:00.0
1 row selected.

Formato
*******
██████████████████████████████████████████████████████████
██ Patch 35042068 - DB Release Update 19.19.0.0.230418 ██
██████████████████████████████████████████████████████████

▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓▓ Fase I: Prerrequisitos (Online) ▓▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
1.Respaldar Oracle Home (Online)
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
oracle
======
--Test
1.1.Respaldar el Oracle Home
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
2.Actualizar la versión del "Opatch Utility"
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
2.1.Extraer el "OPatch Utility en el Oracle Home
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
2.1.1.Respaldar/Borrar el "OPatch Utility" del Database Home
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
2.1.1.1.Linux
═════════════
2.1.1.2.Unix
════════════
2.1.1.2.1
─────────
Log
───

You might also like