## Debian12 安装 oracle11g --- 1. 查看系统版本 2. 设置本地时区为上海 ```shell timedatectl apt-get install ntpdate timedatectl set-timezone Asia/Shanghai ntpdate ntp1.aliyun.com date ``` 3. 检查当前系统版本号 ```shell root@debianPE:~# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm ``` 4. 安装必用软件 ```shell apt-get install -y vim net-tools ``` 5. 配置虚拟内存 ```shell root@debianPE:~# grep SwapTotal /proc/meminfo SwapTotal: 998396 kB root@debianPE:~# free -h total used free shared buff/cache available Mem: 1.9Gi 955Mi 400Mi 13Mi 784Mi 1.0Gi Swap: 974Mi 0B 974Mi root@debianPE:~# sudo swapoff -a root@debianPE:~# sudo dd if=/dev/zero of=/swapfile bs=1G count=4 4+0 records in 4+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 19.3218 s, 222 MB/s root@debianPE:~# sudo mkswap /swapfile mkswap: /swapfile: insecure permissions 0644, fix with: chmod 0600 /swapfile Setting up swapspace version 1, size = 4 GiB (4294963200 bytes) no label, UUID=24c39cae-4736-4bfb-90df-a0261c14efbe root@debianPE:~# sudo swapon /swapfile swapon: /swapfile: insecure permissions 0644, 0600 suggested. root@debianPE:~# grep SwapTotal /proc/meminfo SwapTotal: 4194300 kB ``` 6. Configuring the static IP address ```shell 进入图形界面配置 ``` 7. 验证主机名和用户信息 ```shell root@debianPE:~# hostnamectl Static hostname: debianPE Icon name: computer-vm Chassis: vm 🖴 Machine ID: 49d85c389b8e4dc99e284730f244dfde Boot ID: 4f3ef4e224ba4715add5c52df2e54d67 Virtualization: kvm Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.1.0-25-amd64 Architecture: x86-64 Hardware Vendor: QEMU Hardware Model: Standard PC _i440FX + PIIX, 1996_ Firmware Version: rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org root@debianPE:~# groupadd oinstall root@debianPE:~# groupadd dba root@debianPE:~# mkdir -p /home/oracle root@debianPE:~# mkdir -p /u01/app/oracle root@debianPE:~# useradd -g oinstall -G dba -d /home/oracle -s /bin/bash oracle root@debianPE:~# passwd oracle New password: Retype new password: passwd: password updated successfully root@debianPE:~# chown -R oracle:oinstall /home/oracle root@debianPE:~# chown -R oracle:oinstall /u01/app/oracle root@debianPE:~# mkdir -p /u01/app/oraInventory root@debianPE:~# chown -R oracle:oinstall /u01/app/oraInventory ``` 8. 配置系统参数 ```shell root@debianPE:~# nano /etc/sysctl.conf vim /etc/sysctl.conf Append the lines shown below to the end of this configuration file. # ============================ # 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 Apply the kernel parameters you have set: sysctl -p -------------------------- root@debianPE:~# sysctl -p net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 kernel.sem = 250 32000 100 128 kernel.shmall = 2097152 kernel.shmmni = 4096 kernel.shmmax = 2147483648 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 fs.aio-max-nr = 1048576 fs.file-max = 6815744 fs.suid_dumpable = 1 vm.hugetlb_shm_group = 1001 root@debianPE:~# ``` 9. Set up limits.conf ```shell Edit the /etc/security/limits.conf file: vim /etc/security/limits.conf Add the following lines to the end of the configuration file: # Oracle oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 The first column specifies the user for whom the limits are set. ``` 10. PAM configration ```shell root@debianPE:~# cat /etc/pam.d/login | grep pam_limits.so session required pam_limits.so root@debianPE:~# ``` 11. ### **Setting the shell profile** ```shell Edit /etc/profile and set some needed parameters for oracle globally and permanently: vim /etc/profile Add the following lines: if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi Note: It is useful to know when each shell configuration file can be used because later you will need to configure a profile that contains environment variables for the oracle user. ``` 12. ### **Installing the required packages** ```shell 按照手册详操作,比较复杂 ``` 13. ### **Creating symbolic links** ```shell Run commands as 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 The above commands help prevent errors, such as: genclntsh: Failed to link libclntsh.so.11.1 in make file for rdbms/lib/ins_rdbms.mk because of missing library: /usr/bin/ld: cannot find /usr/lib64/libpthread_nonshared.a inside lib//libagtsh.so: undefined reference to `nnfyboot’ in make: rdbms/lib/dg4odbc] Error 1 Now let’s prevent one more error: /lib64/libgcc_s.so.1: File or directory does not exist, while creating lib/liborasdkbase.so.11.1 in ins_rdbms.mk. Go to the /lib64 directory and execute the command: cd /lib64 ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 . Don’t miss the dot at the end of the command. Set the Linux version as Red Hat Linux release 5 in /etc/redhat-release. Red Hat Linux distributions store their version in that file. echo 'Red Hat Linux release 5' > /etc/redhat-release ``` 14.