Saturday, July 31, 2010
Monday, July 26, 2010
Auditing Table Data using Trigger
Create New User in Oracle
CREATE User <UserName> IDENTIFIED BY <Passsword>;
Grant User necessary privileges
GRANT CREATE session TO <username>;
GRANT CREATE TABLE TO <username>;
GRANT CREATE TRIGGER TO <username>;
ALTER USER <username> QUOTA UNLIMITED ON <TablespaceName>
Create a Transactional Table
CREATE TABLE AD_DURATIONS
(
Ad_Duration_Cn Varchar2(10 Byte) Not Null Enable,
Ad_Start_Date Date Not Null Enable,
Ad_End_Date Date Not Null Enable,
Modified_By Varchar2(10 Byte),
Modified_Date Date Default Sysdate,
Constraint CJ_AD_DURATIONS_PK Primary Key (AD_DURATION_CN)
);
Insert value in the AD_DURATIONS Table
Insert Into Ad_Durations (Ad_Duration_Cn, Ad_Start_Date,
Ad_End_Date, Modified_By)
Values ('10001', To_Date('26-JUL-10', 'DD-MON-RR'),
To_Date('30-JUL-10', 'DD-MON-RR'), 'Tamim');
Insert Into Ad_Durations (Ad_Duration_Cn, Ad_Start_Date,
Ad_End_Date, Modified_By)
Values ('10002', To_Date('31-JUL-10', 'DD-MON-RR'),
To_Date('05-Aug-10', 'DD-MON-RR'), 'Khan');
Create a Log Table for AD_DURATIONS Data
Here Modified_By, Modified_Date and Action is Audit Column.
CREATE TABLE AD_DURATIONS_LOG
(
Ad_Duration_Cn Varchar2(10 Byte),
Ad_Start_Date Date,
Ad_End_Date Date,
Modified_By Varchar2(20 Byte),
Modified_Date Timestamp (6),
Action Varchar2(20 Byte)
);
Create a Trigger on AD_DURATIONS table
Create Or Replace TRIGGER AD_DURATIONS_LOG
AFTER DELETE OR UPDATE ON AD_DURATIONS
FOR EACH ROW
Begin
If Updating Then
Insert Into Ad_Durations_Log(Ad_Duration_Cn, Ad_Start_Date,
Ad_End_Date, Modified_By,Modified_Date,Action)
Values (:Old.Ad_Duration_Cn, :Old.Ad_Start_Date,:Old.Ad_End_Date,
:Old.Modified_By,:Old.Modified_Date,'Update');
Elsif Deleting Then
Insert Into Ad_Durations_Log(Ad_Duration_Cn, Ad_Start_Date,
Ad_End_Date, Modified_By,Modified_Date,Action)
Values (:Old.Ad_Duration_Cn, :Old.Ad_Start_Date, :Old.Ad_End_Date,
:Old.Modified_By,:Old.Modified_Date,'Delete');
End If;
END;
Update on AD_DURATIONS Table
Update Ad_Durations
Set Ad_End_Date = To_Date('31-JUL-10', 'DD-MON-RR')
Where Ad_Duration_Cn = 10001;
Update from AD_DURATIONS Table
Delete From Ad_Durations
Where Ad_Duration_Cn = 10002;
Now Selecting data from AD_DURATIONS_LOG Table.
Select * From Ad_Durations_Log;
Sunday, July 11, 2010
CONTROLFILE AUTO BACKUP
RMAN is one of the very useful utility provided by Oracle for backup and recovery Purpose. Oracle online backups were introduced with Version 6, where tablespace must be kept in backup mode in order to take online backups.
RMAN has following default parameters and its default values:
By default CONTROLFILE AUTOBACKUP is OFF. But it is strongly recommended enabling CONTROLFILE AUTOBACKUP ON.
To perform control file auto backup on issue the following command
RMAN has following default parameters and its default values:
RMAN> show all;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'F:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\S
NCFORCL.ORA'; # default
Or
RMAN> SHOW CONTROLFILE AUTOBACKUP;
RMAN configuration parameters are:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
By default CONTROLFILE AUTOBACKUP is OFF. But it is strongly recommended enabling CONTROLFILE AUTOBACKUP ON.
Advantage:
- RMAN can recover the database even if the current control file, recovery catalog, and server parameter file are inaccessible.
- Restore the RMAN repository contained in the control file when the control file is lost and you have no recovery catalog. You do not need a recovery catalog or target database control file to restore the control file auto backup.
- Control file auto backup can keep track of add a data file, resize, increase/decrease the size of data files or etc.
- If CONFIGURE CONTROLFILE AUTOBACKUP is ON, then RMAN automatically backs up the control file and the current server parameter file (if used to start up the database) in one of two circumstances: when a successful backup must be recorded in the RMAN repository, and when a structural change to the database affects the contents of the control file which therefore must be backed up
To perform control file auto backup on issue the following command
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
starting full resync of recovery catalog
full resync complete
Subscribe to:
Posts (Atom)