Mục lục
1. Giới thiệu
Bắt đầu từ bản 12.1.0.2 trở đi, bạn có thể tạo ra PDB là bản copy từ 1 PDB ở xa. Tính năng này rất hữu dụng trong các bài toán như:
- Di chuyển PDB từ nơi này đến nơi khác
- Tạo các môi trường test/dev cho team phát triển một cách nhanh chóng
Trong bài viết này, tôi sẽ hướng dẫn các bạn các bước chi tiết và đầy đủ để thực hiện việc clone 1 PDB từ CDB này sang CDB khác bằng kỹ thuật remote clone nhé.
2. Chuẩn bị môi trường
Trong bài lab này, tôi có 2 CDB nằm trên 2 máy chủ khác nhau:
1. Thông tin Server 1:
- IP: 192.168.50.34
- OS: Oracle Linux 7
- Phiên bản Oracle Database 12.2.0.1
- Tên CDB: orcl12c
Các PDB thuộc CDB:
SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO 5 PDB2 READ WRITE NO 7 PDB3 READ ONLY NO
2. Thông tin Server 2:
- IP: 192.168.50.35
- OS: Oracle Linux 7
- Oracle Database 12.2.0.1
- Tên CDB: prod
Nhiệm vụ của tôi bây giờ là tạo ra 1 PDB khác nằm trên CDB prod với cấu trúc và dữ liệu giống hệt với PDB3 trên CDB orcl12 (thao tác này còn gọi là clone). Việc này để tạo ra 1 môi trường kiểm thử để cho team phát triển làm việc.
Chú ý: Bài lab này có thể thực hiện được với phiên bản Oracle database 12.1.0.2, chứ không nhất thiết phải là 12.2.0.1 như trên
3. Các bước thực hiện:
Đầu tiên, tôi cần tạo ra 1 user trên PDB mà tôi cần clone (ở đây là PDB3 trên CDB orcl12)
1. Kết nối vào PDB3
$ sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Mon Jul 19 23:49:49 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=pdb3; Session altered. SQL>
2. Tạo user
SQL> CREATE USER clone_user IDENTIFIED BY oracle; SQL> GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO clone_user;
Câu lệnh trên sẽ tạo ra 1 user có tên clone_user với password là oracle. User này tôi sẽ sử dụng ở bước sau để kết nối vào PDB3 từ CDB prod và copy PDB3 về.
3. Đưa database PDB3 về chế độ READ ONLY
SQL> conn / as sysdba SQL> ALTER PLUGGABLE DATABASE pdb3 CLOSE; SQL> ALTER PLUGGABLE DATABASE pdb3 OPEN READ ONLY;
OK, như vậy các bước cần thực hiện trên PDB3 đã xong rồi đó. Bây giờ chúng ta chuyển sang CDB prod, nơi mà chúng ta muốn copy PDB3 về.
4. Tạo database link trên CDB prod
Đầu tiên, chúng ta cần tạo 1 TNS name để kết nối với PDB3 từ CDB prod nhé
PDB3 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.50.34)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb3) ) )
Sau đó, tôi kết nối vào CDB prod và tạo database link đến PDB3
SQL> CREATE DATABASE LINK clone_link CONNECT TO clone_user IDENTIFIED BY oracle USING 'pdb3';
5. Thực hiện clone PDB
Tiếp theo, tôi thực hiện copy PDB3 về CDB prod bằng lệnh sau:
SQL> CREATE PLUGGABLE DATABASE pdb3prod FROM pdb3@clone_link; Pluggable database created.
Và cuối cùng, tôi sẽ open PDB3PROD mới được clone lên:
SQL> alter pluggable database pdb3prod open; Pluggable database altered.
Các bạn có thấy đơn giản và tiện lợi không? Ở bản 11g, để di chuyển 1 database từ nơi này sang nơi khác, tôi phải làm rất nhiều bước phức tạp, bây giờ thì chỉ cần vài thao tác đơn giản thế này thôi là xong.
Tuy nhiên, không hẳn phương pháp này không có khuyết điểm, bạn sẽ nhận thấy các vấn đề sau, khi áp dụng nó trong thực tế:
[wp-svg-icons icon=”point-right” wrap=”i”] Trong quá trình clone, PDB3 phải đưa về trạng thái read only, tức là database sẽ không thể thay đổi gì được trong thời gian clone. Ở bản 12.2.0.1 trở đi, Oracle mới cho phép bạn có thể không cần đưa PDB3 về read only mà vẫn clone được. Kỹ thuật này gọi là hot clone[wp-svg-icons icon=”point-right” wrap=”i”] Do cơ chế clone là copy dữ liệu qua db link, do đó, chúng ta sẽ cần 1 đường truyền network giữa 2 server phải ổn định, không bị gián đoạn giữa chừng.[wp-svg-icons icon=”point-right” wrap=”i”] Thời gian clone phụ thuộc vào tốc độ đường truyền và kích thước của database. Thông thường tôi chỉ áp dụng phương pháp này với các database nhỏ nhỏ xinh xinh thôi.Bài viết đến đây là kết thúc, hẹn gặp lại các bạn ở các bài viết sau 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é.
[…] bài viết “12c New Features – Remote Clone PDB“, tôi đã giới thiệu đến các bạn một kỹ thuật clone PDB khá tiện lợi […]