Thứ Hai, 8 tháng 9, 2025

Sử dụng Database Link trong Oracle Database

Sử dụng Database Link trong Oracle Database

Trong khuôn khổ bài viết này chúng ta cùng nhau đi thực hành về Database Link xem nó hoạt động thế nào nhé.

Chúng ta có hai cơ sở dữ liệu duodb và onedb trên cùng một server (IP: 192.168.68.11), nếu CSDL của bạn nằm ở 2 server khác nhau thì cũng làm tương tự thôi, chỉ update lại IP trong TNSnames là được:

1. Cấu hình TNSNAMES.ORA

Trước khi tạo Database Link, chúng ta cần đảm bảo rằng cả hai cơ sở dữ liệu (duodb và onedb) đều đã được cấu hình trong file tnsnames.ora. File này xác định cách thức Oracle kết nối tới các cơ sở dữ liệu qua TNS (Transparent Network Substrate).

Ví dụ, trong file tnsnames.ora, chúng ta có thể thêm nội dung bên dưới: các bạn đang đứng ở server nào kết nối đi thì các bạn thêm nội dung tnsnames.ora vào server đó, ở đây tôi chạy 2 CSDL trên cùng một server nên chỉ có 1 tnsnames sử dụng cho cả 2 luôn.

tnsnames.ora nằm trong đường dẫn này => bạn mở file nếu có sẵn hoặc tạo mới file nếu chưa có và thêm vào nội dung bên dưới:

/u01/app/oracle/product/19.3.0/dbhome_1/network/admin
vi tnsnames.ora
DUODB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.68.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = duodb.localdomain)
)
)

ONEDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.68.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = onedb.localdomain)
)
)

Tạo user trên mỗi database để thực hiện test dữ liệu:

Tạo user trên ONEDB:

CREATE USER onedb_user IDENTIFIED BY oracle
QUOTA UNLIMITED ON users;
GRANT connect, resource TO onedb_user;

Login vào user onedb_user trên CSDL ONEDB ở bên trên tạo table và insert data vào:

conn onedb_user/oracle
CREATE TABLE test_dblink (id NUMBER);
insert into test_dblink values (11111);
commit;

Tạo user trên DUODB:

CREATE USER duodb_user IDENTIFIED BY oracle
QUOTA UNLIMITED ON users;
GRANT connect, resource TO duodb_user;

Login vào user duodb_user trên CSDL DUODB ở bên trên tạo table và insert data vào:

conn duodb_user/oracle
CREATE TABLE test_dblink_duodb (id NUMBER);
insert into test_dblink_duodb values (22222);
commit;

2. Tạo database link từ duodb kết nối đến onedb

Đăng nhập vào duodb và tạo Database Link để kết nối đến onedb:

conn / as SYSDBA
CREATE DATABASE LINK onedb_link
CONNECT TO onedb_user IDENTIFIED BY oracle
USING 'ONEDB';
  • onedb_user và oracle là tài khoản trên onedb, chúng ta phải login vào CSDL và tạo sẵn nó.
  • ONEDB là tên entry đã cấu hình trong file tnsnames.ora.

3. Truy vấn qua Database Link

Sau khi đã tạo xong database link, chúng ta có thể thử truy vấn dữ liệu từ onedb thông qua duodb:

Bật Listener trước khi truy vấn:

lsnrctl start
lsnrctl status

Truy vấn qua Dblink từ DUODB sang ONEDB:

SELECT * FROM test_dblink@onedb_link;

Câu lệnh này sẽ truy vấn bảng test_dblink trên onedb qua link onedb_link từ cơ sở dữ liệu duodb.

4. Thực hành Từ onedb Kết Nối Đến duodb

Ngược lại, chúng ta cũng có thể đăng nhập vào onedb và tạo database link để kết nối tới duodb, chúng ta có thể thực thi các lệnh DML thông qua Dblink như bình thường:

CREATE DATABASE LINK duodb_link
CONNECT TO duodb_user IDENTIFIED BY oracle
USING 'DUODB';

Sau đó, chúng ta thử truy vấn dữ liệu từ duodb:

SELECT * FROM test_dblink_duodb@duodb_link;

Insert thêm thông tin vào bảng trên duodb từ onedb thông qua dblink:

insert into test_dblink_duodb@duodb_link values (5555);
commit;

Kiểm tra Data thông qua dblink;

SELECT * FROM test_dblink_duodb@duodb_link;

Kiểm tra dữ liệu thực trên DUODB:

select * from duodb_user.test_dblink_duodb;

5. Kiểm Tra Database Link

Chúng ta có thể kiểm tra hoạt động của database link bằng cách truy vấn bảng dual:

SELECT * FROM dual@onedb_link;
SELECT * FROM dual@duodb_link;

Xem thông tin các Dblink hiện có:

SELECT * FROM USER_DB_LINKS;
SELECT * FROM DBA_DB_LINKS;

6. Xóa Database Link

Nếu chúng ta không còn cần sử dụng database link, chúng ta có thể xóa bằng lệnh:

DROP DATABASE LINK onedb_link;

Done!!!

Chúc các bạn thành công.

=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- 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
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
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: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Đị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ở sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, 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/21c/23c/23ai, 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, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

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