Thứ Năm, 29 tháng 12, 2022

Cấu hình chặn DDL trong Oracle Database

Mục đích: Chặn thao tác DDL (drop table, create table, drop procedure, drop package,...) để đóng bắng trước khi migration chính thức.

Thứ Ba, 20 tháng 12, 2022

Tổng quan về Log, Syslog, Rsyslog, Log tập trung

I. Log là gì?

  • Log ghi lại liên tục các thông báo về hoạt động của cả hệ thống hoặc của các dịch vụ được triển khai trên hệ thống và file tương ứng. Log file thường là các file văn bản thông thường dưới dạng “clear text” tức là bạn có thể dễ dàng đọc được nó, vì thế có thể sử dụng các trình soạn thảo văn bản (vi, vim, nano…) hoặc các trình xem văn bản thông thường (cat, tailf, head…) là có thể xem được file log.

Thứ Tư, 14 tháng 12, 2022

[VIP5] Quản lý Index Partition từ A-Z trong Oracle Database

1.CHECK

-- Check index partition unusable cả DB

select * from dba_ind_partitions where status!='USABLE' and index_owner not in ('SYS','SYSTEM') order by index_owner, index_name;

Thứ Hai, 12 tháng 12, 2022

VACUUM FULL và REINDEX trong database PostgreSQL

Nhân tiện có bạn hỏi về REINDEX nên mình viết bài này để giải thích thêm về REINDEX và VACUUM FULL, khi nào phải thực hiện các thao tác này và cần chú ý những gì khi sử dụng chức năng này. Trong bài viết về VACUUM, mình có giải thích về chức năng và các xử lý mà VACUUM thực hiện. But chưa nói về 2 chức năng liên quan này.

VACUUM trong cơ sở dữ liệu PostgreSQL là gì?

VACUUM và chức năng autovacuum

Tại sao PostgreSQL cần VACUUM ?

  1. Dung lượng đĩa cứng có thể full
    Khác với các RDBMS khác (như MySQL), khi người dùng chạy lệnh DELETE hay UPDATE, PostgreSQL không xoá dữ liệu cũ đi luôn mà chỉ đánh dấu "đó là dữ liệu đã bị xoá".

Thứ Bảy, 3 tháng 12, 2022

Temporary Undo trong Cơ sở dữ liệu Oracle 12c

Một tính năng khá "thú vị" của các bảng global temporary (GTT) là các undo segment của chúng được lưu trữ trong undo tablespace thông thường, đồng thời nó lại được bảo vệ bằng redo entry Điều này gặp phải một số vấn đề.

[VIP5] Bí kíp truy cập SQL*Plus, DB bị treo với sqlplus -prelim

Ví dụ: nếu bạn không thể đăng nhập vào cơ sở dữ liệu do vượt quá số lượng tiến trình tối đa ORA-00020 hoặc bị treo do cao tải database, thì có khả năng bạn có thể sử dụng tùy chọn -prelim.

Load Balancing là gì? Các loại Load Balancer và lợi ích của Load Balancer

Làm thế nào để đảm bảo rằng các trang web không bị quá tải khi lượt truy cập quá nhiều cùng một lúc? Bạn lo lắng vì server chính gặp sự cố, không có server nào để thay thế và tiếp tục các tiến trình đang dang dở, dẫn đến website rơi vào tình trạng downtime, gây những tổn thất và ảnh hưởng to lớn đến trải nghiệm người dùng, doanh thu, uy tín và hiệu quả hoạt động của doanh nghiệp. Hãy xem xét việc sử dụng công nghệ hiện đại có tên là load balancing.

Định nghĩa về Load Balancing

Định nghĩa

Load balancing là một thành phần quan trọng của cơ sở hạ tầng thường được sử dụng để cải thiện hiệu suất và độ tin cậy của các trang web, các ứng dụng, cơ sở dữ liệu và các dịch vụ khác bằng cách phân phối khối lượng công việc trên nhiều máy chủ.

Các tham số liên quan đến checkpoint trong Oracle Database

Các tham số liên quan đến checkpoint gồm 4 tham số sau đây

+ LOG_CHECKPOINT_INTERVAL
+ LOG_CHECKPOINT_TIMEOUT
+ FAST_START_MTTR_TARGET
+ LOG_CHECKPOINTS_TO_ALERT

Thứ Sáu, 2 tháng 12, 2022

Thứ Hai, 28 tháng 11, 2022

CÀI ĐẶT DATAGUARD PHYSICAL STANDBY DATABASE TRÊN 2 MÁY LINUX 10g/11g/12c/

CÀI ĐẶT DATAGUARD PHYSICAL STANDBY DATABASE TRÊN 2 MÁY LINUX

 

I. GIỚI THIỆU

 

Cài đặt Dataguard đã có nhiều tài liệu của ORACLE giới thiệu. Tuy nhiên tài liệu của ORACLE đọc không phải ai lần đầu cũng làm thành công được.

 

Bài này sẽ hướng dẫn các bạn các bước STEP BY STEP cài đặt Physical Standby Database trên 2 máy linux khác nhau.

Thứ Tư, 23 tháng 11, 2022

[VIP5] Gói giám sát tự động dba_monitor cho Oracle database nhỏ

Mục đích: Gói giám sát dba_monitor  cho Oracle database nhỏ

Cấu hình thêm 1 service nữa vào listener trong Oracle Database

Mục đích: Cấu hình thêm 1 service nữa vào listener trong Oracle Database

Tạo thêm Oracle service (dich vụ) trên Listener cổng khác 1521

Mặc dù số cổng mặc định của Oracle LISTENER 1521, sau đó cơ sở dữ liệu Oracle sẽ đăng ký tên dịch vụ (servcie) trong Listener , để thay đổi cổng 1521 chúng ta có thể thay đổi cổng hoặc listerner khác, bằng cách định cấu hình tham số khởi tạo “local_listener” , trong case này tôi sẽ demo tạo một Listener port 1551

Tạo Service Naming với NETMGR trong Oracle Database 12.2

Mục đích: Tạo Service Naming với NETMGR trong Oracle Database 12.2

Mã hóa Sao lưu bằng mật khẩu trong RMAN

Mục đích: Bảo vệ dữ liệu bản backup bằng cách mã hóa dùng mật khẩu, nếu mất bản backup cũng không thể recovery ra lấy dữ liệu được.

Chặn truy cập theo IP qua listener, sql*net trong Oracle Database

Mục đích: Chặn truy cập theo IP qua listener, sql*net trong Oracle Database

Thủ tục add đĩa vào Oracle ASM Diskgroup với multipath trên Linux

----- Check WWID của các disk thêm vào -----
multipath -ll |grep 360060160a1a14e0002498b61b1acd2ae --DATA04
multipath -ll |grep 360060160a1a14e0003498b617098fc4e --DATA05
multipath -ll |grep 360060160a1a14e00db91776361a304e1 --DATA06

Thứ Hai, 21 tháng 11, 2022

Oracle Database khủng với 32TB, 246 tỷ row Oracle quản lý như thế nào?

Mục đích: Show những bảng rất lớn của các database khủng (200TB online + 800TB Offline trên Tape), đây là database RDBMS lớn nhất tại Việt Nam và top lớn nhất trên thế giới. Thế thì chúng ta sẽ quản lý như nào cho hiệu quả. Nội dung này sẽ được chia sẻ khi bạn là học viên OAZ hoặc OAZ Mastery.

- Bảng lớn nhất dung lượng 32TB, nhiều bảng khác 10-30TB,... được báo cáo tự động hàng ngày:
- Những bảng > 1 tỷ row rất nhiều, trong đó bảng lớn nhất là 246 tỷ row, cực khủng, liệu Oracle có quản lý được không, khi cần có truy xuất được không?




=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

[VIP5] Gói báo cáo tự động DBA_RP

Mục đích: Gói báo cáo tự động DBA_RP

[VIP5] Gói cảnh báo hiệu năng DBA_WN

Mục đích: Gói cảnh báo hiệu năng DBA_WN

[VIP5] Gói tự động hóa vận hành DBA_OP

Mục đích: Gói tự động hóa vận hành DBA_OP

[VIP5] Gói chụp tải định kỳ DBA_CT


Mục đích: Gói chụp tải định kỳ DBA_CT 3-5 phút 1 lần khắc phục tình trạng AWR, ASH không chụp đầy đủ để trong bất kỳ trường hợp nào có thể nhanh chóng tra cứu nguyên nhân gây tải cao, active sesion cao, sesion cao, câu lệnh SQL chiếm tải, dung lượng user tăng đột biến, dung lượng tablespace tăng đột biến,...

Chủ Nhật, 20 tháng 11, 2022

Cột RowID trong Oracle Database

Đối với mỗi row trong cơ sở dữ liệu, cột ROWID Pseudocolumn  trả về địa chỉ của row. Các giá trị rowid của Cơ sở dữ liệu Oracle chứa thông tin cần thiết để định vị một row:

  • Số đối tượng dữ liệu của đối tượng

  • Block dữ liệu trong datafile chứa row

  • Vị trí của row trong block dữ liệu (row đầu tiên là 0)

  • Datafile chứa row (tệp đầu tiên là 1). Số datafile có liên quan đến không gian bảng.

Thông thường, một giá trị rowid xác định duy nhất một row trong cơ sở dữ liệu. Tuy nhiên, các row trong các bảng khác nhau được lưu trữ cùng nhau trong cùng một cụm có thể có cùng một row.


Các giá trị của cột ROWID Pseudocolumn  có kiểu dữ liệu ROWID hoặc UROWID. Vui lòng tham khảo "Kiểu dữ liệu ROWID" "Kiểu dữ liệu UROWID" để biết thêm thông tin.

Các giá trị Rowid có một số công dụng quan trọng:

  • Chúng là cách nhanh nhất để truy cập vào một row.

  • Họ có thể chỉ cho bạn cách các row trong bảng được lưu trữ.

  • Chúng là các mã định danh duy nhất cho các row trong bảng.

Bạn không nên sử dụng ROWID làm khóa chính của bảng. Ví dụ: nếu bạn xóa và chèn lại một row bằng các tiện ích Import và Export, thì row của nó có thể thay đổi. Nếu bạn xóa một row, thì Oracle có thể gán lại row của nó cho một row mới được chèn sau.

Mặc dù bạn có thể sử dụng cột ROWID Pseudocolumn trong mệnh đề SELECT và của truy vấn, nhưng các giá trị cột giả này không thực sự được lưu trữ trong cơ sở dữ liệu. WHERE. Bạn không thể chèn, cập nhật hoặc xóa giá trị của cột ROWID Pseudocolumn.

Thí dụ 

Câu lệnh này chọn địa chỉ của tất cả các row chứa dữ liệu của nhân viên trong bộ phận 20:

SELECT ROWID, last_name  

   FROM employees

   WHERE department_id = 20;

Hy vọng hữu ích cho bạn.

=============================

* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.

* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
Cột rowid trong Oracle Database, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

Bảng DUAL trong Oracle Database

Trong Oracle, câu lệnh SELECT phải có mệnh đề FROM. Tuy nhiên, một số truy vấn (querry) không yêu cầu bất kỳ bảng (table) nào. Ví dụ như:

[VIP5] Bộ tiêu chuẩn cài đặt, vận hành, giám sát, kiểm soát truy cập của Oracle Database, MySQL/MariaDB, PostgreSQL, SQL Server

Mục đích: Bộ tiêu chuẩn cài đặt, vận hành, giám sát, kiểm soát truy cập của Oracle Database, MySQL/MariaDB, PostgreSQL, SQL Server

Thứ Bảy, 19 tháng 11, 2022

SQL là gì? Các lệnh cơ bản trong lập trình cơ sở dữ liệu SQL

Nếu bạn là người mới tìm hiểu về SQL thì đây chính xác là bài viết bạn nên tham khảo. Tôi sẽ trình bày tổng quan về SQL là gì, các lệnh cơ bản trong lập trình cơ sở dữ liệu và rất nhiều thứ khác về SQL.

13 câu lệnh SQL quan trọng Programmer/ SQL Beginner nào cũng cần biết

Cơ sở dữ liệu là một phần không thể thiếu của những trang web hiện đại. Trang web lớn hoặc web động đều sử dụng database theo một cách nào đó và khi được kết hợp với Structured Query Language (SQL) thì khả năng thao tác dữ liệu thực sự là vô tận. Nếu đã biết SQL mà lại còn là lập trình viên thì bạn hãy chắc chắn rằng mình đã nắm chắc 13 câu lệnh SQL quan trọng mà chúng tôi đề cập đến trong bài viết này nhé.

Các cơ chế thực thi lệnh join

Mục đích: Các cơ chế thực thi lệnh join trong SQL Server, các DB khác cũng giống cơ chế này.

Lợi ích Oracle và ứng dụng thực tế mà bạn nên biết

Quý bạn gõ vào trình duyệt web (web browser), chẳng hạn, Chrome, Firefox hay Safari, một địa chỉ hay web link. Sau đó, thông tin được hiển thị trên màn hình máy tính hoặc smart phone của bạn.

Các mô hình triển khai điện toán đám mây phổ biến nhất

Điện toán đám mây là mô hình cung cấp các tài nguyên máy tính cho người dùng thông qua Internet. Có bốn mô hình điện toán đám mây chính và phổ biến nhất hiện nay là Public Clouds, Private Clouds, Hybrid Clouds và Community Clouds.

Tổng quan về Kho dữ liệu – Data Warehouse

Kho dữ liệu ban đầu được định nghĩa là một tập dữ liệu được dùng để hỗ trợ quy trình ra quyết định. Theo quá trình phát triển, Kho dữ liệu được định nghĩa là một môi trường thông tin (information environment). Có thể thấy Kho dữ liệu được xem là một môi trường thông tin, điều này thể hiện nó không phải là một sản phẩm (product). Kho dữ liệu có các chức năng:

Sư khác biệt giữa Cơ Sở Dữ Liệu và Kho Dữ Liệu

Dữ liệu là tài sản của doanh nghiệp, là yếu tố vô cùng quan trọng được sử dụng để đưa ra quyết định kinh doanh chính xác, cải thiện các chiến dịch quảng bá, marketing, tối ưu hóa chi phí và tăng doanh thu. Giả sử doanh nghiệp có một khối lượng thông tin giao dịch khổng lồ, thì việc cần thiết là phải tiến hành nhập vào, lưu trữ, xử lý, phân tích và đưa ra báo cáo tinh gọn nhất. Từ đó hai khái niệm cơ sở dữ liệu (database) và kho dữ liệu (data warehouse) ra đời, nhưng vẫn khiến nhiều người nhầm lẫn. Hãy cùng tôi tìm hiểu xem chúng khác nhau ở những điểm nào

Thứ Sáu, 18 tháng 11, 2022

MasterNote_Câu lênh 12c/19c hay dùng để vận hành cơ bản

Mục đích: MasterNote_Câu lênh 12c/19c hay dùng để vận hành cơ bản

Cấu hình, quản lý mạng trong Oracle Database (Oracle Network) trong Oracle Database 12c, 19c với các thành phần listener.ora, tnsnames.ora, sqlnet.ora

Ở dạng cơ bản nhất, Oracle sử dụng ba file (listener.ora, tnsnames.ora & sqlnet.ora) để cấu hình mạng trong Oracle Database. Bài viết này đưa ra một ví dụ về mỗi tệp như một điểm khởi đầu cho cấu hình mạng đơn giản.

Thứ Năm, 17 tháng 11, 2022

TẠO CƠ SỞ DỮ LIỆU – THIẾT KẾ CƠ SỞ DỮ LIỆU

Trong bài Thiết kế Cơ sở dữ liệu, chúng ta đã thiết kế được cấu trúc của Cơ sở dữ liệu. Trong bài này chúng ta sẽ bàn về việc chuyển đổi cấu trúc cơ sở dữ liệu đó thành cơ sở dữ liệu lưu trữ được trong hệ quản trị cơ sở dữ liệu.

VẤN ĐỀ DƯ THỪA DỮ LIỆU TRONG THIẾT KẾ CƠ SỞ DỮ LIỆU

Trong hai bài học trước chúng ta đã đề cập đến vấn đề dư thừa dữ liệu trong thiết kế cơ sở dữ liệu, nhưng chưa làm rõ. Trong bài học này, chúng ta sẽ bàn về dư thừa dữ liệu và vấn đề mà nó gây ra khi sử dụng cơ sở dữ liệu.

CHUẨN HÓA CƠ SỞ DỮ LIỆU – BƯỚC QUAN TRỌNG TRONG THIẾT KẾ CSDL

Chuẩn hóa cơ sở dữ liệu là áp dụng các qui tắc cho thiết kế của cơ sở dữ liệu nhằm giúp giảm dư thừa dữ liệu trong quá trình thiết kế Cơ sở dữ liệu. Đây là bước quan trọng để giúp bạn kiểm tra tính đúng đắn của quá trình thiết kế cơ sở dữ liệu.

Bài viết này sẽ giúp bạn hiểu về các mức chuẩn hóa, quá trình thực hiện chuẩn hóa cũng như áp dụng việc chuẩn hóa vào thiết kế cơ sở dữ liệu.

THIẾT KẾ CƠ SỞ DỮ LIỆU – CÁC BƯỚC THỰC HIỆN

Thiết kế cơ sở dữ liệu là công việc vô cùng quan trọng trong các dự án, nếu thiết kế đúng CSDL sẽ giúp việc triển khai dự án thuận lợi và tiết kiệm. Tuy nhiên, rất nhiều bạn khi mới vào nghề thường gặp khó khăn về vấn đề thiết kế cơ sở dữ liệu như:

  • 1. Làm thế nào để thiết kế được Cơ sở dữ liệu?
  • 2. Làm thế nào để biết Cơ sở dữ liệu thiết kế đúng?

Bài này chúng ta sẽ bàn về những vấn đề đó.

CƠ SỞ DỮ LIỆU LÀ GÌ? CƠ SỞ DỮ LIỆU QUAN HỆ LÀ GÌ?

Cơ sở dữ liệu là môn học cơ sở của chuyên ngành CNTT, bất kỳ sinh viên CNTT nào cũng cần nắm vững và sử dụng thành thạo Cơ sở dữ liệu để sử dụng cho công việc sau này. Tuy nhiên, đây cũng là môn học khó hiểu với nhiều sinh viên, nhất là giai đoạn thiết kế Cơ sở dữ liệu. Do vậy tôi viết chuỗi bài viết này với hy vọng sẽ giúp các bạn dễ dàng hơn trong việc tiếp cận môn học này.

Bài 15 - PostgreSQL best practice

Bài viết cuối cùng trong series sẽ nói về một số lỗi hay gặp với PostgreSQL và các best practice để xử lý.

Let’s begin.

Bài 13 - Thực hành Vacuum với PostgreSQL

Phần trước đã tìm hiểu về một mớ lý thuyết của Vacuum, phần này sẽ xem qua về reindex và tập trung vào practice với vacuum để kiểm nghiệm thực tế thế nào. Let’s begin.

Bài 12 - PostgreSQL Vacuum là gì?

PostgreSQL multi-version cuncurrency control giúp giải quyết concurrent read/write nhưng sẽ nảy sinh vấn đề khác:

  • Bloating: UPDATE/INSERT/DELETE nhiều dẫn tới dư thừa số lượng lớn các dead tuple (old record version). Chúng không còn giá trị nhưng vẫn nằm đấy, làm tăng disk space.
  • Wraparound transaction id: số lượng transaction id vượt quá 2^32 có thể dẫn tới sai lệch data.

Bài viết này sẽ tìm hiểu PostgreSQL xử lý chúng thế nào. Let’s begin.

Bài 11 - PostgreSQL multi-version concurrency control

Việc concurrent read/write data tưởng chừng đơn giản nhưng với programming thì không ez tí nào. Chém thế chứ cũng không quá phức tạp khi sử dụng các cơ chế sync/lock, tuy nhiên nó làm giảm performance.

Vậy có cách nào không cần lock mà vẫn concurrent read/write không?

Let’s begin.

Bài 10 - Exclusive lock và Shared lock

Phía client, hay nói cách khác là application, chúng ta tương tác với database thông qua các câu lệnh DML (INSERT/UPDATE/DELETE)… và bản chất tất cả đều được thực thi như một transaction nếu không explicit khai báo và không auto commit.

Bài 09 - Optimistic lock và Pessimistic lock

Với series Multi-thread programming từ hardware đến software, ta biết rằng read/write data với multi-thread có thể dẫn đến data race, vấn đề nhỏ nhưng hậu quả lớn, khiến chương trình sai lệch trầm trọng.

Nghe hơi huy hiểm, nhưng cách giải quyết không có gì phức tạp, sử dụng các cơ chế mutual exclusion là giải quyết được vấn đề này.

Bài 07 - Partitioning data với PostgreSQL P2

Tiếp tục bài trước, cùng đi tìm hiểu về 2 loại partition còn lại là:
  • Partition by list
  • Partition by hash

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master