Cách 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 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à OpenSUSE 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 toàn thế giới và bài viết trên blog hôm nay sẽ 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, một Ubuntu 16.04.6 được cài đặt mới được sử dụng. Hệ điều hành được cài đặt trên VMware VM mà không bậ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 từ bên thứ ba ” trong quá trình triển khai HĐH.
Nếu bạn chưa bao giờ cài đặt Oracle trên Linux trước đây, bạn nên học cách Cài đặt Oracle trên Ubuntu trên một 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 VMware VM, đừng quên cài đặt VMware Tools. Bạn cũng có thể sử dụng máy ảo VirtualBox và Hyper-V.
Hãy đảm bảo rằng bạn đã chọn đúng múi giờ 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ả đầu ra là như sau trong ví dụ của chúng tôi:
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 VM sau được sử dụng:
- Bộ xử lý: 1 CPU
- RAM: 4 GB
- Đĩa cứng: 40 GB
user1 là người dùng thông thường trong ví dụ này ( user1 được tạo trong quá trình cài đặt Ubuntu và được sử dụng để đăng nhập vào Ubuntu).
Các gói sau đã được cài đặt:
- vim , trình soạn thảo văn bản
- net-tools , công cụ quản lý mạng
- openssh-server , máy chủ SSH cho phép bạn Kết nối với bảng điều khiển Linux (terminal) từ xa
Nếu bạn chưa có các gói này cài đặt trong Ubuntu Linux của mình, bạn có thể cài đặt chúng bằng cách sử dụng lệnh:
sudo apt-get install -y vim net-tools openssh-server
Máy chủ SSH được cài đặt để thuận tiện. Bạn nên chạy nhiều lệnh trên bảng đ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, chỉnh sửa tệp sshd_config :
vim /etc/ssh/sshd_config
Bỏ chú thích dòng (xoá “#” ở đầu dòng):
PasswordAuthentication yes
Lưu thay đổi và thoát bằng cách nhấn phím Escape trong vim và gõ :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 một 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 tùy chọn phân vùng mặc định hoặc chọn kích thước phân vùng hoán đổi không chính xác, bạn vẫn có thể tạo một hoán đổi tệp với kích thước tùy chỉnh và sử dụng hoán đổi tệp thay vì một phân vùng hoán đổi hiện có. Kích thước tệp hoán đổi nên bằng hai lần kích thước 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 hoán đổi tệp hoặc phân vùng là 8 GB. Hãy tạo tệp hoán đổi 8-GB.
Tạm thời vô hiệu hóa việc sử dụng khu vực hoán đổi:
sudo swapoff -a
Tạo một tệp mới 8-GB với công cụ dd :
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
Thiết lập tệp 8-GB đã tạo để sử dụng làm tệp hoán đổi:
sudo mkswap /swapfile
Kích hoạt lại việc sử dụng hoán đổi:
sudo swapon /swapfile
Kiểm tra kích thước của khu vực hoán đổi sau khi tạo một tệp hoán đổi mới:
grep SwapTotal /proc/meminfo
Cấu hình Cài đặt Mạng
Mặc định, Ubuntu 16 tự động nhận địa chỉ IP cho một giao diện mạng (nếu có máy chủ DHCP trong mạng). Bạn cần thiết lập một địa chỉ IP tĩnh và cấu hình tên máy chủ trước khi có thể cài đặt Oracle trên Ubuntu.
Kiểm tra cấu hình IP hiện tại:
ifconfig
Trong kết quả đầu ra, bạn có thể thấy tên của các bộ điều hợp mạng và địa chỉ IP của bạn. Trong trường hợp này, 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 với vim :
sudo vim /etc/network interfaces
Địa chỉ IP tĩnh cần cho việc 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 các thay đổi:
sudo /etc/init.d/networking restart
Hoặc khởi động lại máy:
init 6
Xác minh rằng các cài đặt IP mới đã được áp dụng:
ifconfig
Hoặc:
hostname -I
Sau khi kiểm tra cấu hình địa chỉ IP, 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ủ 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 một tên máy chủ mới ( ubuntu-oracle11 ), hãy chạy lệnh:
sudo hostnamectl set-hostname ubuntu-oracle11
Xác minh liệu tên máy chủ mới đã được áp dụng:
less /etc/hostname
Chỉnh sửa tệp máy chủ:
sudo vim /etc/hosts
Nội dung của tệp /etc/hosts phải trông như thế này:
127.0.0.1 localhost
127.0.1.1 ubuntu-oracle11
Khởi động lại máy: init 6
Hãy thử thực hiện lệnh ping đến 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ố nhân hệ điều hành, 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 của 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àm 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ể coi là 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, cũng như 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 tham số liên quan đến kernel ( kernel ), các tham số liên quan đến 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 thông số của nhân Linux:
vim /etc/sysctl.conf
Thêm các dòng 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 thông số nhân mà bạn đã đặt:
sysctl -p
Định cấu hình giới hạn shell
Bạn cần đặt 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 đặt.
Cột thứ hai hoạt động với hai tùy chọn—soft và hard. Soft là số tối đa mà người dùng có thể đặt, trong khi hard là số tối đa có thể được người dùng được định nghĩa (oracle) cấu hình lại. Nếu người dùng oracle đạt đến giá trị thấp tớ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 người dùng oracle đặt nhưng có thể được đặt bởi root.
Cột thứ ba xác định tài nguyên mà các giới hạn được áp dụng.
Cột thứ tư xác định số 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 /etc/pam.d/login cấu hình chứa dòng sau đây:
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ập bị thiếu, hãy thêm thủ công dòng này.
Đặt hồ sơ shell
Các biến môi trường trên toàn hệ thống được đặt trong hồ sơ shell bash toàn cầu được đặt trong tệp cấu hình /etc/profile .
Chỉnh sửa /etc/profile và đặt một số thông số cần thiết cho oracle toàn cầu 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 ý : Nên biết khi nào mỗi tệp cấu hình shell có thể được sử dụng vì sau này bạn sẽ cần cấu hình hồ sơ chứa các biến môi trường cho người dùng oracle .
Shell login 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 như một hồ sơ toàn cầu dành cho shell bash khi đăng nhập.
./bash_profile được áp dụng cho các shell bash khi đăng nhập, ví dụ như khi bạn đăng nhập vào giao diện dòng lệnh của Linux trực tiếp bằng bàn phím kết nối với máy tính Linux này, hoặc khi mở phiên console mới sau khi bạn đăng nhập bằng SSH terminal.
.profile – tệp tin này được đọc cho bash và các shell khác như sh .
Shell không đăng nhập ít giao tiếp của bash tải cấu hình từ ~/.bashrc
Nó có nghĩa rằng 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 với giao diện đồ họa) và sau đó mở cửa sổ console (terminal) mới, thì cấu hình shell, bao gồm các biến môi trường, được tải từ tệp tin .bashrc trước khi bạn truy cập vào dòng lệnh.
Shell không đăng nhập và không tương tác tải cấu hình được cài đặt trong biến môi trường $BASH_ENV . Shell không đăng nhập và không tương tác được sử dụng khi một script chạy.
Cài đặt các gói cần thiết
Bạn cần cài đặt các gói cần thiết bởi Oracle. Hãy cẩn thận khi cài đặt chúng vì thiếu một gói 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 khi 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
Có một vài gói còn lại cần cài đặt, nhưng để cài đặt chúng, bạn sẽ cần những mẹo và mánh lới này.
apt-get install ia32-libs
Khi bạn chạy lệnh để cài đặt gói này bằng apt-get , bạn sẽ thấy thông điệp nói rằng gói này không có sẵn.
Có một gói thay thế có thể cài đặt thay cho ia32-libs . 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 thủ công. Tải tập tin libmotif4_2.3.4-8ubuntu1_amd64.deb từ một tài nguyên miễn phí. Lưu tập tin deb đã tải xuống vào một thư mục tùy chỉnh, ví dụ, /home/user1/Downloads, trước khi bạn có thể cài đặt gói này.
Quy trình cài đặt các gói deb trên Ubuntu như sau (thực hiện 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 tôi đang chạy các lệnh để cài đặt gói như một người dùng bình 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à trở lại phiên user1 trong bảng điều khiển (terminal).
Đi tới thư mục nơi các tập tin tải xuống được lưu trữ:
cd /home/user1/Downloads
Tải tập tin bằng cách sử dụ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 cài đặt tự động:
sudo apt-get install libpthread-stubs0
Không thể định vị được 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
Cài đặt gói tiếp theo tương tự:
sudo apt-get install lsb-cxx
Không thể định vị được 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
Không có gói cài đặt ứng viên ‘pdksh’
Quy trình cài đặt gói pdksh là như nhau. Gói này có thể được tải xuống 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 không được cài đặt trên Ubuntu 16 tự động.nnDưới đây là cách bạn có thể cài đặt gói này thủ công.
Các lệnh tiếp theo được thực hiện như 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 gói (liên kết đến các gói 32-bit và 64-bit đều có sẵn):
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 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 liên kết không còn hoạt động, phiên bản mới hơn của các gói có thể được phát hành thay cho 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 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 thay đổi. init 6
Tạo liên kết tượng trưng
Bạn phải tạo các liên kết tượng trưng (symlinks) để làm cho cấu trúc tệp và thư mục được sử dụng trong Ubuntu giống với cấu trúc tệp trong Red Hat. Tạo các symlinks để cấu trúc hệ thống tệp xuất hiện giống hệt cấu trúc hệ thống tệp Red Hat để ngăn ngừa lỗi trong quá trình cài đặt Oracle.
Chạy 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 ngừa các lỗi như sau:
- 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 tới `nnfyboot’ trong make: rdbms/lib/dg4odbc] Lỗi 1
Bây giờ hãy ngăn ngừa 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 quá trình tạo lib/liborasdkbase.so.11.1 trong ins_rdbms.mk . Đi tới thư mục /lib64 và thực hiện lệnh:
cd /lib64
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 .
Đừng bỏ sót 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 họ 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 sử dụng cho người dùng oracle .
Đăng nhập với tư cách oracle nếu bạn mở bảng đ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ài đặt:
source ~/.bashrc
Bạn nên khởi động lại Ubuntu ngay bây giờ. Lưu ý rằng cài đặt sẽ được áp dụng sau khi khởi động lại ngay cả khi không chạy source ~/.bashrc.
init 6
Chuẩn bị Trình cài đặt Oracle
Chúng ta gần hoàn tất việc chuẩn bị để cài đặt Oracle. Chỉ còn vài bước nữa trước khi bạn có thể bắt đầu cài đặt và cài đặt Oracle trên Ubuntu. Sau khi khởi động lại máy Ubuntu, hãy đăng nhập dưới dạng oracle trong giao diện đồ 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 để dễ dàng sử dụng: linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
Mở console trong Ubuntu và chạy các lệnh sau dưới quyền oracle. Đi đến thư mục nơi lưu trữ các tập tin đã tải về:
cd /home/oracle/Downloads
hoặc cd ~/Downloads/
Giải nén tập tin cài đặt từ các tập tin zip đã tải về:
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
Các tập tin được giải nén sẽ đượ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
Đi đến thư mục mà các tập tin cài đặt được tải về. Chạy lệnh như oracle trong console đã khởi động trong phiên 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ập nhật bảo mật qua My Oracle Support ”.
Nhấn Tiếp theo để đi đến 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 được thông tin về các vấn đề bảo mật quan trọng trong cấu hình của bạn không? Bỏ qua thông báo này và nhấn Có .
2. Tùy chọn cài đặt
Chọn Tạo và cấu hình một cơ sở dữ liệu .
3. Lớp hệ thống
Chọn Lớp máy chủ , đây là một tùy chọn nâng cao cho việc cài đặt cơ sở dữ liệu Oracle trên Ubuntu.
4. Tùy chọn Grid
Chọn Cài đặt cơ sở dữ liệu đơ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. Ấn bản cơ sở dữ liệu
Chọn Ấn bản doanh nghiệp cho cơ sở dữ liệu bạn sẽ 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 home Oracle được sử dụng.
Cơ sở Oracle: /u01/app/oracle
Vị trí phần mềm: /u01/app/oracle/product/11.2.0/dbhome_1
9. Tạo Kho
Thư mục được sử dụng để lưu trữ tập tin cài đặt Oracle được gọi là “thư mục kho Oracle”.
Thư mục Kho: /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:
Đa chức năng / Xử lý giao dịch
11. Nhận diện cơ sở dữ liệu
Bạn có thể định nghĩa giá trị giống nhau cho tên cơ sở dữ liệu toàn cầu và định danh dịch vụ Oracle.
Tên cơ sở dữ liệu toàn cầu: ORADB11G
Định danh dịch vụ Oracle (SID): ORADB11G
12. Các tuỳ chọn cấu hình
Có bốn thẻ trong bước này. Bạn có thể thiết lập cấu hình trên mỗi thẻ như sau:
Bộ nhớ: Kích hoạt quản lý bộ nhớ tự động (mặc định).
Bộ ký tự: Sử dụng Unicode (AL32UTF8).
Bảo mật: Khẳng định tất cả cài đặt bảo mật mới (mặc định).
Lược đồ mẫu: Tạo cơ sở dữ liệu với lược đồ mẫu (tuy nhiên, bạn có thể để giá trị mặc định).
13. Tuỳ chọn quản lý
Bạn có thể để các tham 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 tuỳ 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à 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ả cá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 Vận hành cơ sở dữ liệu (OSOPER): oinstall
18. Kiểm tra điều kiện tiên quyết
Bây giờ trình cài đặt Oracle kiểm tra xem cấu hình hệ thống có đáp ứng điều kiện tiên quyết không. Các cảnh báo sẽ xuất hiện cho bước này. Tham số Kernel của Hệ điều hành semmni đã được cấu hình trước đó, nhưng trạng thái thất bại được hiển thị cho tham số này.
Tham số Kernel của 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 đúng. Kiểm tra tham số semmni với lệnh (chạy dướ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 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ì lý do nào đó, trình 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à đúng và các gói yêu cầu đã được cài đặt. Nếu nội dung của cửa sổ Kiểm tra Điều kiện tiên quyết của bạn giống với cửa sổ hiển thị trên ảnh chụp màn hình phía trên, hãy đánh dấu vào hộp kiểm Bỏ qua tất cả và nhấp Tiếp theo để tiếp tục.
19. Tổng hợp
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 cài đặt như cần thiết. 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 máy chủ Ubuntu mà không có GUI.
Bây giờ bạn có thể theo dõi cách mà trình cài đặt Oracle sao lưu tệp cho đến khi trình cài đặt tiếp tục đến giai đoạn Liên kết nhị phân .
Liên kết nhị phân cho Oracle—khắc phục lỗi liên kết và lỗi biên dịch
Giai đoạn này là một trong những giai đoạn khó khăn nhất để cài đặt cơ sở dữ liệu Oracle trên Ubuntu Linux. Khả năng gặp phải lỗi ở bước này rất cao. Trong ví dụ hiện tại, lỗi sau đã xảy ra khi chúng tôi cài đặt Oracle 11g trên Ubuntu 16:
Lỗi khi gọi mục tiêu ‘cài đặt’ của 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’ để lấy chi tiết .
Chú ý rằng 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 ý : Tệp có phần mở rộng .mk là các 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 “các phần” của chương trình nào cần được biên dịch và tệp nào của chương trình cần được biên dịch và liên kết cùng nhau. Một số thành phần của phần mềm Oracle được viết bằng Java (ví dụ như Trình cài đặt Oracle Universal có GUI) và một số thành phần được viết trên C. Các thành phần viết bằng Java phải được interpret không cần biên dịch (Java là đa nền tảng), trong khi các thành phần viết bằng C phải được biên dịch và liên kết nhị phân và thư viện là giai đoạn cần thiết 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 sự cố liên kết.
Hãy cùng tìm hiểu cách khắc phục lỗi liên kết các 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 là 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 về lỗi.
THÔNG BÁO: /u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk:11: quy trình xây dựng cho mục tiêu ‘ctxhx’ đã thất bại
ins_ctx.mk:11 chỉ đến dòng 11 trong 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 , hãy nhập :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’ trong 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 dạng 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, hãy 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 lại xuất hiện khi Linking RDBMS Executables : Lỗi khi thực hiện mục tiêu ‘all_no_orcl’ của makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk’.
Chạy các lệnh sau với quyền 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à bấm Thử lại . Bây giờ quá trình cài đặt sẽ tiếp tục diễn ra mà không có lỗi nào.
Trợ lý cấu hình cơ sở dữ liệu Oracle (DBCA) sẽ mở ra sau khi vượt qua giai đoạn Liên kết nhị phân .
Thực hiện các tập lệnh cấu hình
Chúng ta gần đạt đến đích trong 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 quyền root :
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
Trong ảnh chụp màn hình dưới đây, 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 Oracle có đang chạy trên Ubuntu
Mở trình duyệt web trên máy Ubuntu chạy Oracle và kiểm tra xem Oracle có đang chạy bằng cách mở giao diện web của Oracle Database Control Manager. Có thể sử dụng các liên kết sau để 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 chạy Oracle từ máy chủ vật lý 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
Bên dưới, bạn có thể thấy ảnh chụp màn hình của Oracle Enterprise Manager khi Oracle đang hoạt động đúng cách.
Định cấu hình Oracle sau cài đặt
Bây giờ Oracle đã được cài đặt, chúng ta nên cấu hình cơ sở dữ liệu để bắt đầu tự động 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 bắt đầu khi hệ thống khởi động.
Chạy lệnh với quyền root.
vim /etc/oratab
Thay 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 bắt đầu 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ẽ giúp cho việc chẩn đoán. Thực hiện các lệnh này dưới quyền người dùng oracle .
Bắt đầu 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 Database Control Enterprise Manager – công cụ cung cấp giao diện web để quản lý cơ sở dữ liệu:
emctl start dbconsole
Dừng Database Control Manager:
emctl stop dbconsole
Kiểm tra trạng thái của Database Control Manager:
emctl status dbconsole
Khởi động listener:
$ORACLE_HOME/bin/lsnrctl start
Dừng listener:
$ORACLE_HOME/bin/lsnrctl stop
Kiểm tra trạng thái của listener:
$ORACLE_HOME/bin/lsnrctl status
Khởi động Trợ lý Cấu hình Cơ sở Dữ liệu (trong môi trường GUI, không phải trong giao diện SSH):
dbca
Có thể cấu hình listener 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 console:
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 tập lệnh 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 tập lệnh để dừng Oracle (bạn có thể chạy tập lệnh này với lệnh root ):
/etc/init.d/oracle stop
Nếu bạn muốn khởi động Oracle, hãy chạy tập lệnh này với lệnh:
/etc/init.d/oracle start
Lưu ý: Hãy chú ý đến dòng sau và các dòng tương tự trong tập lệnh 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 người dùng oracle 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 người dùng oracle đượ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à su là gì?
user1@hostname:~$ su - username2 – lệnh này chạy phiên shell của dòng lệnh với tư cách là người dùng đã chọn ( username2 ) bằng các cài đặt của người dùng đã chọn ( username2 ) như thể bạn đã đăng nhập với tư cách là username2 khi tạo phiên shell mới trực tiếp (từ đầu). 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 shell dòng lệnh với tư cách là người dùng đã chọn ( username2 ) bằng cài đặt 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à một lệnh chỉ định phải được chạy như 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 bạn 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:mất liên lạc
Công cụ Cấu hình Cơ sở dữ liệu không thể tạo cơ sở dữ liệu và xảy ra lỗi.
ORA-12547: TNS:mất liên lạc .
Các tệp log cho thao tác hiện tại nằm tại :
/u01/app/oracle/cfgtoollogs/dbca/ORADB11G
Kiểm tra tệp log:
tail -n 100 /u01/app/oracle/cfgtoollogs/dbca/ORADB11G/cloneDBCreation.log
Chú ý đến các chuỗi này:
oracleORADB11G: lỗi khi tải thư viện chia sẻ: libaio.so.1: không thể mở tệp đối tượng chia sẻ: Không có tệp hoặc thư mục nào như vậy
ORA-12547: TNS:mất liên lạc
Một trong những nguyên nhân khiến thông báo lỗi này được hiển thị là do thiếu thư viện liên quan đến các gói phù hợp— libaio1 , libaio-dev . Kiểm tra xem các gói được đề cập có được cài đặt hay không, nếu không thì 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 boot
Có thể xảy ra tình huống bạn đang chạy script 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”.
Oracle không tự động khởi động khi Ubuntu boot trong tình huống này. Nếu thông báo lỗi này hiển thị khi bắt đầu Oracle Enterprise Manager 11g Database Control, hãy kiểm tra 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 như oracle ).
sqlplus / as sysdba;
SQL> SELECT name, db_unique_name FROM v$database;
SQL> exit
Chỉnh sửa /etc/profile (như root): vim /etc/profile
Thêm dòng vào cuối tệp /etc/profile :
ORACLE_UNQNAME=ORADB11G; export ORACLE_UNQNAME
Khởi động lại máy Ubuntu nơi Oracle được cài đặt.
Bây giờ lỗi này không nên xuất hiện khi chạy tập lệnh và Oracle sẽ bắt đầu sau khi chạy lệnh /etc/init.d/oracle start thủ công. Tuy nhiên, Oracle vẫn không tự động bắt đầu khi khởi động Ubuntu Linux. Nguyên nhân của vấn đề này là các biến môi trường không được thiết lập cho shell chạy tập lệnh. Xem phần giải thích về tập lệnh khởi động Oracle ở trên và xem xét 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 thư viện hệ thống Linux mới hơn, rất tương thích với Oracle 11g R2. Có khả năng cao là bạn sẽ gặp lỗi ở giai đoạn Liên kết nhị phân khi cài đặt Oracle. Ví dụ:
Lỗi khi gọi mục tiêu ‘liên kết proc gen_pcscfg’ của 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ị 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, do đó hạ bậc 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 (dành cho Oracle 11g R2 EE). Trong giai đoạn Liên kết nhị phân khi có lỗi xảy ra, bạn nên phân tích nhật ký, nghiên cứu tài liệu và khắc phục lỗi liên kết.
Lệnh sau có thể hữu ích cho việc liên kết lại thư viện 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 cài đặt Oracle 11g R2 Enterprise Edition, là một quy trình phức tạp hơn nhiều so với cài đặt Oracle XE (Express Edition). Cài đặt cơ sở dữ liệu Oracle trên Ubuntu yêu cầu bạn thực hiện cấu hình thủ công các tệp và thông số hệ thống.
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 cung cấp nhiều lợi thế. Các bước cài đặt Oracle đòi hỏi bạn cần chú ý bao gồm cài đặt các gói Ubuntu, liên kết 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 thực hiện sao lưu các bản sao lưu.







































