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