1. Create a Databae Directory
create or replace directory DATA_PUMP_DIR as '/oracle/app/admin/e2edb/dpdump/'
2. Make Script
cd /oracle/app/admin/e2edb/dpdump/
vi run_df.sh
#/bin/bash
/bin/df -Pl
chmod 775 run_df.sh
3. Create External Table
CREATE TABLE df
(
"FILESYSTEM" VARCHAR2(100),
"BLOCKS" NUMBER,
"USED" NUMBER,
"AVAILABLE" NUMBER,
"CAPACITY" VARCHAR2(10),
"MOUNT" VARCHAR2(100)
)
ORGANIZATION external
(
TYPE oracle_loader
DEFAULT DIRECTORY DATA_PUMP_DIR
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
preprocessor DATA_PUMP_DIR:'run_df.sh'
READSIZE 1048576
SKIP 1
FIELDS TERMINATED BY WHITESPACE LDRTRIM
REJECT ROWS WITH ALL NULL FIELDS
(
"FILESYSTEM" CHAR(255)
TERMINATED BY WHITESPACE,
"BLOCKS" CHAR(255)
TERMINATED BY WHITESPACE,
"USED" CHAR(255)
TERMINATED BY WHITESPACE,
"AVAILABLE" CHAR(255)
TERMINATED BY WHITESPACE,
"CAPACITY" CHAR(255)
TERMINATED BY WHITESPACE,
"MOUNT" CHAR(255)
TERMINATED BY WHITESPACE
)
)
location
(
DATA_PUMP_DIR:'run_df.sh'
)
)
/
alter table df reject limit unlimited;
4. Check Functionality
select * from df;
5. Create View
create or replace view dfv as
select Mount,blocks/1024/1024 as "Allocated_GB",available/1024/1024 as "Free_GB",Used/1024/1024 as "Total_Used",capacity as "%Used"from df order by 5 desc
select * from dfv
For AIX
1. Create a Databae Directory
create or replace directory DATA_PUMP_DIR as '/oracle/11.2.0/admin/treasury/dpdump/'
2. Make Script
cd /oracle/11.2.0/admin/treasury/dpdump/
vi run_df.sh
#/bin/bash
/bin/df -k
chmod 775 run_df.sh
3. Create External Table
CREATE TABLE df
(
"FILESYSTEM" VARCHAR2(100),
"GB blocks" NUMBER,
"Free" NUMBER,
"%Used" VARCHAR2(1000),
"Iused" VARCHAR2(10),
"%Iused" VARCHAR2(100),
"Mounted on" VARCHAR2(1000)
)
ORGANIZATION external
(
TYPE oracle_loader
DEFAULT DIRECTORY DATA_PUMP_DIR
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
preprocessor DATA_PUMP_DIR:'run_df.sh'
READSIZE 1048576
SKIP 1
FIELDS TERMINATED BY WHITESPACE LDRTRIM
REJECT ROWS WITH ALL NULL FIELDS
(
"FILESYSTEM" CHAR(255)
TERMINATED BY WHITESPACE,
"GB blocks" CHAR(255)
TERMINATED BY WHITESPACE,
"Free" CHAR(255)
TERMINATED BY WHITESPACE,
"%Used" CHAR(255)
TERMINATED BY WHITESPACE,
"Iused" CHAR(255)
TERMINATED BY WHITESPACE,
"%Iused" CHAR(255)
TERMINATED BY WHITESPACE,
"Mounted on" CHAR(500)
TERMINATED BY WHITESPACE
)
)
location
(
DATA_PUMP_DIR:'run_df.sh'
)
)
/
alter table df reject limit unlimited;
select * from df;
create or replace view dfv as select "Mounted on" as "Mount","GB blocks"/1024/1024 as "Allocated_GB","Free"/1024/1024 as "Free_GB",("GB blocks"-"Free")/1024/1024 as "Total_Used","%Used" as "%Used" from df
order by 5 desc;
select * from dfv
Referece:
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:5088536900346242095
No comments:
Post a Comment