Showing posts with label ORACLE DATABASE. Show all posts
Showing posts with label ORACLE DATABASE. Show all posts

Wednesday, May 21, 2025

Backup Oracle database using rman

Backup an Oracle database using RMAN


1. Connect to RMAN

Open a terminal or command prompt and connect to RMAN as a user with the necessary privileges:


rman target /


2. Perform a Full Database Backup

At the RMAN prompt, run:


BACKUP DATABASE;


3. (Optional) Backup Archive Logs

To include archived redo logs in your backup:


BACKUP DATABASE PLUS ARCHIVELOG;


4. (Optional) Specify Backup Location

To specify a different backup location:


BACKUP DATABASE FORMAT '/backup/yourdb_%U.bkp';


5. (Optional) Backup Control File Separately



BACKUP CURRENT CONTROLFILE;



Note:


Make sure your database is in ARCHIVELOG mode for point-in-time recovery.

Schedule regular backups as per your organization’s policy.



Example 


RMAN> backup database ;


Starting backup at 21-MAY-25

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=42 device type=DISK

channel ORA_DISK_1: starting full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

input datafile file number=00001 name=/u01/app/oracle/oradata/DB1/system01.dbf

input datafile file number=00003 name=/u01/app/oracle/oradata/DB1/sysaux01.dbf

input datafile file number=00004 name=/u01/app/oracle/oradata/DB1/undotbs01.dbf

input datafile file number=00007 name=/u01/app/oracle/oradata/DB1/users01.dbf

channel ORA_DISK_1: starting piece 1 at 21-MAY-25

channel ORA_DISK_1: finished piece 1 at 21-MAY-25

piece handle=/u01/app/oracle/fast_recovery_area/DB1/backupset/2025_05_21/o1_mf_nnndf_TAG20250521T121502_n2vjy7y0_.bkp tag=TAG20250521T121502 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45

channel ORA_DISK_1: starting full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

input datafile file number=00010 name=/u01/app/oracle/oradata/DB1/pdb/sysaux01.dbf

input datafile file number=00009 name=/u01/app/oracle/oradata/DB1/pdb/system01.dbf

input datafile file number=00011 name=/u01/app/oracle/oradata/DB1/pdb/undotbs01.dbf

input datafile file number=00012 name=/u01/app/oracle/oradata/DB1/pdb/users01.dbf

channel ORA_DISK_1: starting piece 1 at 21-MAY-25

channel ORA_DISK_1: finished piece 1 at 21-MAY-25

piece handle=/u01/app/oracle/fast_recovery_area/DB1/2FACECCE69615207E0630400040AB366/backupset/2025_05_21/o1_mf_nnndf_TAG20250521T121502_n2vjzns9_.bkp tag=TAG20250521T121502 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25

channel ORA_DISK_1: starting full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

input datafile file number=00017 name=/u01/app/oracle/oradata/demo1/sysaux01.dbf

input datafile file number=00016 name=/u01/app/oracle/oradata/demo1/system01.dbf

input datafile file number=00018 name=/u01/app/oracle/oradata/demo1/undotbs01.dbf

channel ORA_DISK_1: starting piece 1 at 21-MAY-25

channel ORA_DISK_1: finished piece 1 at 21-MAY-25

piece handle=/u01/app/oracle/fast_recovery_area/DB1/33E6395D57264163E0630400040A2C41/backupset/2025_05_21/o1_mf_nnndf_TAG20250521T121502_n2vk0g8j_.bkp tag=TAG20250521T121502 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25

channel ORA_DISK_1: starting full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

input datafile file number=00006 name=/u01/app/oracle/oradata/DB1/pdbseed/sysaux01.dbf

input datafile file number=00005 name=/u01/app/oracle/oradata/DB1/pdbseed/system01.dbf

input datafile file number=00008 name=/u01/app/oracle/oradata/DB1/pdbseed/undotbs01.dbf

channel ORA_DISK_1: starting piece 1 at 21-MAY-25

channel ORA_DISK_1: finished piece 1 at 21-MAY-25

piece handle=/u01/app/oracle/fast_recovery_area/DB1/2FAC79D13BBE3BB3E0630400040A98FA/backupset/2025_05_21/o1_mf_nnndf_TAG20250521T121502_n2vk17nv_.bkp tag=TAG20250521T121502 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25

Finished backup at 21-MAY-25


Starting Control File and SPFILE Autobackup at 21-MAY-25

piece handle=/u01/app/oracle/fast_recovery_area/DB1/autobackup/2025_05_21/o1_mf_s_1201695424_n2vk22pc_.bkp comment=NONE

Finished Control File and SPFILE Autobackup at 21-MAY-25


RMAN>

How to configure the size of Fast Recovery Area (FRA) in Oracle database ?

Configure the size of FRA 

 


SQL>

SQL>

SQL> show parameter db_recovery


NAME                                 TYPE        VALUE

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

db_recovery_file_dest                string      /u01/app/oracle/fast_recovery_

                                                 area

db_recovery_file_dest_size           big integer 12732M

SQL>

SQL>

SQL> alter system set db_recovery_file_dest_size=12G scope=both ;


System altered.


SQL> show parameter db_recovery_file_dest_size;


NAME                                 TYPE        VALUE

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

db_recovery_file_dest_size           big integer 12G

SQL>

How to add a redo log member to an existing redo log group in an Oracle database | Redo log files Multiplexed

Add a redo log member to an existing redo log group in an Oracle database


SQL> select group#,status,member from v$logfile;


    GROUP# STATUS

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

MEMBER

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

         3

/u01/app/oracle/oradata/DB1/redo03.log


         2

/u01/app/oracle/oradata/DB1/redo02.log


         1

/u01/app/oracle/oradata/DB1/redo01.log



SQL>

SQL> select group#,members,archived,status from v$log;


    GROUP#    MEMBERS ARC STATUS

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

         1          1 NO  CURRENT

         2          1 YES INACTIVE

         3          1 YES INACTIVE


SQL>

SQL> alter database add logfile member '/u01/app/oracle/oradata/DB1/redo01b.log' to group 1;


Database altered.


SQL> select member from v$logfile;


MEMBER

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

/u01/app/oracle/oradata/DB1/redo03.log

/u01/app/oracle/oradata/DB1/redo02.log

/u01/app/oracle/oradata/DB1/redo01.log

/u01/app/oracle/oradata/DB1/redo01b.log





SQL> 



Best Practices & Notes


Always add members on different disks for redundancy.

The new log file must not exist already on disk.

All members of a group are written to simultaneously — they are identical.

Adding a member does not affect the database availability.

Tuesday, April 29, 2025

How to create pluggable database in oracle ?

 create pluggable database in oracle 




SQL> show con_name 


CON_NAME

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

CDB$ROOT

SQL> 


SQL> show pdbs


    CON_ID CON_NAME   OPEN MODE  RESTRICTED

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

2 PDB$SEED   READ ONLY  NO

3 PDB   READ WRITE NO

SQL> 

SQL> 

SQL> 

SQL> 




SQL> create pluggable database demo1 admin user demo1 identified by demo1

  2  file_name_convert=('/u01/app/oracle/oradata/DB1/pdbseed','/u01/app/oracle/oradata/demo1');   


Pluggable database created.


SQL> show pdbs


    CON_ID CON_NAME   OPEN MODE  RESTRICTED

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

2 PDB$SEED   READ ONLY  NO

3 PDB   READ WRITE NO

4 DEMO1   MOUNTED






SQL> alter pluggable database demo1 open read write;


Pluggable database altered.


SQL> show pdbs


    CON_ID CON_NAME   OPEN MODE  RESTRICTED

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

2 PDB$SEED   READ ONLY  NO

3 PDB   READ WRITE NO

4 DEMO1   READ WRITE NO

SQL> 



SQL> 

SQL>       

SQL> alter session set container=demo1;


Session altered.


SQL> show con_name 


CON_NAME

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

DEMO1

SQL> 



SQL> 

SQL> 

SQL> select name from v$pdbs;


NAME

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

DEMO1


SQL> 



how to drop pluggable database in oracle ?

 Drop pluggable database in oracle


=> connect to the container database 

=> close the pluggable database 

=> unplug the pluggable database (optional)

=> drop the pluggable database 

    .if we are using the command without including datafiles , this only remove pdb not underline datafiles etc .


SQL> alter session set container =cdb$root;


Session altered.


SQL> show pdbs


    CON_ID CON_NAME   OPEN MODE  RESTRICTED

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

 2 PDB$SEED   READ ONLY  NO

 3 PDB   READ WRITE NO

 4 DEMO1   READ WRITE NO

SQL> 

SQL> alter pluggable database demo1 close immediate;


Pluggable database altered.


SQL> show pdbs


    CON_ID CON_NAME   OPEN MODE  RESTRICTED

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

 2 PDB$SEED   READ ONLY  NO

 3 PDB   READ WRITE NO

 4 DEMO1   MOUNTED

SQL> drop pluggable database demo1 including datafiles;


Pluggable database dropped.


SQL> show pdbs


    CON_ID CON_NAME   OPEN MODE  RESTRICTED

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

 2 PDB$SEED   READ ONLY  NO

 3 PDB   READ WRITE NO

SQL> 

How to check and list pluggable database in oracle ?

 


SQL> 

SQL> select name from v$pdbs;


NAME

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

PDB$SEED

PDB


SQL> 




SQL> select pdb_name from cdb_pdbs;


PDB_NAME

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

PDB

PDB$SEED





SQL> 

SQL> show pdbs


    CON_ID CON_NAME   OPEN MODE  RESTRICTED

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

2 PDB$SEED   READ ONLY  NO

3 PDB   READ WRITE NO

SQL> 

SQL>