Friday, November 29, 2024

.::: Enable Change Data Capture (CDC) Oracle Database using TRIGGER :::.


Berikut adalah langkah-langkah untuk mengaktifkan Change Data Capture (CDC) di Oracle menggunakan Trigger, termasuk contoh tabel, isi tabel, dan implementasi trigger untuk melacak perubahan data:

1. Membuat Tabel Sumber

Tabel ini adalah tabel utama tempat data disimpan, dan perubahan pada tabel ini akan dilacak.

CREATE TABLE EMPLOYEES (
    EMP_ID NUMBER PRIMARY KEY,
    EMP_NAME VARCHAR2(50),
    DEPARTMENT_ID NUMBER,
    SALARY NUMBER
);
 

.::: Enable Oracle 19C Unified Auditing or Oracle Audit like SQL Audit, MariaDB Audit, pgaudit & disable Permanent :::.

 
Unified Auditing in Oracle Database 19c is a security feature designed to streamline and enhance auditing capabilities by consolidating all types of audits (traditional and unified) into a centralized and efficient architecture. This approach simplifies audit management, storage, and analysis

A. Setup Oracle Audit

1. Check Unified Auditing

SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';

2. Activate Unified Auditing

SHUTDOWN IMMEDIATE;

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk uniaud_on ioracle

startup

or

/etc/ini.d/dboracle start
 

Tuesday, November 26, 2024

.::: Check user, priviledge & how to copy user to another server in Oracle Database :::.

 


1. Sample user aisyah

SELECT * FROM DBA_USERS WHERE USERNAME = 'AISYAH';
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'AISYAH';
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'AISYAH';
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'AISYAH';
SELECT * FROM DBA_TS_QUOTAS WHERE USERNAME = 'AISYAH';
 
 

Wednesday, November 20, 2024

.::: Allow user oracle access to another user /schema :::.


Agar user aisyah dapat mengakses semua objek dalam schema adminx dengan hak istimewa yang sama seperti yang dimiliki adminx, Anda perlu memberikan akses eksplisit untuk semua objek, atau Anda bisa memberikan peran penuh pada schema tersebut. Berikut langkah-langkahnya:

1. Berikan Hak Akses untuk Seluruh Objek Schema adminx
Gunakan perintah GRANT untuk memberikan akses ke semua objek milik adminx kepada aisyah.

SELECT 'GRANT ALL ON ADMIN.' || object_name || ' TO AISYAH' AS grant_command
FROM all_objects
WHERE owner = 'ADMIN' AND object_type IN ('TABLE', 'VIEW', 'SEQUENCE', 'PROCEDURE', 'FUNCTION')

 

Tuesday, November 19, 2024

.::: Create user Oracle Database 19C & Priviledge admin & specific table :::


1. create user & priviledge admin

CREATE USER admin IDENTIFIED BY oracle;
GRANT CONNECT, RESOURCE,oem_monitor TO admin;
ALTER USER admin QUOTA UNLIMITED ON USERS;

-- Membuat user admin dengan password oracle
CREATE USER admin IDENTIFIED BY oracle;

-- Memberikan hak akses dasar kepada user admin
GRANT CONNECT, RESOURCE,oem_monitor TO admin;

-- Memberikan hak akses untuk melakukan administrasi
GRANT CREATE SESSION TO admin;
GRANT UNLIMITED TABLESPACE TO admin;
GRANT DBA TO admin;

-- Memberikan hak akses untuk membaca data dictionary (opsional)
GRANT SELECT ANY DICTIONARY TO admin;

 

.::: Drop table default MB_, MD_, MIGR_ in Oracle Database & cleansing RECYCLEBIN :::.

 


1. Check table
SELECT *
FROM user_tables
WHERE table_name LIKE 'MB_%' OR table_name LIKE 'MIGR_%' OR table_name LIKE 'MD_%';

 


2. create script drop table by filter MB_ &  MIGR
_
SELECT 'DROP TABLE ' || table_name || ' CASCADE CONSTRAINTS;' AS drop_command
FROM user_tables
WHERE table_name LIKE 'MB_%' OR table_name LIKE 'MIGR_%';

Monday, November 18, 2024

.::: Simulation Deadlocks MariaDB MySQL :::

 


1. create table & insert
CREATE TABLE clients (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    balance DECIMAL(10, 2)
);

-- Memasukkan data awal ke tabel 'clients'
INSERT INTO clients (id, name, balance) VALUES
(1, 'John', 50),
(2, 'Alice', 150);


2. Memulai transaksi terminal 1
START TRANSACTION;

-- Melakukan update pada saldo (balance) untuk id = 1
UPDATE clients SET balance = balance + 50 WHERE id = 1;

Friday, November 15, 2024

.:: Extract backup mysqldump to convert only table specify in PostgreSQL EDB :::.


A. Extract backup from file backup

1. Backup full database
pg_dump teguhth  > teguhth_singledb.sql

2. extract table only specific table (example barang)

---yang benar
sed -n '/-- Name: barang; Type: TABLE; Schema: public; Owner: postgres/,/ALTER TABLE public.barang OWNER TO postgres;/p' teguhth_singledb.sql > barang_filtered.sql

sed -n '/-- Name: barang barang_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres/,/);/p' teguhth_singledb.sql >> barang_filtered.sql

sed -n '/-- Data for Name: barang; Type: TABLE DATA; Schema: public; Owner: postgres/,/\\\./p' teguhth_singledb.sql >> barang_filtered.sql

.:: Extract backup mysqldump to convert only table specify (Sample Pembelian) in MySQL MariaDB :::.

A. Extract backup from file backup

1. Backup full database

mysqldump -u root -p teguhth  > table_teguhth.sql ;

2. extract table only specific table (example barang)

sed -n -e '/DROP TABLE.*`barang`/,/UNLOCK TABLES/p' table_teguhth.sql > /data/pertable/barang_only.sql

Wednesday, November 13, 2024

.::: How to Sample Simulation Deadlock Oracle Database & Trouble shoot & check running query process :::.


Untuk mensimulasikan deadlock di tabel locking_test di Oracle, kita perlu menjalankan dua sesi (dua transaksi) secara bersamaan, di mana setiap sesi saling mengunci resources (baris) yang akan diakses oleh sesi lainnya.

Berikut adalah langkah-langkah simulasi deadlock di Oracle menggunakan tabel locking_test:

Langkah 1: Buat Tabel dan Data
Jalankan skrip ini terlebih dahulu untuk membuat tabel dan menambahkan data awal:


CREATE TABLE locking_test (
    id NUMBER PRIMARY KEY,
    data VARCHAR2(50)
);

INSERT INTO locking_test (id, data) VALUES (1, 'Initial Data');
INSERT INTO locking_test (id, data) VALUES (2, 'Second Data');
COMMIT;

Monday, November 11, 2024

.::: How to Sample Simulation Blocking Locking Oracle Database & Trouble shoot & check running query process :::.

 
1. create table sample


CREATE TABLE locking_test (
    id NUMBER PRIMARY KEY,
    data VARCHAR2(50)
);

INSERT INTO locking_test (id, data) VALUES (1, 'Initial Data');
commit;

2. open 2 or 3 terminal

Buka Dua Sesi di SQL*Plus atau Alat Lainnya
Anda perlu dua sesi terpisah (misalnya, di SQL*Plus atau alat database lain seperti SQL Developer) untuk mensimulasikan locking. Sesi 1 akan melakukan UPDATE tanpa melakukan COMMIT atau ROLLBACK, sehingga menahan lock di baris tersebut. Sesi 2 akan mencoba melakukan operasi yang sama dan akan mengalami blocking sampai lock dilepas.

Wednesday, November 6, 2024

.::: Install Oracle 12C in Centos 8 :::.

 1. Update Sistem <optional>

sudo dnf update -y

2. Install package

sudo dnf install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat

3. Create user & Group

sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba oracle
sudo passwd oracle

Popular Posts