Oracle7-style backups with awk. Lately, this script seems to work better with
Brian Kernighan's "One True Awk" than it does with the GNU version.
Oracle7-style backups, generated directly from sqlplus (pl/sql). Resulting
script must be under a megabyte.
Linux startup/shutdown script for your Oracle database(s). In the filename of
the script, replace "orcl" with the name of the SID that you would like to
control.
Make hard/soft links with different names to control different SIDs, all using
the same physical script. Assumes that your database SIDs and home directories
are documented in /etc/oratab. When shutting down a database, the script will
kill all database connections that are marked with LOCAL=NO, so the PMON
does not cause shutdown delays. Should be run as root.
DDL extractor (Korn shell script).
Useful for moving tables with LONG columns
(or moving any tables at all in v7, which lacks "ALTER TABLE MOVE").
Uses import/export to get table and index definitions,
then SQL to get grants, triggers, and comments. It will not extract views
(as they are not dropped when the table is dropped), and it will not disable
any foreign key constraints. Best if the script is saved as "ADDLE" (for
clarity of directory listings).
Utility (requires ksh93) for concealing passwords from ps -ef reports.
Extracts the list of Oracle users from DBA_USERS, and attempts to login to
each account using a password specified at runtime. If no password is
specified, it attempts to login with a password that is the same as the
username.
Generic script for sending electronic mail with gawk. Reads input file
with email addresses in the first field. Several parameters in the script should
be changed (SMTP server, local host name, FROM: address, message subject,
message body, etc.). Requires (working) gawk network extensions.
Oracle alert log scanner. Brute force approach, written in awk. Requires the
gnu date utility. Details in the script.
Revised alert log scanner, using GNU AWK's time extensions. Slightly different
syntax.
Shrink all your rollback segments.
List all datafiles for tablespaces that are over 90% full.
Get the banner messages for telnet, mail, ftp, and ssh for a collection of
hosts, which can be useful
for a cursory network security scan. In general, banner messages should
be modified to remove version number information. OS "fingerprinting" under the
nmap utility might also be useful for network OS profiles.
An interesting list of hosts
in an Oracle environment can be obtained from an "Onames" server with:
namesctl dump_tnsnames list.txt
Remove the hostnames from the output and call the script thus (STDERR is noisy
and is ignored below):
/path/to/bannerscan.bash < hostlist.txt 2>/dev/null
Create an 8i database using LMTs for everything (including rollback).
This script must be edited (change SID, datafile locations). The init.ora
must also have "compatible = 8.1.0" to use these features.
Create a 9i database.
This script must be edited (change SID, datafile locations). The init.ora
must also have UNDO settings
in place (undo_management=auto, undo_tablespace=undo,
undo_retention=86400), and the "compatible" parameter
must be set to at least "9.0.0"
("9.2.0" may be a better choice).
This has all the features of the 9i creation script above, plus it creates
the new, mandatory SYSAUX tablespace.
This script applies archived logs to a standby server only after they are
12 hours old, then moves the used log to a separate directory.
Allows you to "alter standby database open read only" and examine your data
from 12 hours in the past (which is useful if you cannot flashback because
you aren't using UNDO). The logs must be in chronological order - if a
log is transfered without preserving the file modification time, the script
will not apply it properly, requiring manual intervention.
Helpful security steps, gained from past exposure to audits and automated
security scanners.
Oracle's to_number function returns ORA-01722: invalid number upon finding
non-numeric characters in a string. This function will return NULL when
such characters are found, and otherwise will perform the to_number.
Convert FLAC files to mp3 format. This assumes that you have all album tracks
with no gaps.
For DOS/Windows users, make sure the paths
to the flac and lame binaries are correct, then pipe a sorted list of the FLAC
files to the script, like so:
dir /b *.flac | gawk -f flac2mp3.awk "Name of Artist" "Title of Album"