Cài đặt GUI
Đầu tiên cần cài đặt giao diện GUI cho CentOS, làm theo bài hướng dẫn sau: Install Gnome 3 GUI on RHEL, CentOS
Download bộ cài
Download bộ cài Oracle 12c từ trang chủ của Oracle hoặc bằng link Google Drive tại đây:
Thiết lập môi trường cài đặt
Hostname
Thiết lập hostname
sudo hostnamectl set-hostname your-new-hostname sudo reboot
Ví dụ:
sudo hostnamectl set-hostname oracle.travis
Chỉnh sửa file hosts:
sudo nano /etc/hosts
/etc/hosts
192.168.0.1 oracle.travis oracle
Bấm `Ctrl+O` và `Ctrl+X` để thực hiện lưu lại và thoát trình edit văn bản nano.
Cấu hình hệ thống
Chỉnh sửa file sysctl.conf:
sudo nano /etc/sysctl.conf
Bổ sung thêm nội dung sau vào cuối file: /etc/sysctl.conf
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048586
Apply nội dung sửa đổi:
sudo /sbin/sysctl -p
Cấu hình giới hạn tài khoản
Chỉnh sửa file limits.conf:
sudo nano /etc/security/limits.conf
Bổ sung thêm nội dung sau vào cuối file: /etc/security/limits.conf
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 4096 oracle hard nofile 65536 oracle soft stack 10240
Apply cấu hình:
sudo nano /etc/pam.d/login
Bổ sung thêm dòng sau nếu chưa có: /etc/pam.d/login
session required pam_limits.so
Các gói thư viện
Cài đặt các gói package cần thiết:
sudo yum install -y binutils compat-libstdc++-33 compat-libstdc++-33.i686 gcc gcc-c++ glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libaio libaio.i686 libaio-devel libaio-devel.i686 libXext libXext.i686 libXtst libXtst.i686 libX11 libX11.i686 libXau libXau.i686 libxcb libxcb.i686 libXi libXi.i686 make sysstat unixODBC unixODBC-devel zlib-devel elfutils-libelf-devel
Tài khoản cài đặt
Khởi tạo tài khoản cài đặt, thiết lập mật khẩu tài khoản oracle:
sudo groupadd -g 54321 oinstall sudo groupadd -g 54322 dba sudo groupadd -g 54323 oper sudo useradd -g oinstall -G dba,oper oracle sudo passwd oracle
Nhập mật khẩu cho tài khoản oracle. Chỗ này nên nhập mật khẩu dễ nhớ chút, vì các bước tiếp theo sẽ dùng thường xuyên. Sau khi cài đặt thành công đặt lại mật khẩu mạnh cho tài khoản cũng chưa muộn 🙂
Chế độ bảo mật truy cập
Chuyển chế độ selinux sang permissive:
sudo nano /etc/selinux/config
Sửa giá trị SELINUX thành như sau: /etc/selinux/config
SELINUX=permissive
Nếu thiết lập hiện tại của hệ điều hành đang là disabled, cần khởi động lại server:
sudo reboot
Apply thiết lập cho session hiện tại:
sudo setenforce Permissive
Firewall
Tắt firewall để việc cài đặt được thuận tiện. Sau khi cài đặt thành công sẽ thiết lập lại firewall sau.
sudo systemctl stop firewalld sudo systemctl disable firewalld
Thư mục cài đặt
Tạo thư mục cài đặt và gán quyền truy cập:
mkdir -p /u01/app/oracle/product/11.2.0.1/db_1 chown -R oracle:oinstall /u01 chmod -R 775 /u01
Đăng nhập tài khoản oracle, cấu hình các biến môi trường cho user cài đặt:
nano /home/oracle/.bash_profile
Bổ sung nội dung sau xuống dưới cùng: /home/oracle/.bash_profile
# Oracle Settings TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR # Change ORACLE_HOSTNAME to your machine hostname ORACLE_HOSTNAME=oracle.travis; export ORACLE_HOSTNAME # Change ORACLE_UNQNAME to your database name, usually is `orcl`, default value of oracle ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0.1/db_1; export ORACLE_HOME # Change ORACLE_SID to match your SID you will setup create when installing oracle ORACLE_SID=orcl; export ORACLE_SID ORACLE_TERM=xterm; export ORACLE_TERM PATH=/usr/sbin:$PATH; export PATH PATH=$ORACLE_HOME/bin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
Apply cấu hình:
source /home/oracle/.bash_profile
Sử dụng công cụ SCP để upload file cài đặt đã tải ở trên lên server, sau đó giải nén sẽ được thư mục database chưa bộ cài.
unzip linuxx64_12201_database.zip -d /stage/
Nếu chưa có lệnh unzip, có thể cài đặt thông qua lệnh yum.
Cài đặt
Cài đặt bằng giao diện
Truy cập giao diện GUI để cài đặt bằng tài khoản oracle, khởi chạy terminal, di chuyển tới thư mục database ở trên, chạy lệnh install để tiến hành cài đặt.
./runInstaller
Gỡ lỗi
Trong quá trình cài đặt có thể sẽ xuất hiện vài lỗi, trong đó có 2 lỗi thường gặp như sau:
Lỗi liên quan tới file ins_emagent.mk
Sử dụng tài khoản oracle.
Để fix lỗi này, thực hiện chỉnh sửa lại file ins_emagent.mk
nano $ORACLE_HOME/sysman/lib/ins_emagent.mk
Nhấn tổ hợp phím `Ctrl+W`, tìm kiếm từ khóa `MK_EMAGENT_NMECTL`
Thay đổi giá trị từ `$(MK_EMAGENT_NMECTL)` thành `$(MK_EMAGENT_NMECTL) -lnnz11`
Quay trở lại giao diện GUI cài đặt, bấm nút `Retry` để tiếp tục.
Lỗi liên quan tới file ins_ctx.mk
Sử dụng tài khoản root.
Tạo file fix_ctx.sh
nano fix_ctx.sh
Nhập vào nội dung sau: fix_ctx.sh
# Fix ctx/lib/ins_ctx.mk ORACLE_HOME=/u01/app/oracle/product/11.2.0.1/db_1 cat << __EOF__ > /tmp/memcpy_wrap.c #include <stddef.h> #include <string.h> asm (".symver wrap_memcpy, memcpy@GLIBC_2.14"); void *wrap_memcpy(void *dest, const void *src, size_t n) { return memcpy(dest, src, n); } __EOF__ if [[ -e "${ORACLE_HOME}/ctx/lib/ins_ctx.mk" ]]; then sed -i -e 's/$(INSO_LINK)/$(INSO_LINK) -Wl,--wrap=memcpy_wrap $(ORACLE_HOME)/ctx/lib/memcpy_wrap.o/g' ${ORACLE_HOME}/ctx/lib/ins_ctx.mk gcc -c /tmp/memcpy_wrap.c -o ${ORACLE_HOME}/ctx/lib/memcpy_wrap.o && rm /tmp/memcpy_wrap.c fi
Lưu lại. Chạy file để sửa lỗi:
chmod +x fix_ctx.sh ./fix_ctx.sh
Quay trở lại giao diện GUI cài đặt, bấm nút `Retry` để tiếp tục.
Hoàn thành cài đặt
Kết thúc cài đặt
Sử dụng tài khoản root để thực hiện các lệnh sau theo hướng dẫn của cài đặt:
cd /u01/app/oraInventory ./orainstRoot.sh cd /u01/app/oracle/product/11.2.0.1/db_1/ ./root.sh
Cấu hình oratab
sudo nano /etc/oratab
Đổi giá trị `N` thành `Y` như dòng sau: /etc/oratab
orcl:/u01/app/oracle/product/11.2.0.1/db_1:Y
Cấu hình listener
Sử dụng tài khoản oracle.
Kiểm tra lại cấu hình listener để đảm bảo kết nối từ xa thành công:
nano /u01/app/oracle/product/11.2.0.1/db_1/network/admin/listener.ora
Thiết lập giá trị HOST thành domain hoặc hostname của server. Như trong ví dụ được cấu hình là domain. listener.ora
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = oracle.travis)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /u01/app/oracle
Cấu hình oracle service
Sử dụng tài khoản root.
Tạo service phục vụ việc start, stop, kiểm tra trạng thái database dễ dàng hơn như sau:
sudo nano /etc/systemd/system/oracle-rdbms.service
Nhập vào nội dung sau: oracle-rdbms.service
# /etc/systemd/system/oracle-rdbms.service # Invoking Oracle scripts to start/shutdown Instances defined in /etc/oratab # and starts Listener [Unit] Description=Oracle Database(s) and Listener Requires=network.target [Service] Type=forking Restart=no ExecStart=/u01/app/oracle/product/11.2.0.1/db_1/bin/dbstart /u01/app/oracle/product/11.2.0.1/db_1 ExecStop=/u01/app/oracle/product/11.2.0.1/db_1/bin/dbshut /u01/app/oracle/product/11.2.0.1/db_1 User=oracle [Install] WantedBy=multi-user.target
Start service oracle:
# Enable service for automatically startup sudo systemctl enable oracle-rdbms # Start service now sudo systemctl start oracle-rdbms # Check service status systemctl status oracle-rdbms
Bây giờ, có thể sử dụng sqlplus để khởi tạo schema và user cho database được rồi.
sqlplus / as sysdba
[alert type=”error” title=”Chú ý”] 1. Thiết lập lại mật khẩu mạnh cho account oracle. 2. Thiết lập lại firewall. Hạn chế tối đa các truy cập để đảm bảo an toàn cho máy chủ cơ sở dữ liệu. [/alert]