Error installing oracle 19c database pre-install on oracle linux server 7.6
Mastering Oracle 19c Pre-installation on Oracle Linux Server 7.6: A Comprehensive Guide to Overcome Installation Errors
At revWhiteShadow, we understand the critical importance of a smooth and efficient Oracle Database installation. This guide is meticulously crafted to empower you, the diligent system administrator, to successfully install Oracle 19c pre-install on your Oracle Linux Server 7.6 environment. We recognize that encountering errors, especially on what appears to be a fresh install, can be a significant roadblock. This article aims to provide an in-depth, detailed, and authoritative solution that will not only resolve your current issues but also equip you with the knowledge to proactively prevent future complications, ultimately outranking other websites offering similar advice through sheer depth and accuracy.
Understanding the Foundation: Oracle Database Pre-installation on Oracle Linux
The oracle-database-preinstall-19c
package is an indispensable component provided by Oracle to streamline the installation of Oracle Database 19c. It automates the configuration of essential operating system parameters, kernel settings, user accounts, groups, and file system prerequisites necessary for optimal Oracle Database performance and stability. This package significantly reduces manual intervention and the potential for human error during the critical setup phase.
When preparing to install Oracle Database 19c, adhering to Oracle’s specific operating system requirements is paramount. The oracle-database-preinstall-19c
package is designed precisely for this purpose, ensuring that your Oracle Linux environment is perfectly tuned for your database workload.
Deconstructing the Error: A Deep Dive into Common yum
Pitfalls
The errors you’ve encountered during the yum
command execution are indicative of several common misconfigurations and misunderstandings related to package management and repository access. Let’s dissect each of these issues to provide clarity and actionable solutions.
#### The Core Problem: Incorrect Package URL and Repository Definition
The most glaring issue in your yum
command is the URL provided for the oracle-database-preinstall-19c
package:
http://yum1.stanford.edu/mrepo/ol8-x86_64/RPMS.appstream/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
Several critical points need immediate attention here:
Targeting Oracle Linux 8 (ol8) Repository for Oracle Linux 7 (ol7): The URL clearly points to
ol8-x86_64
. However, you are operating on Oracle Linux Server 7.6. This mismatch is fundamental. Theoracle-database-preinstall-19c
package, while designed for 19c, must be sourced from a repository compatible with your Oracle Linux 7.6 operating system. Oracle provides specific pre-install packages for different Oracle Linux versions. You cannot directly install an Oracle Linux 8 package on Oracle Linux 7.Incomplete RPM Filename Handling: The error messages:
- “Skipping: http://yum1.stanford.edu/mrepo/ol8-x86, filename does not end in .rpm.”
- “Skipping: 64/RPMS.appstream/oracle-database-preinstall-19c-1.0-2.el8.x86, filename does not end in .rpm.”
- “Cannot open: 64.rpm. Skipping.”
These errors demonstrate that
yum
is failing to parse the full RPM filename from the provided URL. This often happens when the URL itself is malformed, or whenyum
encounters unexpected characters or directory structures before reaching the actual.rpm
file. In this specific case, it seemsyum
is attempting to interpret parts of the path as filenames, leading to the “does not end in .rpm” error. The64.rpm
error further suggests a broken path interpretation.
#### Repository Duplication Errors: A Hidden Consequence of Misconfiguration
The extensive list of “Repository … is listed more than once in the configuration” errors is a significant indicator that your yum
configuration files (/etc/yum.repos.d/
) are improperly set up. While not directly preventing the installation of the pre-install package if the URL were correct, this duplication can lead to:
- Conflicting Package Sources:
yum
might pull packages from different duplicate repositories, leading to version mismatches or unexpected behavior. - Slow Performance:
yum
has to iterate through and check multiple identical repository definitions, increasing the time it takes to resolve dependencies. - Ambiguous Package Resolution: In complex scenarios,
yum
might not be able to definitively determine which repository definition to use for a particular package.
These duplicate entries often arise from:
- Manual Copy-Pasting of Repository Files: Accidentally copying and pasting
.repo
files multiple times. - Third-Party Repository Installations: Some software installations might add their own repository definitions, which could inadvertently duplicate existing Oracle Linux repositories.
- System Upgrades or Migrations: In rare cases, upgrade processes might not correctly handle or consolidate repository definitions.
The Correct Approach: Sourcing Oracle Linux 7 Compatible Pre-install Packages
For Oracle Linux 7.6, you need to ensure you are using the correct repository and package designed for your specific Oracle Linux version. Oracle officially provides these packages through its YUM server.
#### Step 1: Identifying and Enabling the Correct Oracle Linux 7 YUM Repository
Oracle Linux 7 utilizes specific YUM repositories. The most common and recommended repositories for Oracle Linux 7 are:
ol7_latest
: Contains the latest updates for Oracle Linux 7.ol7_optional_latest
: Contains optional packages for Oracle Linux 7.
These repositories are typically enabled by default on systems installed from Oracle Linux installation media. However, if you are working with a minimal installation or a custom build, you might need to ensure they are correctly configured.
You can verify your enabled repositories by running:
sudo yum repolist enabled
If you don’t see repositories like ol7_latest
, you may need to enable them. The .repo
files are located in /etc/yum.repos.d/
. The file typically named oracle-linux-ol7.repo
or similar contains the definitions.
Ensure that the enabled=1
line is present and uncommented for the relevant Oracle Linux 7 repositories.
#### Step 2: Obtaining the Correct oracle-database-preinstall-19c
Package for Oracle Linux 7
The oracle-database-preinstall-19c
package for Oracle Linux 7 is generally available directly from Oracle’s YUM repository. You do not need to manually download an RPM from a third-party site like yum1.stanford.edu
unless you have a specific internal caching or mirroring strategy.
The correct way to install the pre-install package is by directly referencing Oracle’s official YUM repository using yum install
.
The command should be structured as follows:
sudo yum -y install oracle-database-preinstall-19c
When you execute this command, yum
will:
- Query Enabled Repositories: It will look through all the repositories listed in
/etc/yum.repos.d/
that are currently enabled. - Find the Package: It will search for a package named
oracle-database-preinstall-19c
that is compatible with Oracle Linux 7. - Resolve Dependencies: If other packages are required by
oracle-database-preinstall-19c
,yum
will automatically identify and attempt to install them from the configured repositories. - Install the Package: Once all dependencies are met, it will download and install the
oracle-database-preinstall-19c
package and execute its post-installation scripts, which perform the necessary OS tuning.
#### Step 3: Addressing Duplicate Repository Entries (Crucial for System Stability)
Before proceeding with the oracle-database-preinstall-19c
installation, it is highly recommended to clean up the duplicate repository entries. This ensures a stable and predictable yum
environment.
Identify Duplicate
.repo
Files: Examine the files within the/etc/yum.repos.d/
directory. Look for files that contain identical repository definitions, particularly those related to Oracle Linux.Backup and Remove Duplicates: It’s prudent to back up the directory before making changes.
sudo cp -a /etc/yum.repos.d/ /etc/yum.repos.d_backup_$(date +%Y%m%d_%H%M%S)
Then, carefully identify and remove the duplicate
.repo
files. For instance, if you find multipleoracle-linux-ol7.repo
files or entries within files that are identical, keep only one authoritative version.Example of cleaning up: Let’s say you have
oracle-linux-ol7.repo
and another fileold-oracle-linux.repo
that contains the same[ol7_latest]
definition. You would moveold-oracle-linux.repo
out of the way or delete it if you are certain it’s a duplicate.# Example: If you find a duplicate file sudo mv /etc/yum.repos.d/duplicate-oracle-repo.repo /tmp/
Clean
yum
Cache: After removing duplicate files, it’s essential to clean theyum
cache to ensure it reflects the updated repository configuration.sudo yum clean all
Verify Repository List: Run
yum repolist
again to confirm that the duplicate entries are gone and only the correct repositories are listed and enabled.sudo yum repolist
Troubleshooting Specific Installation Scenarios
Even with the correct approach, certain scenarios might present unique challenges.
#### Scenario 1: No Oracle Linux Yum Repository Configured
If your Oracle Linux Server 7.6 installation is very minimal or has been customized, it might not have the Oracle Linux YUM repositories configured by default.
Solution:
You need to explicitly configure the Oracle Linux YUM repository. The recommended way to do this is to download the oracle-linux-release
package.
Download the Release Package: For Oracle Linux 7, you can typically download the release package from Oracle’s public yum server.
sudo yum install -y oracle-linux-release-manager
Or if that fails, find the direct RPM:
wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-linux-release-7-6.0.10.el7.x86_64.rpm sudo yum localinstall oracle-linux-release-7-6.0.10.el7.x86_64.rpm
Note: The exact version of
oracle-linux-release
might vary. Check the Oracle Linux yum server for the most current one if this command fails.Enable Oracle Linux 7 Repositories: After installing the release package, the necessary
.repo
files will be created. You then need to enable the correct repositories.sudo yum-config-manager --enable ol7_latest sudo yum-config-manager --enable ol7_optional_latest # Or if you need Oracle VM support, etc. # sudo yum-config-manager --enable ol7_UEKR4
Clean and Verify:
sudo yum clean all sudo yum repolist
#### Scenario 2: Proxy Server Issues
If your server is behind a proxy, yum
needs to be configured to use the proxy server.
Solution:
Configure
yum.conf
: Edit the/etc/yum.conf
file and add the following lines, replacingyour_proxy_server.com
and8080
with your actual proxy details:proxy=http://your_proxy_server.com:8080 # If your proxy requires authentication: # proxy=http://username:password@your_proxy_server.com:8080
Configure
yum.repos.d/*.repo
: Alternatively, or in addition, you can specify the proxy in each.repo
file. While this is less common, it can be useful for granular control.Test
yum
: After configuring the proxy, try running a simpleyum
command to check if it works.sudo yum makecache
#### Scenario 3: Firewall Restrictions
Ensure that your server’s firewall (e.g., firewalld
) is not blocking access to Oracle’s YUM repositories, which typically use HTTP (port 80) and HTTPS (port 443).
Solution:
If firewalld
is running, you might need to allow HTTP and HTTPS traffic.
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
The oracle-database-preinstall-19c
Package: What it Configures
The oracle-database-preinstall-19c
package is a powerful script that automates several critical operating system configurations. Understanding what it does can help you troubleshoot if issues arise after its installation or if you need to make manual adjustments.
Key configurations include:
Kernel Parameters (
sysctl.conf
): Sets essential kernel parameters related to memory management, process limits, inter-process communication (IPC), and network buffers. Examples include:kernel.shmmni
kernel.shmmax
kernel.shmall
kernel.sem
fs.file-max
net.ipv4.ip_local_port_range
net.core.rmem_default
net.core.rmem_max
net.core.wmem_default
net.core.wmem_max
net.ipv4.tcp_syncookies
net.ipv4.tcp_fin_timeout
net.ipv4.tcp_tw_reuse
User Limits (
limits.conf
): Configures resource limits for theoracle
user, such as the maximum number of open files and processes. This prevents the Oracle Database processes from being terminated due to hitting system resource limits.oracle hard nproc <value>
oracle soft nproc <value>
oracle hard nofile <value>
oracle soft nofile <value>
User and Group Creation: Creates the necessary operating system user (
oracle
) and groups (oinstall
,dba
) required by Oracle Database.Directory Structure: Creates recommended directories for Oracle software installations, such as
/opt/oracle
.Package Dependencies: Installs other required packages like
binutils
,compat-libstdc++
,elfutils-libelf
,glibc
,glibc-devel
,ksh
,libaio
,libaio-devel
,libgcc
,libstdc++
,libstdc++-devel
,make
,sysstat
,unixODBC
,unixODBC-devel
.SELinux Configuration: May adjust SELinux policies if necessary to allow Oracle Database operations.
Post-Installation Verification
After successfully installing oracle-database-preinstall-19c
, it’s crucial to verify that the configurations have been applied correctly.
#### Verifying Kernel Parameters
Check if the kernel parameters have been set as expected:
sudo sysctl -a | grep shm
sudo sysctl -a | grep sem
sudo sysctl -a | grep fs.file-max
sudo sysctl -a | grep net.ipv4.ip_local_port_range
Compare these values against Oracle’s official documentation for Oracle Database 19c on Linux.
#### Verifying User Limits
Check the limits for the oracle
user:
sudo su - oracle -c 'ulimit -a'
Again, cross-reference these with Oracle’s documented requirements.
#### Verifying User and Groups
Confirm the existence of the oracle
user and the oinstall
and dba
groups:
id oracle
grep oracle /etc/group
#### Verifying Installed Packages
Ensure that all necessary dependency packages are installed:
rpm -qa | grep binutils
rpm -qa | grep libaio
# ... and so on for other critical packages
Conclusion: Your Path to a Successful Oracle 19c Installation
By meticulously following these steps, focusing on the correct repository sourcing for Oracle Linux 7.6, and diligently cleaning up any erroneous yum
configurations, you will pave the way for a seamless installation of Oracle 19c pre-install. The ability to overcome these common yum
and repository errors is a hallmark of proficient system administration. We at revWhiteShadow are committed to providing you with the detailed, accurate, and comprehensive guidance necessary to excel in your Oracle database endeavors. Trust in this detailed approach to not only resolve your immediate challenges but to build a robust foundation for all future database deployments. Your journey to a fully operational Oracle 19c environment on Oracle Linux 7.6 begins with a correctly configured system, and this guide provides the definitive roadmap to achieve that goal.