To create the external table in oracle database follow the below steps.
(Note: Here we are creating external table for monitoring the OS space information considering OS is UNIX flavored)
SQL> create directory Directory_Name as '/usr/tmp'
SQL> CREATE TABLE server_space
(
FILESYSTEM VARCHAR2(100),
TOTAL_GB VARCHAR2(10),
USED_GB VARCHAR2(10),
FREE_GB VARCHAR2(10),
USED_SPACE VARCHAR2(10),
MOUNTED_ON VARCHAR2(100)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY Directory_Name
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE
NOBADFILE
NODISCARDFILE
NOLOGFILE
SKIP 0
FIELDS TERMINATED BY WHITESPACE
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
(
FILESYSTEM CHAR,
TOTAL_GB CHAR,
USED_GB CHAR,
FREE_GB CHAR,
USED_SPACE CHAR,
MOUNTED_ON CHAR
)
)
LOCATION (ALERT_LOG_DIR:'server.txt')
)REJECT LIMIT UNLIMITED
Schedule the below line using crontab
df -h |grep -v Filesystem|awk '{print $1" "$2" "$3" "$4" "$5" "$6}' >/usr/tmp/server.txt
Now you can do the server side space monitoring without login to server.
SQL>select * from server_space;
No comments:
Post a Comment