Hướng dẫn cài đặt Oracle 11g trên Ubuntu Linux: Hướng dẫn chi tiết
Oracle Database là phần mềm quản lý cơ sở dữ liệu đa nền tảng đáng tin cậy do Oracle Corporation phát triển. Phần mềm này mang lại nhiều ưu điểm, bao gồm hiệu suất cao, chức năng đa dạng, hỗ trợ cụm máy chủ, hỗ trợ PL/SQL, v.v. Oracle Database (sẽ được gọi tắt là Oracle trong bài viết này) có thể được cài đặt trên các hệ điều hành Solaris, Windows và Linux. Việc cài đặt trên Windows là lựa chọn đơn giản nhất, trong khi việc cài đặt Oracle trên Solaris và Linux đòi hỏi phải thực hiện cấu hình thủ công trước khi cài đặt. Đối với các bản phân phối Linux, Oracle khuyến nghị cài đặt cơ sở dữ liệu Oracle trên Red-Hat, Oracle Linux và SUSE Linux Enterprise Server.
Tuy nhiên, bạn cũng có thể cài đặt Oracle trên Ubuntu Linux và Open SUSE Linux. Ubuntu là một bản phân phối Linux phổ biến được sử dụng rộng rãi trên thế giới và bài viết trên blog hôm nay cung cấp hướng dẫn từng bước về cách cài đặt Oracle trên Ubuntu. Trong hướng dẫn này, chúng ta sẽ cài đặt cơ sở dữ liệu Oracle Enterprise Edition (EE) 11g R2 trên Ubuntu.
Chuẩn bị Ubuntu Linux
Trong hướng dẫn này, chúng tôi sử dụng một bản cài đặt mới của Ubuntu 16.04.6 . Hệ điều hành đã được cài đặt trên máy ảo VMware mà không kích hoạt tùy chọn “ Tải xuống các bản cập nhật trong khi cài đặt Ubuntu ” và không sử dụng tùy chọn “ Cài đặt phần mềm của bên thứ ba ” trong quá trình triển khai hệ điều hành.
Nếu bạn chưa từng cài đặt Oracle trên Linux trước đây, bạn nên tìm hiểu cách Cài đặt Oracle trên Ubuntu trên máy ảo trước khi cài đặt Oracle trên máy tính vật lý hoặc máy chủ.
Nếu bạn sử dụng máy ảo VMware, đừng quên cài đặt VMware Tools. Bạn cũng có thể sử dụng máy ảo VirtualBox và Hyper-V.
Đảm bảo rằng bạn đã chọn múi giờ chính xác trong quá trình cài đặt. Múi giờ là GMT 0 (London) trong ví dụ này.
Bạn có thể kiểm tra múi giờ bằng lệnh:
timedatectl
Kiểm tra phiên bản Ubuntu:
lsb_release -a
Kết quả hiển thị như sau trong ví dụ này:
Trong hướng dẫn này về cách cài đặt Oracle 11g trên Ubuntu, các thông số phần cứng máy ảo sau được sử dụng:
- CPU: 1 CPU
- RAM: 4 GB
- Ổ cứng: 40 GB
user1 là người dùng thông thường trong ví dụ này ( user1 được tạo ra trong quá trình cài đặt Ubuntu và được sử dụng để đăng nhập vào Ubuntu).
Các gói phần mềm sau đã được cài đặt:
- vim , trình soạn thảo văn bản
- net-tools , các công cụ quản lý mạng
- openssh-server , máy chủ SSH cho phép bạn kết nối từ xa với giao diện dòng lệnh (terminal) của Linux
Nếu bạn chưa cài đặt các gói này trên hệ thống Ubuntu Linux của mình, bạn có thể cài đặt chúng bằng lệnh:
sudo apt-get install -y vim net-tools openssh-server
Máy chủ SSH được cài đặt để tiện lợi. Bạn nên chạy nhiều lệnh trong giao diện điều khiển trước khi sử dụng trình cài đặt Oracle trên Ubuntu.
Để kích hoạt xác thực bằng mật khẩu, hãy chỉnh sửa tệp sshd_config :
vim /etc/ssh/sshd_config
Bỏ chú thích dòng lệnh (xóa ký tự “#” ở đầu dòng):
PasswordAuthentication yes
Lưu thay đổi và thoát bằng cách nhấn phím Esc trong vim và nhập :wq
Khởi động lại dịch vụ (daemon) sshd bằng cách chạy lệnh với quyền root:
sudo service ssh restart
Cấu hình tệp hoán đổi
Ubuntu 16 sử dụng phân vùng hoán đổi theo mặc định. Bạn có thể tùy chỉnh kích thước của phân vùng hoán đổi khi cài đặt Ubuntu. Nếu bạn đã chọn các tùy chọn phân vùng mặc định hoặc chọn kích thước phân vùng swap không chính xác, bạn vẫn có thể tạo một tệp swap với kích thước tùy chỉnh và sử dụng tệp swap này thay vì phân vùng swap hiện có. Kích thước swap nên bằng gấp đôi dung lượng RAM. Nếu bạn định cài đặt Oracle trên Ubuntu với 4 GB RAM, bạn nên chuẩn bị một tệp hoặc phân vùng swap có dung lượng 8 GB. Hãy cùng tạo tệp swap 8 GB.
Tạm thời vô hiệu hóa việc sử dụng vùng swap:
sudo swapoff -a
Tạo tệp mới 8 GB bằng công cụ ` ` `dd` ` `:
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
Đặt tệp 8 GB vừa tạo làm tệp swap:
sudo mkswap /swapfile
Bật lại việc sử dụng swap:
sudo swapon /swapfile
Kiểm tra kích thước vùng swap sau khi tạo tệp swap mới:
grep SwapTotal /proc/meminfo
Cấu hình cài đặt mạng
Theo mặc định, Ubuntu 16 tự động lấy địa chỉ IP cho giao diện mạng (nếu có máy chủ DHCP trong mạng). Bạn cần thiết lập địa chỉ IP tĩnh và cấu hình tên máy chủ trước khi cài đặt Oracle trên Ubuntu.
Kiểm tra cấu hình IP hiện tại:
ifconfig
Trong kết quả hiển thị, bạn có thể thấy tên các bộ điều hợp mạng và địa chỉ IP. Trong trường hợp của chúng tôi, tên của giao diện mạng cần thiết là ens33 .
Cấu hình địa chỉ IP tĩnh
Chỉnh sửa tệp cấu hình giao diện mạng bằng vim :
sudo vim /etc/network interfaces
Địa chỉ IP tĩnh cần thiết để cài đặt cơ sở dữ liệu Oracle trên Ubuntu là 192.168.101.11 trên giao diện hiện tại của máy Linux trong ví dụ này. Chỉnh sửa tệp cấu hình như sau:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.101.11
netmask 255.255.255.0
gateway 192.168.101.2
dns-nameservers 192.168.101.2 8.8.8.8
Lưu thay đổi và thoát.
Áp dụng thay đổi:
sudo /etc/init.d/networking restart
Hoặc khởi động lại máy:
init 6
Kiểm tra xem các thiết lập IP mới đã được áp dụng chưa:
ifconfig
Hoặc:
hostname -I
Sau khi kiểm tra cấu hình địa chỉ IP, hãy kiểm tra tên máy chủ.
Kiểm tra tên máy chủ
Trong trường hợp của chúng tôi, tên máy chủ được sử dụng để cài đặt Oracle trên Ubuntu là ubuntu-oracle11 .
Kiểm tra tên máy chủ hiện tại:
hostnamectl
Nếu bạn đã quên cấu hình tên máy chủ trong quá trình cài đặt Ubuntu hoặc muốn thay đổi tên máy chủ vì lý do khác, bạn vẫn có thể thực hiện điều đó.
Để đổi tên máy chủ và đặt tên máy chủ mới ( ubuntu-oracle11 ), hãy chạy lệnh:
sudo hostnamectl set-hostname ubuntu-oracle11
Kiểm tra xem tên máy chủ mới đã được áp dụng chưa:
less /etc/hostname
Chỉnh sửa tệp hosts:
sudo vim /etc/hosts
Nội dung của tệp /etc/hosts phải trông như sau:
127.0.0.1 localhost
127.0.1.1 ubuntu-oracle11
Khởi động lại máy: init 6
Hãy thử ping tên máy chủ đã định nghĩa trên máy Ubuntu của bạn:
ping ubuntu-oracle11
Cấu hình môi trường cho Oracle
Để cài đặt Oracle trên Ubuntu, bạn cần cấu hình môi trường Linux: tạo người dùng và nhóm hệ thống, cấu hình các tham số kernel, thiết lập cấu hình hệ thống, đặt biến môi trường cho người dùng, xác định giới hạn shell, tạo liên kết tượng trưng và cài đặt các gói phần mềm cần thiết.
Tạo người dùng và nhóm
Mở bảng điều khiển cục bộ hoặc kết nối với bảng điều khiển Linux qua SSH với tư cách người dùng thông thường, sau đó lấy quyền root :
sudo -i
Các lệnh dưới đây phải được thực thi với tư cách root .
Thêm các nhóm cần thiết cho Oracle.
Tạo nhóm Oracle Inventory :
groupadd oinstall
Tạo nhóm Oracle DBA :
groupadd dba
Tạo thư mục home cho người dùng Oracle:
mkdir /home/oracle/
Tạo thư mục để cài đặt Oracle:
mkdir -p /u01/app/oracle
Sau đó, tạo tài khoản người dùng Oracle là thành viên của nhóm dba , có thư mục home tại /home/oracle/ và sử dụng /bin/bash làm vỏ lệnh mặc định:
useradd -g oinstall -G dba -d /home/oracle -s /bin/bash oracle
Đặt mật khẩu cho người dùng oracle (đừng quên mật khẩu này):
passwd oracle
Đặt oracle là chủ sở hữu của thư mục gốc Oracle và thư mục cài đặt Oracle. Người dùng oracle là thành viên của nhóm oinstall .
chown -R oracle:oinstall /home/oracle
chown -R oracle:oinstall /u01/app/oracle
Lưu ý : Không giống như Oracle 10, việc tạo nhóm nobody không cần thiết đối với Oracle 11.
Tạo thư mục cho Oracle Inventory:
mkdir -p /u01/app/oraInventory
Đặt người dùng oracle làm chủ sở hữu cho thư mục Oracle Inventory:
chown -R oracle:oinstall /u01/app/oraInventory
Cấu hình các tham số kernel
Các tham số kernel tùy chỉnh là bắt buộc để cài đặt Oracle trên Ubuntu và các tham số này ảnh hưởng đến hiệu suất của Oracle. Các tham số bộ nhớ chia sẻ, bao gồm kích thước tối thiểu và tối đa, số lượng phân đoạn bộ nhớ chia sẻ, và các semaphore có thể được xem như các cờ cho bộ nhớ chia sẻ, phải được tùy chỉnh theo tài liệu hướng dẫn của Oracle. Bạn cũng cần thiết lập số lượng tệp tối đa được phép mở cùng lúc, số lượng kết nối mạng đồng thời tối đa, và kích thước bộ đệm gửi và nhận mạng. Các tham số kernel được đề cập có thể được phân loại thành ba nhóm: các thông số cụ thể của kernel ( kernel ), các thông số cụ thể của mạng ( network ), và các trình xử lý tệp ( fs ). Chỉnh sửa tệp /etc/sysctl.conf để ghi đè các tham số của nhân Linux:
vim /etc/sysctl.conf
Thêm các dòng được hiển thị bên dưới vào cuối tệp cấu hình này.
# ============================
# Oracle 11g
# ============================
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmni = 4096
# Replace kernel.shmmax with the half of your memory size in bytes
# if lower than 4 GB minus 1
# 2147483648 is 2 GigaBytes (4 GB of RAM / 2)
kernel.shmmax=2147483648
#
# Max number of network connections. Use sysctl -a | grep ip_local_port_range to check.
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 = 1048576
#
# The maximum allowed value, set to avoid overhead and input/output errors
fs.aio-max-nr = 1048576
# 512 * Processes
fs.file-max = 6815744
fs.suid_dumpable = 1
#
# To allow dba to allocate hugetlbfs pages
# 1001 is your oinstall group, you can check this id with the grep oinstall /etc/group command
vm.hugetlb_shm_group = 1001
Áp dụng các tham số nhân mà bạn đã thiết lập:
sysctl -p
Cấu hình giới hạn shell
Bạn phải thiết lập giới hạn shell để cải thiện hiệu suất của phần mềm cơ sở dữ liệu Oracle.
Chỉnh sửa tệp /etc/security/limits.conf :
vim /etc/security/limits.conf
Thêm các dòng sau vào cuối tệp cấu hình:
# Oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
Cột đầu tiên chỉ định người dùng mà giới hạn được thiết lập.
Cột thứ hai có hai tùy chọn—soft và hard. Soft là số tối đa mà người dùng có thể thiết lập, trong khi hard là số tối đa có thể được cấu hình lại bởi người dùng được định nghĩa (oracle). Nếu người dùng oracle đạt đến giá trị thấp giới hạn 2047 được đặt ở dòng đầu tiên và cần mở rộng giới hạn, người dùng có thể tăng giới hạn lên 16384. Các giá trị cao hơn 16384 không thể được đặt bởi người dùng oracle nhưng có thể được đặt bởi root.
Cột thứ ba xác định các tài nguyên mà các giới hạn đã đặt được áp dụng.
Cột thứ tư xác định số lượng tối đa của tham số tài nguyên được chỉ định trong cột thứ ba.
Cấu hình PAM
Đảm bảo rằng tệp cấu hình /etc/pam.d/login chứa dòng sau:
session required pam_limits.so
Bạn có thể thực hiện điều này bằng lệnh:
cat /etc/pam.d/login | grep pam_limits.so
Nếu dòng được đề cập bị thiếu, hãy thêm dòng này thủ công.
Đặt cấu hình vỏ lệnh
Các biến môi trường toàn hệ thống được đặt trong cấu hình vỏ lệnh bash toàn cầu, được định nghĩa trong tệp cấu hình /etc/profile .
Chỉnh sửa /etc/profile và thiết lập một số tham số cần thiết cho oracle trên toàn hệ thống và vĩnh viễn:
vim /etc/profile
Thêm các dòng sau:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
Lưu ý : Việc biết khi nào có thể sử dụng từng tệp cấu hình shell là rất hữu ích vì sau này bạn sẽ cần cấu hình một profile chứa các biến môi trường cho người dùng oracle .
Shell đăng nhập Bash tải cấu hình của nó từ các tệp sau theo thứ tự thích hợp:
- /etc/profile
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
/etc/profile có thể được coi là tệp cấu hình toàn cục cho vỏ đăng nhập bash.
./bash_profile được áp dụng cho các vỏ đăng nhập bash, ví dụ như khi bạn đăng nhập trực tiếp vào giao diện dòng lệnh của Linux bằng bàn phím kết nối với máy tính Linux này, hoặc khi mở một phiên console mới sau khi đăng nhập qua terminal SSH.
.profile – tệp này được đọc cho bash và các vỏ lệnh khác như sh .
Vỏ lệnh tương tác không đăng nhập của Bash tải cấu hình từ ~/.bashrc
Điều này có nghĩa là nếu bạn đã đăng nhập vào máy Linux của mình (ví dụ: bạn đã đăng nhập vào Ubuntu bằng giao diện đồ họa) và sau đó mở một cửa sổ console (terminal) mới, thì cấu hình vỏ lệnh, bao gồm các biến môi trường, sẽ được tải từ tệp .bashrc trước khi bạn có quyền truy cập vào dấu nhắc lệnh.
Vỏ lệnh Bash không đăng nhập và không tương tác tải cấu hình được đặt trong biến môi trường $BASH_ENV . Vỏ lệnh không đăng nhập và không tương tác được sử dụng khi một skript chạy.
Cài đặt các gói phần mềm cần thiết
Bạn cần cài đặt các gói phần mềm mà Oracle yêu cầu. Hãy cẩn thận khi cài đặt chúng vì việc thiếu gói phần mềm có thể gây ra lỗi trong quá trình cài đặt Oracle hoặc tạo cơ sở dữ liệu.
Cập nhật cây kho lưu trữ:
apt-get update
Cài đặt các gói để tránh các lỗi có thể xảy ra trong quá trình cài đặt Oracle trên Ubuntu. Hầu hết các gói có thể được cài đặt bằng trình quản lý gói tiêu chuẩn của Ubuntu từ các kho lưu trữ trực tuyến.
apt-get install alien
apt-get install autoconf
apt-get install automake
apt-get install autotools-dev
apt-get install binutils
apt-get install bzip2
apt-get install doxygen
apt-get install elfutils
apt-get install expat
apt-get install gawk
apt-get install gcc
apt-get install gcc-multilib
apt-get install g++-multilib
apt-get install libelf-dev
apt-get install libltdl-dev
apt-get install libodbcinstq4-1 libodbcinstq4-1:i386
apt-get install libpth-dev
apt-get install libpthread-stubs0-dev
apt-get install libstdc++5
apt-get install make
apt-get install openssh-server
apt-get install rlwrap
apt-get install rpm
apt-get install sysstat
apt-get install unixodbc
apt-get install unixodbc-dev
apt-get install unzip
apt-get install x11-utils
apt-get install zlibc
apt-get install libaio1
apt-get install libaio-dev
Vẫn còn một số gói cần cài đặt, nhưng để cài đặt chúng, bạn sẽ cần những mẹo và thủ thuật này.
apt-get install ia32-libs
Khi bạn chạy lệnh để cài đặt gói này với apt-get , bạn sẽ thấy một thông báo cho biết gói này không có sẵn.
Có một gói thay thế có thể được cài đặt thay cho ia32-libs . Hãy cài đặt gói thay thế lib32z1 :
apt-get install lib32z1
Hãy cài đặt gói tiếp theo:
apt-get install libmotif4
Gói này cũng không có sẵn. Bạn nên tải xuống và cài đặt gói này theo cách thủ công. Tải xuống tệp libmotif4_2.3.4-8ubuntu1_amd64.deb từ trang tài nguyên miễn phí. Lưu tệp deb đã tải xuống vào một thư mục tùy chỉnh, ví dụ: /home/user1/Downloads, trước khi cài đặt gói này.
Quy trình cài đặt các gói deb trong Ubuntu như sau (thực thi các lệnh với quyền root):
sudo dpkg -i package_name.deb
sudo apt-get -f install
Trong trường hợp này, chúng ta chạy các lệnh cài đặt gói với tư cách người dùng thông thường, ví dụ: user1 bằng cách sử dụng sudo . Nhấn Ctrl+D để thoát khỏi phiên root và quay lại phiên user1 trong console (terminal).
Chuyển đến thư mục chứa các tệp đã tải xuống:
cd /home/user1/Downloads
Tải xuống tệp bằng liên kết trực tiếp:
wget http://launchpadlibrarian.net/207968936/libmotif4_2.3.4-8ubuntu1_amd64.deb
sudo dpkg -i libmotif4_2.3.4-8ubuntu1_amd64.deb
sudo apt-get -f install
Gói tiếp theo không thể cài đặt tự động:
sudo apt-get install libpthread-stubs0
E: Không thể tìm thấy gói libpthread-stubs0
Tải xuống và cài đặt gói này thủ công.
wget http://launchpadlibrarian.net/154418307/libpthread-stubs0-dev_0.3-4_amd64.deb
sudo dpkg -i libpthread-stubs0-dev_0.3-4_amd64.deb
sudo apt-get -f install
Tương tự, cài đặt gói tiếp theo:
sudo apt-get install lsb-cxx
E: Không thể tìm thấy gói lsb-cxx
Bạn có thể tải xuống gói lsb-cxx thủ công.
wget http://packages.linuxmint.com//pool/upstream/l/lsb/lsb-cxx_4.1+Debian11ubuntu6mint1_amd64.deb
sudo dpkg -i lsb-cxx_4.1+Debian11ubuntu6mint1_amd64.deb
sudo apt-get -f install
Cài đặt thêm một gói nữa:
sudo apt-get install pdksh
E: Gói ‘pdksh’ không có bản cài đặt nào phù hợp
Quy trình cài đặt gói pdksh cũng tương tự. Gói này có thể được tải xuống tại tại đây.
wget http://launchpadlibrarian.net/200019501/pdksh_50e-2ubuntu1_all.deb
sudo dpkg -i pdksh_50e-2ubuntu1_all.deb
sudo apt-get -f install
Oracle 11g yêu cầu cài đặt phiên bản 32-bit của gói libstdc++5 mà Ubuntu 16 không cài đặt tự động. Dưới đây là cách bạn có thể cài đặt gói này theo cách thủ công.
Các lệnh tiếp theo được thực thi với tư cách là root . Tạo một thư mục tạm thời để tải xuống gói:
mkdir /tmp/libstdc++5
cd /tmp/libstdc++5
Tải xuống gói (các liên kết đến các gói 32-bit và 64-bit được hiển thị):
wget http://mirrors.edge.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-30_i386.deb
wget http://mirrors.edge.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-30_amd64.deb
Cài đặt các gói đã tải xuống bằng dpkg :
dpkg --force-architecture -i libstdc++5_3.3.6-30_i386.deb
Lưu ý : Nếu các liên kết không hoạt động, các phiên bản mới hơn của gói có thể được phát hành thay vì các phiên bản cũ hơn. Trong trường hợp này, hãy truy cập trang web trong trình duyệt và sao chép các liên kết chính xác đến các gói deb cần thiết:
http://mirrors.edge.kernel.org/ubuntu/pool/universe/g/gcc-3.3/
Khởi động lại máy Linux để áp dụng các thay đổi. init 6
Tạo liên kết tượng trưng
Bạn cần tạo các liên kết tượng trưng (symlinks) để cấu trúc tệp và thư mục được sử dụng trong Ubuntu tương tự như cấu trúc tệp trong Red Hat. Tạo các liên kết tượng trưng này để cấu trúc hệ thống tệp trông giống hệt cấu trúc hệ thống tệp của Red Hat, nhằm tránh các lỗi trong quá trình cài đặt Oracle.
Chạy các lệnh với quyền root:
mkdir /usr/lib64
ln -s /etc /etc/rc.d
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/basename /bin/basename
ln -s /usr/bin/rpm /bin/rpm
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
ln -sf /bin/bash /bin/sh
ln -s /etc/rc0.d /etc/rc.d/rc0.d
ln -s /etc/rc2.d /etc/rc.d/rc2.d
ln -s /etc/rc3.d /etc/rc.d/rc3.d
ln -s /etc/rc4.d /etc/rc.d/rc4.d
ln -s /etc/rc5.d /etc/rc.d/rc5.d
ln -s /etc/rc6.d /etc/rc.d/rc6.d
ln -s /etc/init.d /etc/rc.d/init.d
Các lệnh trên giúp ngăn chặn các lỗi, chẳng hạn như:
- genclntsh: Không thể liên kết libclntsh.so.11.1 trong tệp make cho rdbms/lib/ins_rdbms.mk do thiếu thư viện: /usr/bin/ld: không thể tìm thấy /usr/lib64/libpthread_nonshared.a bên trong
- lib//libagtsh.so: tham chiếu không xác định đến `nnfyboot’ trong make: rdbms/lib/dg4odbc] Lỗi 1
Bây giờ hãy ngăn chặn thêm một lỗi nữa: /lib64/libgcc_s.so.1: Tệp hoặc thư mục không tồn tại, trong khi tạo lib/liborasdkbase.so.11.1 trong ins_rdbms.mk . Truy cập vào thư mục /lib64 và thực thi lệnh:
cd /lib64
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 .
Đừng bỏ qua dấu chấm ở cuối lệnh.
Đặt phiên bản Linux là Red Hat Linux release 5 trong /etc/redhat-release . Các bản phân phối Red Hat Linux lưu trữ phiên bản của chúng trong tệp đó.
echo 'Red Hat Linux release 5' > /etc/redhat-release
Cấu hình hồ sơ người dùng Oracle
Bây giờ bạn cần cấu hình môi trường người dùng cho oracle người dùng.
Đăng nhập với tư cách oracle nếu bạn đã mở giao diện điều khiển với tư cách người dùng khác:
su oracle
Chạy các lệnh với tư cách oracle :
cd
vim ~/.bashrc
Thêm các dòng sau vào tệp .bashrc :
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
# Enter your hostname
ORACLE_HOSTNAME=ubuntu-oracle11; export ORACLE_HOSTNAME
ORACLE_UNQNAME=ORADB11G; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=ORADB11G; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib64; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
umask 022
Áp dụng các thiết lập:
source ~/.bashrc
Bạn nên khởi động lại Ubuntu ngay bây giờ. Lưu ý rằng các thiết lập sẽ được áp dụng sau khi khởi động lại ngay cả khi không chạy lệnh source ~/.bashrc.
init 6
Chuẩn bị trình cài đặt Oracle
Chúng ta gần như đã hoàn tất các bước chuẩn bị để cài đặt Oracle. Chỉ còn một vài bước nữa trước khi bạn có thể khởi động trình cài đặt và cài đặt Oracle trên Ubuntu. Sau khi khởi động lại máy Ubuntu, đăng nhập với tư cách oracle trong giao diện người dùng đồ họa của Ubuntu.
Mở trình duyệt web.
Trong ví dụ của chúng tôi, hai tệp đã tải xuống được lưu vào /home/oracle/Downloads cho tiện lợi: linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
Mở cửa sổ dòng lệnh trong Ubuntu và chạy các lệnh sau với tư cách người dùng hoặc oracle. Chuyển đến thư mục chứa các tệp đã tải xuống:
cd /home/oracle/Downloads
hoặc cd ~/Downloads/
Giải nén các tệp cài đặt từ các tệp nén zip đã tải xuống:
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
Các tệp đã giải nén được lưu trữ tại:
/home/oracle/Downloads/database
Bây giờ bạn đã sẵn sàng chạy trình cài đặt và cài đặt Oracle trên Ubuntu.
Cài đặt Oracle
Truy cập vào thư mục chứa các tệp cài đặt đã tải xuống. Chạy các lệnh như oracle trong cửa sổ terminal được mở trong phiên làm việc GUI.
cd /home/oracle/Downloads/database
Chạy trình cài đặt Oracle:
./runInstaller
1. Cấu hình Cập nhật Bảo mật
Bỏ chọn ô “ Tôi muốn nhận các bản cập nhật bảo mật qua My Oracle Support ”
Nhấp vào Tiếp theo để chuyển sang bước tiếp theo của trình hướng dẫn cài đặt Oracle.
Bạn sẽ thấy thông báo: Bạn chưa cung cấp địa chỉ email. Bạn có muốn không nhận thông báo về các vấn đề bảo mật quan trọng trong cấu hình của mình không? Bỏ qua thông báo này và nhấp vào Yes .
2. Tùy chọn cài đặt
Chọn Tạo và cấu hình cơ sở dữ liệu .
3. Lớp hệ thống
Chọn Lớp máy chủ , đây là tùy chọn nâng cao để cài đặt cơ sở dữ liệu Oracle trên Ubuntu.
4. Tùy chọn lưới
Chọn Cài đặt cơ sở dữ liệu một phiên bản làm loại cài đặt cơ sở dữ liệu.
5. Loại cài đặt
Chọn Cài đặt nâng cao làm loại cài đặt. Tùy chọn này cho phép bạn thiết lập mật khẩu, bộ ký tự, ngôn ngữ, tùy chọn lưu trữ, v.v.
6. Ngôn ngữ sản phẩm
Chọn các ngôn ngữ cần thiết. Trong ví dụ này, Tiếng Anh và Tiếng Anh (Vương quốc Anh) được chọn.
7. Phiên bản cơ sở dữ liệu
Chọn Phiên bản Doanh nghiệp cho cơ sở dữ liệu mà bạn sắp cài đặt.
8. Chọn vị trí cơ sở Oracle
Thông thường, thư mục cơ sở Oracle và thư mục Oracle Home được sử dụng.
Vị trí cơ sở Oracle: /u01/app/oracle
Vị trí phần mềm: /u01/app/oracle/product/11.2.0/dbhome_1
9. Tạo thư mục lưu trữ
Thư mục được sử dụng để lưu trữ các tệp cài đặt Oracle được gọi là “thư mục lưu trữ Oracle”.
Thư mục lưu trữ: /u01/app/oraInventory
Tên nhóm oraInventory: oinstall
10. Loại cấu hình
Chọn loại cơ sở dữ liệu bạn muốn tạo:
Mục đích chung / Xử lý giao dịch
11. Mã định danh cơ sở dữ liệu
Bạn có thể định nghĩa cùng một giá trị cho tên cơ sở dữ liệu toàn cục và Mã định danh dịch vụ Oracle.
Tên cơ sở dữ liệu toàn cầu: ORADB11G
Mã định danh dịch vụ Oracle (SID): ORADB11G
12. Tùy chọn cấu hình
Có bốn tab trong bước này. Bạn có thể thiết lập cấu hình trên mỗi tab như sau:
Bộ nhớ: Bật Quản lý bộ nhớ tự động (mặc định).
Bộ ký tự: Sử dụng Unicode (AL32UTF8).
Bảo mật: Áp dụng tất cả cài đặt bảo mật mới (mặc định).
Các lược đồ mẫu: Tạo cơ sở dữ liệu với các lược đồ mẫu (tuy nhiên, bạn có thể giữ giá trị mặc định).
13. Tùy chọn quản lý
Bạn có thể giữ các thông số mặc định.
14. Lưu trữ cơ sở dữ liệu
Đọc các khuyến nghị hiển thị trong cửa sổ và chọn Hệ thống tệp .
Chỉ định vị trí tệp cơ sở dữ liệu: /u01/app/oracle/oradata
15. Sao lưu và Phục hồi
Tại thời điểm này, bạn có thể chọn tùy chọn: Không kích hoạt sao lưu tự động (mặc định).
Sao lưu rất quan trọng, nhưng tốt hơn là nên cấu hình sao lưu cơ sở dữ liệu Oracle sau khi cài đặt Oracle trên Ubuntu.
16. Mật khẩu lược đồ
Bạn có thể chọn Sử dụng cùng một mật khẩu cho tất cả tài khoản . Nhập mật khẩu và xác nhận mật khẩu.
17. Nhóm hệ điều hành
Đọc mô tả hiển thị trong cửa sổ và chọn các nhóm cần thiết.
Nhóm Quản trị viên Cơ sở Dữ liệu (OSDBA): dba
Nhóm Người vận hành Cơ sở Dữ liệu (OSOPER): oinstall
18. Kiểm tra điều kiện tiên quyết
Hiện tại, trình cài đặt Oracle đang kiểm tra xem cấu hình hệ thống có đáp ứng các điều kiện tiên quyết hay không. Các cảnh báo sẽ xuất hiện ở bước này. Tham số nhân hệ điều hành semmni đã được cấu hình ở trên, nhưng trạng thái thất bại được hiển thị cho tham số này.
Tham số nhân hệ điều hành: semmni Thất bại
Bạn có thể kiểm tra giá trị tham số này để đảm bảo mọi thứ đều chính xác. Kiểm tra tham số semmni bằng lệnh (chạy với quyền root): /sbin/sysctl -a | grep sem
kernel.sem = 250 32000 100 128
hoặc
cat /proc/sys/kernel/sem
250 32000 100 128
Nếu giá trị cuối cùng không nhỏ hơn 128, thì mọi thứ đều ổn và bạn có thể bỏ qua cảnh báo này.
Vì một lý do nào đó, công cụ kiểm tra điều kiện tiên quyết của Oracle không thể xác định rằng tham số semmni là chính xác và các gói cần thiết đã được cài đặt. Nếu nội dung cửa sổ Kiểm tra Điều kiện Tiên quyết của bạn tương tự như cửa sổ hiển thị trong ảnh chụp màn hình ở trên, hãy đánh dấu vào ô chọn Ignore All và nhấp vào Next để tiếp tục.
19. Tóm tắt
Kiểm tra tóm tắt cấu hình để đảm bảo rằng bạn đã cấu hình tất cả các thiết lập theo yêu cầu. Bạn có thể lưu tệp phản hồi ( db.rsp ) vì nó có thể hữu ích khi bạn cần cài đặt Oracle trên nhiều máy Linux hoặc nếu bạn định cài đặt Oracle trên Ubuntu Server mà không có GUI.
Bây giờ bạn có thể theo dõi quá trình trình cài đặt Oracle sao chép tệp cho đến khi trình cài đặt chuyển sang giai đoạn Link binaries .
Liên kết các tệp nhị phân cho Oracle — khắc phục lỗi liên kết và biên dịch
Giai đoạn này là một trong những giai đoạn khó nhất khi cài đặt cơ sở dữ liệu Oracle trên Ubuntu Linux. Khả năng gặp lỗi ở bước này là rất cao. Trong ví dụ hiện tại, chúng tôi gặp phải lỗi sau khi cài đặt Oracle 11g trên Ubuntu 16:
Lỗi khi gọi mục tiêu ‘install’ của tệp makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk’. Xem ‘/u01/app/oraInventory/logs/installActions2020-01-22_12-53-06PM.log’ để biết chi tiết .
Lưu ý rằng các lỗi tương tự có thể xảy ra ngay cả khi bạn cài đặt Oracle trên Oracle Linux. Tên tệp nhật ký của bạn sẽ khác.
Lưu ý : Các tệp có .mk phần mở rộng là tệp makefile và được sử dụng để biên dịch các chương trình. Một tệp makefile xác định những “phần” nào của chương trình cần biên dịch và những tệp nào của chương trình phải được biên dịch và liên kết với nhau. Một số thành phần của phần mềm Oracle được viết bằng Java (ví dụ: Oracle Universal Installer có giao diện người dùng đồ họa) và một số thành phần được viết bằng C. Các thành phần được viết bằng Java phải được giải thích mà không cần biên dịch (Java là đa nền tảng), trong khi các thành phần được viết bằng C phải được biên dịch và liên kết các tệp nhị phân và thư viện là giai đoạn bắt buộc của quá trình này. Oracle sử dụng phương pháp này để tăng tính linh hoạt và cho phép cài đặt Oracle trên các hệ điều hành khác nhau (Windows, Linux, Solaris). Một lợi ích khác là kích thước của trình cài đặt được thu gọn. Nhược điểm là có thể xảy ra lỗi trong giai đoạn liên kết các tệp nhị phân trong quá trình cài đặt Oracle. Trong hầu hết các trường hợp, bạn nên thêm các tham số thích hợp bằng cách chỉnh sửa các tệp .mk để khắc phục các vấn đề liên kết.
Hãy tìm hiểu cách khắc phục lỗi liên kết tệp nhị phân xảy ra khi cài đặt cơ sở dữ liệu Oracle trên Ubuntu Linux.
Đăng nhập với tư cách oracle qua SSH vào máy Ubuntu và kiểm tra tệp nhật ký:
tail -n 100 /u01/app/oraInventory/logs/installActions2020-01-22_12-53-06PM.log
Khi đọc kết quả nhật ký, hãy chú ý đến dòng giải thích lỗi.
INFO: /u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk:11: công thức cho mục tiêu ‘ctxhx’ đã thất bại
ins_ctx.mk:11 chỉ đến dòng 11 của tệp ins_ctx.mk .
Hãy mở tệp ins_ctx.mk và kiểm tra dòng 11 của tệp đó.
vim /u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk
Trong chế độ điều hướng của vim gõ :set number để xem số dòng.
Hãy tìm dòng số 11.
Khi sử dụng chế độ điều hướng trong vim , bạn có thể tìm chuỗi cần thiết bằng lệnh:
/LINK_CTXHX
Chỉnh sửa phần sau:
ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
Dòng số 11 phải được chỉnh sửa như sau:
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
Lưu tệp ins_ctx.mk và thoát khỏi vim .
Bây giờ quay lại cửa sổ lỗi cài đặt Oracle và nhấp vào Retry .
Quá trình cài đặt tiếp tục, nhưng sau vài giây, một lỗi khác xuất hiện khi Xây dựng thư viện Agent :
Lỗi khi gọi mục tiêu ‘agent nmhs’ của tệp makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk’.
Chạy các lệnh sau với tư cách oracle để khắc phục vấn đề này:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
sed -i 's/^(s*$(MK_EMAGENT_NMECTL))s*$/1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
Lưu ý: sed là trình soạn thảo văn bản luồng được sử dụng để tiết kiệm thời gian chỉnh sửa các tệp .mk so với việc chỉnh sửa chúng bằng vim hoặc các trình soạn thảo văn bản tương tác khác.
Sau khi chạy hai lệnh trên, nhấp vào Retry trong cửa sổ lỗi cài đặt Oracle. Bạn có thể thấy rằng lỗi đã được khắc phục và quá trình cài đặt cơ sở dữ liệu Oracle trên Ubuntu Linux đang diễn ra. Tuy nhiên, sau vài giây, một lỗi khác xảy ra khi Linking RDBMS Executables : Lỗi khi gọi mục tiêu ‘all_no_orcl’ trong tệp makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk’.
Hãy chạy các lệnh sau với tư cách là oracle để khắc phục lỗi này và một số lỗi tương tự khác:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
cd $ORACLE_HOME/lib
ln -s libclient11.a libagtsh.a
$ORACLE_HOME/bin/genagtsh $ORACLE_HOME/lib/libagtsh.so 1.0
sed -i 's/^($LD $LD_RUNTIME) ($LD_OPT)/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/bin/genorasdksh
sed -i 's/^(s*)($(OCRLIBS_DEFAULT))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk
sed -i 's/^(TNSLSNR_LINKLINE.*$(TNSLSNR_OFILES)) ($(LINKTTLIBS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/network/lib/env_network.mk
sed -i 's/^(ORACLE_LINKLINE.*$(ORACLE_LINKER)) ($(PL_FLAGS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
Sau đó, quay lại cửa sổ lỗi và nhấp vào Thử lại . Bây giờ quá trình cài đặt sẽ tiếp tục mà không gặp lỗi.
Oracle Database Configuration Assistant (DBCA) sẽ mở sau khi hoàn thành giai đoạn Link binaries .
Executing configuration scripts
Chúng ta đã gần hoàn tất việc cài đặt cơ sở dữ liệu Oracle trên Ubuntu.
Chạy hai tập lệnh này với tư cách root :
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
Trên ảnh chụp màn hình bên dưới, bạn có thể thấy rằng các tập lệnh đã được thực thi thành công.
Việc cài đặt cơ sở dữ liệu Oracle đã thành công .
Nếu bạn thấy thông báo này, bạn có thể đóng cửa sổ trình cài đặt Oracle.
Kiểm tra xem Oracle có đang chạy trên Ubuntu không
Mở trình duyệt web trên máy Ubuntu đang chạy Oracle và kiểm tra xem Oracle có đang chạy hay không bằng cách mở giao diện web của Oracle Database Control Manager. Các liên kết sau đây có thể được sử dụng để thực hiện việc này:
https://localhost:1158/em
https://ubuntu-oracle11:1158/em
https://192.168.101.11:1158/em
Bạn cũng có thể thử kết nối với máy Ubuntu đang chạy Oracle từ một máy chủ khác trong mạng của bạn.
Xác định các tham số kết nối.
Tên người dùng : SYS
Mật khẩu : Mật khẩu của bạn đã được đặt trong quá trình cài đặt Oracle
Kết nối với tư cách : SYSDBA
Dưới đây là ảnh chụp màn hình của Oracle Enterprise Manager khi Oracle đang chạy đúng cách.
Cấu hình sau khi cài đặt Oracle
Oracle hiện đã được cài đặt, và bây giờ chúng ta nên cấu hình cơ sở dữ liệu để khởi động tự động ngay khi Ubuntu khởi động. Bạn nên chỉnh sửa tệp cấu hình /etc/oratab để thiết lập Oracle khởi động khi hệ thống khởi động.
Chạy lệnh với quyền root.
vim /etc/oratab
Thay thế N thành Y ở cuối dòng:
ORADB11G:/u01/app/oracle/product/11.2.0/dbhome_1:Y
Các lệnh hữu ích
Trước khi thiết lập Oracle khởi động tự động, bạn nên hiểu cách khởi động các thành phần Oracle thủ công. Điều này cũng sẽ hữu ích cho việc chẩn đoán. Chạy các lệnh này với tư cách người dùng oracle .
Khởi động cơ sở dữ liệu:
$ORACLE_HOME/bin/dbstart $ORACLE_HOME
Dừng cơ sở dữ liệu: $ORACLE_HOME/bin/dbshut $ORACLE_HOME
Khởi động Trình quản lý cơ sở dữ liệu (Database Control Enterprise Manager) cung cấp giao diện web để quản lý cơ sở dữ liệu:
emctl start dbconsole
Dừng Trình quản lý cơ sở dữ liệu:
emctl stop dbconsole
Kiểm tra trạng thái của Trình quản lý cơ sở dữ liệu:
emctl status dbconsole
Khởi động trình nghe (listener):
$ORACLE_HOME/bin/lsnrctl start
Dừng trình nghe:
$ORACLE_HOME/bin/lsnrctl stop
Kiểm tra trạng thái của trình nghe:
$ORACLE_HOME/bin/lsnrctl status
Khởi động Trợ lý cấu hình cơ sở dữ liệu (trong giao diện đồ họa, không phải trong giao diện dòng lệnh SSH):
dbca
Có thể cấu hình trình nghe Oracle bằng cách chỉnh sửa tệp:
vim $ORACLE_HOME/network/admin/listener.ora
Kết nối với cơ sở dữ liệu trong giao diện dòng lệnh:
sqlplus / as sysdba;
Tạo tập lệnh khởi động cho Oracle trong Ubuntu
Hãy tìm hiểu cách thiết lập Oracle để tự động khởi động khi Ubuntu khởi động. Sau khi chỉnh sửa /etc/oratab , bạn nên tạo một tập lệnh khởi động trong thư mục /etc/init.d/ .
Tạo tệp mới cho tập lệnh khởi động Oracle trong Ubuntu (chạy lệnh với tư cách root ):
vim /etc/init.d/oracle
Thêm nội dung sau vào tệp đó:
#!/bin/bash
#
# Run-level Startup script for the Oracle Instance and Listener
#
### BEGIN INIT INFO
# Provides: Oracle
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Startup/Shutdown Oracle listener and instance
### END INIT INFO
#ORACLE_UNQNAME="ORADB11G"
#export $ORACLE_UNQNAME
echo "ORACLE_UNQNAME is $ORACLE_UNQNAME"
ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1"
ORACLE_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
echo "dbstart"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
echo "lsnrctl start"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
#Optional : for Enterprise Manager software only
echo "emctl start dbconsole"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/oracle
echo "OK - a script has been executed"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
#Optional : for Enterprise Manager software only
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORAClE_HOME/bin/emctl stop dbconsole"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
rm -f /var/lock/oracle
echo "OK - a script has been executed"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 start|stop|restart|reload"
exit 1
esac
exit 0
Đặt quyền truy cập chính xác:
chown oracle:oinstall /etc/init.d/oracle
chmod 0775 /etc/init.d/oracle
Đảm bảo skript này khởi động ngay sau khi hệ điều hành khởi động (có sẵn cho các mức chạy mặc định):
update-rc.d oracle defaults
Bạn có thể chỉnh sửa mức ưu tiên khởi động nếu cần.
Chạy skript để dừng Oracle (bạn có thể chạy skript này với lệnh root ):
/etc/init.d/oracle stop
Nếu muốn khởi động Oracle, hãy chạy skript này với lệnh:
/etc/init.d/oracle start
Lưu ý: Chú ý đến dòng sau và các dòng tương tự trong skript khởi động Oracle:
source "/home/oracle/.bashrc" && su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
Đầu tiên, chúng ta thiết lập shell để đọc các thiết lập được lưu trữ trong .bashrc hồ sơ hệ thống của oracle người dùng, bao gồm các biến như ORACLE_HOSTNAME , ORACLE_BASE , PATH v.v., cần thiết để các thành phần Oracle hoạt động đúng cách. Sau khi các thiết lập bash của oracle người dùng được áp dụng cho phiên shell hiện tại, lệnh tiếp theo sẽ được thực thi để khởi động cơ sở dữ liệu Oracle. Sự khác biệt giữa su - và sulà gì?
user1@hostname:~$ su - username2 – lệnh này khởi chạy phiên làm việc trên dòng lệnh với tư cách người dùng đã chọn ( username2 ) cùng các thiết lập của người dùng đó ( username2 ), giống như khi bạn đăng nhập trực tiếp (từ đầu) với tài khoản username2 để tạo một phiên làm việc mới. Các biến môi trường của username2 được sử dụng trong phiên shell này.
user1@hostname:~$ su username2 – lệnh này chạy vỏ lệnh dòng lệnh với tư cách người dùng đã chọn ( username2 ) cùng các thiết lập của người dùng hiện tại ( user1 ) và các biến môi trường của user1 được kế thừa bởi username2 trong phiên shell này.
su -c (–command) có nghĩa là lệnh được chỉ định phải được chạy với tư cách người dùng đã chọn.
Khắc phục sự cố
Hãy xem xét một số vấn đề có thể xảy ra khi cài đặt Oracle trên Ubuntu và liệu có phương pháp nào để khắc phục chúng hay không.
ORA-12547: TNS:lost contact
Trình hướng dẫn cấu hình cơ sở dữ liệu (Database Configuration Assistant) không thể tạo cơ sở dữ liệu và xảy ra lỗi.
ORA-12547: TNS:lost contact .
Các tệp nhật ký cho thao tác hiện tại nằm tại :
/u01/app/oracle/cfgtoollogs/dbca/ORADB11G
Kiểm tra tệp nhật ký:
tail -n 100 /u01/app/oracle/cfgtoollogs/dbca/ORADB11G/cloneDBCreation.log
Chú ý đến các chuỗi sau:
oracleORADB11G: lỗi khi tải các thư viện chia sẻ: libaio.so.1: không thể mở tệp đối tượng chia sẻ: Không tìm thấy tệp hoặc thư mục
ORA-12547: TNS: mất kết nối
Một trong những nguyên nhân khiến thông báo lỗi này xuất hiện là do thiếu các thư viện liên quan đến các gói phần mềm phù hợp— libaio1 , libaio-dev . Kiểm tra xem các gói phần mềm được đề cập đã được cài đặt chưa, nếu chưa thì hãy cài đặt chúng:
sudo apt-get install libaio1
sudo apt-get install libaio-dev
Oracle không tự động khởi động khi Ubuntu khởi động
Có thể bạn đang chạy tập lệnh với tư cách root và thấy thông báo:
“Biến môi trường ORACLE_UNQNAME không được định nghĩa. Vui lòng đặt ORACLE_UNQNAME thành tên duy nhất của cơ sở dữ liệu”.
Trong trường hợp này, Oracle sẽ không khởi động tự động khi Ubuntu khởi động. Nếu thông báo lỗi này xuất hiện khi khởi động Oracle Enterprise Manager 11g Database Control, bạn nên kiểm tra các biến môi trường.
How to check the ORACLE_UNQNAME?
Bạn có thể kiểm tra ORACLE_UNQNAME (chạy lệnh với tư cách oracle ).
sqlplus / as sysdba;
SQL> SELECT name, db_unique_name FROM v$database;
SQL> exit
Chỉnh sửa /etc/profile (với tư cách root): vim /etc/profile
Thêm dòng sau vào cuối tệp /etc/profile :
ORACLE_UNQNAME=ORADB11G; export ORACLE_UNQNAME
Khởi động lại máy Ubuntu đã cài đặt Oracle.
Giờ đây, lỗi này sẽ không còn xuất hiện khi chạy tập lệnh và Oracle sẽ khởi động sau khi chạy lệnh /etc/init.d/oracle start theo cách thủ công. Tuy nhiên, Oracle vẫn không tự động khởi động khi khởi động Ubuntu Linux. Nguyên nhân của vấn đề này là do các biến môi trường chưa được thiết lập cho shell nơi tập lệnh đang chạy. Xem giải thích về tập lệnh khởi động Oracle ở trên và kiểm tra kỹ tập lệnh của bạn.
Có thể cài đặt Oracle 11g trên Ubuntu 18 không?
Ubuntu 18 có các phiên bản mới hơn của thư viện hệ thống Linux, tương thích rất tốt với Oracle 11g R2. Khả năng cao là bạn sẽ gặp lỗi ở giai đoạn Link Binaries của quá trình cài đặt Oracle. Ví dụ:
Lỗi khi gọi mục tiêu ‘links proc gen_pcscfg’ trong tệp makefile ‘ u01/app/oracle/product/11.2.0/dbhome_1/precomp/lib/ins_precomp.mk ‘.
Đó là lý do tại sao Ubuntu 16 được sử dụng trong hướng dẫn này. Tất nhiên, bạn có thể thử cài đặt Oracle 11g trên Ubuntu 18 nhưng hãy chuẩn bị tinh thần cho một số khó khăn. Bạn có thể cần cài đặt các gói và thư viện của các phiên bản cũ hơn và do đó phải hạ cấp hệ điều hành Ubuntu.
Quy trình cài đặt cơ sở dữ liệu Oracle trên Ubuntu 18 tương tự như cài đặt cơ sở dữ liệu Oracle trên Ubuntu 16 (cho Oracle 11g R2 EE). Trong giai đoạn Link Binaries khi xảy ra lỗi, bạn nên phân tích nhật ký, tra cứu tài liệu và khắc phục lỗi liên kết.
Lệnh sau đây có thể hữu ích để liên kết lại các thư viện theo cách thủ công sau khi chỉnh sửa tệp:
$ORACLE_HOME/bin/relink all
Kết luận
Bài viết blog này đã hướng dẫn bạn qua quá trình cài đặt Oracle 11g R2 Enterprise Edition, một quy trình phức tạp hơn nhiều so với việc cài đặt Oracle XE (Express Edition). Việc cài đặt cơ sở dữ liệu Oracle trên Ubuntu yêu cầu bạn phải thực hiện cấu hình thủ công các tệp và thông số hệ thống.
Việc cài đặt Oracle trên Ubuntu Linux không phải là một nhiệm vụ dễ dàng, nhưng Oracle Enterprise Edition mang lại nhiều lợi ích. Các bước cài đặt Oracle đòi hỏi sự chú ý đặc biệt từ phía bạn bao gồm cài đặt các gói Ubuntu, liên kết các tệp nhị phân và tạo tập lệnh khởi động. Nếu phiên bản Ubuntu và Oracle của bạn giống với các phiên bản được sử dụng trong bài viết này, hãy làm theo hướng dẫn từng bước để cài đặt Oracle thành công. Sau khi triển khai cơ sở dữ liệu Oracle, đừng quên tạo bản sao lưu.







































