常用数据库数据导入导出(备份和恢复)操作文档

常用数据库数据导入导出(备份和恢复)操作文档

说明:实际开发中,我们经常遇到需要备份数据库数据,恢复数据库数据;或者不同环境之间同步数据、用已有环境数据搭建新环境的情况,此时就需要用到数据库的导出和导入(备份和恢复),这里记录一下常用数据库的导入导出操作。

PostgreSQL

数据导出

pg_dump是PostgreSQL数据库的一个实用工具,用于备份单个数据库。它可以将数据库的内容导出为SQL脚本文件,该文件可以在以后的时间点被重新加载到数据库中,以恢复数据。pg_dump可以导出数据的结构(模式)以及数据本身

使用 pg_dump 的基本语法是:

css 复制代码
pg_dump [OPTION]... [DBNAME]

其中:

  • [OPTION]... 是可选的参数,用于指定备份的各种选项。
  • [DBNAME] 是要备份的数据库名称。如果省略,它会使用环境变量 PGDATABASE 的值,或者默认到名为 "postgres" 的数据库。

以下是一些常用的 pg_dump 参数:

  • -U USERNAME:指定连接到数据库的用户名。
  • -h HOSTNAME:指定要连接的 PostgreSQL 服务器的主机名或 IP 地址。
  • -p PORT:指定要连接的 PostgreSQL 服务器的端口号。
  • -d DBNAME:指定需要备份的数据库名。
  • -f FILE:将输出写入指定的文件而不是标准输出。
  • -F FORMAT:指定输出格式,例如 "p" 表示纯文本格式,"c" 表示自定义格式,"t" 表示 tar 格式等。
  • -v:显示详细模式,输出更多信息。
  • --schema-only:只导出模式,不导出数据。
  • --data-only:只导出数据,不导出模式。

导出数据库

复制代码
pg_dump -U user_name -d db_name -f db_name_bak.sql

导出多表方式一

复制代码
pg_dump -U user_name -d db_name -t tb_1 -t tb_2 -f db_name_bak.sql

导出多表方式二

arduino 复制代码
pg_dump -U user_name -d db_name -t "tb_1 | tb_2" -f db_name_bak.sql

数据导入

在需要恢复数据时,可以使用psql工具将备份的SQL脚本重新加载到数据库中

命令:

css 复制代码
psql -h host_name -p port -U user_name -W -d db_name -f db_name_bak.sql

例:

css 复制代码
psql -h 10.64.66.66 -p 15432 -U postgre -W -d user_data -f user_data.sql

注:导入数据之前需备份原数据

css 复制代码
pg_dump -h 10.64.66.66 -p 15432 -U postgre -W -d user_data -f user_data.sql

MySQL

数据导出

mysqldump 是 MySQL 数据库的备份工具。它允许用户导出数据库的结构和内容到一个 SQL 文件,该文件之后可以使用 mysql 命令行工具或其他 MySQL 客户端来恢复数据库。

使用 mysqldump 的基本语法是:

css 复制代码
mysqldump [options] database [tables]  

mysqldump [options] --databases database1 [database2 ...]  

mysqldump [options] --all-databases

其中:

  • [options] 是可选的参数,用于指定备份的各种选项。
  • database 是要备份的数据库名称。
  • [tables] 是可选的,指定要备份的数据库中的特定表。

一些常用的 mysqldump 选项包括:

  • -u USERNAME:指定连接到数据库的用户名。
  • -p:提示输入用户的密码,也可以直接在 -p后面跟密码,如 -pYourPassword,但是这样做可能会留下安全隐患。
  • -h HOSTNAME:指定要连接的 MySQL 服务器的主机名或 IP 地址。
  • -P PORT:指定要连接的 MySQL 服务器的端口号。
  • -B 或 --databases:后面跟要备份的数据库名列表,用于备份多个数据库。
  • -d 或 --no-data:只导出数据库结构,不导出数据。
  • --extended-insert:使用多行 INSERT 语句格式,这可以提高恢复速度。
  • --single-transaction:对于存储引擎支持事务的表(如 InnoDB),此选项可以在单个事务中完成整个备份过程,确保备份的一致性。
  • --quick:当导出大表时,强制 mysqldump 在输出中每次写入一行,这有助于加速在某些情况下的导出过程。
  • --add-drop-table:在每个 CREATE TABLE 语句之前添加 DROP TABLE 语句,这样当导入备份时,会先删除表再创建。
  • --add-drop-database:在每个数据库导出之前添加 DROP DATABASECREATE DATABASE 语句。
  • --result-file=FILE:将输出写入指定的文件而不是标准输出。
css 复制代码
mysqldump -u user_name -p db_name > db_name_bak.sql

执行此命令后,系统会提示你输入用户的密码。

数据导入

命令:

css 复制代码
mysql -u user_name -p db_name < db_name_bak.sql

例:

复制代码
mysql -uroot -h 10.64.66.66 -p123456 db_name < db_name.sql

注:导入数据之前需备份原数据

复制代码
mysqldump -uroot -h 10.64.66.66 -p123456 db_name > db_name.sql

Mariadb

数据导出

命令:

复制代码
mysqldump -h127.0.0.1 -uroot -p123456 db_name > db_name.sql

数据导入

命令:

复制代码
mysql -uroot -h host -p123456 db_name < db_name.sql

例:

复制代码
mysql -uroot -h 10.64.66.66 -p123456 db_name < db_name.sql

注:导入数据之前需备份原数据

mysqldump -uroot -h 10.64.66.66 -p123456 db_name > db_name.sql

MongoDB

数据导出(备份)

命令:

复制代码
mongodump -h ip:port -u usernamme -p password -d database -o backuppath

例:

bash 复制代码
mongodump -h 10.11.11.11:27017 -u root -p root -d test -o D:/DevTool/MongoDB/backup

数据导入(恢复)

命令:

复制代码
mongorestore -h ip:port -d database backuppath

例:

bash 复制代码
mongorestore -h 127.0.0.1:27017 -d test D:/DevTool/MongoDB/backup/test

这样就把10.11.11.11:27017的test库,同步到了本地数据库,这种方式不需要停止服务且会同步索引(基于4.4.20版本)

相关推荐
小园子的小菜33 分钟前
Redis 核心原理深度解析:从数据结构、IO 模型到持久化机制
数据库·redis·缓存
YUS云生1 小时前
大模型学习·第44天:Chroma向量数据库与RAG链式组装
数据库·学习
毛驴赶鹿8 小时前
【金仓数据库征文】KES V9性能调优实战记录:从慢SQL排查到全链路优化
数据库·sql
有梦不弃8 小时前
模块化单体架构设计方案:DDD + 六边形架构落地实践
后端·架构
码农阿豪8 小时前
【金仓数据库征文】Mac开发环境|SpringBoot3 + MyBatisPlus对接KES V9 Docker实战全指南
数据库·macos·docker
杨云龙UP8 小时前
MySQL 数据库常用备份工具对比:mysqldump、mydumper 与 XtraBackup
linux·运维·服务器·数据库·mysql·dba·备份恢复
ZENERGY-众壹8 小时前
500个工商业电站压垮数据库?海量光伏时序数据存储的架构取舍
数据库·架构·influxdb·光伏·光伏运维
mubei-1239 小时前
SpringDAO的用法
java·开发语言·数据库
星蓝_starblue12 小时前
零服务器、零数据库!开源growth-board,利用GitHub自动管理刷题/学习/求职全流程
服务器·数据库·程序人生·系统架构·node.js·github·改行学it
江南十四行12 小时前
Spring框架核心(上)——IoC控制反转与DI依赖注入详解
java·后端·spring