- Giới thiệu Database Control, Enterprise Manger.
- Tham số cấu hình hệ thống Initialization Parameters
- Các trạng thái của database khi startup.
- Các lựa chọn khi shutdown database.
- Đề cập Alert log và Trace files.
- Giới thiệu Dynamic performance views.
Oracle Database cung cấp một giao diện quản lý độc lập (stand-alone management console) database gọi là Database Control. Mỗi database control chỉ quản lý 1 database duy nhất. Enterprise manager là một Web-based database control. Các câu lệnh liên quan đến enterprise manager
emctl status dbconsoleChú ý, để sử dụng những câu lệnh này, cần set biến môi trường, ở ví dụ của mình là "orcl"
emctl start dbconsole
emctl stop dbconsole
Khi start enterprise manager lên, ta có thể truy cập vào giao diện web để xem. Đường dẫn có dạng
https://ip_server:port/em
Trong đó:
- ip_server là ip của server database
- port kết nối, mặc định là 1158 (nhớ mở kết nối iptables cho port này). Có thể cấu hình lại port này trong file $ORACLE_HOME/install/portlist.ini
II - Initialization Parameter Files
Initialization parameter file là file chứa những tham số cấu hình cho database. Những file dạng này sẽ được đọc khi start instance.
1. Phân biệt hai loại file cấu hình
- Server parameter file (SPFILE): Dạng file binary được đọc và ghi bởi server, chúng ta đừng nên đụng vào file này vì là dạng binary nên có đụng vào cũng không hiểu được ^^. SPFILE nằm trên server. Tên mặc định của file này có dạng "spfile<SID>.ora".
- Text initialization parameter file (PFILE): Dạng file này có thể được đọc bởi server, nhưng server không thể ghi được. PFILE là dạng text nên người thường có thể đọc được bằng mắt. PFILE vừa nằm trong server, vừa phải có 1 bản copy trên client. Dạng file "init<SID>.ora"
Oracle tìm kiếm parameter file theo thứ tự
- Tìm file spfile<SID>.ora trong $ORACLE_HOME/dbs.
- Tìm file spfile.ora trong $ORACLE_HOME/dbs.
- Tìm file init<SID>.ora trong $ORACLE_HOME/dbs.
Có 2 dạng: basic và advance
Oracle khuyên rằng, trong phần lớn các trường hợp ta chỉ cần sửa 30 basic parameters để tăng performance cho database.
Một số ví dụ về basic parameters:
- DB_NAME và DB_DOMAIN để xác định tên global của database.
- Kích thước tổng cộng của SGA: SGA_TARGET.
- CONTROL_FILES: chỉ định số lượng control filenames cho database. Oracle đề nghị ít nhất có 2 control file cho mỗi database.
- DB_FILES: chỉ định tối đa bao nhiêu database files được opened cho 1 database. Giá trị mặc định : 200.
- PROCESSES: giới hạn số lượng tối đa user processes có thể đồng thời kết nối đến Oracle server. Giá trị mặc định: 100.
- DB_BLOCK_SIZE: xác định kích thước (bytes) của 1 Oracle database block.
- DB_CACHE_SIZE: xác định kích thước chuẩn của block buffer cache.
Xác định tổng kích thước vùng SGA, bao gồm các thành phần con bên trong nó. Nếu cấu hình cho SGA_TARGET, thì vùng nhớ của các thành phần con bên trong cũng được tự động cấu hình theo, bao gồm:
- 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).
Chia làm 2 loại tham số: static parameters và dynamic parameters
1. Static parameters: Thay đổi static paramters đòi hỏi phải restart lại database để thay đổi có hiệu lực.
2. Dynamic parameters: Có thể thay đổi được ngay khi database đang chạy. Chia làm 2 loại
- Session-level parameters: chỉ ảnh hưởng trong 1 user session. Sẽ hết tác dụng khi kết thúc user session đó.
- System-level parameters: ảnh hưởng đến toàn bộ database và các session khác trong hệ thống.
4. Tầm vực giá trị trong Initialization Paramter
Giá trị tham số SCOPE áp dụng khi thay đổi static hay dynamic parameters:
- SCOPE=SPFILE: chỉ thay đổi trên SPFILE. Và chỉ có hiệu lực lần startup tiếp theo của database. Chỉ áp dụng cho static parameters.
- SCOPE=MEMORY: thay đổi áp dụng trên memory. Có hiệu lực ngay lập tức. Không áp dụng cho static parameters.
- SCOPE=BOTH: thay đổi áp dụng cả trên SPFILE và memory. Đối với dynamic parameters sẽ có hiệu lực ngay lập tức và ngay cả lần startup tiếp theo của database do đã lưu trên SPFILE. Còn đối với static parameters thì chế độ này không được phép. (Vì static parameters không thể nào có hiệu lực ngay lập tức nên có lưu trên memory cũng vô tác dụng).
ALTER SESSION SET NLS_DATE_FORMAT = 'mon dd yyyy';
ALTER SYSTEM SET SEC_MAX_FAILED_LOGIN_ATTEMPTS=2 COMMENT='Reduce from 10 for tighter security.' SCOPE=SPFILE;
III - Các trạng thái của database khi startup
Khi start database instance, có nhiều trạng thái để lựa chọn vị trí bắt đầu start: NOMOUNT, MOUNT, OPEN.
1. Chế độ NOMOUNT
Các công việc thực hiện trong chế độ NOMOUNT:
- Tìm kiếm initialization parameter file theo thứ tự: kiếm spfile<SID>.ora đầu tiên, nếu không có kiếm spfile.ora, nếu không có nữa thì kiếm init<SID>.ora.
- Cấp phát vùng nhớ SGA.
- Start background processes.
- Mở alert<SID>.log file và trace files.
Các công việc thực hiện trong chế độ MOUNT:
- Kế thừa trạng thái database ở chế độ NOMOUNT.
- Xác định vị trí và open tất cả các control files xác định trong parameter file.
- Đọc từ control files để lấy ra tên và trạng thái hoạt động của data files và online redo log files. Tuy nhiên, bước này không cần kiểm tra sự tồn tại thực sự của data files và online redo log files.
- Rename data files.
- Enable hoặc Disable online redo log file archiving.
- Performing full database recovery.
Trạng thái hoạt động của database tức là instance được started và datase được mounted và opented để bất kì user hợp lệ nào cũng đều có thể kết nối được đến database.
Các công việc thực hiện trong chế độ OPEN:
- Open data files
- Open online redo log files
4. Ví dụ sử dụng sqlplus để start instance
Start instance, sau đó mount và open database
SQL> startupStart instance và database ở chế độ NOMOUNT
SQL> startup nomountLệnh mount database từ trạng thái NOMOUNT
SQL> alter database mount;Lệnh open database từ trạng thái MOUNT
SQL> alter database open;
Ngoài ra, khi cài đặt Oracle Restart, có thể sử dụng srvctl utility để start database instance. Ưu điểm khi dùng srvctl utility là nó có thể start tất cả các resource khác như ASM instance, ASM disk groups và listener.
IV - Các lựa chọn khi shutdown database
Có 4 chế độ shutdown:
- NORMAL: chờ đến khi tất cả session disconnect, là loại shutdown chậm nhất.
- TRANSACTIONAL: cho phép những transaction hiện tại kết thúc, nhưng không cho phép tạo mới transaction nữa.
- IMMEDIATE: loại thường được sử dụng nhất. Những transaction nào chưa commit sẽ bị roll back.
- ABORT: thực hiện ít công việc nhất có thể trước khi shutdown, là loại shutdown nhanh nhất. Khi sử dụng shutdown ABORT thì lần start tới sẽ đòi hỏi chạy instance recovery.
Quá trình shutdown ở các chế độ: NORMAL, TRANSACTIONAL, IMMEDIATE |
Là chế độ mặc định (sử dụng SQL*PLUS) khi shutdown nếu không chỉ định cụ thể shutdown ở chế độ nào. NORMAL shutdown chỉ thực hiện trong những điều kiện sau:
- Không tạo thêm connection mới.
- Chờ cho tất cả users disconnect.
- Database và redo buffers được ghi xuống disk.
- Tắt background processes và thu hồi vùng nhớ của SGA.
- Oracle server close và dismount database trước khi shutdown instance.
- Lần start kế tiếp không cần instance recovery.
- Bảo toàn tính toàn vẹn database.
Chế độ này đảm bảo dữ liệu của client không bị mất, chờ đến khi transaction của client hoàn thành. Thực hiện trong các điều kiện sau:
- Không cho tạo mới transaction từ client.
- Client sẽ bị disconnect khi kết thúc transaction.
- Khi tất cả các transaction hoàn tất, thực hiện shutdown ngay lập tức.
- Lần start kế tiếp không cần instance recovery.
- Bảo toàn tính toàn vẹn database.
Là chế độ default khi thực hiện shutdown trong Enterprise Manager.
Thực hiện trong điều kiện:
- Những câu lệnh SQL nào đang chạy sẽ bị ngắt.
- Oracle server không chờ user tự disconnect khỏi database.
- Roll back tất cả transactions và disconnect tất cả users.
- Close và dismount database trước khi shutdown instance.
- Lần start kế tiếp không cần instance recovery.
- Bảo toàn tính toàn vẹn database.
Quá trình shutdown ABORT |
Thực hiện trong các điều kiện:
- Những câu lệnh SQL nào đang chạy sẽ bị ngắt.
- Oracle server không chờ user tự disconnect khỏi database.
- Database và redo buffers không được ghi xuống disks.
- Uncommitted transactions không được roll back.
- Instance sẽ bị tắt mà không đóng lại các files.
- Database không được closed và dismounted.
- Lần start tiếp theo yêu cầu chế độ instance recovery.
- Không bảo toàn tính toàn vẹn của database.
Phần này chủ yếu nói về phần ghi log các tác động đến DB, hay các lỗi phát sinh khi server và background processes chạy.
VI - Dynamic Performace Views
Phần này đề cập 2 khái niệm về Dynamic Performance Views và Data Dictionary Views
1. Dynamic Performance Views
Là những bảng ảo lưu trữ trên memory structure của database, bắt đầu bằng từ khóa "v$", chứa thông tin vận hành và hiệu năng (performance) của database instance.
Dynamic performance views chứa các thông tin gồm:
- Sessions
- File states
- Tiến trình
- Locks
- Backup status
- Cấp phát và sử dụng memory
- System và session parameters
- SQL execution
Lấy ra câu truy vấn nào có thời gian CPU thực hiện trên 200,000 microseconds
SQL> SELECT sql_text, executions FROM v$sql WHERE cpu_time > 200000;
Lấy ra các sessions IDs đang dữ lock
SQL> SELECT sid, ctime FROM v$lock WHERE block > 0;
2. Data Dictionary
Chứa thông tin metadata của database, bao gồm tên và thuộc tính của tất cả các objects trong database. Những thay đổi ảnh hưởng đến bất kì object nào trong database đều được update vào data dictionary.
Data dictionary dùng để:
- Được Oracle database server dùng để tìm kiếm thông tin users, objects, constraints, lưu trữ.
- Được vận hành bởi Oracle database server.
- User có thể truy vấn thông tin về database thông qua các view truy xuất thông tin từ data dictionary.
- Được sở hữu bởi user SYS.
- Không nên chỉnh sửa trực tiếp thông qua câu SQL vào những thông tin của data dictionary.
- Prefix DBA_ : được xem tất cả thông tin và một số thông tin chỉ dành cho DBA, chỉ có người dùng có quyền DBA mới xem được.
- Prefix ALL_ : được xem tất cả thông tin objects mà user được cấp quyền xem, bất kể đối objects đó có thuộc sở hữu của user đó hay không.
- Prefix USER_ : có tầm vực nhỏ nhất, chỉ được xem thông tin những objects mà user sở hữu.
Một số ví dụ về truy vấn thông tin trong data dictionary view
Lấy thông tin table_name, tablespace_name trong shema đang sử dụng:
SELECT table_name, tablespace_name FROM user_tables;
Lấy thông tin các user có thể log in vào hệ thống:
SELECT username, account_status FROM dab_users WHERE account_status = 'OPEN';
Link tham khảo:
Không có nhận xét nào:
Đăng nhận xét