Qui Truong

Ngày Đăng:

29/03/2023 20:28

Ngày Cập Nhật:

30/03/2023 08:48

Tác giả: Qui Truong
Ngày đăng: 29/03/2023 20:28

Giới thiệu về tham số khởi tạo Initialization parameter trong oracle database

Initialization parameter là các giá trị được cấu hình trong hệ thống Oracle Database để điều chỉnh cấu hình và hoạt động của cơ sở dữ liệu. Các tham số khởi tạo có thể được cấu hình ở mức toàn cục (instance-wide), hoặc cho từng phiên bản (session-specific) của một người dùng cụ thể.

Các giá trị tham số khởi tạo này thường được lưu trữ trong các tập tin cấu hình PFILE (Parameter FILE) hoặc SPFILE (Server Parameter FILE) và được đọc vào bộ nhớ khi cơ sở dữ liệu được khởi động. Việc điều chỉnh các tham số khởi tạo có thể ảnh hưởng đến hiệu suất của cơ sở dữ liệu và đảm bảo tính ổn định của hệ thống.

Trong Oracle Database, có hơn 300 tham số khởi tạo khác nhau, bao gồm các tham số liên quan đến bộ nhớ, bảo mật, cơ sở dữ liệu, và các tính năng đặc biệt. Tùy thuộc vào mục đích sử dụng, người quản trị có thể điều chỉnh các tham số khởi tạo để tối ưu hóa hiệu suất và tính sẵn sàng của hệ thống.

Việc điều chỉnh các tham số khởi tạo trong Oracle Database được thực hiện thông qua các công cụ như SQL*Plus, Enterprise Manager, SQL Developer hoặc các công cụ quản trị khác. Điều này cho phép người quản trị có thể cấu hình và tùy chỉnh hệ thống Oracle Database để đáp ứng các yêu cầu cụ thể của doanh nghiệp.

Loại giá trị trong tham số khởi tạo initialization parameter trong oracle database

Khi bạn khởi động instance của Oracle database, một file initialization parameter sẽ được đọc. Có hai loại file parameter:

  • Server parameter file (SPFILE): Đây là loại file initialization parameter được ưu tiên sử dụng. Đây là file nhị phân có thể được ghi và đọc bởi database server và không được chỉnh sửa thủ công bằng tay. Nó tồn tại trên máy chủ trên có instance của Oracle đang thực thi và nó vẫn được duy trì trong quá trình bị shutdown và startup. Tên mặc định của file được tìm kiếm tự động khi khởi động là spfile <SID>.ora.
  • Text initialization parameter file: Loại file initialization parameter này có thể được đọc bởi database server, nhưng không được server ghi vào file. Các thiết lập của initialization parameter phải được đặt và thay đổi bằng cách sử dụng một trình chỉnh sửa văn bản để các giá trị của chúng có thể duy trì qua quá trình shutdown và startup. Tên mặc định của file này (tìm tự động khi khởi động nếu không tìm thấy SPFILE) là init<SID>.ora.

Bạn nên tạo một SPFILE động để duy trì các tham số khởi tạo.

Lưu ý: Server của Oracle Database sẽ tìm kiếm các file initialization parameter trong thư mục $ ORACLE_HOME / dbs trên Linux.


Máy chủ cơ sở dữ liệu Oracle có các kiểu giá trị sau cho các Initialization Parameter:

  • Boolean
  • String
  • Integer
  • Parameter File
  • Reserved
  • Big Integer

Derived Parameter Values:

Giá trị của một số tham số khởi tạo là dẫn xuất, có nghĩa là giá trị của chúng được tính toán từ giá trị của các tham số khác. Thông thường, bạn không nên thay đổi giá trị của các tham số dẫn xuất. Nhưng nếu bạn thay đổi, giá trị mà bạn chỉ định sẽ ghi đè lên giá trị tính toán.


Ví dụ, giá trị mặc định của tham số SESSIONS là dẫn xuất từ giá trị của tham số PROCESSES. Nếu giá trị của PROCESSES thay đổi, giá trị mặc định của SESSIONS cũng thay đổi, nếu không thì bạn phải ghi đè lại nó với 1 giá trị cụ thể.

Operating System–Dependent Parameter Values:

Giá trị hoặc khoảng giá trị hợp lệ của một số tham số khởi tạo phụ thuộc vào hệ điều hành máy chủ. Ví dụ, tham số DB_FILE_MULTIBLOCK_READ_COUNT chỉ định số lượng tối đa các blocks được đọc trong một hoạt động I/O trong quá trình quét tuần tự; tham số này phụ thuộc vào nền tảng. Kích thước của các khối được thiết lập bởi tham số DB_BLOCK_SIZE, có giá trị mặc định phụ thuộc vào hệ điều hành.


Setting Parameter Values:

Các tham số khởi tạo mang lại nhiều tiềm năng nhất để cải thiện hiệu suất hệ thống. Một số thông số thiết lập giới hạn dung lượng nhưng không ảnh hưởng đến hiệu suất. Ví dụ, khi giá trị của OPEN_CURSORS là 10, user processes đang cố mở con trỏ thứ mười một của nó sẽ nhận được một lỗi. 


Các tham số khác ảnh hưởng đến hiệu suất nhưng không áp đặt giới hạn tuyệt đối. Ví dụ, giảm giá trị của OPEN_CURSORS không ngăn được công việc mặc dù nó có thể làm chậm hiệu suất.


Tăng giá trị của các tham số có thể cải thiện hiệu suất hệ thống của bạn, nhưng tăng hầu hết các tham số cũng làm tăng kích thước SGA. Một SGA lớn hơn có thể cải thiện hiệu suất cơ sở dữ liệu lên đến một điểm nào đó. Một SGA quá lớn có thể làm giảm hiệu suất nếu nó được hoán đổi trong và ngoài bộ nhớ. 


Các tham số hệ điều hành điều khiển các khu vực làm việc của bộ nhớ ảo nên được đặc biệt lưu ý đến kích thước SGA. Hệ điều hành cấu hình cũng có thể giới hạn kích thước tối đa của SGA

Loại tham số khởi tạo trong Oracle database

Oracle database - type of initialization parameter

Các tham số khởi tạo có hai loại: basicadvanced.
Trong phần lớn các trường hợp, chỉ cần thiết lập và điều chỉnh khoảng 30 tham số basic để có được hiệu suất hợp lý từ cơ sở dữ liệu. Trong những tình huống hiếm gặp, việc sửa đổi thông số advanced có thể cần thiết để đạt được hiệu suất tối ưu. Có nhiều hơn 300 thông số advanced.


Tham số basic được xác định là tham số mà bạn có khả năng thiết lập giá trị để giữ cho cơ sở dữ liệu của mình chạy
với hiệu suất tốt. Tất cả các tham số khác được coi là advanced.


Ví dụ về các thông số cơ bản:
• Xác định tên cơ sở dữ liệu toàn cầu: DB_NAMEDB_DOMAIN
• Chỉ định kích thước và khu vực khôi phục nhanh: DB_RECOVERY_FILE_DESTDB_RECOVERY_FILE_DEST_SIZE
• Chỉ định tổng kích thước của tất cả các thành phần SGA: SGA_TARGET
• Chỉ định phương thức Undo Table Space quản lý không gian: UNDO_TABLESPACE
• Tham số khởi tạo COMPATIBLE và khả năng tương thích không thể đảo ngược

Một số ví dụ về tham số khởi tạo - Initialization Parameter trong Oracle database

Oracle database - type of initialization parameter

• Tham số CONTROL_FILES: Chỉ định một hoặc nhiều tên tệp điều khiển. Oracle khuyên bạn nên kết hợp và nhân bản các tệp điều khiển. Phạm vi giá trị: từ một đến tám tên tệp (có tên đường dẫn). Giá trị mặc định: Phụ thuộc vào hệ điều hành.


• Tham số DB_FILES: Chỉ định số lượng file cơ sở dữ liệu tối đa có thể được đã mở cho cơ sở dữ liệu này. Phạm vi giá trị: Phụ thuộc vào hệ điều hành. Giá trị mặc định: 200.


• Tham số PROCESSES: Chỉ định số lượng tối đa các tiến trình người dùng hệ điều hành có thể đồng thời kết nối với máy chủ Oracle. Phạm vi giá trị: từ 6 đến giá trị phụ thuộc vào hệ điều hành. Giá trị mặc định: Động và phụ thuộc vào số lượng CPU.


• Tham số DB_BLOCK_SIZE: Chỉ định kích thước (tính bằng byte) của một block cơ sở dữ liệu Oracle. Giá trị này được đặt khi tạo cơ sở dữ liệu và không thể thay đổi sau đó. Cái này chỉ định kích thước khối tiêu chuẩn cho cơ sở dữ liệu. Tất cả các không gian bảng sẽ sử dụng kích thước này bởi mặc định. Phạm vi giá trị: 2048 đến 32768 (phụ thuộc vào hệ điều hành). Giá trị mặc định: 8192.


• Tham số DB_CACHE_SIZE: Chỉ định kích thước của vùng đệm mặc định. phạm vi của giá trị: Ít nhất 4 MB nhân với số lượng CPU (các giá trị nhỏ hơn sẽ tự động được làm tròn đến giá trị này). Giá trị mặc định: 0 nếu SGA_TARGET được đặt, nếu không thì giá trị lớn hơn của 48 MB hoặc (4 MB*CPU_COUNT)

Oracle database - type of initialization parameter

SGA_TARGET chỉ định tổng kích thước của tất cả các thành phần SGA. Nếu SGA_TARGET được chỉ định, các nhóm bộ nhớ sau được tự động định cỡ:

  • Buffer cache (DB_CACHE_SIZE)
  • Shared pool (SHARED_POOL_SIZE)
  • Large pool (LARGE_POOL_SIZE)
  • Java pool (JAVA_POOL_SIZE)
  • Streams pool (STREAMS_POOL_SIZE)

Nếu các nhóm bộ nhớ được điều chỉnh tự động này được đặt thành các giá trị khác 0, thì các giá trị này được sử dụng làm mức tối thiểu bằng Quản lý bộ nhớ dùng chung tự động (ASMM). Bạn đặt tối thiểu các giá trị nếu một thành phần ứng dụng cần một lượng bộ nhớ tối thiểu để hoạt động bình thường. Các nhóm sau đây là các thành phần có kích thước thủ công và không bị ảnh hưởng bởi ASMM:


  • Log buffer
  • Các buffer caches khác(such as KEEP and RECYCLE) và các block sizes khác
  • Fixed SGA

Bộ nhớ được phân bổ cho các nhóm này được trừ vào tổng bộ nhớ khả dụng cho SGA_TARGET khi ASMM được bật.

Lưu ý: Quá trình MMON tính toán các giá trị của vùng bộ nhớ được điều chỉnh tự động thành hỗ trợ ASMM. MEMORY_TARGET chỉ định bộ nhớ khả dụng trên toàn hệ thống của Oracle.


Các giai điệu cơ sở dữ liệu bộ nhớ thành giá trị MEMORY_TARGET, giảm hoặc mở rộng SGA và PGA khi cần. Trong tệp tham số khởi tạo, nếu bạn bỏ qua MEMORY_MAX_TARGET và bao gồm một giá trị cho MEMORY_TARGET, cơ sở dữ liệu sẽ tự động đặt MEMORY_MAX_TARGET thành giá trị của MEMORY_TARGET. Nếu bạn bỏ qua dòng MEMORY_TARGET và bao gồm một giá trị cho MEMORY_MAX_TARGET, tham số MEMORY_TARGET mặc định là 0.


Sau khi khởi động, bạn sau đó có thể tự động thay đổi MEMORY_TARGET thành một giá trị khác không nếu nó không vượt quá giá trị MEMORY_MAX_TARGET. Tham số MEMORY_TARGET có thể sửa đổi với lệnh ALTER SYSTEM. Các giá trị nằm trong khoảng từ 152 MB đến MEMORY_MAX_TARGET.

Oracle database - type of initialization parameter
  • Tham số PGA_AGGREGATE_TARGET: Chỉ định dung lượng bộ nhớ Khu vực PGA có sẵn cho tất cả các Server processes được gắn vào Instance. Bộ nhớ này không nằm trong khu vực SGA. Cơ sở dữ liệu sử dụng tham số này làm lượng bộ nhớ PGA mục tiêu sẽ sử dụng. Khi đặt tham số này, hãy trừ SGA khỏi tổng bộ nhớ trên hệ thống dành cho Oracle Instance. Giá trị tối thiểu là 10 MB và giá trị tối đa là (4096 GB – 1). Mặc định là 10 MB hoặc 20% kích thước của SGA, tùy theo giá trị nào lớn hơn.
  • Tham số SHARED_POOL_SIZE: Chỉ định kích thước của vùng Share Pool theo byte. Nhóm Share Pool chứa các đối tượng như shared cursors, stored procedures, control structures và bộ đệm thông báo thực thi song song. Phạm vi giá trị: phụ thuộc vào hệ điều hành. Giá trị mặc định: 0 nếu SGA_TARGET được đặt, ngược lại là 128 MB nếu 64-bit; 48 MB nếu là 32-bit.
  • Tham số UNDO_MANAGEMENT: Chỉ định chế độ quản lý Undo Space mà hệ thống sẽ sử dụng. Khi được đặt thành AUTO, thì Instance start ở chế độ quản lý Auto Undo. Nếu không, nó sẽ start ở chế độ Rollback Undo. Trong chế độ rollback Undo, Undo Space được phân bổ dưới dạng các Rollback Segment. Trong chế độ Auto Undo, Undo Space được phân bổ dưới dạng các Undo Tablespaces. Phạm vi giá trị là: AUTO hoặc MANUAL. Nếu tham số UNDO_MANAGEMENT bị bỏ qua khi start Instance, thì giá trị mặc định AUTO sẽ được sử dụng

Hướng dẫn dùng SQL*Plus để xem tham số khởi tạo trong Oracle Database

Oracle database - type of initialization parameter

Trang hình trên là các ví dụ về cách sử dụng SQL*Plus để xem các parameter. Bạn có thể thực hiên câu lệnh truy vấn view V$PARAMETER để tìm giá trị của các tham số khác nhau. V$PARAMETER hiển thị các giá trị tham số hiện tại trong session hiện tại. Bạn cũng có thể sử dụng lệnh SHOW PARAMETER với bất kỳ chuỗi nào để xem các tham số chứa chuỗi đó. 

Truy vấn trong ví dụ sau đang yêu cầu tên và giá trị của các tham số. Sử dụng mệnh đề WHERE để chỉ định tên tham số cụ thể:

SQL> SELECT name, value FROM v$parameter WHERE name LIKE '%pool%';

Oracle database - type of initialization parameter

Xem mô tả về thông tin view V$PARAMETER

SQL> desc V$parameter

Oracle database - type of initialization parameter

Ví dụ thứ hai cho thấy việc sử dụng lệnh SQL*Plus SHOW PARAMETER để xem cài đặt tham số. Bạn cũng có thể sử dụng lệnh này để tìm tất cả các tham số có chứa chuỗi văn bản. Ví dụ: bạn có thể tìm thấy tất cả các tên tham số bao gồm chuỗi db bằng cách sử dụng lệnh sau:

SQL> show parameter db

Oracle database - type of initialization parameter

Hướng dẫn thay đổi giá trị của tham số khởi tạo Initilization Parameter trong oracle database

Có hai loại tham số khởi tạo.
Static parameters(Tham số tĩnh): Ảnh hưởng đến Instance hoặc toàn bộ cơ sở dữ liệu và chỉ có thể được sửa đổi bằng cách thay đổi nội dung text của file initialization parameter hoặc file server parameter. Các Static parameters yêu cầu tắt và khởi động lại cơ sở dữ liệu để có hiệu lực(Apply các thay đổi trên file). Chúng không thể được thay đổi cho Instance hiện tại(Instance đang chạy).


Dynamic parameters(Tham số động): Có thể thay đổi khi cơ sở dữ liệu trực tuyến. Có hai loại:

  • Tham số Session-level chỉ tác động tới session hiện tại của user. Các ví dụ bao gồm các tham số hỗ trợ ngôn ngữ quốc gia (NLS) có thể được sử dụng để chỉ định cài đặt ngôn ngữ quốc gia cho các tham số sorts, date, v.v. Bạn có thể sử dụng chúng trong một session nhất định; chúng sẽ hết hạn khi phiên kết thúc.
  • Các tham System-level ảnh hưởng đến toàn bộ cơ sở dữ liệu và tất cả các session. Các ví dụ bao gồm sửa đổi giá trị SGA_TARGET và setting vị trí đích của archive log. Các tham số này có hiệu lực dựa trên đặc tả SCOPE. Để biến chúng thành vĩnh viễn, bạn phải thêm các cài đặt tham số này vào tệp tham số máy chủ bằng cách chỉ định tùy chọn SCOPE= both hoặc bằng cách chỉnh sửa thủ công file Initialization Parameter bằng notepad. Các tham số động có thể được thay đổi bằng cách sử dụng các lệnh ALTER SESSIONALTER SYSTEM.

Sử dụng mệnh đề SET của câu lệnh ALTER SYSTEM để thiết lập hoặc thay đổi tham số khởi tạo các giá trị. Mệnh đề SCOPE tùy chọn chỉ định phạm vi thay đổi như sau:

  • SCOPE=SPFILE: Thay đổi chỉ được áp dụng trong server parameter file. không thay đổi cho
     cho instance hiện tại. Đối với cả tham Dynamic và static, sự thay đổi là áp dụng ở lần khởi động tiếp theo của Instance.
  • SCOPE=MEMORY: Thay đổi chỉ được áp dụng trong bộ nhớ. Sự thay đổi được thực hiện đối với Instance hiện tại và có hiệu lực ngay lập tức. Đối với các tham số động, tác dụng là ngay lập tức nhưng không liên tục vì tệp thông số máy chủ không được cập nhật.
  • SCOPE=BOTH: Thay đổi được áp dụng trong cả server parameter file và Memory. Các
    thay đổi được thực hiện đối với instance hiện tại và có hiệu lực ngay lập tức.

Bạn không được chỉ định SCOPE=SPFILE hoặc SCOPE=BOTH nếu Instance không khởi động với
server parameter file. Giá trị mặc định là SCOPE=BOTH nếu server parameter file được sử dụng để start Instance và mặc định là Memory nếu Initialization Parameter file được sử dụng để khởi động.


Đối với một số tham số động, bạn cũng có thể chỉ định từ khóa DEFERRED. Khi nó được chỉ định, các thay đổi chỉ có hiệu lực cho các session trong sau. Điều này chỉ áp dụng cho những tham số sau:

  • AUDIT_FILE_DEST
  • BACKUP_TAPE_IO_SLAVES
  • OBJECT_CACHE_MAX_SIZE_PERCENT
  • OBJECT_CACHE_OPTIMAL_SIZE
  • OLAP_PAGE_POOL_SIZE
  • RECYCLEBIN
  • SORT_AREA_RETAINED_SIZE
  • SORT_AREA_SIZE

Khi bạn chỉ địnhSCOPE là SPFILE hoặc là BOTH, một tùy chọn COMMENT cho phép bạn liên kết một chuỗi văn bản với thông số cập nhật. Nhận xét được ghi vào server parmeter file.

Ví dụ thay đổi giá trị của tham số khởi tạo Initilization Parameter trong oracle database

Oracle database - type of initialization parameter

Câu lệnh đầu tiên trong hình trên là một ví dụ về việc thay đổi tham số cấp session. Người dùng đang đặt định dạng ngày của session thành "mon dd yyyy". Kết quả là, bất kỳ truy vấn vào ngày sẽ hiển thị ngày ở định dạng đó. Các tham số cấp session cũng có thể được đặt trong các ứng dụng bằng cách sử dụng các câu lệnh PL/SQL.


Câu lệnh thứ hai thay đổi số lần đăng nhập không thành công tối đa trước khi kết nối bị ngắt. Nó bao gồm một comment và chỉ rõ sự thay đổi sẽ chỉ được thực hiện trong server parameter file(SPFILE). Sau số lần thử đăng nhập thất bại được chỉ định(ở đây là 2 lần), kết nối sẽ tự động bị hủy bởi quá trình máy chủ. Đây không phải là một tham số động
và Oracle database instance sẽ cần được khởi động lại trước khi thay đổi có hiệu lực.

Chia sẽ bài viết này

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Qui Truong

Thông tin tác giả:

Xin chào mọi người, mình là Qui Trương. Hiện tại, ngoài công việc là một DBA thì mình còn là một người sáng tạo nội dung trên trang blog caitrang.com. Mỗi ngày, mình luôn tìm kiếm cách để chia sẻ những nội dung độc đáo, ý nghĩa và mang tính cảm hứng tới mọi người. Mình tin rằng qua từng dòng viết, mình có thể kết nối và tạo dựng một cộng đồng đọc giả thú vị và ý nghĩa.

Page [tcb_pagination_current_page] of [tcb_pagination_total_pages]

>