pg_upgrade升级数据库9.1.1-9.4.5
生活随笔
收集整理的這篇文章主要介紹了
pg_upgrade升级数据库9.1.1-9.4.5
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實際操作:?
已有環境和pg?
192.168.12.231?? pg9.1.1?
端口 5432??
安裝目錄 /pgtina?
數據目錄 /pgtina/data?
1、在本機器上安裝9.4.5??
端口 1922?? --隨意指定,但不可與之前的一樣?
安裝目錄 /pgnew?
數據目錄 /pgnew/data?
?????
./configure --prefix=/pgnew? --with-pgport=1922 && gmake world && gmake install-world?
安裝時候記得帶world,內外模塊都要,不然找不到pg_upgrade?
2、修改屬主?
[root@datanode1 /]# chown -R postgres:postgres pgnew?
[root@datanode1 /]# chmod 700 /pgnew?
[postgres@datanode1 pgtina]$ chmod 700 data?
3、初始化新庫?
[postgres@datanode1 pgnew]$ mkdir data?
[postgres@datanode1 pgnew]$ /pgnew/bin/initdb -E UTF8 -D /pgnew/data --locale=C -U postgres -W?? ---初始化locale指定錯誤,按照下面的來?
4、修改pg_hba.cof?
因為升級需要多次連接新老集群數據庫實例, 所以修改為使用本地trust認證.?
postgres@localhost-> vi /pgdata01/pg_root/pg_hba.conf?
postgres@localhost-> vi /pgdata01/pg_root_9.4/pg_hba.conf?
local?? all???????????? all???????????????????????????????????? trust?
host??? all???????????? all???????????? 127.0.0.1/32??????????? trust?
5、修改postgresql.conf?
?? 注意使用不同的監聽端口. (PostgreSQL 9.4新增)?
6、停止舊庫?
pg_ctl -D /pgtina/data stop?
7、9.4的pg_upgrade檢測兼容性?
[postgres@datanode1 data]$ /pgnew/bin/pg_upgrade -c --link -b /pgtina/bin? -B /pgnew/bin -d /pgtina/data -D /pgnew/data -p 5432 -P 1922 -U postgres?
Performing Consistency Checks?
-----------------------------?
Checking cluster versions?????????????????????????????????? ok?
*failure*?
Consult the last few lines of "pg_upgrade_server.log" for?
the probable cause of the failure.?
connection to database failed: could not connect to server: No such file or directory?
Is the server running locally and accepting?
connections on Unix domain socket "/pgnew/data/.s.PGSQL.5432"??? ---之前/data目錄的權限不是700,修改后就好了?
could not connect to old postmaster started with the command:?
"/pgtina/bin/pg_ctl" -w -l "pg_upgrade_server.log" -D "/pgtina/data" -o "-p 5432 -b? -c listen_addresses='' -c unix_socket_permissions=0700 -c unix_socket_directory='/pgnew/data'" start?
Failure, exiting????
----檢測失敗?
重新初始化:?
[postgres@datanode1 data]$ /pgnew/bin/pg_upgrade -c --link -b /pgtina/bin? -B /pgnew/bin -d /pgtina/data -D /pgnew/data -U postgres?
Performing Consistency Checks?
-----------------------------?
Checking cluster versions?????????????????????????????????? ok?
Checking database user is a superuser?????????????????????? ok?
Checking database connection settings?????????????????????? ok?
Checking for prepared transactions????????????????????????? ok?
Checking for reg* system OID user data types??????????????? ok?
Checking for contrib/isn with bigint-passing mismatch?????? ok?
Checking for invalid "line" user columns??????????????????? ok?
lc_collate cluster values do not match:? old "en_US.UTF-8", new "C"?
Failure, exiting?
初始化的時候出了問題:?
刪除data目錄,重新做一次初始化?
/pgnew/bin/initdb -E UTF8 -D /pgnew/data --locale=en_US.UTF-8 -U postgres -W?
[postgres@datanode1 data]$ /pgnew/bin/pg_upgrade -c --link -b /pgtina/bin? -B /pgnew/bin -d /pgtina/data -D /pgnew/data -U postgres?
Performing Consistency Checks?
-----------------------------?
Checking cluster versions?????????????????????????????????? ok?
Checking database user is a superuser?????????????????????? ok?
Checking database connection settings?????????????????????? ok?
Checking for prepared transactions????????????????????????? ok?
Checking for reg* system OID user data types??????????????? ok?
Checking for contrib/isn with bigint-passing mismatch?????? ok?
Checking for invalid "line" user columns??????????????????? ok?
Checking for presence of required libraries???????????????? ok?
Checking database user is a superuser?????????????????????? ok?
Checking for prepared transactions????????????????????????? ok?
*Clusters are compatible*?
8、升級?
/pgnew/bin/pg_upgrade? --link -b /pgtina/bin? -B /pgnew/bin -d /pgtina/data -D /pgnew/data -U postgres -j 8 -k -r -v 去掉了-c?
升級成功后,日志文件被自動刪除,可以在命令行中用-r參數指定保留。?
9、升級完成:?
Upgrade Complete?
----------------?
Optimizer statistics are not transferred by pg_upgrade so,?
once you start the new server, consider running:?
??? analyze_new_cluster.sh??? ---腳本內容沒指定詳細參數?
Running this script will delete the old cluster's data files:?
??? delete_old_cluster.sh?
????
10、啟動新庫?
/pgnew/bin/pg_ctl -D /pgnew/data start?
11、登錄查看?
[postgres@datanode1 data]$ psql -h 127.0.0.1 -U postgres -p 1922?? ---不能直接使用psql,要指定位置才行。?
psql (9.1.1, server 9.4.5)?
WARNING: psql version 9.1, server version 9.4.?
???????? Some psql features might not work.?
Type "help" for help.?
postgres=#?
[postgres@datanode1 data]$ /pgnew/bin/psql -p 1922 -U postgres?
psql (9.4.5)?
Type "help" for help.?
postgres=#?
12、分析全庫?
[postgres@datanode1 data]$ "/pgnew/bin/vacuumdb" -U "postgres" --all --analyze-only -p 1922?
vacuumdb: vacuuming database "postgres"?
vacuumdb: vacuuming database "template1"?
vacuumdb: vacuuming database "tina"?
13、連接查看--正常?
[postgres@datanode1 data]$ /pgnew/bin/pg_ctl reload -D /pgnew/data?
server signaled?
已有環境和pg?
192.168.12.231?? pg9.1.1?
端口 5432??
安裝目錄 /pgtina?
數據目錄 /pgtina/data?
1、在本機器上安裝9.4.5??
端口 1922?? --隨意指定,但不可與之前的一樣?
安裝目錄 /pgnew?
數據目錄 /pgnew/data?
?????
./configure --prefix=/pgnew? --with-pgport=1922 && gmake world && gmake install-world?
安裝時候記得帶world,內外模塊都要,不然找不到pg_upgrade?
2、修改屬主?
[root@datanode1 /]# chown -R postgres:postgres pgnew?
[root@datanode1 /]# chmod 700 /pgnew?
[postgres@datanode1 pgtina]$ chmod 700 data?
3、初始化新庫?
[postgres@datanode1 pgnew]$ mkdir data?
[postgres@datanode1 pgnew]$ /pgnew/bin/initdb -E UTF8 -D /pgnew/data --locale=C -U postgres -W?? ---初始化locale指定錯誤,按照下面的來?
4、修改pg_hba.cof?
因為升級需要多次連接新老集群數據庫實例, 所以修改為使用本地trust認證.?
postgres@localhost-> vi /pgdata01/pg_root/pg_hba.conf?
postgres@localhost-> vi /pgdata01/pg_root_9.4/pg_hba.conf?
local?? all???????????? all???????????????????????????????????? trust?
host??? all???????????? all???????????? 127.0.0.1/32??????????? trust?
5、修改postgresql.conf?
?? 注意使用不同的監聽端口. (PostgreSQL 9.4新增)?
6、停止舊庫?
pg_ctl -D /pgtina/data stop?
7、9.4的pg_upgrade檢測兼容性?
[postgres@datanode1 data]$ /pgnew/bin/pg_upgrade -c --link -b /pgtina/bin? -B /pgnew/bin -d /pgtina/data -D /pgnew/data -p 5432 -P 1922 -U postgres?
Performing Consistency Checks?
-----------------------------?
Checking cluster versions?????????????????????????????????? ok?
*failure*?
Consult the last few lines of "pg_upgrade_server.log" for?
the probable cause of the failure.?
connection to database failed: could not connect to server: No such file or directory?
Is the server running locally and accepting?
connections on Unix domain socket "/pgnew/data/.s.PGSQL.5432"??? ---之前/data目錄的權限不是700,修改后就好了?
could not connect to old postmaster started with the command:?
"/pgtina/bin/pg_ctl" -w -l "pg_upgrade_server.log" -D "/pgtina/data" -o "-p 5432 -b? -c listen_addresses='' -c unix_socket_permissions=0700 -c unix_socket_directory='/pgnew/data'" start?
Failure, exiting????
----檢測失敗?
重新初始化:?
[postgres@datanode1 data]$ /pgnew/bin/pg_upgrade -c --link -b /pgtina/bin? -B /pgnew/bin -d /pgtina/data -D /pgnew/data -U postgres?
Performing Consistency Checks?
-----------------------------?
Checking cluster versions?????????????????????????????????? ok?
Checking database user is a superuser?????????????????????? ok?
Checking database connection settings?????????????????????? ok?
Checking for prepared transactions????????????????????????? ok?
Checking for reg* system OID user data types??????????????? ok?
Checking for contrib/isn with bigint-passing mismatch?????? ok?
Checking for invalid "line" user columns??????????????????? ok?
lc_collate cluster values do not match:? old "en_US.UTF-8", new "C"?
Failure, exiting?
初始化的時候出了問題:?
刪除data目錄,重新做一次初始化?
/pgnew/bin/initdb -E UTF8 -D /pgnew/data --locale=en_US.UTF-8 -U postgres -W?
[postgres@datanode1 data]$ /pgnew/bin/pg_upgrade -c --link -b /pgtina/bin? -B /pgnew/bin -d /pgtina/data -D /pgnew/data -U postgres?
Performing Consistency Checks?
-----------------------------?
Checking cluster versions?????????????????????????????????? ok?
Checking database user is a superuser?????????????????????? ok?
Checking database connection settings?????????????????????? ok?
Checking for prepared transactions????????????????????????? ok?
Checking for reg* system OID user data types??????????????? ok?
Checking for contrib/isn with bigint-passing mismatch?????? ok?
Checking for invalid "line" user columns??????????????????? ok?
Checking for presence of required libraries???????????????? ok?
Checking database user is a superuser?????????????????????? ok?
Checking for prepared transactions????????????????????????? ok?
*Clusters are compatible*?
8、升級?
/pgnew/bin/pg_upgrade? --link -b /pgtina/bin? -B /pgnew/bin -d /pgtina/data -D /pgnew/data -U postgres -j 8 -k -r -v 去掉了-c?
升級成功后,日志文件被自動刪除,可以在命令行中用-r參數指定保留。?
9、升級完成:?
Upgrade Complete?
----------------?
Optimizer statistics are not transferred by pg_upgrade so,?
once you start the new server, consider running:?
??? analyze_new_cluster.sh??? ---腳本內容沒指定詳細參數?
Running this script will delete the old cluster's data files:?
??? delete_old_cluster.sh?
????
10、啟動新庫?
/pgnew/bin/pg_ctl -D /pgnew/data start?
11、登錄查看?
[postgres@datanode1 data]$ psql -h 127.0.0.1 -U postgres -p 1922?? ---不能直接使用psql,要指定位置才行。?
psql (9.1.1, server 9.4.5)?
WARNING: psql version 9.1, server version 9.4.?
???????? Some psql features might not work.?
Type "help" for help.?
postgres=#?
[postgres@datanode1 data]$ /pgnew/bin/psql -p 1922 -U postgres?
psql (9.4.5)?
Type "help" for help.?
postgres=#?
12、分析全庫?
[postgres@datanode1 data]$ "/pgnew/bin/vacuumdb" -U "postgres" --all --analyze-only -p 1922?
vacuumdb: vacuuming database "postgres"?
vacuumdb: vacuuming database "template1"?
vacuumdb: vacuuming database "tina"?
13、連接查看--正常?
[postgres@datanode1 data]$ /pgnew/bin/pg_ctl reload -D /pgnew/data?
server signaled?
總結
以上是生活随笔為你收集整理的pg_upgrade升级数据库9.1.1-9.4.5的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++语言之类class
- 下一篇: linux cmake编译源码,linu