Update Postgresql to newer version breaks legacy code - linux

As Postgresql versions less than 9.5 are becoming unsupported I need to update this package in my Centos environment.
Current version: postgres -V (PostgreSQL) 9.2.24
Also in my ecosystem, there is another rpm that uses postgresql. For this rpm there are build, restart scripts and also various scripts that monitor dependency services, check status etc.
These scripts all reference postgresql using kwywork postgresql
https://www.postgresql.org/download/linux/redhat/ provided the exact steps how to do update/install. However for 9.6 version for example one need to use postgresql-9.6 keywords to refer to postgresql
This means one will need to go through all references of postgresql in scripts and code and analyze if it needs to be changed. Updating to another version afterwards would of course mean repeating this process.
Is there any 'out of the box' approach that allows us to leave the scripts untouched for this update?
I'm also copy/pasting the install postgresql 9.6 steps here.
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql96-devel postgresql96-server
/usr/pgsql-9.6/bin/postgresql96-setup initdb
systemctl enable postgresql-9.6
systemctl start postgresql-9.6
This is to check all is good
service postgresql-9.6 status

I don't know any "out of the box approach".
You should alyways read detailed release notes to check if there is some incompatibility when upgrading.

Related

Apache version upgrade issue

At present we are on Apache/2.2.15 (UNIX) version. To fix the vulnerabilities we are suggested to upgrade to new version. I got new version from online using "wget" command and followed steps mentioned on this link http://httpd.apache.org/docs/2.2/install.html#download.
Once I am done, checked version using httpd -v. It gives me old version Apache/2.2.15 (UNIX). If I check using /usr/local/apache2/bin/httpd - v. It gives me new version. Did I successfully upgraded the version or not? If not what should I do?
I tried "yum install httpd" - It says "Nothing to do".
You now have two versions of Apache installed. You have the one installed with the system package manager (yum) in /usr/sbin/httpd. You have one installed manually in /usr/local/apache2/....
Which one you get will be determined entirely by which path you use.
In general, mixing system-managed packages with manually installed packages is a recipe for trouble. If you want to stick with the newer version in /usr/local, you should remove the system version, and realize that you will lose some manageability. For example, you will no longer be able to use yum install ... to install new Apache modules, and you will not be able to verify the installed files using tools like rpmverify.
If your distribution currently has Apache 2.2.x, that suggests your distribution is fairly old. For example, RHEL (and CentOS) 7 (and similar variants) have version 2.4.6 packaged, so you may want to update your host to something newer than whatever you're running now.
Yes, its successfully upgraded as per the screenshot.
httpd 2.2.15 is the version with RHEL 6 repository, here HTTPD_HOME is /etc/httpd (Highest version provided for HTTPD via RPM RHEL 6 is 2.2.15)
httpd 2.4.6 is the version with EPEL-HTTPD24 repository, here HTTPD_HOME is /usr/local/apache2/

Postgres Update - version mismatch error when running commands

I recently updated Postgres from version 9.3 to 9.6. After the update all of my commands (such as pg_dumpall) all point to version 9.3. I get the error of version mismatch.
I found that if I change my symlink in /usr/bin to point to 9.6 it seems to work. Is there a better way to point my commands to version 9.6? Thanks you for your help!
The best way to do it is using the package manager of your linux distro: it ensures all symlinks are changed to the newer version.
From your question it is possible to infer that the upgrade was done without using the package manager. I suggest to try to install Postgres with the package manager or give a little more information about your system so we can give you a more accurate answer.

Datastax Enterprise Installation on Virtual Box CentOS

Can anyone please guide me step by step installation one by one for Datastax Enterprise Installation on Virtual Box CentOS .
I checked Datastax Documentation , but getting little bit confused in few steps and due to which I am not satisfied. Also checked other resources but not able to understand completely.
So Help me to know installation process one by one with all basis steps.
Thanks in advance .
You may have an easier time using OpsCenter's Lifecycle Manager to deploy DSE. (Disclaimer, I am a Lifecycle Manager dev so am biased.)
First you need to install OpsCenter in a separate VM or Centos box. If you're able to get through the Java install and yum repository setup parts of DSE setup, this won't be difficult: https://docs.datastax.com/en/opscenter/6.0/opsc/install/opscInstallRHEL_t.html
Then run an install job from LCM: https://docs.datastax.com/en/opscenter/6.0/opsc/LCM/opscLCMinstallJob.html Example the pre-requisite section of that page carefully. It will show you the things you need to do in LCM to get ready to run the job, it's all point-and-click, though.
The only pre-requisites on your target DSE machine are "python" (usually installed by default) and for the minute "which", though we'll be removing that dependency in an upcoming version.
Note at the end of this process, you'll need to provide cqlsh an IP address, username, and password to connect to the cluster... even when making a "local" connection from your DSE vm. For example: "cqlsh 192.168.1.100 -u cassandra -p the-password-you-chose-during-lcm-install"

Installing Postgresql 8.1.17 server on RHEL

I have a my production database on PostgreSQL 8.1.17 server.
I want to migrate it from one Linux server to another.
On another Linux server I am not able to install the PostgreSQL 8.1.17 server using rpm.
I got the rpm file from http://yum.postgresql.org/8.1/redhat/rhel-5-x86_64/ link.
But while updating rpm repository using rpm -i postgresql-8.1.17-1PGDG.rhel4.x86_64.rpm
I am getting below error.
error: Failed dependencies:
libcrypto.so.4()(64bit) is needed by postgresql-8.1.17-1PGDG.rhel4.x86_64
libpq.so.4()(64bit) is needed by postgresql-8.1.17-1PGDG.rhel4.x86_64
libreadline.so.4()(64bit) is needed by postgresql-8.1.17-1PGDG.rhel4.x86_64
libssl.so.4()(64bit) is needed by postgresql-8.1.17-1PGDG.rhel4.x86_64
libtermcap.so.2()(64bit) is needed by postgresql-8.1.17-1PGDG.rhel4.x86_64
How will I resolve this dependency.
The End Of Life (EOL) dates for 8.1 version is November 2010. Does it mean we won't be able to install 8.1 version after November 2010. Referring below link.
http://www.postgresql.org/support/versioning/
I don't want to upgrade the PostgreSQL version for now.
Make a full systen backup, then launch the following command:
rpm -i --nodeps postgresql-8.1.17-1PGDG.rhel4.x86_64.rpm

Postgresql 8.3 version needed for OpenSUSE

I have installed OpenSUSE 12.1 installed on machine.
and i have postgresql-contrib-8.3.11-0.1.i586.rpm,postgresql-devel-8.3.11-0.1.i586.rpm, postgresql-docs-8.3.11-0.1.i586.rpm,postgresql-libs-8.3.11-0.1.i586.rpm,postgresql-server-8.3.11-0.1.i586.rpm..
I want to installed postgresql 8.3 version based on above packages..but when i installed with this command .it shows an error.
opnsu121:/ # rpm -Uvh postgresql-server-8.3.11-0.1.i586.rpm
error: Failed dependencies:
postgresql = 8.3 is needed by postgresql-server-8.3.11-0.1.i586
Even i am not able to find postgresql 8.3 base version as i think the above one is update.i have gone throgh the download.openSUSE.orf,ftp.openSUSE.org..
http://download.opensuse.org/update/11.0/rpm/i586/..
but not able to find what i need..so please help on this,
If at all possible, use YaST or whatever package manager SuSE uses to install the current version of PostgreSQL. From the repository it looks like that's 9.1.1.
If you specifically need PostgreSQL 8.3, I'd recommend using the distro-independent installer from EnterpriseDB. That should work fine on SuSE 12.2. If your organisation has particularly restrictive and unsafe version policies that force you to use old versions with known bugs, you can get 8.3.14 for 32-bit Linux here and 8.3.11 for 32-bit Linux here.
If you have issues with using the well-tested and known-to-work EnterpriseDB binary installer versions of PostgreSQL, your other option (and a good one) is to install from source code. Download the PostgreSQL 8.3.18 sources from the FTP site, then:
sudo mkdir -p /opt/postgresql93
sudo chown `id -un` /opt/postgresql93
./configure --prefix=/opt/postgresql93
make
make install
after which you can use /opt/postgresql93/bin/initdb (see initdb manual) to create a database and /opt/postgresql93/bin/pg_ctl (see pg_ctl manual) to start/stop it, as per the PostgreSQL documentation.
Don't try to force packages from an old version of SuSE to install on your new version. It'll probably result in an increasing tree of dependencies and end in pain.
If at all possible, try to convince your company that their policy of requiring a specific minor version (eg 8.4.14 not just "8.4.x") of PostgreSQL is unsafe and counterproductive. They're forcing you to do dirty hacks or hand-compile unique, custom installs just for your setup in order to avoid using well tested builds that contain extra bug fixes. Requiring approval before upgrading from 8.3 to 8.4/9.0/9.1/etc makes sense as there are feature and backward compatibility changes that require careful testing, but requiring approval before upgrading from 8.3.14 to 8.3.18 is counterproductive. Minor version upgrades of PostgreSQL are very conservative; you should stay up to date with the latest minor release.
hurray...I got the answer..
I have got the package below:
postgresql-contrib-8.3.11-0.1.i586.rpm, postgresql-devel-8.3.11-0.1.i586.rpm,postgresql-docs-8.3.11-0.1.i586.rpm,postgresql-libs-8.3.11-0.1.i586.rpm,postgresql-server-8.3.11-0.1.i586.rpm from the below link:
http://download.opensuse.org/update/12.1/i586/
and the one more package which i have struggled to get is:
postgresql-8.3.11-0.1.i586.rpm with the following link:
http://rpm.pbone.net/index.php3/stat/4/idpl/17194424/dir/opensuse_11.x/com/postgresql-8.3.11-0.1.i586.rpm.html
with all above packages i have installed using..
rpm -ivh packagename
if there is a dependency then rpm -ivh --nodeps packagename
great..its done..

Resources