<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Latest posts for the topic "升級PostgreSQL 9.3到PostgreSQL 9.4 "]]></title>
		<link>https://forum.andowson.com/posts/list/12.page</link>
		<description><![CDATA[Latest messages posted in the topic "升級PostgreSQL 9.3到PostgreSQL 9.4 "]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>升級PostgreSQL 9.3到PostgreSQL 9.4 </title>
				<description><![CDATA[ 本文是以CentOS 6.6 x86_64上面原安裝PostgreSQL 9.3作為說明，預設執行身分為root，如需切換為postgres，會以su - postgres開始 
<br>
<br>
 1.安裝新版的PostgreSQL 
<br>
 1.1 安裝新版的PostgreSQL repository 
<br>
 先開啟網頁到[url]http://yum.postgresql.org/[/url]，在Available PostgreSQL Releases點選我們要升級的版本的連結，這裡應該是9.4，然後找到目前使用的作業系統版本，例如CentOS 6 - x86_64，在這個連結上按滑鼠右鍵複製連結，取得URL，回到PuTTY視窗 
<br>
[code]cd /root/setup/database 
<br>
yum install -y http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm[/code] 
<br>
<br>
 1.2 安裝PostgreSQL新版的套件 
<br>
 先找出之前安裝了那些套件: rpm -qa | grep postgresql93 
<br>
[code][root@www database]# rpm -qa | grep postgresql93 
<br>
postgresql93-9.3.6-1PGDG.rhel6.x86_64 
<br>
postgresql93-libs-9.3.6-1PGDG.rhel6.x86_64 
<br>
postgresql93-server-9.3.6-1PGDG.rhel6.x86_64 
<br>
postgresql93-contrib-9.3.6-1PGDG.rhel6.x86_64[/code] 
<br>
<br>
 安裝新版的套件(必須安裝postgresql94-contrib套件才會有pg_upgrade) 
<br>
[code]yum install postgresql94-server postgresql94-libs postgresql94 postgresql94-contrib[/code] 
<br>
<br>
<br>
 2.升級前置動作 
<br>
 2.1初始化新版PostgreSQL資料庫 
<br>
[code]/etc/init.d/postgresql-9.4 initdb[/code] 
<br>
<br>
<br>
 2.2檢查是否成功建立資料庫所需目錄 
<br>
[code]ls /var/lib/pgsql/9.4/ 
<br>
cat /var/lib/pgsql/9.4/pgstartup.log[/code] 
<br>
<br>
<br>
 3.停止網頁服務 
<br>
[code]service tomcat stop[/code] 
<br>
<br>
 注意/etc/crontab中有無設定定期檢查Tomcat是否有在跑的tomcat_monitor，有的話先註解掉該排程作業，以免系統又自己將Tomcat服務帶起來 
<br>
<br>
 4.開始升級資料庫 
<br>
 4.1.備份舊的資料 
<br>
[code]su - postgres 
<br>
mkdir /tmp/pgsql 
<br>
pg_dumpall &gt; /tmp/pgsql/db.out 
<br>
exit [/code] 
<br>
 4.2 關閉資料庫 
<br>
[code]service postgresql-9.3 stop[/code] 
<br>
<br>
 4.3 備份檔案系統 
<br>
 切換身分為postgres(再多備份一次檔案系統) 
<br>
[code]su - postgres 
<br>
cp -pr /var/lib/pgsql/9.3 /tmp/pgsql/[/code] 
<br>
<br>
 4.4 執行升版前的檢查pg_upgrade --check 
<br>
 執行pg_upgrade(注意要使用新版的PostgreSQL目錄下的pg_upgrade) 
<br>
[code]/usr/pgsql-9.4/bin/pg_upgrade -b /usr/pgsql-9.3/bin -B /usr/pgsql-9.4/bin -d /var/lib/pgsql/9.3/data -D /var/lib/pgsql/9.4/data --check[/code] 
<br>
<br>
 4.5 進行真正的升級動作，執行pg_upgrade 
<br>
[code]/usr/pgsql-9.4/bin/pg_upgrade -v -b /usr/pgsql-9.3/bin/ -B /usr/pgsql-9.4/bin/ -d /var/lib/pgsql/9.3/data -D /var/lib/pgsql/9.4/data[/code] 
<br>
<br>
 最後看到下面這些畫面就完成了 
<br>
[code]reating script to analyze new cluster ok 
<br>
Creating script to delete old cluster ok 
<br>
<br>
Upgrade Complete 
<br>
---------------- 
<br>
Optimizer statistics are not transferred by pg_upgrade so, 
<br>
once you start the new server, consider running: 
<br>
 analyze_new_cluster.sh 
<br>
<br>
Running this script will delete the old cluster's data files: 
<br>
 delete_old_cluster.sh 
<br>
-bash-4.1$ 
<br>
[/code] 
<br>
<br>
 4.6 調整設定檔: pg_hba.conf, postgresql.conf 
<br>
可能新版會有新增一些參數，我們用diff比較一下差異，再把舊版修改的地方依據需要反映到新的版本去 
<br>
[code]diff /var/lib/pgsql/9.3/data/pg_hba.conf /var/lib/pgsql/9.4/data/pg_hba.conf 
<br>
vi /var/lib/pgsql/9.4/data/pg_hba.conf[/code] 
<br>
<br>
 postgresql.conf可能新版會有新增一些參數，我們用diff比較一下差異，再把舊版修改的地方依據需要反映到新的版本去 
<br>
[code]diff /var/lib/pgsql/9.3/data/postgresql.conf /var/lib/pgsql/9.4/data/postgresql.conf[/code] 
<br>
<br>
 例如，我修改了: 
<br>
 [code]effective_cache_size = 256MB [/code] 
<br>
<br>
 退出postgres 
<br>
[code]exit[/code] 
<br>
<br>
 5.啟動新版的PostgreSQL服務 
<br>
[code]service postgresql-9.4 start[/code] 
<br>
[root@www database]# service postgresql-9.4 start 
<br>
正在啟動 postgresql-9.4 服務： [ 確定 ] 
<br>
<br>
 6.升級後的優化作業 
<br>
[code]su - postgres 
<br>
./analyze_new_cluster.sh 
<br>
<br>
[root@www database]# su - postgres 
<br>
-bash-4.1$ ./analyze_new_cluster.sh 
<br>
This script will generate minimal optimizer statistics rapidly 
<br>
so your system is usable, and then gather statistics twice more 
<br>
with increasing accuracy. When it is done, your system will 
<br>
have the default level of optimizer statistics. 
<br>
<br>
If you have used ALTER TABLE to modify the statistics target for 
<br>
any tables, you might want to remove them and restore them after 
<br>
running this script because they will delay fast statistics generation. 
<br>
<br>
If you would like default statistics as quickly as possible, cancel 
<br>
this script and run: 
<br>
 "/usr/pgsql-9.4/bin/vacuumdb" --all --analyze-only 
<br>
<br>
vacuumdb: vacuuming database "jforum" 
<br>
Generating minimal optimizer statistics (1 target) 
<br>
vacuumdb: vacuuming database "postgres" 
<br>
Generating minimal optimizer statistics (1 target) 
<br>
vacuumdb: vacuuming database "template1" 
<br>
Generating minimal optimizer statistics (1 target) 
<br>
vacuumdb: vacuuming database "jforum" 
<br>
Generating medium optimizer statistics (10 targets) 
<br>
vacuumdb: vacuuming database "postgres" 
<br>
Generating medium optimizer statistics (10 targets) 
<br>
vacuumdb: vacuuming database "template1" 
<br>
Generating default (full) optimizer statistics 
<br>
vacuumdb: vacuuming database "jforum" 
<br>
Generating default (full) optimizer statistics 
<br>
vacuumdb: vacuuming database "postgres" 
<br>
Generating default (full) optimizer statistics 
<br>
vacuumdb: vacuuming database "template1" 
<br>
<br>
Done 
<br>
-bash-4.1$ 
<br>
[/code] 
<br>
<br>
 7.啟動網頁服務 
<br>
[code]service tomcat start[/code] 
<br>
<br>
 7.1 測試網頁服務是否正常 
<br>
<br>
 8. 升級後的清理作業 
<br>
 8.1 刪除舊的資料庫存放區 
<br>
[code]su - postgres 
<br>
./delete_old_cluster.sh[/code] 
<br>
<br>
<br>
 8.2 移除舊版的PostgreSQL套件 
<br>
[code]yum remove postgresql93* pgdg-centos93[/code] 
<br>
<br>
<br>
 8.3 刪除/tmp/pgsql目錄下的備份檔 
<br>
[code]rm -rf /tmp/pgsql[/code] 
<br>
<br>
<br>
 [選擇性作業]8.4 重新啟用排程/etc/crontab中的tomcat_monitor 
<br>
<br>
 至此就完成了PostgreSQL 9.4的升版作業]]></description>
				<guid isPermaLink="true">https://forum.andowson.com/posts/preList/636/1329.page</guid>
				<link>https://forum.andowson.com/posts/preList/636/1329.page</link>
				<pubDate><![CDATA[Thu, 16 Jul 2015 00:16:05]]> GMT</pubDate>
				<author><![CDATA[ andowson]]></author>
			</item>
	</channel>
</rss>