迁移用户表
- 1)确认源端、目标端信息
| 版本 | IP地址 | 端口 | 数据库名 | 用户名 | schema名 | |
|---|---|---|---|---|---|---|
| 源库 | 12.3 | 192.168.56.101 | 15432 | prodb | root | u1 |
| 目标库 | 12.3 | 192.168.56.102 | 15432 | testdb | root | u1 |
- 2)源库查询要迁移的表信息
$ psql -h 192.168.56.101 -p 15432 -d prodb -U root
select c.relname, c.relkind, c.relpages,pg_size_pretty(pg_relation_size(c.oid))
from pg_class c join pg_namespace n on c.relnamespace=n.oid where n.nspname='u1'
and c.relname in ('t1_202201','t1_202202');
- 3)源库执行表备份
-h 指定数据库主机
-p 指定数据库端口
-d 指定连接的数据库名
-U 指定连接用户名
-n 指定要导出的schema名
-t 指定要导出的表名
$ pg_dump -h 192.168.56.101 -p 15432 -d prodb -U root -n u1
-t t1_202201 -t t1_202202 -Fc -f u1_table.dmp -v >u1_table_dump.log 2>&1
- 4)目标库执行表恢复
$ pg_restore -h 192.168.56.102 -p 15432 -d testdb -U root u1_table.dmp -v >u1_table_restore.log 2>&1
迁移用户函数、存过
- 1)备份源库指定schema的所有元数据信息
-s 只导出对象定义
$ pg_dump -h 192.168.56.101 -p 15432 -d prodb -U root -n u1 -s -Fc -f u1.dmp
- 2)-l 列出备份文件的内容,该操作的输出可以作为 -L 的输入
-L list-file 仅恢复 list-file 中列出的元素,并按照它们在文件中出现的顺序恢复它们
筛选函数、存过,并生成文本文件
$ pg_restore --list u1.dmp | grep FUNCTION > u1_func_list
$ pg_restore --list u1.dmp | grep PROCEDURE > u1_proc_list
查看函数、存过的数量
$ cat u1_func_list|wc -l
$ cat u1_proc_list|wc -l
- 3)将存过、函数恢复到目标库
$ pg_restore -h 192.168.56.102 -p 15432 -d testdb -U root -c -L u1_func_list u1.dmp -v >u1_func.log 2>&1
$ pg_restore -h 192.168.56.102 -p 15432 -d testdb -U root -c -L u1_proc_list u1.dmp -v >u1_proc.log 2>&1
- 4)目标库查询函数、存过数量
$ psql -h 192.168.56.102 -p 15432 -d testdb -U root
SELECT
p.prokind,count(*)
from pg_catalog.pg_proc p
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE n.nspname OPERATOR(pg_catalog.~) '^(u1)$' COLLATE pg_catalog.default and p.prokind in ('f','p')
group by p.prokind;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




