TẠO SERVICE NAME cho PDB

Ở phiên bản 11g và các phiên bản trước đó, bạn có thể tạo nhiều service name cho database của mình.

Ví dụ: Database orcl có 2 service name là orclprod và orcldb, cho phép người dùng sử dụng cả 2 service name đó để kết nối vào database.

Để làm được điều đó, bạn chỉ cần chỉnh sửa lại tham số khởi tạo service_names như sau

ALTER SYSTEM SET SERVICE_NAMES = 'orclprod, orcldb';

và đăng ký với listener lại là xong

ALTER SYSTEM REGISTER;

Bắt đầu từ phiên bản Oracle Database 12c, do phát triển thành mô hình Multitenant, nên có thể bạn sẽ thấy hơi lạ lẫm một chút.

Với CDB, để thay đổi hay thêm service name, bạn có thể làm tương tự như ở phiên bản trước. Nhưng với PDB, để làm được điều này, bạn sẽ cần một quy trình rất khác.

Trong bài viết này tôi sẽ hướng dẫn các bạn thực hiện việc thêm mới 1 service name cho PDB nhé.


   Kiểm tra

Mặc định khi mới tạo PDB, Oracle sẽ tạo ra 1 service name có tên trùng với tên của PDB, như sau:

   Kiểm tra các service name đang có

select service_id, name, pdb from cdb_services;

 

SERVICE_ID NAME 		PDB
---------- -------------------- --------------------
     1 SYS$BACKGROUND	CDB$ROOT
     2 SYS$USERS		CDB$ROOT
     5 orcl12cXDB		CDB$ROOT
     6 orcl12c		CDB$ROOT
     9 pdb1 		PDB1
     9 pdb3 		PDB3

   Kết nối với service name

Tôi sẽ kết nối đến PDB bằng phương thức Local Naming. Ở đây TNS Name mà tôi sử dụng như sau:

PDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.239.42.105)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdb1)
    )
  )
Đọc thêm  Oracle 12c - Kết nối với CDB và PDB

Bạn có thể kết nối vào PDB bằng TNS Name này

$ sqlplus duydx/[email protected]

SQL*Plus: Release 12.2.0.1.0 Production on Fri Jul 9 14:25:01 2021

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Last Successful login time: Fri Jul 09 2021 14:04:24 +07:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL>

   Tạo service name mới cho PDB

Bài toán đặt ra là: Bây giờ làm thế nào để tôi có thể kết nối vào PDB1 với 1 service name khác, không phải là service name PDB1 nữa.

Đầu tiên, bạn hãy tạo 1 tnsnames mới bằng cách chỉnh sửa file tnsnames.ora tại $ORACLE_HOME/network/admin (Chú ý: Biến môi trường $ORACLE_HOME là đường dẫn cài đặt Oracle Software)

vi tnsnames.ora

Bạn thêm 1 TNS Name mới vào như sau:

MYPDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.239.42.105)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = mypdb)
    )
  )

Trong đó tham số SERVICE_NAME chỉ ra service name mà bạn muốn tạo mới cho PDB

Tiếp theo, bạn kết nối vào CDB sau đó chuyển sang PDB nhé

$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Sat Jul 10 14:47:50 2021

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> alter session set container=pdb1;

Session altered.

SQL>

Sau đó, chạy câu lệnh sau:

BEGIN  
  DBMS_SERVICE.create_service(  
   service_name => 'mypdb',  
   network_name => 'MYPDB'  
  );  
END;  
/

Câu lệnh trên sẽ tạo ra 1 service name mới có tên là “mydb”, và sử dụng thông tin trong TNS name MYPDB đã được khai báo ở bước trước.

Bạn thử connect bằng service name này xem sao:

$  sqlplus duydx/[email protected]

SQL*Plus: Release 12.2.0.1.0 Production on Sat Jul 10 14:51:48 2021

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Last Successful login time: Fri Jul 09 2021 14:25:06 +07:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> show con_name

CON_NAME
------------------------------
PDB1

Như vậy tôi đã cấu hình thêm 1 service name nữa cho PDB1 rồi đấy.

Nếu bạn muốn tôi demo thêm những chức năng gì trong các Database, hãy comment bên dưới bài viết này hoặc tham gia group “Kho tài liệu kiến thức database” nhé.

Nguồn: https://dangxuanduy.com/

Xin cho tôi được biết, bạn cảm thấy bài viết này như thế nào? Ý kiến của bạn sẽ giúp tôi nâng cao chất lượng bài viết của mình.

    Hãy chia sẻ bài viết này nếu bạn thấy có ích nhé
    0 0 votes
    Article Rating
    Subscribe
    Notify of
    guest
    0 Comments
    Inline Feedbacks
    View all comments