PostgreSQL怎么实现不落地并行导出导入
本篇内容主要讲解“PostgreSQL怎么实现不落地并行导出导入”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL怎么实现不落地并行导出导入”吧!
9.4以下版本,使用pg_dump并行导出,pg_restore并行导入,迁移(导出使用源版本pg_dump,导入使用目标版本pg_restore。如果是ppas请使用enterprisedb对应版本。)
1、(源库)全局元数据(用户、表空间)导出
需要superuser权限(如果你没有这个权限,跳过此步,但是务必在执行下一步时,人为在目标实例中创建所有与对象权限相关的用户)。
pg_dumpall-g-hIP地址-p端口-U用户-W-l数据库名
2、(目标库)全局元数据导入
导入以上元数据,在目标库执行即可(通常包括创建用户,修改用户密码,创建表空间等。)
执行第2步的目的是保证导入时,执行grant, alter set owner等操作时,目标用户已存在,否则缺失用户会导致pg_restore报错。
3、(目标库)建库
postgres=#createdatabasenewdb;CREATEDATABASE
4、(目标库)插件
安装postgresql软件时,打包源库已使用的的插件。略
5、(源库)导出
mkdir/data01/pg/backuppg_dump-j32-f/data01/pg/backup-Fd-hIP地址-p端口-U用户-Wnewdb
6、(目标实例)关闭autovacuum,加速导入(可选)
使用超级用户执行SQLaltersystemsetautovacuum=off;selectpg_reload_conf();
7、(目标库)导入
pg_restore-dnewdb-Fd-j32-hIP地址-p端口-U用户/data01/pg/backup
8、(目标实例)开启autovacuum(如果执行了6)
使用超级用户执行SQLaltersystemsetautovacuum=on;selectpg_reload_conf();
9、(目标实例)收集统计信息(如果执行了6)
使用超级用户执行SQL,收集统计信息\cnewdb超级用户analyze;
使用以上方法,60GB的数据库迁移,耗时约10分钟。
多机玩法Wherethisgetsinterestingiswithmultiplehosts.Youcan:$#dumparemotedatabasetoyourlocalmachine$pg_dump-hremotedb.mydomain.com-f/home/postgres/dump.sqltest$#dumpalocaldatabaseandwritetoaremotemachine$pg_dump-hremotedb.mydomain.comtest|sshpostgres@remotedb.mydomain.com'cat>dump.sql'$#dumparemotedatabaseandwritetothesameremotemachine$pg_dump-hremotedb.mydomain.comtest|sshpostgres@remotedb.mydomain.com'cat>dump.sql'$#oradifferentremotemachine$pg_dump-hremotedb1.mydomain.comtest|sshpostgres@remotedb2.mydomain.com'cat>dump.sql'Youalsohavesimilarrestoreoptions.Iwillusepsqlbelowbutpg_restoreworksthesame:$#dumparemotedatabaseandrestoretoyourlocalmachine$pg_dump-hremotedb.mydomain.comtest1|psqltest2$#dumpalocaldatabaseandrestoretoaremotemachine$pg_dump-hremotedb.mydomain.comtest|sshpostgres@remotedb.mydomain.com'psqltest'$#dumparemotedatabaseandrestoretothesameremotemachine$pg_dump-hremotedb.mydomain.comtest1|sshpostgres@remotedb.mydomain.com'psqltest2'$#oradifferentremotemachine$pg_dump-hremotedb1.mydomain.comtest|sshpostgres@remotedb2.mydomain.com'psqltest'
到此,相信大家对“PostgreSQL怎么实现不落地并行导出导入”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。