Removing sections from listener.ora


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Removing sections from listener.ora
# 1  
Old 10-25-2015
Wrench Removing sections from listener.ora

Hi,
I am trying to write a script or command to add/remove a section from listener.ora file

in the following example I would like:
1. to remove sid_alias2 sections
2. to add a new alias sections called sid_alias4, it can be placed after sid_alias3 sections

Code:
$ cat listener.ora

SID_LIST_LISTENER=
        (SID_LIST=
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1_DGMGRL)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1_DGB)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias2)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias2)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias2)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias2_DGMGRL)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias2)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias2_DGB)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3_DGMGRL)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3_DGB)
                )
        )


$ sed ...
$ cat listener.ora        

SID_LIST_LISTENER=
        (SID_LIST=
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1_DGMGRL)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1_DGB)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3_DGMGRL)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3_DGB)
                )
        )

$ sed ...
$ cat listener.ora

SID_LIST_LISTENER=
        (SID_LIST=
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1_DGMGRL)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1_DGB)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3_DGMGRL)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3_DGB)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias4)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias4)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias4)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias4_DGMGRL)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias4)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias4_DGB)
                )
        )

Thanks
Yossi
# 2  
Old 10-25-2015
Any attempt from your side?
# 3  
Old 10-25-2015
This is more complicated for me,
since the parsing is in the middle Smilie

---------- Post updated at 04:55 PM ---------- Previous update was at 03:47 PM ----------

I managed to partially remove rows, this way:

Code:
$ sed '/sid_alias2/,/sid_alias2/d' listener.ora
SID_LIST_LISTENER=
        (SID_LIST=
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1_DGMGRL)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias1)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias1_DGB)
                )
                (SID_DESC=
                )
                (SID_DESC=
                )
                (SID_DESC=
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3_DGMGRL)
                )
                (SID_DESC=
                        (SID_NAME=sid_alias3)
                        (ORACLE_HOME=/oracle/product/12.1.0.2/dbhome_1)
                        (GLOBAL_DBNAME=sid_alias3_DGB)
                )
        )

# 4  
Old 10-25-2015
Would it be sufficient to substitute sid_alias2 by sid_alias4:
Code:
sed 's/sid_alias2/sid_alias4/' listener.ora

?
# 5  
Old 10-25-2015
There are some scenarios
1. adding sid_alias4
2. removing exiting sid_alias2
3. replacing sid_alias2 to sid_alias4

the data in each section can contain different data (not so templated)

I think to cover all possibilities it is better to remove & add

---------- Post updated at 05:54 PM ---------- Previous update was at 05:52 PM ----------

trying unsuccessfully Smilie

Code:
$ sed -e "/(SID_DESC=\n.*sid_alias2/,/sid_alias2_DGB)\n)$/d" listener.ora

# 6  
Old 10-25-2015
If the new data to be inserted differ from the other entries, how do we know what to insert? Where do we get the data from?
# 7  
Old 10-25-2015
Thanks for you help untill now ..

The new data will use variables sent from other function/script
I tried to make it simple, the idea will be to add/remove/change the following block (in the proper location)

Code:
                (SID_DESC=
                        (SID_NAME=${sid_alias})
                        (ORACLE_HOME=${DB_HOME})
                        (GLOBAL_DBNAME=${sid_alias})
                )
                (SID_DESC=
                        (SID_NAME=${sid_alias})
                        (ORACLE_HOME=${DB_HOME1)
                        (GLOBAL_DBNAME=${sid_alias}_DGMGRL)
                )
                (SID_DESC=
                        (SID_NAME=${sid_alias})
                        (ORACLE_HOME=${DB_HOME)
                        (GLOBAL_DBNAME=${sid_alias}_DGB)

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Red Hat

Ora-27603:ora-27626:

Hi, User claim that job is running slow from their end. I DBA found in database the below errors in alert log file. ORA-27603: Cell storage I/O error, I/O failed on disk o/192.168.10.3/RECO_DM01_CD_01_drm01 at offset 13335789568 for data length 1048576 ORA-27626: Exadata error: 2201 (IO... (2 Replies)
Discussion started by: Maddy123
2 Replies

2. Shell Programming and Scripting

Removing section from tnsnames.ora

Hi, I am trying to write a script or command to remove a section from tnsnames.ora file in the following example I would like to remove tns_alias2 section $ cat tnsnames.ora tns_alias1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = host1 )(PORT = 1521)) ... (3 Replies)
Discussion started by: ynixon
3 Replies

3. Shell Programming and Scripting

Parsing Listener.ora

Anymore have any code to easily parse the listener.ora to update the ORACLE_HOME for a specific sid? thanks. (1 Reply)
Discussion started by: nugent
1 Replies

4. UNIX for Advanced & Expert Users

grep all ORA errors except one ORA error

Hi - I am trying to grep all "ORA" errors in a log files.I have to grep all ORA errors except one error for example ORA-01653.How can exclude that error in "grep" command? In following "grep" command I want to exclude "ORA-01653" error grep -i ORA alert.log >>/tmp/ora_errors.txt ... (7 Replies)
Discussion started by: Mansoor8810
7 Replies

5. Solaris

maxuprc and maxusers - ORA-27300, ORA-27301, ORA-27302

Hi all, Am intermittently getting the following errors on one of my databases. Errors in file /oracle/HRD/saptrace/background/hrd_psp0_13943.trc: ORA-27300: OS system dependent operation:fork failed with status: 12 ORA-27301: OS failure message: Not enough space ORA-27302:... (1 Reply)
Discussion started by: newbie_01
1 Replies

6. Shell Programming and Scripting

awk removing sections of a file

I have a file that looks liek this (see below). can somebody provide me with and awk or sed command that can take a piece of the file starting from the time to the blank line and put in into another file. For example: How would I get the data from 10:56:11 to the blank line. Two things: ... (5 Replies)
Discussion started by: BeefStu
5 Replies

7. UNIX for Dummies Questions & Answers

Listener port

Hi All, I'm installation a server we have client -server architecture I need to configure a port for client to communicate with the server and server to communicate with the clients Pls let me know how to configure in linux (2 Replies)
Discussion started by: gwrm
2 Replies

8. Shell Programming and Scripting

How to know the location of the listener?

Hi, I have an unknown listener of of one of my port. How would I know the location of that specific listener? (4 Replies)
Discussion started by: fif14344
4 Replies

9. Shell Programming and Scripting

Removing sections

I have a file like this %( PHASES P %) %( SOURCES (10,0.0) (13,0.0) (16,0.0) (19,0.0) (22,0.0) (25,0.0) (28,0.0) (31,0.0) (34,0.0) (37,0.0) (40,0.0) (1 Reply)
Discussion started by: kristinu
1 Replies

10. Shell Programming and Scripting

Removing sections and leaving separators intact

I have an awk script like below function abs(val) { return val > 0 ? val : -val } # 1. Main input loop, executed for each line of input BEGIN { RS = ORS = ">" } { if ( NF > 2 ) { if ( abs( $1 - $(NF-2) ) < 40 ) { print } } } The input file is something like... (2 Replies)
Discussion started by: kristinu
2 Replies
Login or Register to Ask a Question