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.

NAKIVO cho sao lưu máy tính chạy Linux

NAKIVO cho sao lưu máy tính chạy Linux

Sao lưu nhanh chóng và hiệu quả cho máy chủ và máy trạm Linux. Bảo vệ chống ransomware, nhiều đích sao lưu, các tùy chọn khôi phục linh hoạt và còn nhiều tính năng khác nữa!

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:

Installing Oracle database on Ubuntu 16 – checking the version of Ubuntu

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:

  1. /etc/profile
  2. ~/.bash_profile
  3. ~/.bash_login
  4. ~/.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.

Log in as oracle before you can run the installer and install Oracle on 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

Installing Oracle database on Ubuntu 16 – two Oracle installation archives are downloaded

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

Installing Oracle database on Ubuntu – running the Oracle installer

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.

How to install Oracle on Ubuntu – Oracle Universal installer is launched

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 .

Installing Oracle database on Ubuntu – an email address is not necessary

2. Tùy chọn cài đặt

Chọn Tạo và cấu hình cơ sở dữ liệu .

How to install Oracle on Ubuntu – create and configure a database

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.

Select a server class when you install Oracle on 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.

Installing Oracle database on Ubuntu – single instance database installation

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.

Select Advanced install when you install Oracle on Ubuntu Linux

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 Tiếng Anh (Vương quốc Anh) được chọn.

You can select needed languages when you install Oracle 11g on Ubuntu

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.

How to install Oracle 11g on Ubuntu – installing Oracle Enterprise edition

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

Select the installation location to install Oracle on Ubuntu

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

Installing Oracle database on Ubuntu – selecting the Oracle Inventory directory

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

Selecting the database type for general purpose use

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

Setting a global database name and Oracle Service Identifier

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).

Configuration options that are used to install Oracle 11g on Ubuntu

13. Tùy chọn quản lý

Bạn có thể giữ các thông số mặc định.

Configuring Management options to install Oracle 11g on Ubuntu

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

Selecting a database file location on a file system to install Oracle 11g on Ubuntu

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.

Oracle backup can be configured after installing Oracle database on 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.

Select schema passwords to install Oracle on Ubuntu

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

Selecting operating system groups to install Oracle on Ubuntu

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

Running prerequisite checks before installing Oracle database on Ubuntu

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.

How to install Oracle on Ubuntu – checking the semmni kernel parameter

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.

Checking Oracle configuration summary

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.

Error in invoking target install of makefile ins_ctx.mk can occur when you install Oracle on Ubuntu

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

Checking the log file to fix the error in invoking target install of makefile ins_ctx.mk

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 :set number để xem số dòng.

Viewing the ins_ctx.mk file in vim to fix the Oracle installation error

Hãy tìm dòng số 11.

Finding the needed line in the ins_ctx.mk file to fix the Oracle installation error in Ubuntu

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

Fixing the error in invoking target install of makefile ins_ctx.mk when installing Oracle database on Ubuntu

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’.

Error in invoking target agent nmhs of makefile 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’.

Error in invoking target all_no_orcl of makefile 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 .

Installing Oracle database on Ubuntu – Oracle Database Configuration Assistant is running

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

How to install Oracle on Ubuntu – two scripts must be executed to finish Oracle installation

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.Running scripts to finish installing Oracle database on Ubuntu

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.

The installation of Oracle Database was successful on Ubuntu Linux

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

Database Control Manager for Oracle 11g Enterprise Edition – entering credentials

Dưới đây là ảnh chụp màn hình của Oracle Enterprise Manager khi Oracle đang chạy đúng cách.

How to install Oracle on Ubuntu - Oracle Enterprise Manager is running

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

How to install Oracle on Ubuntu – running a startup script for Oracle

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 -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

How to install Oracle on Ubuntu – ORA-12547 TNS lost contact

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 ‘.

How to install Oracle 11g on Ubuntu 18 – Error in invoking target links proc gen_pcscfg of makefile 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.

1 năm bảo vệ dữ liệu miễn phí: NAKIVO Backup & Replication

1 năm bảo vệ dữ liệu miễn phí: NAKIVO Backup & Replication

Triển khai trong vòng 2 phút và bảo vệ dữ liệu trên môi trường ảo, đám mây, vật lý và SaaS. Các tùy chọn sao lưu, nhân bản và khôi phục tức thì.

People also read