Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Quản trị cơ bản của Oracle 12c Multitenant

Kiểm tra xem cơ sở dữ liệu là CDB hay không phải CDB

 SQL> chọn cdb từ v $ cơ sở dữ liệu; CDB --- CÓ 

Kết nối với vùng chứa

 $ export ORACLE_SID =pcdb01 $ sqlplus / as sysdbaSQL> hiển thị con_nameCON_NAME ------------------------------ CDB $ ROOTSQL> hiển thị con_idCON_ID ------------------------------ 1SQL> hiển thị pdbs; CON_ID CON_NAME MỞ CHẾ ĐỘ HẠN CHẾ -------- - --------------------------------- --2 PDB $ SEED CHỈ ĐỌC NO3 PRD_PDB_CON ĐỌC VIẾT SỐ 4 PRD_PDB_TEN ĐỌC VIẾT KHÔNG 

Điều hướng qua các PDB

 SQL> thay đổi vùng chứa bộ phiên =PDB $ SEED; Đã thay đổi phiên .QL> thay đổi bộ chứa phiên đặt =PRD_PDB_CON; Đã thay đổi phiên.SQL> 

Thông tin về PDBs

 SQL> COLUMN PDB_NAME FORMAT A15SQL> COLUMN PDB_NAME FORMAT A15SQL> SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS ORDER BY PDB_ID; PDB_ID PDB_NAME STATUS ------------- ----- --------- 2 PDB $ SEED NORMAL3 PRD_PDB_CON NORMAL4 PRD_PDB_TEN THƯỜNG 

Kiểm tra / thay đổi thông số

 SQL> chọn * từ v $ system_parameter; SQL> chọn * từ PDB_SPFILE $; SQL> thay đổi bộ hệ thống tham số_name =giá trị; SQL> thay đổi bộ hệ thống tham số_name =giá trị CONTAINER =CURRENT; 

Khởi động và tắt PDB

Một số giá trị tiêu biểu:

KHỞI NGHIỆP [SỐ TIỀN | NÚI | HẠN CHẾ | NÂNG CẤP | LỰC LƯỢNG | CHỈ ĐỌC]

SHUTDOWN [NGAY LẬP TỨC | ABORT]

 $ export ORACLE_SID =pcdb01 $ sqlplus / as sysdbaSQL> tắt ngay lập tức; 

Dừng cơ sở dữ liệu có thể cài đặt

 SQL> thay đổi cơ sở dữ liệu có thể cắm được PRD_PDB_CON đóng [ngay lập tức]; SQL> thay đổi cơ sở dữ liệu có thể cắm được TẤT CẢ NGOẠI TRỪ PRD_PDB_CON đóng [ngay lập tức]; SQL> thay đổi cơ sở dữ liệu có thể cắm được TẤT CẢ; SQL> thay đổi cơ sở dữ liệu có thể cắm được PRD_PDB_CON đóng [ngay lập tức] [instances =all]; 

Hoặc:

 SQL> thay đổi SESSION SET CONTAINER =PRD_PDB_CON; SQL> tắt ngay lập tức; 

Khởi động cơ sở dữ liệu có thể cắm được

LỰC LƯỢNG KHỞI ĐỘNG

STARTUP OPEN READ WRITE [HẠN CHẾ]

STARTUP MỞ CHỈ ĐỌC [HẠN CHẾ]

NÂNG CẤP KHỞI ĐỘNG

SHUTDOWN [NGAY LẬP TỨC]

 SQL> thay đổi cơ sở dữ liệu có thể cắm PDB01 mở; SQL> thay đổi cơ sở dữ liệu có thể cắm được TẤT CẢ NGOẠI TRỪ PRD_PDB_CON mở; SQL> thay đổi cơ sở dữ liệu có thể cắm được TẤT CẢ mở; SQL> thay đổi cơ sở dữ liệu có thể cắm PDB01 mở [instances =all]; 

Hoặc:

 SQL> alter SESSION SET CONTAINER =PRD_PDB_CON; SQL> startup; SQL> thay đổi CƠ SỞ DỮ LIỆU CÓ THỂ CẬP NHẬT  OPEN READ WRITE [RESTRICTED] [FORCE]; SQL> thay đổi CƠ SỞ DỮ LIỆU CÓ THỂ CẬP NHẬT  CHỈ MỞ ĐỌC [HẠN CHẾ] [FORCE]; SQL> thay đổi CƠ SỞ DỮ LIỆU CÓ THỂ CẬP NHẬT  MỞ NÂNG CẤP [HẠN CHẾ]; SQL> thay đổi CƠ SỞ DỮ LIỆU CẬP NHẬT  ĐÓNG [NGAY LẬP TỨC]; 

Duy trì trạng thái khởi động PDB (12.1.0.2 trở đi)

 SQL> thay đổi CƠ SỞ DỮ LIỆU CÓ THỂ CẬP NHẬT pdb2 OPEN; SQL> thay đổi CƠ SỞ DỮ LIỆU CẬP NHẬT pdb2 SAVE STATE; 

Chế độ xem DBA_PDB_SAVED_STATES hiển thị thông tin về trạng thái đã lưu của các vùng chứa.

 SQL> COLUMN con_name FORMAT A20SQL> COLUMN instance_name FORMAT A20SQL> SELECT con_name, instance_name, state FROM dba_pdb_saved_states; CON_NAME INSTANCE_NAME STATE -------------------- ----------------- -------------- PRD_PDB_CON pcdb01 MỞ 

Kích thước của cơ sở dữ liệu có thể cắm được

 SQL> COLUMN NAME FORMAT A20SQL> CHỌN DBID, NAME, CON_ID, CON_UID, TOTAL_SIZE TỪ V $ CONTAINERS ORDER BY CON_ID; DBID NAME CON_IDCON_UID TOTAL_SIZE -------------- ---------------------- ---------- -------------- --2732069181 CDB $ ROOT 1 1 03552543733 PDB $ SEED 2 3552543733 7759462404008367944 PRD_PDB_CON 3 4008367944 12037652482667104724 PRD_PDB_TEN 4 2667104724 1182793728 

Thời gian khởi động của cơ sở dữ liệu có thể cắm được

 SQL> đặt kích thước dòng 180SQL> col name cho a30SQL> col open_time cho a33SQL> chọn con_id, name, dbid, open_mode, open_time từ v $ container; CON_ID TÊN DBID OPEN_MODE OPEN_TIME ---------- - --------------- -------------- ---------- ---------- - -------------------------------- 1 CDB $ ROOT 456650806 ĐỌC VIẾT 17-THÁNG 3-18 11.59.36.176 CH-03 :002 PDB $ SEED 2688102972 CHỈ ĐỌC 17-THÁNG 3 -18 11.59.36.182 CH -03:003 PDB_PN1O0101 1079206163 ĐỌC BÀI VIẾT 18-THÁNG 3 -18 12.00.00.589 SA -03:004 PDB_BATCHWEB 2340495643 ĐỌC VIẾT 18-THÁNG 3 -1812. AM -03:004 hàng được chọn. 

Thời gian hoạt động của cơ sở dữ liệu có thể cắm được

 SQL> đặt dòng kích thước 180SQL> col name cho a30SQL> col open_time cho a28SQL> chọn tên, tầng (sysdate-cast (open_time as date)) || 'Days' || floor (((sysdate-cast (open_time as ngày)) - tầng (ngày tháng diễn ra (thời gian mở cửa là ngày))) * 24) || 'giờ' || vòng (((ngày tháng năm diễn ra (thời gian mở là ngày) -floor (ngày giờ diễn ra (thời gian mở cửa là ngày))) * 24) -floor ((sysdate-cast (open_time as date) -floor (sysdate-cast (open_time as date)) * 24))) * 60) || 'phút' "Thời gian hoạt động của cơ sở dữ liệu" từ v $ container; NAME Thời gian hoạt động của cơ sở dữ liệu -------------------------------------------------- CDB $ ROOT 1331 Ngày 11 giờ 28 phútPDB $ SEED 1331 Ngày 11 giờ 28 phútPDB_PN1O0101 1331 Ngày 11 giờ 28 phútPDB_BATCHWEB 1331 Ngày 11 giờ 28 phút 4 hàng được chọn. 

Tên dịch vụ

 SQL> ĐỊNH DẠNG TÊN CỘT A30SQL> CHỌN TÊN, CON_ID, PDB TỪ V $ DỊCH VỤ LỆNH BẰNG CON_ID; TÊN CON_ID PDB ----------------------- ------- ------------------------------ pcdb01XDB 1 CDB $ ROOTSYS $ BACKGROUND 1 CDB $ ROOTSYS $ USERS 1 CDB $ ROOTpcdb01 1 CDB $ ROOTprd_pdb_con 3 PRD_PDB_CONprd_pdb_ten 4 PRD_PDB_TEN6 hàng được chọn. 


Tạo Người dùng chung có quyền truy cập vào tất cả các pdb

 SQL> TẠO NGƯỜI DÙNG c ## user1 ĐƯỢC XÁC NHẬN BẰNG password1 CONTAINER =TẤT CẢ; Người dùng đã tạo.SQL> CẤP PHIÊN TẠO PHẦN CHO c ## user1 CONTAINER =TẤT CẢ; Cấp thành công. 

Tạo Người dùng chung mà không cần quyền truy cập pdbs

 SQL> TẠO NGƯỜI DÙNG c ## user2 ĐƯỢC XÁC ĐỊNH BẰNG password1; Người dùng tạo.SQL> CẤP PHIÊN TẠO CHO c ## user2; Cấp thành công. 

Tạo người dùng cục bộ chỉ có quyền truy cập vào pdb

 SQL> TẠO NGƯỜI DÙNG user3 ĐƯỢC XÁC ĐỊNH BẰNG mật khẩu3 CONTAINER =CURRENT; Người dùng đã tạo.SQL> CẤP PHIÊN TẠO CHO NGƯỜI DÙNG3 CONTAINER =CURRENT; Cấp thành công. 

Tạo vai trò chung

 SQL> CONN / AS SYSDBASQL> TẠO VAI TRÒ c ## role1; Đã tạo vai trò.SQL> CẤP PHIÊN TẠO PHIÊN c ## role1; Cấp thành công. 

Cấp vai trò cho người dùng thông thường

 SQL> CẤP c ## role1 TO c ## user1 CONTAINER =ALL; Cấp thành công. 

Cấp vai trò cho người dùng thông thường cho người dùng cục bộ

 SQL> alter SESSION SET CONTAINER =PRD_PDB_CON; Session đã thay đổi.SQL> CẤP c ## role1 CHO người dùng2; Cấp thành công. 

Vai trò cục bộ

 SQL> CONN / AS SYSDBASQL> thay đổi PHIÊN ĐẶT CONTAINER =PRD_PDB_CON; Đã thay đổi phiên. 

Tạo PDB

 SQL> tạo cơ sở dữ liệu có thể cắm thêm Quản trị viên người dùng quản trị viên HMLPDB được xác định bởi PassDw1 role =(DBA); SQL> tạo cơ sở dữ liệu có thể cắm được Quản trị viên người dùng quản trị DSVPDB được xác định bởi bộ nhớ Manager1roles =(DBA) (MAXSIZE 1G) FILE_NAME_CONVERT =('/ u01 / app / oracle / oradata / pcdb01 / pcdb01_pdbseed _ ',' / u01 / app / oracle / oradata / dsvpdb / dsvpdb _ '); SQL> tạo cơ sở dữ liệu có thể cắm thêm DSVPDB1 từ tệp DSVPDB'name_convert =(' / DSVPDB / ',' / DSVPDB); ',' 

Không bao gồm PDBs

 SQL> thay đổi cơ sở dữ liệu có thể cắm được DSVPDB1 đóng [ngay lập tức] [instances =all]; SQL> thả cơ sở dữ liệu có thể cắm được DSVPDB1 bao gồm các tệp dữ liệu; 

Rút phích cắm PDB

 $ sqlplus / as sysdbaSQL> thay đổi cơ sở dữ liệu có thể cắm được PRD_PDB_CON đóng; SQL> thay đổi cơ sở dữ liệu có thể cắm được PRD_PDB_CON rút phích cắm vào '/tmp/prd_pdb_con.xml'; 

Cắm PDBs

 $ sqlplus / as sysdbaSQL> tạo cơ sở dữ liệu có thể cắm thêm PRD_PDB_CON bằng '/tmp/prd_pdb_con.xml' FILE_NAME_CONVERT =('/ oradata / cdb1 / prd_pdb_con', '/ oradata / cdb2 / prd_ableB database mở ra; 

Định cấu hình Dịch vụ trên Oracle RAC với CDB

 $ srvctl thêm dịch vụ -db CDB01 -service new_service -pdb PRD_PDB_CON $ srvctl sửa đổi dịch vụ -db CDB01 -service new_service -pdb PRD_PDB_CON $ srvctl xóa dịch vụ -db CDB01 -service new_service_service, network.CREname_service => 'new_service.com'); END; /BEGINDBMS_SERVICE.DELETE_SERVICE (service_name => 'new_service'); HẾT; / 

Với vùng chứa gốc, chúng ta có cdb_tablespaces và cdb_data_files hiển thị vùng bảng và tệp dữ liệu của tất cả vùng chứa trong CDB.

Khi được kết nối với PDB, cdb_tablespaces và cdb_data_files hiển thị cùng một thông tin như dba_tablespaces, dba_data_files cho PDB.

 SQL> thay đổi vùng chứa bộ phiên =CDB $ ROOT; Đã thay đổi phiên.SQL> chọn tên_bảng, con_id từ thứ tự cdb_tablespaces theo con_id; TABLESPACE_NAME CON_ID ------------------- ----------- -------- HỆ THỐNG 1SYSAUX 1UNDOTBS2 1TEMP 1 NGƯỜI DÙNG 1UNDOTBS1 1SY HỆ THỐNG 3SYSAUX 3TBS_GEN_01 3TEMP 3TBS_CON_IDX_01 3TBS_CON_DT_01 3USERS 3SYSTEM 4SYSAUX 4TBS_GEN_01 bảng chọn không gian 4 không gian 4US ----------------------------- SYSTEMSYSAUXUNDOTBS1TEMPUSERSUNDOTBS 26 hàng được chọn. 

Cách kiểm tra tính năng Hoàn tác cục bộ trong 12.2

Trong Cơ sở dữ liệu Oracle 12c Release 1, tất cả các vùng chứa trong một phiên bản đều chia sẻ cùng một vùng bảng hoàn tác.

Trong Oracle 12c Release 2, mỗi vùng chứa trong một phiên bản có thể sử dụng không gian bảng hoàn tác của riêng nó.

 SQL> shutdown ngay lập tức; SQL> khởi động nâng cấp; SQL> thay đổi hoàn tác cục bộ cơ sở dữ liệu; SQL> shutdown ngay lập tức; SQL> startup; SQL> col property_name format a30SQL> col property_value format a30SQL> select property_name, property_value từ database_properties nơi property_name ='LOCAL_UNDO_ENABLED'; PROPERTY_NAME PROPERTY_VALUE ------------------------------- LOCAL_UNDO_ENABLED TRUE 
 

Tài liệu tham khảo

https://docs.oracle.com


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cài đặt Oracle SQL Developer 19.1 trên Mac OS với JDK 8

  2. Tự tham gia vào oracle với các ví dụ

  3. Cách trừ 2 ngày trong tiên tri để có kết quả theo giờ và phút

  4. Làm cách nào để sao chép hoặc nhập các lược đồ Oracle giữa hai cơ sở dữ liệu khác nhau trên các máy chủ khác nhau?

  5. Cách giải quyết ORA-06512 tại số dòng