PostgreSQL数据库基本操作命令说明 --【备份】【还原】

目录

1 PostgreSQL备份

(1)备份命令:

(2)备份参数说明:

(3)例子:

a)导出数据库结构及数据

b)只导出指定数据库的表结构,不含数据

c)只导出指定数据库的数据,不含表结构

d)只导出指定数据库的所有数据,但排除某些(某个)表

e)只导出指定数据库的某些(某个)表的数据,其他表全部排除

2 PostgreSQL还原

(1)还原命令:此处使用psql直接运行sql文件方式

(2)还原参数说明

(3)例子:


1 PostgreSQL备份

(1)备份命令:

pg_dump [OPTION]... [DBNAME] 

(2)备份参数说明:

连接选项:
-h, --host=HOSTNAME  database server host or socket directory 数据库服务器主机或套接字目录
-p, --port=PORT  database server port number 数据库服务器端口号
-U, --username=NAME connect as specified database user 以指定的数据库用户身份连接,不再需要su – postgres
-d, --dbname=DBNAME database to dump  指定连接的数据库名,默认连接postgres
通用选项:
-f, --file=FILENAME output file or directory name 转储输出的文件名
-?, --help show this help, then exit 显示帮助
控制输出内容选项:
-c, --clean clean (drop) database objects before recreating 在重新创建之前清理(删除)数据库对象;如果不使用该参数,还原时将不会清理(删除)对象,可能会造成重复添加数据的问题,典型的情况是会出现多条一模一样的数据
-C, --create include commands to create database in dump 在转储文件中添加创建数据库语句,还原时如果存在目标数据库,会报个无法创建的错误,还原时如果不存在目标数据库,则会自动创建目标数据库;常用于将转储文件还原到不存在“备份目标数据库名”的数据库中
-s, --schema-only dump only the schema, no data 只转储数据库结构,不转储数据
-a, --data-only dump only the data, not the schema 只转储数据,不转储模式
-t, --table=TABLE dump the named table(s) only 只转储指定表;一个-t选项只能指定一个表,如果需要排除多个表,需要每个表都使用-t标识
-T, --exclude-table=TABLE  do NOT dump the named table(s) 指定不转储的表;一个-T选项只能指定一个表,如果需要排除多个表,需要每个表都使用-T标识
--if-exists use IF EXISTS when dropping objects 使用IF EXISTS来删除已有对象;如果不使用该选项,还原数据时如果不存在对象,删除时会报错
--inserts dump data as INSERT commands, rather than COPY 将数据转储为插入命令(标准的insert语句),而不是复制命令;使用该选项后,转储的sql可读性强,便于编辑

(3)例子:

a)导出数据库结构及数据

./pg_dump -h 127.0.0.1 -p 5432 -U postgres -d pigoss_toc --insert --if-exists -c -f ./backup.sql

备份pigoss_toc数据库,将数据转存为插入命令,并且使用IF EXISTS来删除已有对象,在重新创建之前删除数据库对像,将备份的数据存入backup.sql文件中。

生成备份的sql文件 backup.sql

b)只导出指定数据库的表结构,不含数据

./pg_dump -h 127.0.0.1 -p 5432 -U postgres -d 数据库名 --insert --if-exists -c -s -f ./文件名.sql

c)只导出指定数据库的数据,不含表结构

./pg_dump -h 127.0.0.1 -p 5432 -U postgres -d 数据库名 --insert -a -f ./文件名.sql

d)只导出指定数据库的所有数据,但排除某些(某个)表

不含表结构(一个“-T”参数只能排除一个表,如果要排除多个表需要使用多个“-T”参数)

./pg_dump -h 127.0.0.1 -p 5432 -U postgres -d 数据库名 –insert -a -T 表名 -f ./文件名.sql

e)只导出指定数据库的某些(某个)表的数据,其他表全部排除

不含表结构(指定导出多张表需要使用多个“-t”参数)

./pg_dump -h 127.0.0.1 -p 5432 -U postgres -d 数据库名 –insert -a -t 表名 -f ./文件名.sql

2 PostgreSQL还原

(1)还原命令:此处使用psql直接运行sql文件方式

psql [OPTION]... [DBNAME [USERNAME]]

(2)还原参数说明

连接选项:

-h, --host=HOSTNAME  database server host or socket directory (default: "local socket")  数据库服务器主机或套接字目录
-p, --port=PORT database server port (default: "5432")  数据库服务器端口号
-U, --username=NAME database user name (default: "root") 以指定的数据库用户身份连接,不再需要su – postgres
通用选项:
-d, --dbname=DBNAME database name to connect to (default: "root")  指定连接的数据库名,默认连接postgres
-f, --file=FILENAME execute commands from file, then exit 指定需要指定的文件

(3)例子:

直接指定需要运行的sql文件即可。

psql -h 127.0.0.1 -p 5432 -U postgres -d pigoss_toc -f ./backup.sql

 键入密码,回车,则开始还原备份文件。

你可能感兴趣的:(数据库,postgresql,运维)