PostgreSQL的备份与恢复

it2023-02-02  48

 

Postgresql数据库迁移分两类:

同用户名、同schema迁移;可以使用pg数据库备份、还原功能。不同用户名、不同schema迁移;

对于第二用迁移相对比较复杂,pg数据库访问时schema时,按照“$user”,public的顺序进行。

可通过sql shell输入命令查看:

#SHOW search_path;

也可通过postgresql.config文件进行查看。文件地址:

“安装目录“/data/postgresql.conf

 

查看数据库schema访问顺序

因此在数据恢复之后要进行schema的访问顺序设置,通过命令行:

#ALTER USER test(用户名) SET search_path to test(schema名称),public

具体过程:

同用户名同schema数据库恢复:

1.备份数据库

数据库右击选择备份,选择文件地址、输入文件名称,点击备份。

 

备份数据库

 

设置数据库文件地址、文件名

结果进程返回0,说明备份成功,点击完成即可。

 

备份成功图

2.恢复数据库

新建数据库,名字根据自己的需求命名,所有者要和备份数据库一致。

右击数据库,选择恢复。

选择备份成功的数据库文件。

点击恢复。

 

设置数据库名称

 

恢复数据库

 

恢复文件选择

恢复进程为0,说明恢复成功。

 

恢复成功图

数据库表相同

不同用户不同schema恢复:

本人是通过navicat进行操纵,感觉比较好用,pg数据库也可以,但比价麻烦。

将数据库用户名为test,schema为test的数据库,转到数据库用户名为test1,schema为test1的数据库中。

1. 生成sql文件。

 

生成sql文件

运行成功如图下

 

运行成功图

 

2. 新建用户及数据库和schema,下面数据库是通过pg建的。

 

新建数据库

3. 修改sql文件,将文件中的schema名称test,替换成test1。

4. 恢复数据schema,选择数据库》test1,右击选择运行sql文件

 

恢复文件

5. 选择文件

 

选择sql文件

6. 运行成功

 

文件恢复成功

7. 设置schema访问顺序,在查询窗口运行下面语句

#ALTER USER zjch SET search_path to test1,public

摘抄自:

https://zuanlan.zhihu.com/p/53967726

最新回复(0)