Mục lục

1. Giới thiệu

Ở 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é.

 

2. 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:

1. 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

2. 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/oracle@pdb1

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>

 

3. 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”.

Tiếp theo bạn start service name mới lên bằng câu lệnh:

exec dbms_service.start_service('mydb');

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

$  sqlplus duydx/oracle@mypdb

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/

Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.

KHOÁ DÀNH CHO NGƯỜI MỚI

KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)

CÁC KHOÁ NÂNG CAO:

KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c

KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD

CÁC KHOÁ COMBO:

COMBO 1: ADMIN 1 + MULTITENANT 12c

COMBO 2: ADMIN 1 + DATA GUARD

COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD

LỊCH HỌC:

Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE 

ĐĂNG KÝ:

https://forms.gle/MtCAoRQFenP886y79

Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x