Showing posts with label Archive Log. Show all posts
Showing posts with label Archive Log. Show all posts

ORA-19905: log_archive_format must contain %s, %t and %r

ORA-19905:- this error generate due to incorrect Archive log format in oracle Release 12.1.0.0.1.0.

Problem:-
 SQL> startup;
 ORA-19905: log_archive_format must contain %s, %t and %r

 SQL> startup mount;
 ORA-19905: log_archive_format must contain %s, %t and %r

Solution:
Also solution is given in metalink note 283507.1

  - create pfile from spfile using below command

 SQL> create pfile from spfile;

 File created.

 - got to oracle pfile location and edit the 'log_archive_format' parameter

 [oracle@dns1 prmdb]$ cd /u01/app/oracle/product/12.1.0.0/db_1/dbs/

 [oracle@dns1 dbs]$ vi  initprmdb.ora

 -----------------before update----------------------------------

 prmdb.__db_cache_size=1979711488
 prmdb.__java_pool_size=16777216
 prmdb.__large_pool_size=16777216
 prmdb.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
 prmdb.__pga_aggregate_target=2097152000
 prmdb.__sga_target=3154116608
 prmdb.__shared_io_pool_size=0
 prmdb.__shared_pool_size=1073741824
 prmdb.__streams_pool_size=33554432
 *.audit_file_dest='/u01/app/oracle/admin/prmdb/adump'
 *.audit_trail='db'
 *.compatible='12.1.0.0.0.0'
 *.control_files='/u01/app/oracle/oradata/prmdb/control01.ctl','/u01/app/oracle/oradata/prmdb/control02.ctl'
 *.cursor_sharing='FORCE'
 *.db_block_size=8192
 *.db_domain=''
 *.db_name='prmdb'
 *.diagnostic_dest='/u01/app/oracle'
 *.dispatchers='(PROTOCOL=TCP) (SERVICE=prmdbXDB)'
*.log_archive_dest_1='LOCATION=/u01/Archive'
*.log_archive_format='arch_%t_%s'
 *.memory_max_target=0
 *.memory_target=0
 *.open_cursors=1500
 *.pga_aggregate_target=2097152000
 *.processes=1000
 *.remote_login_passwordfile='EXCLUSIVE'
 *.session_cached_cursors=1000
 *.sga_target=3154116608
 *.timed_statistics=TRUE
 *.undo_tablespace='UNDOTBS1'

--------------------After update------------------------------------
 prmdb.__db_cache_size=1979711488
 prmdb.__java_pool_size=16777216
 prmdb.__large_pool_size=16777216
 prmdb.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
 prmdb.__pga_aggregate_target=2097152000
 prmdb.__sga_target=3154116608
 prmdb.__shared_io_pool_size=0
 prmdb.__shared_pool_size=1073741824
 prmdb.__streams_pool_size=33554432
 *.audit_file_dest='/u01/app/oracle/admin/prmdb/adump'
 *.audit_trail='db'
 *.compatible='12.1.0.0.0.0'
 *.control_files='/u01/app/oracle/oradata/prmdb/control01.ctl','/u01/app/oracle/oradata/prmdb/control02.ctl'
 *.cursor_sharing='FORCE'
 *.db_block_size=8192
 *.db_domain=''
 *.db_name='prmdb'
 *.diagnostic_dest='/u01/app/oracle'
 *.dispatchers='(PROTOCOL=TCP) (SERVICE=prmdbXDB)'
*.log_archive_dest_1='LOCATION=/u01/Archive'
*.log_archive_format='arch_%r_%t_%s'
 *.memory_max_target=0
 *.memory_target=0
 *.open_cursors=1500
 *.pga_aggregate_target=2097152000
 *.processes=1000
 *.remote_login_passwordfile='EXCLUSIVE'
 *.session_cached_cursors=1000
 *.sga_target=3154116608
 *.timed_statistics=TRUE
 *.undo_tablespace='UNDOTBS1'

 [oracle@dns1 dbs]$ sqlplus

 SQL*Plus: Release 12.1.0.0.1.0 Production on Mon Mar 3 01:32:10 2014

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

 Enter user-name: /as sysdba
 Connected to an idle instance.

SQL>create spfile from pfile;
File created.

 SQL> startup
 ORACLE instance started.

 Total System Global Area 5261217792 bytes
 Fixed Size                  2222560 bytes
 Variable Size            3271558688 bytes
 Database Buffers         1979711488 bytes
 Redo Buffers                7725056 bytes
 Database mounted.
 Database opened.

 SQL> archive log list;
 Database log mode              Archive Mode
 Automatic archival             Enabled
 Archive destination            /u01/Archive
 Oldest online log sequence     760
 Next log sequence to archive   762
 Current log sequence           762

 SQL> alter system switch logfile;
 System altered.

 SQL> /
 System altered.

 SQL> archive log list;
 Database log mode              Archive Mode
 Automatic archival             Enabled
 Archive destination            /u01/Archive

How does one backup archived log files

One can backup archived log files using RMAN or any operating system backup utility. 

Remember to delete files after backing them up to prevent archive log directory from filling up. If the archive log directory becomes full, your database will hang!

Look at this simple RMAN backup script

RMAN> run {
Allocate channel dev1 type disk;
Backup Format '/app/oracle/arch_backup/log_t%t_s%s_p%p'
(Archive log all delete input);
Release channel dev1;

How does one put a database into ARCHIVE LOG mode

The main reason for running database in archive log mode is that one can provide 24 hour availability and guarantee complete data recovery

It is also necessary to enable ARCHIVELOG mode before one can start to use online database backups.
To enable ARCHIVELOG mode, simply change your database startup command script and bounce the database

SQL> connect sys as sysdba
SQL> shutdown immediate;
SQL> startup mount exclusive;
SQL> alter database archivelog;
SQL> archive log start;
SQL> alter database open;

NOTE1: Remember to take a baseline database backup right after enabling archive log mode. Without it one would not be able to recover. Also, implement an archive log backup to prevent the archive log directory from filling – up.
NOTE2: ARCHIVE LOG mode was introduced with Oracle Version 6 and is essential for database point – in – time recovery. Archiving can be used in combination with online and offline database backups.
NOTE3: You may want to set the following INIT.ORA parameters when enabling ARCHIVELOG mode: log_archive_start=TRUE, 
log_archive_dest=... and 
log_archive_format=...
NOTE4: You can change archive log destination of a database online with ARCHIVE LOG START TO 'directory' statement. This statement is often used to switch archiving between a set of directories.
NOTE5: When running Oracle Real Application Server (RAC), you need to shut down all nodes before changing the database to Archive Log mode.

How to fix: ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

Open your terminal and type mysql -u root -p Enter your password. Hopefully your MySQL is logged in now.