Hello everyone,
This is my first post on the oracle blogs section!
I really hope the posts I will publish here help some of you to have a more dynamic and comfortable work.
This time I'm publishing a simple KSH script that can allow you to apply a single command or a SQL script to all running databases in a single host.
Now let's explain each part:
- Functions
- Utility Functions: refer to this post to check the utility functions I normally use.
- You'll see debugPrint and msgPrint in most of my shell scripts. Those are used to give a nice format to the message I'm sending to the console/log.
- Crawl
- This is the main function that receives the command/sql file to be run in every instance.
- Utility Functions: refer to this post to check the utility functions I normally use.
- Main Algorythm
- for DBNAME in $(ps -ef | grep pmon | cut -d"_" -s -f3 | grep -v ASM)
- Here, we cycle through all the running instances in the host. Looking for pmon processes and getting only the INSTANCE name from it.
- crawl "@${2}"
- In the SQL script mode see how the argument passed to the crawl function is appended to the @ sign, so that we don't have to check for it when running inside the function.
- In the SQL script mode see how the argument passed to the crawl function is appended to the @ sign, so that we don't have to check for it when running inside the function.
- crawl "${2}"
- In the command mode we pass the argument inside double quotes so that it is considered a single argument by the function while running.
- for DBNAME in $(ps -ef | grep pmon | cut -d"_" -s -f3 | grep -v ASM)
With some light modifications, we can get this same schema to work with any of the command line utilities from Oracle. But that's a future project of mine. I will try to add support for RMAN in the next few months as my work allows me to.
Hope that some of you find this post useful.
No comments:
Post a Comment