1.postgres15逻辑备份恢复
备份参数说明:
**********************连接选项********************************* -h, --host=HOSTNAME #服务器ip -p, --port=PORT #端口号 -U, --username=NAME #用户名 -W, --password #密码 -d, --dbname=DBNAME #数据库名 -n, --schema=PATTERN #schema名称 **********************通用选项********************************* -f, --file=FILENAME #文件名 -?, --help #帮助 **********************控制输出内容选项************************* -c, --clean #在重新创建之前清理(删除)数据库对象;如果不使用该参数,还原时将不会清理(删除)对象,可能会造成重复添加数据的问题,典型的情况是会出现多条一模一样的数据 -C, --create #在转储文件中添加创建数据库语句,还原时如果存在目标数据库,会报个无法创建的错误,还原时如果不存在目标数据库,则会自动创建目标数据库;常用于将转储文件还原到不存在“备份目标数据库名”的数据库中 -s, --schema-only #只转储数据库结构,不转储数据 -a, --data-only #只转储数据,不转储模式 -t, --table=TABLE #只转储指定表;一个-t选项只能指定一个表,如果需要排除多个表,需要每个表都使用-t标识 -T, --exclude-table=TABLE #指定不转储的表;一个-T选项只能指定一个表,如果需要排除多个表,需要每个表都使用-T标识 --if-exists #使用IF EXISTS来删除已有对象;如果不使用该选项,还原数据时如果不存在对象,删除时会报错 --inserts #将数据转储为插入命令(标准的insert语句),而不是复制命令;使用该选项后,转储的sql可读性强,便于编辑
(1).备份
注:使用su – postgres 切换后执行备份命令
1).导出数据库结构及数据
pg_dump -h 127.0.0.1 -p 5432 -U wang_user -d wangdb --schema=wang_schema --insert --if-exists -c -f ./wang_schema.sql
导出内容如下:
-- -- PostgreSQL database dump -- -- Dumped from database version 15.0 -- Dumped by pg_dump version 15.0 SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; SELECT pg_catalog.set_config('search_path', '', false); SET check_function_bodies = false; SET xmloption = content; SET client_min_messages = warning; SET row_security = off; DROP TABLE IF EXISTS wang_schema.test2; DROP TABLE IF EXISTS wang_schema.test1; DROP SCHEMA IF EXISTS wang_schema; -- -- Name: wang_schema; Type: SCHEMA; Schema: -; Owner: postgres -- CREATE SCHEMA wang_schema; ALTER SCHEMA wang_schema OWNER TO postgres; SET default_tablespace = ''; SET default_table_access_method = heap; -- -- Name: test1; Type: TABLE; Schema: wang_schema; Owner: wang_user -- CREATE TABLE wang_schema.test1 ( id integer, name character(32), age integer ); ALTER TABLE wang_schema.test1 OWNER TO wang_user; -- -- Name: test2; Type: TABLE; Schema: wang_schema; Owner: wang_user -- CREATE TABLE wang_schema.test2 ( id integer, name character(32), age integer ); ALTER TABLE wang_schema.test2 OWNER TO wang_user; -- -- Data for Name: test1; Type: TABLE DATA; Schema: wang_schema; Owner: wang_user -- INSERT INTO wang_schema.test1 VALUES (1, '张三 ', 18); -- -- Data for Name: test2; Type: TABLE DATA; Schema: wang_schema; Owner: wang_user -- INSERT INTO wang_schema.test2 VALUES (1, '李四 ', 18); -- -- Name: SCHEMA wang_schema; Type: ACL; Schema: -; Owner: postgres -- GRANT ALL ON SCHEMA wang_schema TO wang_user; -- -- PostgreSQL database dump complete --
2).只导出指定数据库的表结构,不含数据
pg_dump -h 127.0.0.1 -p 5432 -U wang_user -d wangdb --schema=wang_schema --insert --if-exists -c -s -f ./wang_schema2.sql
3).只导出指定数据库的数据,不含表结构
pg_dump -h 127.0.0.1 -p 5432 -U postgres -d wangdb --schema=wang_schema --insert -a -f ./wang_schema3.sql
4).只导出指定数据库的所有数据,但排除某些(某个)表,不含表结构(一个“-T”参数只能排除一个表,如果要排除多个表需要使用多个“-T”参数)
pg_dump -h 127.0.0.1 -p 5432 -U postgres -d wangdb -a --insert -T wang_schema.test1 -f ./wang_schema4.sql
5).只导出指定数据库的某些(某个)表的数据,其他表全部排除,不含表结构(指定导出多张表需要使用多个“-t”参数)
pg_dump -h 127.0.0.1 -p 5432 -U postgres -d wangdb -a --insert -t wang_schema.test1 -f ./wang_schema5.sql
(2).还原
注:还原命令:此处使用psql直接运行sql文件方式
还原参数说明:
-h, --host=HOSTNAME #服务器ip -p, --port=PORT #端口号 -U, --username=NAME #用户名 -d, --dbname=DBNAME #数据库名 -f, --file=FILENAME #文件名
还原命令如下:
psql -h 127.0.0.1 -p 5432 -U postgres -d wangdb --schema=wang_schema -f ./wang_schema.sql
原文地址:http://www.cnblogs.com/Yongzhouunknown/p/16796588.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性