将数据库对象的定义和数据导出到指定文件中
1.1.2物理备份(热备和冷备、增量和全量)
将实际组成数据库的操作系统文件(数据文件、控制文件、重做日志等)进行拷贝
的过程
1.2逻辑备份
1.2.1备份格式
mongodb数据备份和恢复主要分为二种:
一种是针对库的mongodump和mongorestore
一种是针对库中表的mongoexport和mongoimport
mongoDB内部数据保存用的是bson格式,json是bson的子集,部分数据类型
无法用json保存,可能会导致丢失部分数据,官方建议生成环境使用mongodump和
mongorestore
1.2.2逻辑备份示例
备份格式:
mongodump-hIP--port端口-u用户名-p密码--
authenticationDatabase=admin指明认证数据库-d数据库-c表-o文件存放路
径
参数说明:
-h指明数据库宿主机的IP
--port指明数据库的端口
-u指明数据库的用户名
-p指明数据库的密码
-d指明数据库的名字
-c指明collection的名字
-o指明到要导出的文件名
-q指明导出数据的过滤条件
1.2.2.1全库导出
1.2.2.2导出指定库
1.2.2.3mongorestore恢复数据库
mongorestore-hIP--port端口-u用户名-p密码--
authenticationDatabase=admin指明认证数据库-d数据库--drop文件存在路
删除库
1.2.2.4指定数据库恢复
1.2.2.5mongoexport导出
mongoexport-hIP--port端口-u用户名-p密码-d数据库-c表名-f字
段-q条件导出--csv-o文件名
-f导出指定字段,以逗号分割,-fuid,name,age导出uid,name,age这三个字段
导出整个表
--csv表示导出的文件格式为csv的。这个比较有用,因为大部分的关系型数据库
都是支持csv,在这里有共同点
1.2.2.6导出整个表
1.2.2.7导出表中具体字段
1.2.2.8按过滤条件导出
1.2.2.9mongoimport导入
1.2.2.10针对于复制集的备份和还原
复制集的搭建,水平集群和垂直集群
分别编写mongod.conf配置文件
主
systemLog:
destination:file
logAppend:true
storage:
net:
bindIp:0.0.0.0
port:28017
replication:
replSetName:rs0
从1
port:28018
从2
port:28019
1.2.2.11模拟插入数据
for(vari=0;i<1000000;i++){db.mall.insertOne({x:Math.random()*100000});}
1.2.2.12模拟删除还原恢复
1.3物理备份和还原
1.3.1脱机物理备份
复制数据文件
文件系统快照
1.4第三方工具
1.4.1使PMH具备份
1.4.2使PBM具备份
1.4.3mongoshake备份
1.5简单介绍版
1.5.1MongoDump和MongoRestore
如果你的数据库比较小(<100GB),并想完全控制你的备份文件。那么
MongoDump和MongoRestore就是最佳搭档。通过这两个mongo脚本命令你
可以手动备份数据库或集合(collections)。Mongodump会将将所有数据以Binary
JSON(BSON)格式转储到指定位置。Mongorestore可以将这些BSON文件来还
原到你的数据库。
1.5.1.1备份整个数据库
sudomongodump--dbmydb--out/var/backups/mongo
注意条命令的--db参数,它用来指定要备份的数据库名。如果不指定这个参数,
Mongodump命令将会备份所有的数据库。
1.5.1.2备份单个集合(collection)
mongodump-dmydb-o/var/backups/mongo--collectionusers
这条命令会备份mydb数据库里的users集合。
1.5.1.3定期备份
通常我们要定期对MongoDB数据库做备份。例如每天凌晨3:03点进行备份,
这样在Linux下可以通过crontab来实现。
sudocrontab-e
33***mongodump--out/var/backups/mongo
1.5.1.4恢复整个数据库
sudomongorestore--dbmydb/var/backups/mongo/mydb
1.5.1.5恢复整个集合
mongorestore-dmydb-cusersmydb/users.bson
如果你备份的数据是JSON格式,可以用下面这条命令恢复。
mongoimport--dbmydb--collectionusers--fileusers.json--jsonArray
优点
简单易用对备份文件完全可控可将备份文件存在任意NFS
缺点
每次都是完整的备份而不是差异备份大型数据库的备份和恢复很耗时默认下不
这样就不能保证数据的一致性。可以通过--oplog参数解决这个问题。它会在数据库
备份完成后留下快照。
1.5.2MongoDBOpsManager
做分片备份
OpsManager运行在你数据中心,对MongoDB进行管理的应用程序。它会持
MongoDB实例,先对当前状态数据进行备份。再不断的将压缩/加密的数据发送到
OpsManager来进行持续备份。
优点:
集群的一致性快照。
缺点:
恢复数据库时,网络延迟会随着快照变大而增大
1.5.3MongoDB云管理
基于云的备份解决方案,安装CloudManager即可对数据库进行备份和恢复。它
会将备份的数据保存在MongoDB云端。
非常易用,可视化持续备份
备份数据不可控,因为存在云端成本(花钱)恢复慢
1.5.4数据库文件快照
这个备份数据库最最简单的方案,你可以将data/里的所有文件一并复制到任意
安全的地方,在复制之前应先停止对数据库的写入操作,以保证数据一致性。使用
db.fsyncLock()命令停止写入操作。
两种快照类型:
云快照
操作系统快照
一般云服务提供商都会提供备份快照功能。如果使用Linux可以通过打LVM快
照。LVM快照不能移植到其他机器,所以基于云的快照会好于操作系统快照。
易用快照完全可控差异性快照无需下载快照来进行恢复,可以为快照创建一个
数据卷。
只能恢复断开点(breakuppoints)时的数据维护有时会复杂集群下可能需要
DevOps团队介入
1.5.5MongoDBConsistentBackup
MongoDB集群一致性备份的工具。可以备份集群的一个或多个分片数据库。
$mongodb-consistent-backup-Hlocalhost-P27017-uUSERNAME-p
PASSWORD-l/var/backups/mongo
兼容MongoRestore命令。
$mongorestore--hostlocalhost--port27017-uUSERNAME-p
PASSWORD--oplogReplay--dir/var/backups/mongo/mydb/dump
开源可用在集群可远程备份弹性伸缩易安装、易运行
不成熟产品远程上传选项少保存在磁盘不支持数据加密官方代码缺乏测试
2.YonBIP-mysql数据库备份还原
2.1背景简介
针对YonBIP1130版本mysql数据库进行数据备份,以及还原操作。主要包括全
库备份,单库备份,单表备份,以及全库恢复,单库恢复,单表恢复。
需要注意的点:
1130版本所使用的mysql版本为8.0.27
做数据还原最好使用最近的一次备份,务必保证备份文件的完整性。
mysql版本为8.0.27,数据备份参数如果使用--master-data=2还原时会报错,
最好使用--source-data=2
mysql版本为5.7.22,主要集中在YonBIP2105版本,及以前版本。数据库备份
恢复仍可参照本文档,主要差异在备份的参数--master-data=2,其他可正常操作。
本文中出现的红色字体为可替换项,需注意替换。
2.2备份
2.2.1使用备份脚本备份
备份脚本下载:
如果使用备份脚本备份,请先保证执行过巡检脚本且巡检脚本可以正常运行。备份
脚本依赖于巡检脚本生成的文件。
使用方法:
mysql全库备份示例:
shbackup_1130database.sh--namemysql--backup_typefull
mysql单库备份示例:(以备份workbench库为例)
shbackup_1130database.sh--namemysql--backup_typedatabase--
backup_databaseworkbench
mysql单表备份示例:(以备份workbench库中的wb_service表为例)
shbackup_1130database.sh--namemysql--backup_typetable--
backup_table_databaseworkbench--backup_tablewb_service
自动备份计划任务的添加:(以全备为例)
#crontab-e
0005***/data/yunwei/backup_1130database.sh--namemysql--
backup_typefull>/dev/null2>&1
备份数据定时清理:(以保留最近7天为例,可适当修改)
为避免由于备份文件过多导致磁盘空间告急,需要添加定时清理计划。
使用命令crontab-e编辑计划任务,crontab-l查看计划任务。
/dev/null2>&1
2.2.2手动执行命令备份
使用方法:(红色部分为需要替换部分,备份路径写绝对路径)
mysqldump-uroot-h10.133.92.68-p12345-P3306-q--single-transaction
--source-data=2--all-databases--triggers--routines--events>
/root/allback.sql
mysql单库备份示例:(以workbench库为例)
--source-data=2--set-gtid-purged=OFF--databasesworkbench--
triggers--routines--events>/root/workbench.sql
mysql单表备份示例:(以workbench库中的wb_service表为例)
--source-data=2--set-gtid-purged=OFFworkbenchwb_service--triggers
--routines--events>/root/wb_service.sql
2.3还原
mysql全库还原示例:
mysql-uroot-p12345-h10.133.92.68-P3306
mysql单库还原示例:(以workbench库为例)
mysql-uroot-p12345-h10.133.92.68-P3306<
/root/workbench.sql
mysql单表还原示例:(以workbench库中的wb_service表为例)
mysql-uroot-p12345-h10.133.92.68-P3306-Dworkbench<
/root/wb_service.sql
3.阿里云polardb备份恢复手册
Polardb备份恢复手册
用友适配的polardb和postgresql属于同一个系列,所以备份恢复的命令和
postgresql的备份方式相同,如下:
3.1pg_dump含义
pg_dump是一个用于备份Postgresql数据库的实用程序。由pg_dump备份的
转储文件是完全一致的,因为转储是pg_dump开始运行时数据的快照。pg_dump不
会阻止其他用户访问数据库。如果普通用户已被授予数据库权限,则可以运
行pg_dump。pg_dump只能备份一个数据库。Pg_dumpall用于备份整个集群或备
份集群中所有数据库共有的公共对象。
3.2pg_dump文件类型
转储文件可以脚本或存档文件格式导出。
脚本转储文件是纯文本文件,其中包含将数据库恢复到保存时所处状态所需
的SQL命令。使用以此方式创建的脚本;使用psql或其他工具运行生成的sql文件将
则默认情况下将在postgres数据库中创建对象。
如果不想手动创建数据库,则必须使用pg_dump以存档文件格式,以自定义,目
录,tar方式来创建备份。然而,像这种情况下,需要使用pg_restore工具来恢复数
据。
3.3pg_dump语法
pg_dump[connection-option…][option…][dbname]
-h参数指定要备份的数据库的主机
-p参数指定端口
-U参数指定数据库用户
3.4pg_dump备份与恢复
3.4.1使用pg_dump备份与恢复数据库
3.4.1.1备份数据库
可以使用几种不同的语法生成名为zabbix的数据库的SQL转储文件。
pg_dumpzabbix>db.sql
pg_dump-hlocalhost-p5432-Upostgreszabbix>
/home/postgres/dump/db_data.sql
pg_dump-hlocalhost-p5432-Upostgreszabbix-f
3.4.1.2恢复数据库
可以将创建的转储文件还原为另一个名为zabbix的数据库。
psql-dzabbix-f/home/postgres/dump/db_zabbix_data.sql
psql-f/home/postgres/dump/db_zabbix_data.sql-dnewzabbix-p5432-
Upostgres
3.4.2pg_dump自定义格式
使用以下命令以自定义文件格式创建zabbix数据库的转储。通过这种方式生成的
备份文件将比sql文件小得多,因为在后台使用zlib压缩了该文件。
pg_dump-Fczabbix>/home/postgres/dump/zabbix_db.dump
从自定义文件格式转储恢复数据库
pg_restore-dtest_zabbix/home/postgres/dump/zabbix_db.dump
3.4.3pg_dump目录格式
使用以下命令以目录格式创建zabbix数据库的转储。
pg_dump-Fdzabbix-fdumpdirectory
或使用并行方式备份
pg_dump-Fdzabbix-j5-fdumpdir
从目录文件恢复数据库
pg_restore-Fd-ldumpdirectory
3.4.4pg_dumptar格式备份
下面的命令以tar文件格式创建mydb数据库的转储文件。
pg_dump-Ftzabbix>/home/postgres/dump/zabbix_db.tar
从tar文件还原Postgres数据库
pg_restore-Ft-dzabbix/home/postgres/dump/zabbix_db.tar
3.4.5pg_dump指定表备份
3.4.5.1备份指定的表
pg_dump-ttable1-dzabbix>/home/postgres/dump/table1.sql
3.4.5.2备份名称以tbl开头的表
3.4.5.3备份名称以tbl开头但不是tbl_mustafa的表
/home/postgres/dump/tbl1.sql
3.4.5.4备份名称以East或West开头并以gsm结尾的所有模式,并排除名称包含test的
所有模式
zabbix>/home/postgres/dump/tbl2.sql
3.4.5.5导出数据、不导表结构
pg_dump-azabbix>/home/postgres/dump/tbl1.sql
pg_dump--data-onlyzabbix>/home/postgres/dump/tbl1.sql
3.4.6pg_dump压缩
以下命令用于通过pg_dump进行压缩备份。
pg_dumpzabbix|gzip-9>zabbix.gz
3.4.7pg_dump拆分
将转储输出拆分为一定大小的多个文件
pg_dumpzabbix|split-b1m–files
恢复拆分转储文件
catfiles*|psqlzabbix
3.4.8pg_dumpON_ERROR_STOP
如果还原时发生错误,则psql将忽略该错误并继续运行。我们可以通过设
置ON_ERROR_STOP变量来自定义这种情况。执行此命令后,代码将一直运行到发生
错误的行,但后续行将不被处理。
psql--setzabbix 3.4.9pg_dumpall备份 pg_dumpall备份集群的所有内容。pg_dumpall为给定集群中的每个数据库创建 一个备份,并为集群范围的角色和表空间定义之类的数据创建备份。使 用pg_dumpall进行恢复时,始终需要超级用户访问权限才能恢复角色和表空间信 息。pg_dumpall发送命令来创建角色,表和空数据库,然后为每个数据库运 行pg_dump。 备份全库: pg_dumpall>all_dbdata.sql pg_dumpall-fall_dbdata.sql 恢复全库: psqlpostgres psql-fall_dbdata.sqlpostgres 4.达梦数据库逻辑备份和恢复 4.1系统环境 数据库环境DM8 对应NCC版本NCC2020.05(或以上) 使用的模块- 4.2逻辑备份描述 dexp工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻 辑备份。备份的内容非常灵活,可以选择是否备份索引、数据行和权限,是否忽略各种 约束(外键约束、非空约束、唯一约束等),在备份前还可以选择生成日志文件,记录备 份的过程以供查看。 dexp工具名称有两种写法dexp和dexpdp。两者语法完全相同。唯一的区别在 于,dexp导出的文件必须存放在客户端,dexpdp导出的文件必须存放在服务器端。 4.3备份方法 备份策略的组成分为三部分:配置信息、脚本文件、定时任务。 4.3.1配置信息 创建一个备份配置文件,假设命名为:nccdb_bak_conf.txt,其内容如下: username=ncc10 password=ncczs2022 ipStr=localhost portNumber=5327 backupsFileStr=/nccdb/data/backup logsFileStr=/nccdb/data/backup/dmdexplogs backupsFileDay=30 dexpStr=/opt/dmdbms/bin/dexp dbname=ncczs username:用户名 password:密码 ipStr:ip地址,通常备份脚本放在DB服务器上,这个参数值可以是localhost portNumber:端口号 backupsFileStr:存放备份文件绝对路径 logsFileStr:导出过程中日志存放绝对路径 backupsFileDay:保留备份记录多少天(脚本中默认30天) dexpStr:导出工具dexp绝对路径 dbname:保存数据库名称,多个数据库用逗号分隔。 4.3.2准备脚本文件 完整的脚本如下: dmdb_dexp.sh 需要注意的是在步骤1中创建的备份配置文件nccdb_bak_conf.txt文件应当存放 在脚本中指定的位置,或自行修过脚本中的文件路径。 4.3.3创建定时任务 Linux中的sh脚本定时任务,通过crontab进行管理。首先确保crontab进程正 servicecrondstart//启动服务 servicecrondstop//关闭服务 servicecrondrestart//重启服务 servicecrondreload//重新载入配置 servicecrondstatus//查看crontab服务状态 chkconfigcrondon//设定为开机自动启动 4.3.3.1设定定时任务 通过crontab-e编辑定时任务 10**0/nccdb/scripts/dmdb_dexp.sh 该定时任务,定时为凌晨0:01分开始备份,并并包含日志输出记录,方便以后进 行问题分析和备份检查。 4.3.3.2重新启动crond进程 servicecrondrestart; 4.4数据恢复方法 基于章节三的备份,对应的恢复操作使用dimp命令进行恢复数据(数据导入)参 考方法如下: ./dimpncc10/ncczs2022 FILE=/nccdb/data/backup/ncczs_database_20220421.dmp LOG=ncczs_dimp_20220421.logDIRECTORY=/nccdb/data/bakFULL=Y 4.5关于异地(异机)备份 基于本地备份的备份集,需要进行异地后异机的集中备份,可以参考下面的脚本方 式。 4.5.1压缩备份集并上传至集中备份服务器(假设是windowsserver) #!/bin/bash #db_backups_conf.txt --本地数据的压缩 bzip2-k/nccdb/data/backup/${dbname}_database_${saveday}.dmp --通过FTP将备份集传输至集中备份服务器 ftp-inv192.168.16.17< useradministratoradmin bin lcd/nccdb/data/backup/ put${dbname}_database_${saveday}.dmp.bz2 putdmdexplogs/${dbname}_database_${saveday}.log 4.5.2集中备份服务器端的文件处理。 --删除指目录下31天前的文件。 将该脚本语句保存成.bat文件,设定为定时任务 4.6注意事项 因脚本中涉及delete,rm这类的删除逻辑,正式使用前需要进行测试。定时删除过 期归档的脚本或定时任务要确保每日的备份均有正常生成或上传,且要每日检查,防止 4.7附录 无。 5.达梦数据库物理备份和恢复 5.1系统环境 5.2物理备份描述 物理备份分为冷备份(脱机备份)和热备份(联机备份两种)。和逻辑备份不同的 是,物理备份在备份时同样会对数据库的物理结构(文件)进行备份,而不仅仅是逻辑 的数据对象。其中联机备份需要开启数据库的归档模式才能实现。 5.3备份方法 5.3.1脱机备份 顾名思义,这是数据库处于关闭状态时再进行的备份操作,从达梦的V2.0版本开 始,使用DMRMAN工具进行脱机备份,并且支持对异常关闭的数据库进行脱机库备 份。备份异常关闭的数据库,要求配置了本地归档,如果本地归档不完整,则需要先修 复本地归档,再进行备份。冷备要求数据库关闭,DMAP服务打开,具体如下: 5.3.1.1通过命令行的方式备份 检查DmAP服务的状态。如已关闭,需要启用DmAP [dmdba@localhostbin]$./DmAPServicestatus [dmdba@localhostbin]$./DmAPServicestart 开始脱机备份,先关闭数据库。 [dmdba@localhostbin]$./DmServiceDMSERVERstop 执行整库备份 ./dmrman 备份完成后重新启动数据库 [dmdba@localhostbin]$./DmServiceDMSERVERstart 5.3.1.2通过图形化工具进行备份 [dmdba@localhost]$cd/dm8/tool [dmdba@localhosttool]$./console 点击新建备份,输入ini文件路径,备份名,备份集目录以及备份类型,点击确定, 完成备份。 5.3.2联机备份 数据库处于运行状态、并正常提供数据库服务情况下进行的备份操作,称为联机备 份。联机备份时可能存在一些处于活动状态的事务正在执行,为确保备份数据的一致性, 需要将备份期间产生的REDO日志一起备份。因此,只能在配置本地归档、并开启本 地归档的数据库上执行联机备份。临时表空间不支持备份,表备份不支持增量备份。联 机备份要求数据库、DMAP服务打开。 5.3.2.1通过命令行的方式备份 首先打开数据库的归档功能 alterdatabasemount; alterdatabasearchivelog; alterdatabaseaddarchivelog alterdatabaseopen; selectarch_modefromv$database;----查询返回值为Y,说明归档开 启成功 几种不同的备份方式: SQL>backupdatabase;----备份数据库 SQL>backuptablespaceNNC_DATA01----备份表空间,备份必须联机,还原必须脱机 SQL>backuptableGL_DETAIL----备份单张表 SQL>backuparchivelog;----备份归档 实现增量备份 首先要有一次完全备份。以完全备份作为基准。然后在定期做增量备份,通常每个 increment:指定当前备份为增量备份 withbackupdir:指定基础备份集(level0)的路径 5.3.2.2通过图形化工具进行备份 当出现错误号:-718时,需要手动生成一次检查点。 同时,需要在库备份的属性里指定工作目录。完成设置后确定,开始进行备份。 5.4数据恢复方法 基于章节三的备份方案,对应的恢复操作使用DMRMAN或图形化工具进行恢复 数据,数据库、表空间恢复前先关闭数据库 5.4.1整库恢复 文件转储还原: 数据库recovery: RMAN>recoverdatabase‘/dm8/data/DMDB/dm.ini’witharchivedir archivedir定义的是归档目录,recovery操作需要归档模式才能完成。 更新db_magic 更新完成后启动数据库。 5.4.2表空间恢复 恢复表空间时,表空间需要脱机,数据库需要关闭,例如: altertablespacennc_index01offline; ./DmServiceDMSERVERstop 5.5注意事项 1、基于DMRMAN生成的备份集,可以通过checkbackupset的方法进行校验。 2、对于表空间的offline操作需要慎重,特别是在未开启归档模式的情况下,不要 贸然offline。 5.6附录 6.华为PG瀚高数据库的备份恢复 用友集团国产化数据库接口人牛晓争确认,华为PG数据库、瀚高数据库、阿里云 polarDB-O数据库都是基于开源PostgreSQL,所以备份&恢复的方式是一样的,都适 用本档的备份&恢复的方式。 数据库的导入导出是最经常使用的功能之一,每种数据库都提供有这方面的工具, 例如Oracle的exp/imp,而PostgreSQL提供的对应工具为pg_dump和pg_restore。 pg_dump是用于备份PostgreSQL数据库的工具。它能够在数据库正在使用的时 候进行完整一致的备份,并不阻塞其它用户对数据库的访问。 转储格式能够是一个脚本或者归档文件。转储脚本的格式是纯文本,包含许多SQL 命令,这些SQL命令能够用于重建该数据库并将之恢复到保存脚本时的状态。可使用 psql从这样的脚本中恢复。它们甚至能够用于在其它机器甚至是其它硬件体系的机器 上重建数据库,经过对脚本进行一些修改,甚至能够在其它SQL数据库产品上重建数 据库。 归档文件格式必须和pg_restore一块儿使用重建数据库。它们容许pg_restore对 恢复什么东西进行选择,甚至是在恢复以前对须要恢复的条目进行从新排序。归档文件 也是能够跨平台移植的。 6.1pg_dump的用法 pg_dump把一个数据库转储为纯文本文件或者是其它格式. 用法:pg_dump[选项]...[数据库名字] 通常选项: -f,--file=FILENAMEoutputfileordirectoryname -F,--format=c|d|t|poutputfileformat(custom,directory,tar,plain text) -v,--verbose详细模式 -Z,--compress=0-9被压缩格式的压缩级别 --lock-wait-timeout=TIMEOUT在等待表锁超时后操做失败 --help显示此帮助信息,而后退出 --versoin输出版本信息,而后退出 控制输出内容选项: -a,--data-only只转储数据,不包括模式 -b,--blobs在转储中包括大对象 -c,--clean在从新建立以前,先清除(删除)数据库对象 -C,--create在转储中包括命令,以便建立数据库 -E,--encoding=ENCODING转储以ENCODING形式编码的数据 -n,--schema=SCHEMA只转储指定名称的模式 -N,--exclude-schema=SCHEMA不转储已命名的模式 -o,--oids在转储中包括OID -O,--no-owner在明文格式中,忽略恢复对象所属者 -s,--schema-only只转储模式,不包括数据 -S,--superuser=NAME在转储中,指定的超级用户名 -t,--table=TABLE只转储指定名称的表 -T,--exclude-table=TABLE只转储指定名称的表 -x,--no-privileges不要转储权限(grant/revoke) --binary-upgrade只能由升级工具使用 --column-inserts以带有列名的INSERT命令形式转储数据 --disable-dollar-quoting取消美圆(符号)引号,使用SQL标准引号 --disable-triggers在只恢复数据的过程当中禁用触发器 --inserts以INSERT命令,而不是COPY命令的形式转储数据 --no-security-labelsdonotdumpsecuritylabelassignments --no-tablespaces不转储表空间分配信息 --no-unlogged-table-datadonotdumpunloggedtabledata --quote-all-identifiersquoteallidentifiers,evenifnotkeywords --serializable-deferrablewaituntilthedumpcanrunwithout anomalies --use-set-session-authorization 使用SESSIONAUTHORIZATION命令代替ALTEROWNER命令来设置全部权 联接选项: -h,--host=主机名数据库服务器的主机名或套接字目录 -p,--port=端口号数据库服务器的端口号 -U,--username=名字以指定的数据库用户联接 -w,--no-password永远不提示输入口令 -W,--password强制口令提示(自动) --role=ROLENAMEdoSETROLEbeforedump 若是没有提供数据库名字,那么使用PGDATABASE环境变量的数值.mysql 2.pg_dump的使用实例 2.1建立两个数据库 在TestDb1中建立表csm_bill、cfg_public_int_transport插入几条记录,并建立 索引,索引使用索引表空间TestTbsIndex。linux 2.2仅迁移数据库结构 口令: -UTestRole1和超级用户-Upostgres结果彻底相同: 用户TestRole2的口令: 库对象的属主,因此最好使用超级用户-Upostgres: 不转储权限选项:-x TestDb12.sql比TestDb1.sql少了一下几行:sql 为了能够屡次运行TestDb1.sql,能够在文件开始加如下两行: dropschemapubliccascade; createschemapublic; 或者使用-c选项: TestDb13.sql比TestDb1.sql多如下几行:数据库 此时,能够屡次运行: 可是,若是两个库有不一样的表或索引,应该使用第一种方法,由于第二种方法 在找不到某些数据库对象时会报错。服务器 2.3迁移数据库结构和数据(能够实现数据库的备份与恢复) 数据的复制使用copy命令: 数据的复制使用insert语句: 2.4把远程linux上PostgreSQL上的cpost数据库结构迁移至本 地PostgreSQL 2.4.1在本地建一个彻底相同的环境 远程数据库cpost仍使用了默认表空间: CREATEDATABASEcpost WITHOWNER=cpost TABLESPACE=pg_default CONNECTIONLIMIT=-1; 使用以上三个参数报错,建成后的数据库以下: 2.4.2使用pg_dump迁移表结构 使用-h选项,使导出的sql文件直接存放在本地: 导入成功 3.使用pg_dump和pg_restore实现数据库的备份与恢 复 pg_restore从一个归档中恢复一个由pg_dump建立的PostgreSQL数据库. 用法: pg_restore[选项]...[文件名] -d,--dbname=名字链接数据库名字 -f,--file=文件名输出文件名 -F,--format=c|d|tbackupfileformat(shouldbeautomatic) -l,--list打印归档文件的TOC概述 --version输出版本信息,而后退出恢复控制选项: -a,--data-only只恢复数据,不包括模式 -c,--clean在从新建立数据库对象以前须要清除(删除)数据库对象 -C,--create建立目标数据库 -e,--exit-on-error发生错误退出,默认为继续 -I,--index=名称恢复指定名称的索引 -j,--jobs=NUM能够执行多个任务并行进行恢复工做 -L,--use-list=文件名从这个文件中使用指定的内容表排序输出 -n,--schema=NAME在这个模式中只恢复对象 -O,--no-owner忽略恢复对象所属者 -P,--function=名字(参数)恢复指定名字的函数 -s,--schema-only只恢复模式,不包括数据 -S,--superuser=NAME使用指定的超级用户来禁用触发器 -t,--table=NAME恢复指定命字的表 -T,--trigger=NAME恢复指定命字的触发器 -x,--no-privileges跳过处理权限的恢复(grant/revoke) -1,--single-transaction做为单个事务恢复 --no-data-for-failed-tables没有恢复没法建立表的数据 --no-security-labelsdonotrestoresecuritylabels --no-tablespaces不恢复表空间的分配信息 --use-set-session-authorization使用SESSIONAUTHORIZATION命令代 替ALTEROWNER命令来设置对象全部权 --role=ROLENAME在恢复前执行SETROLE操做 若是没有提供输入文件名,则使用标准输入. 一、使用dump格式备份和恢复: DROPDATABASE CREATEDATABASE 二、使用tar格式备份和恢复: 7.人大金仓ES_V8R6备份还原手册 7.1常见数据库备份类型 7.1.1逻辑备份 7.1.2物理备份(热备和冷备、增量和全量) 7.2逻辑备份 7.2.1备份格式: 二进制和SQL 备份选项:库、模式(-n)、表(-t)、结构(-s)、数据(-a) 还原选项:完全、只还原部分、还原前删除已存在的对象(-c) 备份方法:对象管理工具逻辑备份功能或sys_dump 还原方法:二进制格式通过对象管理工具或sys_restore SQL格式通过对象管理工具执行sql脚本或通过ksql工具 7.2.2逻辑备份示例 二进制格式 备份全库 sys_dump-hip-p端口-U用户-W密码-Fc-f备份路径/xxx.dmp库 名 还原全库 sys_restore-hip-p端口-U用户-W密码-d库名备份路径/xxx.dmp sql格式 sys_dump-hip-p端口-U用户-W密码-f备份路径/xxx.dmp库名 Ksql-hip-U用户名-W密码-d库名-f备份路径/xxx.sql 7.3物理备份和还原 7.3.1脱机物理备份 直接备份data 7.3.2联机物理备份(增量和全量) 备份 使用工具:sys_rman 还原 还原到某个备份集 7.3.3物理备份示例 7.3.3.1配置参数(只能进行本地备份,需要重启数据库) wal_level=replica#minimal,replica,orlogical设置日志级别 wal_level控制wal日志的输出级别,有minial、replica、logical三种 minial记录的wal日志最少,除了记录异常关闭需要恢复时的wal信息外, 其它操作都不记录 replica会记录支持wal归档、复制和备库中启用只读查询等操作所需要的wal信