Cài đặt phần mềm quản lý máy chủ Linux - Cài đặt: Chọn Xmanager/ ssh client/ sftp client - Mở Xshell - Kiểm tra ping thấy máy ảo - Đăng nhập vào máy ảo: gõ ip vào - Chọn Accept and Save
Trang 1TRƯỜNG ĐẠI HỌC CÔNG THƯƠNG TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN
BÀI TẬP THỰC HÀNH
HỆ QUẢN TRỊ
CƠ SỞ DỮ LIỆU ORACLE
Năm học 2023-2024
Trang 2Bài 1 CÀI ĐẶT ỨNG DỤNG 1.1 Cài đặt oracle trên windows
1.1.1 Cài đặt Oracle
- Sử dụng phiên bản 12c 64bit, giải nén ra thư mục database
- Không gõ email, tắt check “I wish to receive …support”
- Chọn Create and configure a database
- Chọn Server Class
Trang 3- Chọn Single instance database installation
- Chọn Advanced install
- Chọn Create New Windows User, sau đó đặt tên user_name (hr), password (hr)
- Chọn yes
Trang 4- Tắt Create as Container database
1.1.2 Cài đặt công cụ kết nối
a SQL developer (không thể tuning vì yêu cầu bản quyền, muốn tuning phải xài toad)
Trang 5b Toad
1.2 Cài đặt Oralce trên Linux
1.2.1 Chuẩn bị máy ảo Oracle Linux
- Cài đặt máy ảo Vmware
- Tự cài hệ điều hành Oracle Linux 7.7 hoặc giải nén oel.zip được giáo viên cung cấp để có sẵn một hệ điều hành
1.2.2 Khởi động và kiểm tra máy ảo Oracle Linux
- Power on: Đăng nhập bằng user: root/ root hoặc oracle/oracle
- Kiểm tra ip của máy ảo: Gõ lệnh ifconfig để lấy ip Ví dụ 192.168.16.128
- Thực hiện thay đổi: Click chuột phải tại oel, chọn Settings
o Cho phép những máy ảo khác nhìn thấy máy chủ ảo nhưng Không cho những máy thực bên ngoài nhìn thấy máy chủ ảo, máy chủ ảo vẫn ra vào internet bình thường: chọn NAT
Trang 6o Cho phép những máy thực bên ngoài và máy ảo khác bên trong đều nhìn thấy máy chủ ảo và máy chủ ảo vẫn ra vào internet bình thường: Bridged
1.2.3 Cài đặt phần mềm quản lý máy chủ Linux
- Cài đặt: Chọn Xmanager/ ssh client/ sftp client
- Mở Xshell
- Kiểm tra ping thấy máy ảo
- Đăng nhập vào máy ảo: gõ ip vào
- Chọn Accept and Save rồi gõ username/password (root/root hoặc oracle/oracle)
Trang 71.2.4 Thực hiện một số kiểm tra cơ bản trên máy chủ
- Kiểm tra dung lượng đĩa: df -h (có dấu cách) Vùng /dev/mapper/ol_oel-root cho biết thông tin vùng đĩa
- Lấy thông tin user đang đứng hiện hành: id
- Chuyển quyền từ user này sang user khác: su Ví dụ: su - oracle
- Kiểm tra thư mục đang đứng: pwd
- Hệ thống có bao nhiêu thư mục:ls
- Muốn coi quyền: ls –l
- Coi toàn bộ thư mục trong /: ls –l/
- Di chuyển vào đường dẫn thư mục: cd Ví dụ cd/home
- Muốn cài đặt phải dùng user khác như oracle, không được dùng user root
- Xem file ẩn: ls –al (hoặc vào Tool- option – hidden file)
- Muốn chép file phải xem có quyền chép được hay không Thư mục home bình thường không chép vào mà phải tạo thư mục khác Ở ngoài cây lớn có thư mục oracle và chép thư mục vào đây
- Khi cài database phải dùng biến môi trường Biến môi trường quy định đường dẫn $path Ví dụ khi gõ ls –l mà nó vẫn hiểu là vì đã có biến môi trường
- Muốn xem các biến môi trường của nó: xem file bash_profile bằng cách dùng lệnh cat Ví dụ cat bcdash_profile
- In biến môi trường ra ngoài: echo Ví dụ echo $oracle_home
- Chuyển qua thư mục soft: cd/oracle/softs; echo $path; ls –al
1.2.5 Chuẩn bị ứng dụng cài đặt
- Có 2 software để cài đặt, muốn cài với software nào thì chuyển biến môi trường qua đó Nên cài đặt Grid Infrastructure trước khi cài đặt Oracle Database
- Dùng file new transfer chép dữ liệu, chép 2 file db_v982063-01 và grid
v982068-01 vào thư mục /oracle hoặc /home/oracle
- Thao tác copy + paste bình thường như trên windows và sau đó chờ máy chép tùy theo tốc độ
1.2.6 Cài đặt Grid Infrastructure
- Di chuyển vào thư mục chép 2 file nén bằng các lệnh cd
- Kiểm tra các tập tin đã chép bằng lệnh liệt kê ls -l
Trang 8- Chuyển biến môi trường qua grid: grid_env
Trang 9- Chạy file cài đặt, gõ: /gridSetup.sh
- Chờ máy hoàn chỉnh cài đặt:
- Chọn stand alone
- Chọn Change Discovery Path, External rồi chọn ổ đĩa trên
Trang 10- Gõ password (thống nhất Oracle123), chọn Next
- Chọn Next
- Điều chỉnh các thông số như giao diện dưới đây:
Trang 11- Chọn chọn lựa trên ->Yes
- Chọn Next
- Chọn Next
Trang 12- Chọn Next
- Chờ máy cài đặt
- Tại cửa sổ Verification Result
Trang 13- Chuyển qua eof thực hiện các lệnh sau
- cd /oracle/grid/cv/rpm
- rpm -Uvh cvuqdisk-1.0.10-1.rpm
- Chọn Check again, Ignore All, Yes, Install
- Tại cửa sổ
Trang 14- Lần lượt chọn từng đường dẫn trên scripts: nhấn Ctrl +C
- Vào user root, chọn paste (lần lượt chạy cả 2 đường dẫn trên, lần thứ 2 nhấn Enter thêm lần nữa)
- Giữ nguyên 2 màn hình dưới đây, không nhấn gì hết (cho đến khi nào hiện ra dấu nhắc của hệ điều hành)
Trang 15Quá trình cài nếu máy bị lỗi listener thì tắt firewall và các phần mềm quét virus
1.2.7 Cài đặt Oracle database
- Thiết lập biến môi trường
[oracle@oel1 database_19c]$ echo $ORACLE_HOME
[oracle@oel1 database_19c]$ echo $ORACLE_SID
- Tạo thư mục /oracle/app/product/db122 và giải nén tập tin db_V982063-01.zip vào thư mục /oracle/app/product/db122
[oracle@oel1 database_19c]$ mkdir -p /oracle/app/product/db122
[oracle@oel1 database_19c]$ unzip -d /oracle/app/product/db122 01.zip
db_V982063 Chuyển qua thư mục giải nén và chạy file cài đặt
- Chọn Setup Software Only
- Chọn Single instance database installation
- Chọn Enterprise Edition
Trang 16- Giữ nguyên mặc định, chọn Next liên tiếp
- Hiệu chỉnh các giá trị như hình bên dưới
Trang 17- Chọn Next
- Tại giao diện dưới đây thực hiện, copy đường dẫn vào root để chạy
Trang 18[root@oel1 /]# /oracle/app/product/db122/root.sh
1.2.8 Tạo Oracle database
- Thực hiện các lệnh sau
- [oracle@oel1 ~]$ db_env
- [oracle@oel1 ~]$ echo $ORACLE_HOME
- [oracle@oel1 ~]$ echo $ORACLE_SID
- [oracle@oel1 ~]$ dbca
- Chọn Create a database
- Chọn Typical configuration
Trang 19- Chọn Custome database
- Gõ tên database hoặc để nguyên mặc định orcl, sau đó bỏ chọn mục “Create as Container database”
Trang 20- Điều chỉnh cho các cửa sổ tiếp theo như các hình dưới
Trang 22- Trong National Character set, chọn UTF8
- Lưu ý: Nếu bị lỗi listener như dưới đây
Trang 23Thì thực hiện lệnh:
Grid_env
Lsnrctl start [tên listener]
- Chọn Add sample schemas to the database
- Gõ password (trong bài thực hành là Oracle123)
Trang 251.2.9 Kiểm tra kết nối
- Kiểm tra trên Server
[oracle@oel1 ~]$ ps -ef|grep pmon
oracle 11315 1 0 11:22 ? 00:00:00 ora_pmon_orcl
oracle 11904 2569 0 11:24 pts/1 00:00:00 grep color=auto
pmon
oracle 28249 1 0 10:26 ? 00:00:00 asm_pmon_+ASM
Trang 26Start Date 09-SEP-2019 10:25:44
Uptime 0 days 0 hr 58 min 53 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/grid/network/admin/listener.ora
Listener Log File
Service "+ASM" has 1 instance(s)
Instance "+ASM", status READY, has 1 handler(s) for this
service
Service "+ASM_CRS" has 1 instance(s)
Instance "+ASM", status READY, has 1 handler(s) for this
service
Service "+ASM_DATA" has 1 instance(s)
Trang 27Instance "+ASM", status READY, has 1 handler(s) for this
service
Service "+ASM_FRA" has 1 instance(s)
Instance "+ASM", status READY, has 1 handler(s) for this
service
Service "orcl" has 1 instance(s)
Instance "orcl", status READY, has 1 handler(s) for this service
Service "orclXDB" has 1 instance(s)
Instance "orcl", status READY, has 1 handler(s) for this service
The command completed successfully
[oracle@oel1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Sep 9 11:24:40
ORCL READ WRITE
SQL> select status from v$instance;
Trang 28Xử lý lỗi ORA-01081: cannot start already-running ORACLE -
shut it down first
[oracle@oel ~]$ db_env
[oracle@oel ~]$ echo ORACLE_HOME
[oracle@oel ~]$ export ORACLE_SID=orclAo
[oracle@oel ~]$ sqlplus sys/sys as sysdba
SQL> shutdown immediate
SQL> exit
[oracle@oel ~]$ sqlplus sys/sys as sysdba
SQL> startup
- Kiểm tra từ Client (Sqldeveloper)
select * from v$database;
select * from v$instance;
select * from v$datafile;
- Kết nối giữa máy thật và máy ảo
- Kiểm tra card mạng kiểu Bridge
Trang 29- Connected: gắn card mạng vào máy
- Connect at power on: bật card mạng lên
- Không chọn Replicate physical network connection state
- Thực hiện thay đổi ip máy ảo cùng lớp máy thật
- Đổi lại ip
Sudo ifconfig tên_card_mạng ip_phòng máy netmask netmask_phòng máy
Ví dụ: sudo ifconfig ens34 172.17.102.101 netmask 255.255.255.0
Cần lưu ý: nếu có nhiều card mạng thì card sau sẽ có số lớn hơn Ví dụ ens32, ens34…
- Đặt lại default gateway (nếu muốn kết nối internet)
Sudo route add default gw default_gateway_phòng máy tên_card_mạng
Ví dụ: sudo route add default gw 172.17.x.x ens34
- Ens32 vẫn giữ nguyên ip là 192.168.100.11, thiết lập kiểu NAT
- Ens34 đổi ip máy ảo giống ip máy thật
Trang 30- Tại máy cài server, có thể telnet bằng cả ip 192.168.100.11 và cả 172.17.102.101
- Tại các máy thật khác chỉ có thể telnet bằng ip 172.17.102.101
Trang 31Bài 2 KIẾN TRÚC ORACLE VÀ QUẢN TRỊ DATABASE INSTANCE 2.1 Một số các lệnh hay dùng
- Lệnh liệt kê các process: [oracle@oel ~]$ ps -ef|grep +ASM
- Xem thông tin, tham số các tiến trình
- Chuyển biến môi trường (Linux) : db_env
- Xuất biến môi trường (Linux) : export ORACLE_SID=orcl (orcl là instances name đã được tạo)
- Quản trị: sqlplus sys / as sysdba (login bằng quyền quản trị cao nhất)
- Xem thông tin parameter file: SQL>show parameter Ví dụ
Xem tham số process: SQL> show parameter process
Xem tham số spfile (file text): SQL > show parameter spfile
- Thay đổi giá trị tham số
o Lệnh thay đổi giá trị tham số: Alter system set… scope = memory/
spfile/both
o Nếu chỉnh trên memory (scope=memory) thì trên spfile không có Nếu chỉnh trên spfile (scope=spfile) thì memory không có phải restart lại mới cập nhật Muốn cập nhật vừa trên memory vừa trên spfile, phải chọn
scope=both
o File binary phải chỉnh bằng lệnh: SQL> alter system set process =400 scope=spfile; (chỉnh thẳng lên spfile) Sau khi chỉnh xong nó vẫn chưa cập nhật, cần phải tắt instance mới thấy cập nhật
- Tắt mở hệ thống
- Các trạng thái của hệ thống:
o Ban đầu ở trạng thái shutdown
o Trạng thái Nomount: Đọc parameter file (lưu những thông tin cấu hình liên quan đến tham số, mặc định nằm trong thư mục
$ORACLE_HOME/dbs bằng tập tin có tên là spfile[…].ora)
o Trạng thái Mount: Đọc control file (lưu thông tin db như đường dẫn file, cấu hình liên quan đến db
o Trạng thái Open: bước này mới hoạt động được: Đọc tất cả các file còn lại (liên quan đến dữ liệu)
- Lệnh mở hệ thống: Startup Muốn startup ở trạng thái nào thì chọn trạng thái
Trang 32o Transactional: đợi cho đến khi nào transction được ngưng Ví dụ người dùng đang dùng khoảng 15 phút thì đợi tất cả người dùng kết thúc mới tắt
o Normal: người dùng thoát ra hết mới tắt Đợi đến khi nào hết thì ngưng
- Tạo spfile: create pfile from spfile
- Hiển thị file log: show parameter diag
- Xem thông tin người dùng đang login vào:
o Liệt kê thuộc tính: desc v$session
o Hiển thị thông tin: select * from v$session
o Xóa session: alter system kill session 'SID,Serial#'
2.2 Các công cụ quản lý cơ sở dữ liệu
- Công cụ SQL Developer
- Công cụ Oracle Enterprise Manager
o Cài flash
o Kiểm tra port phải là 5500
SELECT DBMS_XDB_CONFIG.gethttpport FROM dual; Hoặc
SELECT DBMS_XDB_CONFIG.gethttpsport FROM dual;
https://hostname:5500/em
Ví dụ: https://desktop-o1in781:5500/em
o Nhập user/ pass (ví dụ sys/sys)
Trang 332.3 Thao tác trên process
1 Liệt kê các thuộc tính của process
SQL> desc v$process;
Trang 342.4 Thay đổi trạng thái db
2 Xem trạng thái (mode) của db hiện tại
SQL> select name, open_mode from v$database;
3 Tắt hệ thống theo một trong 4 kiểu (có thể thử hết tất cả các kiểu)
SQL> shutdown immediate
4 Dùng SQL Developer kiểm tra lại hoặc chuyển qua sql ở section mới để kiểm tra bằng các câu lệnh sau đây:
select * from v$instance
select * from v$database
select * from v$datafile
5 Quay trở về section cũ, khởi động lại hệ thống ở trạng thái đầu tiên (startup) SQL> startup
Trang 356 Thực hiện kiểm tra instance, database, datafile trên Sql Developer
7 Tắt và khởi động hệ thống ở trạng thái nomount, kiểm tra database, instance SQL> startup nomount;
8 Chuyển sang trạng thái mout và kiểm tra
SQL> alter database mount;
9 Chuyển sang trạng thái open và kiểm tra db
SQL> alter database open;
SQL> exit
10 Kiểm chứng quá trình khởi động bằng spfile
Trang 36- Quá trình khởi động hệ thống sẽ vào $ORACLE_HOME/dbs bằng tập tin có tên
là spfile[…].ora Thử đổi sang tên khác
- Tiến hành tắt và khởi động lại, hệ thống sẽ báo lỗi
- Đổi tên lại và khởi động lại sẽ thành công
- Thao tác trên file text (vì spfile là dạng binary nên cần tạo ra file text) Tên cố
định của file là init[…] ora Lệnh tạo file text:
SQL> create pfile from spfile
Trang 37- Khởi động lại
- Khi đó ta thấy nó chỉ chỉnh thông số trên binary
- Đổi tên file binary (spfile) thành một tên khác, shutdown và startup lại thì db sẽ khởi động trên file txt
- Show parameter lên sẽ thấy giá trị value trống, có nghĩa là db đang chạy trên file text
SQL> show parameter spfile
- Kiểm tra tham số của process và thử tác động tham số khác sẽ không được vì spfile không được đang sử dụng
SQL> show parameter process
Trang 38- Mở file initorclAo.ora thử chỉnh thông số processes sang giá trị khác (ví dụ hiện tại đang là 320 chuyển sang 400
- Thực hiện kiểm tra lại thông số đã được cập nhật
[oracle@oel dbs]$ cat initorclAo.ora
2.5 Thao tác trên file log
11 Xem vị trí alert log
SQL> select * from v$diag_info
12 Hiển thị tham số trên Linux
SQL> show parameter diag
o Di chuyển vào thư mục
SQL> show parameter diag
2.6 Session
13 Liệt kê tất cả tham số của v$session:
SQL> desc v$session
Trang 3914 Đếm số session
SQL> select count(*) from v$session;
15 Xem thông tin cụ thể các session đang đăng nhập
SQL> select sid, serial#, username, program from v$session where
type!='BACKGROUND';
Lưu ý: muốn xem hoặc điều chỉnh thông tin độ rộng màn hình và chiều dài dòng
Set pagesize (<50.000) hoặc set linesize (<32000)
Show pagesize, show linesize
- Xóa session
SQL> alter system kill session 'SID,Serial#';
Ví dụ: alter system kill session '399,29925';
Kiểm tra sẽ thấy báo lỗi tại session vừa xóa
Trang 4016 Xác định process ứng với session đang đăng nhập
SQL> select s.sid, s.serial#, p.spid, s.username, s.program from v$session s, v$process p where p.addr=s.paddr and s.type!='BACKGROUND';
17 Xóa process ứng với session đăng nhập
SQL> ! kill -9 SPID
Ví dụ:
SQL> ! kill -9 19026
2.7 Kiểm toán
18 Kiểm tra thông tin audit (audit_ trail phải là chế độ db)
SQL> show parameter audit;
Trang 4119 Thiết lập chế độ audit trail
SQL>ALTER SYSTEM SET audit_trail=db, extended SCOPE=SPFILE;
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
20 Xóa bảng aud$ và fga_log$
SQL>TRUNCATE TABLE aud$;
SQL>TRUNCATE TABLE fga_log$;
21 Tạo một chính sách giám sát dùng để giảm sát các hoạt động xem trên bảng countries của hr
SQL> audit select on hr.countries
22 Kiểm tra việc ghi nhật ký giám sát
23 Tạo thử 2 policy với table có sẵn (countries, employees) và user có sẵn (hr) với chính sách kiểm tra khi người dùng truy vấn xem, xóa, sửa, cập nhật dữ liệu SQL>