ORA-01078/ LRM-00123: Troubleshoot Junk Characters in Oracle Initialization File

So many times we stuck into situation where we were helpless to start database instance using simple oracle text initialization file for auxiliary instance or some test instance. Usually this is very common whenever we copy the sample or source parameter file from some html or formatted document editor, which allow Unicode text. Frustrating thing is that even after checking test file on normal vi editor or notepad couple of time will also not allow to get rid of that mess-up in parameter file. In this situation there are multiple ways to fix the issue.

  • Copy the content into notepad and then copy back to the unix console to see if it help. Focus on special characters like , ,,etc . Autosuggest options of smart word editors usually convert actual characters into these formatted charters. As soon as you copy the full parameter file content in to notepad or any other low end text editor it’s not that difficult to manually correct it until unless the size of configuration file is large.

 

  • Other way is to use od (Octal Dump), a very old utility of unix OS.

 

Today we will demonstrate the troubleshooting of junc character by using od as well as conventional method.

 

Here we have created two text parameter files and one with ‘   instead of  ‘ ‘

[oracle@maskmt11g.lgk.nmk] ls -lrt initMASK*

-rw-r–r– 1 oracle oinstall 912 May 6 16:46 initMASK11G.ora_correct

-rw-r–r– 1 oracle oinstall 916 May 6 16:54 initMASK11G.ora

[oracle@maskmt11g.lgk.nmk] diff initMASK11G.ora_correct initMASK11G.ora

17c17

< *.db_name=mask11g


> *.db_name=mask11g

 

Let’s try to start instance using this corrupted parameter file.

SQL> startup nomount pfile=’/home/oracle/initMASK11G.ora’

LRM-00123: invalid character 128 found in the input file

ORA-01078: failure in processing system parameters

 

And what do these errors mean to us.

[oracle@maskmt11g.lgk.nmk] oerr LRM 123

123, 0, “invalid character %u found in the input file”

// *Cause: A character that is invalid was found in the input file.

// *Action: Specify an input file that contains only valid characters.

[oracle@maskmt11g.lgk.nmk] oerr ORA 1078

01078, 00000, “failure in processing system parameters”

// *Cause: Failure during processing of INIT.ORA parameters during

// system startup.

// *Action: Further diagnostic information should be in the error stack.

 

Now if we open that corrupted file in Notepad++

And in notepad

 

So by observing the content of file we could see the difference but it’s sometimes tough during long working hours when you continuously watching computer screen then that minute difference between ‘ ‘ and ‘ ‘ in a properly populated parameter or configuration file will looks like twins. So chances are there to miss that difference or delay will cost you some time and add stress as well.

Now let’s give a shot to od:

[oracle@maskmt11g.lgk.nmk] od -c initMASK11G.ora > od_corrupt.out

[oracle@maskmt11g.lgk.nmk] od -c initMASK11G.ora_correct > od.correct.out

 

Let’s compare the output files:

[oracle@maskmt11g.lgk.nmk] diff od.correct.out od_corrupt.out

39,58c39,59

< 0001140 * . d b _ n a m e = ‘ m a s k 1

< 0001160 1 g ‘ \n * . d i a g n o s t i c

< 0001200 _ d e s t = ‘ / u 0 2 / a p p /

< 0001220 o r a c l e ‘ \n * . d i s p a t

< 0001240 c h e r s = ‘ ( P R O T O C O L

< 0001260 = T C P ) ( S E R V I C E = m

< 0001300 a s k 1 1 g X D B ) ‘ \n * . m e

< 0001320 m o r y _ t a r g e t = 9 4 3 7

< 0001340 1 8 4 0 0 \n * . o p e n _ c u r

< 0001360 s o r s = 3 0 0 \n * . p r o c e

< 0001400 s s e s = 5 0 0 \n * . r e m o t

< 0001420 e _ l o g i n _ p a s s w o r d

< 0001440 f i l e = ‘ E X C L U S I V E ‘

< 0001460 \n * . s e r v i c e _ n a m e s

< 0001500 = ‘ m a s k 1 1 g . l g k . n m

< 0001520 k , m a s k _ o w c . l g k . n

< 0001540 m k ‘ \n * . s e s s i o n s = 5

< 0001560 5 5 \n * . u n d o _ t a b l e s

< 0001600 p a c e = ‘ U N D O T B S 1 ‘ \n

< 0001620


> 0001140 * . d b _ n a m e = 342 200 230 m a s

> 0001160 k 1 1 g 342 200 231 \n * . d i a g n o

> 0001200 s t i c _ d e s t = ‘ / u 0 2 /

> 0001220 a p p / o r a c l e ‘ \n * . d i

> 0001240 s p a t c h e r s = ‘ ( P R O T

> 0001260 O C O L = T C P ) ( S E R V I

> 0001300 C E = m a s k 1 1 g X D B ) ‘ \n

> 0001320 * . m e m o r y _ t a r g e t =

> 0001340 9 4 3 7 1 8 4 0 0 \n * . o p e n

> 0001360 _ c u r s o r s = 3 0 0 \n * . p

> 0001400 r o c e s s e s = 5 0 0 \n * . r

> 0001420 e m o t e _ l o g i n _ p a s s

> 0001440 w o r d f i l e = ‘ E X C L U S

> 0001460 I V E ‘ \n * . s e r v i c e _ n

> 0001500 a m e s = ‘ m a s k 1 1 g . l g

> 0001520 k . n m k , m a s k _ o w c . l

> 0001540 g k . n m k ‘ \n * . s e s s i o

> 0001560 n s = 5 5 5 \n * . u n d o _ t a

> 0001600 b l e s p a c e = ‘ U N D O T B

> 0001620 S 1 ‘ \n

> 0001624

 

Here is the screenshot of terminal where it’s hard to detect the difference. Only our odd friends are listed as three digit triplets while you will see single digit for almost all other characters.

 

Thanks for reading the article; I’ll appraise your thoughts/amendments/suggestions to improve my work.

One Response to ORA-01078/ LRM-00123: Troubleshoot Junk Characters in Oracle Initialization File

  1. Denis Tikhonov says:

    I got same error with ASM. Couldn’t find any traces of it in MOS, but your article gave me a clue 🙂

    $ asmcmd
    KFOD-00101: LRM error [123] while parsing command line arguments
    Connected to an idle instance.

    The reason was a bogus init+ASM.ora which was apparently a copy of spfile ))
    $ ls -la
    -rw-r—–. 1 oracle oinstall 1536 Oct 16 2021 init+ASM.ora
    -rw-r—–. 1 oracle oinstall 1536 Oct 16 2021 spfile+ASM.ora

Share Your Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Frits Hoogland Weblog

IT Technology; Yugabyte, Postgres, Oracle, linux, TCP/IP and other stuff I find interesting

flashdba

Database Performance in the Cloud

Future Veterans

Ramblings about data

Ranjeet Srivastava

Smile! You’re at the best blog ever

Kevin Closson's Blog: Platforms, Databases and Storage

Platform, Database and Storage Topics

Real Life Database / SQL Experiences : An Oracle Blog from Vivek Sharma

Being an Oracle Professional, I like to share all my Real Life Performance Tuning Challenges and Experiences. The Content and Views on this site are my own and not necessarily those of Oracle. While, I write on my real life experiences, the resolutions mentioned are solely mine. Comments / Criticisms are always a welcome.

OraStory

Dominic Brooks on Oracle Performance, Tuning, Data Quality & Sensible Design ... (Now with added Sets Appeal)

ASM Support Guy

Just Another Crazy Oracle DBA

Exadata Certification

Just Another Crazy Oracle DBA

Carlos Sierra's Tools and Tips

Tools and Tips for Oracle Performance and SQL Tuning

Sangram keshari's

Database Engineering and Programming Blog

Amit Saraswat

Just Another Crazy Oracle DBA

Oracle Scratchpad

Just another Oracle weblog

The Tom Kyte Blog

Just Another Crazy Oracle DBA

Hemant's Oracle DBA Blog

Just Another Crazy Oracle DBA

Pickleball spielen

002 - License to dink

Richard Foote's Oracle Blog

Focusing Specifically On Oracle Indexes, Database Administration and Some Great Music