データ移行

Plesk搭載のCentOS6でPostgreSQLのバージョンをアップグレード

ノウハウ
テクニカルサポート

2016年4月より、Plesk12搭載のVPSプランをリリースしていますが、CentOS 6のみでのご提供となっています。 『OSベンダーが提供しているミドルウェアバージョンを初期状態としているので、構築されるシステムによっては ミドルウェアのアップグレードが必要』と前回のブログ(Plesk搭載のCentOS6でMysql5.1から5.6へのアップグレード)でも掲載させていただきました。 今回は、新プランリリース後、複数回質問をいただいている「PostgreSQL」のバージョンアップの例について、ご紹介いたします。 前提条件として Plesk12の「Web Adminエディション」(PostgreSQLをPleskから操作できないエディション)搭載でのご案内となります。 「Web Pro/ Web Hostエディション」においてPostgreSQLのアップグレードをしますと、アップグレード以降は、PleskからのPostgreSQLの各操作ができなく なりますのでご注意ください。 運用されるシステムによってはPostgreSQLのバージョンアップが必須であることもあります。 以下はPostgreSQL9.5にアップグレードする例となります。 ※稼働中のサーバについて、Pleskに初回ログインし、最初のウェブスペースを作成した後に行う形での検証内容となります。 0.準備 念のためサーバサイドバックアップを取っておきます >コントロールパネルサーバーサイドバックアップ【仮想専用/専用サーバー】 1.「postgresql-server 8.X」のインストール版はPlesk管理画面から削除しておく 1-1.Plesk>ツールと設定>Plesk欄「アップデートおよびアップグレード」 を開く 1-2.「コンポーネントを追加/削除」をクリック 1-3. PostgeSQL を確認、「チェック印(インストール)」から 「×(削除)」に切り替え「続行する」を選択しアンインストール 2. OSリリース確認 ここからはSSHコマンドラインでrootに昇格してからの操作でのご案内です。 # cat /etc/redhat-release CentOS release 6.7 (Final) 3. パッケージダウンロード # wget http://yum.postgresql.org/9.5/redhat/rhel-6.7-x86_64/pgdg-centos95-9.5-2.noarch.rpm 4. インストール作業 # rpm -ivh pgdg-centos95-9.5-2.noarch.rpm # yum -y install postgresql95-server postgresql95-devel postgresql95-contrib : 中略 Dependency Installed: postgresql95.x86_64 0:9.5.3-2PGDG.rhel6 postgresql95-libs.x86_64 0:9.5.3-2PGDG.rhel6 Complete! 5. DB初期化と起動 # ls /etc/init.d/post* /etc/init.d/postfix /etc/init.d/postgresql /etc/init.d/postgresql-9.5 # service postgresql-9.5 initdb Initializing database: [ OK ] # /etc/init.d/postgresql-9.5 start Starting postgresql-9.5 service: [ OK ] 6. postgres ユーザのパス設定 # su - postgres $ cp -pi .bash_profile.rpmsave .bash_profile $ vi .bash_profile (一番下に2行加える) [ -f /etc/profile ] && source /etc/profile PGDATA=/var/lib/pgsql/9.5/data export PGDATA # If you want to customize your settings, # Use the file below. This is not overridden # by the RPMS. #[ -f /var/lib/pgsql/.pgsql_profile ] && source /var/lib/pgsql/.pgsql_profile PATH=$PATH:/usr/pgsql-9.5/bin export PATH $ exit logout 7. postgres ユーザで再ログイン (PATHが通っているか確認して、psqlコマンドで「9.5系」が起動している確認をする) # su - postgres -bash-4.1$ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/pgsql-9.5/bin $ psql psql (9.5.3) Type "help" for help. 8. 設定ファイルの確認 # ls /var/lib/pgsql/9.5/data/ base pg_hba.conf pg_notify pg_stat_tmp pg_xlog global pg_ident.conf pg_replslot pg_subtrans postgresql.auto.conf pg_clog pg_log pg_serial pg_tblspc postgresql.conf pg_commit_ts pg_logical pg_snapshots pg_twophase postmaster.opts pg_dynshmem pg_multixact pg_stat PG_VERSION postmaster.pid (既存のPostgreSQLとはパスが変わります。設定内容については適宜調整ください) # chkconfig --level 35 postgresql-9.5 on 等 で 起動を調整します。 9. サーバを再起動してもサービスが起動するかどうかの確認、および調整 上記は初期インストールとpsqlコマンドの起動のみの履歴となりますが 動作確認については お客様にて行っていたたき、元の状態にもどす場合は、バックアップからをリストアください。

Plesk搭載のCentOS6でMysql5.1から5.6へのアップグレード

ノウハウ
テクニカルサポート

2016年4月にリリースしたEX-CLOUDのVPSプランではOSを『CentOS(5,6,7)』または『Ubuntu(12,14,16)』から選択いただけますが、Plesk搭載プランに関してはCentOS6のみとなっております。 インストールされているミドルウェアに関しましても、基本的にはOSベンダーが提供しているものを初期状態としておりますので、構築されるシステムによってはミドルウェアのアップグレードが必要な場合がございます。 ここではお問い合わせや要望として多い、Mysqlのアップグレードについてご案内いたします。 なお、手順はPleskメーカーのナレッジに準じたご案内となります。 ( 参考としたメーカーのナレッジ:How to upgrade MySQL 5.5 to 5.6 https://kb.plesk.com/en/127962 ) まず、初期搭載されているバージョンですが、CentOS6ではMysql5.1系がパッケージとして配布されております。 ・参考:CentOS6パッケージ http://mirror.centos.org/centos/6/os/x86_64/Packages/ EX-CLOUDのオンラインガイド:VPSの主なミドルウェアのバージョンを教えてください https://ex-cloud.jp/support/question/q-751 でも、Plesk搭載版のMysqlのバージョンは5.1.73として紹介しておりますが、今回はMysql5.6にアップグレードしてみます。 手順1.MySQLの停止 アップグレード中にデータベースに書込みが行われないよう、作業前にサービスを停止させます。 # service mysqld status ← 起動中か確認 mysqld (pid ****) is running... ← mysqld is stopped だった場合は既に停止済です #service mysqld stop ← 停止コマンド Stopping mysqld: [ OK ] #service mysqld status ← 停止したか確認 mysqld is stopped 手順2.データベースのバックアップ 必須ではありませんが、作業によるデータ破損時に備えバックアップを取ります # mkdir /var/lib/mysqlcopy ← バックアップファイルを保存するディレクトリの作成 # cp -aR /var/lib/mysql/* /var/lib/mysqlcopy ← 作成したディレクトリにコピー # du -sh /var/lib/mysql/ /var/lib/mysqlcopy ← コピーの容量が一致しているか確認 52M /var/lib/mysql/ 52M /var/lib/mysqlcopy 手順3:MySQL公式のyumリポジトリの追加 # yum install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm Is this ok [y/N]: ← これが表示されたら y を入力し、Enter 手順4(重要):Mysql5.7のインストールを無効化し、5.6を有効化する そのままの設定だとMysql5.7がインストールされますが、Plesk12.5のリリースノート( https://docs.plesk.com/release-notes/12.5/software-requirements/ )ではMySQL 5.0.x-5.6までがサポートとなっているため、5.6をインストールする設定に変更します # vi /etc/yum.repos.d/mysql-community.repo [mysql56-community] enabled=1 ← 27行目 0から1に書換え [mysql57-community] enabled=0 ← 34行目 1から0に書換え 手順5:mysqlのインストール 事前に行った設定に沿って、mysql5.6のインストールが行われます。 # yum install mysql Is this ok [y/N]: ← これが表示されたら y を入力し、Enter 手順6:アップグレードされたかの確認 # mysql -V mysql Ver 14.14 Distrib 5.6.32, for Linux (x86_64) using EditLine wrapper 手順7:5.6.xxにアップグレードされていたらmysqlの起動 # service mysqld start Starting mysqld: [ OK ] もし「MySQL Daemon failed to start.」というようなメッセージが出た場合の、セーフモードでMysqlを起動後、mysql_upgradを実行するとうまくゆく場合があります。対応の例は、後述の「mysqlが起動しない場合」を参照ください。 手順8:Plesk関連のデータベーステーブルのチェックとアップグレード # MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin psa ・ ・ ・ OK 以上で、アップグレードが完了となります。 動作確認を行い、不具合が無ければ手順2:で行ったバックアップファイルは削除します。 (ディスク容量に余裕があれば残しておいても問題はございません) ご契約者様自身では作業が難しい・不安がある等の場合、有償となりますがサポートセンターでも作業代行をさせていただきますので、詳しくはお問い合わせください。 ※【追記】トラブルシュート例:mysqlが起動しない場合 手順7のmysql起動の際、「MySQL Daemon failed to start.」のようなエラーメッセージなどが表示されたり、 mysqlのログ( /var/log/mysqld.log )に 「[ERROR] Fatal error: mysql.** table is damaged.」 が記録され、起動出来なかった場合の対応例を紹介します。 1.mysqlをセーフモードでの起動 2.mysql_upgradeを実行 3.mysqlの再起動 という手順です。 # /usr/bin/mysqld_safe --skip-grant-tables & MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin psa ・ ・ ・ OK # service mysqld restart

ページトップへ