หากใครเคยเขียนโปรแกรมต่อฐานข้อมูลแบบ Multiple Database บน Oracle Database ก็จะมีเทคนิคในการ Connect ระหว่าง 2 Physical Database ด้วย Database Link ทำให้เราสามารถเขียนโปรแกรมต่อฐานข้อมูลได้จาก 1 Logical Database ซึ่งดีกว่าในเรื่องของการจัดการ Privilege ทำให้สามารถเข้าถึง Remote Database ได้โดยไม่ต้องเป็น User บน Remote Database
Get Started
- ทำการ Connect Database ด้วย SQL*Plus
# sqlplus / as sysdba
Solution 1 ( กรณีที่อยู่ภายใน Host เดียวกัน )
- ทำการสร้าง Database Link
SQL> create public database link "link_name" connect to "username" identified by "password" using 'oracle_sid' ;
- ทำการตรวจสอบ Database Link
SQL> select owner, db_link, username, host from dba_db_links order by owner, db_link ;
OWNER |DB_LINK |USERNAME |HOST
----------|--------------------|--------------------|----------
PUBLIC |LINK_ORCL |SCOTT |ORCL
1 rows selected.
Solution 2 ( กรณีที่อยู่คนละ Host )
- ทำการกำหนด tnsnames.ora ของ Host ที่ต้องการ Remote
# vi $ORACLE_HOME/network/admin/tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = lab-drsite.lab.local)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
- ทำการทดสอบด้วย TNSPING
# tnsping ORCL
TNS Ping Utility for Linux: Version 11.2.0.2.0 - Production on 24-OCT-2019 15:36:16
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = lab-drsite.lab.local)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))
OK (0 msec)
- ทำการสร้าง Database Link
SQL> create public database link LINK_NAME connect to USERNAME identified by PASSWORD using 'oracle_sid' ;
- กรณีที่ต้องการลบ Database Link
SQL> drop public database link LINK_NAME ;
อ่านเพิ่มเติม : https://bit.ly/2qFIjNi
Leave a Reply