openGauss备份恢复

简介: openGauss备份恢复

gs_probackup

docker

1.0.1

  docker run --name brm_opengauss \
  --privileged=true -d -e GS_PASSWORD=mtkOP@123 \
  -v `pwd`/conf/brm.yaml:/etc/brm.yaml \
  -v `pwd`/var/lib/brm:/var/lib/brm \
  -v `pwd`/var/log/brm:/var/log/brm \
  enmotech/opengauss:1.0.1

1.1.0

docker run --name brm_opengauss_1230 \
  --privileged=true -d -e GS_PASSWORD=mtkOP@123 \
  -v `pwd`/conf/brm.yaml:/etc/brm.yaml \
  -v `pwd`/var/lib/brm:/var/lib/brm \
  -v `pwd`/var/log/brm:/var/log/brm \
  enmotech/opengauss:1.1.0

初始化

export BACKUP_PATH=/home/omm/backup
gs_probackup init

添加实例

gs_probackup add-instance --instance testdb --pgdata <openData的数据目录>

备份

gs_probackup backup --instance testdb -b full

配置数据库归档

设置参数

目录为 <gs_probackup的backup_path>/wal/

archive_mode = on
archive_command = 'cp %p <gs_probackup的backup_path>/wal/<instance>/%f'
# cp %p /usr/local/pgsql/data/pg_archive/%f'

查看备份

gs_probackup show --instance testdb

查看归档备份

gs_probackup show --instance testdb --archive

恢复

gs_probackup restore -B backup-path --instance=instance_name
                 [-D pgdata-path] [-i backup-id] [-j threads_num] [--progress]
                 [--force] [--no-sync] [--no-validate] [--skip-block-validation]
                 [--external-mapping=OLDDIR=NEWDIR] [-T OLDDIR=NEWDIR]
                 [--skip-external-dirs] [-I incremental_mode]
                 [--recovery-target-time=time|--recovery-target-xid=xid
                  |--recovery-target-lsn=lsn|--recovery-target-name=target-name]
                 [--recovery-target-inclusive=boolean]
                 [--recovery-target-timeline=timeline]
                 [--recovery-target=immediate|latest]
                 [--recovery-target-action=pause|promote|shutdown]
                 [--restore-command=cmdline]
                 [--remote-proto=protocol] [--remote-host=destination]
                 [--remote-path=path] [--remote-user=username]
                 [--remote-port=port] [--ssh-options=ssh_options]
                 [--log-level-console=log-level-console]
                 [--log-level-file=log-level-file]
                 [--log-filename=log-filename]
                 [--error-log-filename=error-log-filename]
                 [--log-directory=log-directory]
                 [--log-rotation-size=log-rotation-size]
                 [--log-rotation-age=log-rotation-age]
  -B, --backup-path=backup-path    location of the backup storage area
      --instance=instance_name     name of the instance
  -D, --pgdata=pgdata-path         location of the database storage area
  -i, --backup-id=backup-id        backup to restore
  -j, --threads=threads_num        number of parallel threads
      --progress                   show progress
      --force                      ignore invalid status of the restored backup
      --no-sync                    do not sync restored files to disk
      --no-validate                disable backup validation during restore
      --skip-block-validation      set to validate only file-level checksum
      --external-mapping=OLDDIR=NEWDIR
                                   relocate the external directory from OLDDIR to NEWDIR
  -T, --tablespace-mapping=OLDDIR=NEWDIR
                                   relocate the tablespace from directory OLDDIR to NEWDIR
      --skip-external-dirs         do not restore all external directories
  -I, --incremental-mode=none|checksum|lsn
                                   reuse valid pages available in PGDATA if they have not changed
                                   (default: none)

场景

环境配置

gs_probackup

export BACKUP_PATH=/var/lib/brm
gs_probackup init 
gs_probackup add-instance --instance testdb01 -D /var/lib/opengauss/data
gs_probackup set-config --instance testdb01 --pgdatabase postgres
gs_probackup show-config --instance testdb01
# Backup instance information
pgdata = /var/lib/opengauss/data
system-identifier = 6910097200378281726
# Connection parameters
pgdatabase = postgres
# Archive parameters
archive-timeout = 5min
# Logging parameters
log-level-console = LOG
log-level-file = OFF
log-filename = pg_probackup.log
log-rotation-size = 0TB
log-rotation-age = 0d
# Retention parameters
retention-redundancy = 0
retention-window = 0
wal-depth = 0
# Compression parameters
compress-algorithm = none
compress-level = 1
# Remote access parameters
remote-proto = ssh

数据库设置

[omm@0150b32d2461 ~]$ gsql
gsql ((openGauss 1.0.1 build e9da9fb9) compiled at 2020-10-01 13:58:32 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
omm=# show archive_mode;
 archive_mode
--------------
 on
(1 row)
omm=# show archive_command;
          archive_command
------------------------------------
cp %p /var/lib/brm/wal/testdb01/%f
(1 row)
omm=# select pg_switch_xlog();
pg_switch_xlog
----------------
0/72000150
(1 row)

查看归档

[omm@0150b32d2461 ~]$ ls -l /var/lib/brm/wal/testdb01/
total 49152
-rw------- 1 omm omm 16777216 Jan 11 03:30 00000001000000000000002F
-rw------- 1 omm omm 16777216 Jan 11 03:30 000000010000000000000071
-rw------- 1 omm omm 16777216 Jan 11 03:30 000000010000000000000072

模拟基础环境

[omm@0150b32d2461 ~]$ gsql
gsql ((openGauss 1.0.1 build e9da9fb9) compiled at 2020-10-01 13:58:32 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
omm=# create table brm_test(t timestamp);
CREATE TABLE
omm=# insert into brm_test values(now());
INSERT 0 1
omm=# select * from brm_test;
t
----------------------------
 2021-01-11 03:33:40.737837
 2021-01-11 03:38:46.32794
 2021-01-11 03:39:42.466014
 2021-01-11 03:40:02.816579
 2021-01-11 07:29:21.98839
(5 rows)

全备份

[omm@0150b32d2461 ~]$ gs_probackup backup --instance testdb01 -b full
INFO: Backup start, pg_probackup version: 2.4.2, instance: testdb01, backup ID: QMRFD9, backup mode: FULL, wal mode: STREAM, remote: false, compress-algorithm: none, compress-level: 1
LOG: Backup destination is initialized
WARNING: This PostgreSQL instance was initialized without data block checksums. pg_probackup have no way to detect data block corruption without them. Reinitialize PGDATA with option '--data-checksums'.
LOG: Database backup start
LOG: started streaming WAL at 0/86000000 (timeline 1)
 check identify system success
 send START_REPLICATION 0/86000000 success
 keepalive message is received
INFO: PGDATA size: 317MB
INFO: Start transferring data files
LOG: Creating page header map "/var/lib/brm/backups/testdb01/QMRFD9/page_header_map"
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
 keepalive message is received
INFO: Data files are transferred, time elapsed: 31s
INFO: wait for pg_stop_backup()
 keepalive message is received
INFO: pg_stop backup() successfully executed
LOG: stop_lsn: 0/860001D0
LOG: Looking for LSN 0/860001D0 in segment: 000000010000000000000086
LOG: Found WAL segment: /var/lib/brm/backups/testdb01/QMRFD9/database/pg_xlog/000000010000000000000086
LOG: Thread [0]: Opening WAL segment "/var/lib/brm/backups/testdb01/QMRFD9/database/pg_xlog/000000010000000000000086"
LOG: Found LSN: 0/860001D0
(null): not renaming 000000010000000000000087, segment is not complete.
LOG: finished streaming WAL at 0/87000130 (timeline 1)
LOG: Getting the Recovery Time from WAL
LOG: Thread [0]: Opening WAL segment "/var/lib/brm/backups/testdb01/QMRFD9/database/pg_xlog/000000010000000000000086"
INFO: Syncing backup files to disk
INFO: Backup files are synced, time elapsed: 2s
INFO: Validating backup QMRFD9
INFO: Backup QMRFD9 data files are valid
INFO: Backup QMRFD9 resident size: 349MB
INFO: Backup QMRFD9 completed

模拟增量数据

gsql ((openGauss 1.0.1 build e9da9fb9) compiled at 2020-10-01 13:58:32 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
omm=# select pg_current_xlog_location(),
             pg_xlogfile_name(pg_current_xlog_location()),
             pg_xlogfile_name(pg_current_xlog_location()),
             txid_current(),
             now();omm-# omm-# omm-# omm-#
 pg_current_xlog_location |     pg_xlogfile_name     |     pg_xlogfile_name     | txid_current |              now
--------------------------+--------------------------+--------------------------+--------------+-------------------------------
 0/87000130               | 000000010000000000000087 | 000000010000000000000087 |        11209 | 2021-01-11 07:57:25.414668+00
(1 row)
omm=#  select pg_switch_xlog();
pg_switch_xlog
----------------
0/870001D0
(1 row)
omm=# insert into brm_test values(now());
INSERT 0 1
omm=# select pg_current_xlog_location(),
             pg_xlogfile_name(pg_current_xlog_location()),
             pg_xlogfile_name(pg_current_xlog_location()),
             txid_current(),
             now();
omm-# omm-# omm-# omm-#  pg_current_xlog_location |     pg_xlogfile_name     |     pg_xlogfile_name     | txid_current |              now
--------------------------+--------------------------+--------------------------+--------------+-------------------------------
 0/88000208               | 000000010000000000000088 | 000000010000000000000088 |        11211 | 2021-01-11 07:57:40.428398+00
(1 row)
omm=# select pg_switch_xlog();
pg_switch_xlog
----------------
0/880002A8
(1 row)
omm=# select pg_switch_xlog();
pg_switch_xlog
----------------
0/89000150
(1 row)
omm=# insert into brm_test values(now());
INSERT 0 1
omm=#
omm=# select pg_current_xlog_location(),
             pg_xlogfile_name(pg_current_xlog_location()),
             pg_xlogfile_name(pg_current_xlog_location()),
             txid_current(),
             now();omm-# omm-# omm-# omm-#
 pg_current_xlog_location |     pg_xlogfile_name     |     pg_xlogfile_name     | txid_current |              now
--------------------------+--------------------------+--------------------------+--------------+-------------------------------
 0/8A000208               | 00000001000000000000008A | 00000001000000000000008A |        11213 | 2021-01-11 07:58:06.702327+00
(1 row)
omm=# select pg_switch_xlog();
pg_switch_xlog
----------------
0/8A0002A8
(1 row)
omm=# select pg_current_xlog_location(),
             pg_xlogfile_name(pg_current_xlog_location()),
             pg_xlogfile_name(pg_current_xlog_location()),
             txid_current(),
             now();
omm-# omm-# omm-# omm-#  pg_current_xlog_location |     pg_xlogfile_name     |     pg_xlogfile_name     | txid_current |              now
--------------------------+--------------------------+--------------------------+--------------+-------------------------------
 0/8B000130               | 00000001000000000000008B | 00000001000000000000008B |        11214 | 2021-01-11 07:58:15.204024+00
(1 row)
omm=#

查看备份信息

[omm@0150b32d2461 ~]$ gs_probackup show --archive
ARCHIVE INSTANCE 'testdb01'
===============================================================================================================================
TLI  Parent TLI  Switchpoint  Min Segno                 Max Segno                 N segments  Size  Zratio  N backups  Status
===============================================================================================================================
1    0           0/0          000000010000000000000086  00000001000000000000008A  5           80MB  1.00    1          OK
[omm@0150b32d2461 ~]$ gs_probackup show
BACKUP INSTANCE 'testdb01'
===================================================================================================================================
Instance  Version  ID      Recovery Time           Mode  WAL Mode  TLI  Time   Data   WAL  Zratio  Start LSN   Stop LSN    Status
===================================================================================================================================
testdb01  9.2      QMRFD9  2021-01-11 07:56:30+00  FULL  STREAM    1/0   41s  333MB  16MB    0.95  0/86000028  0/860001D0  OK

基于时间点的恢复

恢复全量备份 —> 2 .用户指定了xid/time/lsn. brm进行遍历所有备份,找出最近的备份集通过gs_probackup进行恢复

[omm@0150b32d2461 ~]$  gs_probackup restore --instance testdb01 -D /home/omm/a1/ -i QMRFD9
LOG: Restore begin.
LOG: there is no file tablespace_map
LOG: check tablespace directories of backup QMRFD9
LOG: check external directories of backup QMRFD9
INFO: Validating backup QMRFD9
INFO: Backup QMRFD9 data files are valid
LOG: Thread [1]: Opening WAL segment "/var/lib/brm/backups/testdb01/QMRFD9/database/pg_xlog/000000010000000000000086"
INFO: Backup QMRFD9 WAL segments are valid
INFO: Backup QMRFD9 is valid.
INFO: Restoring the database from backup at 2021-01-11 07:55:57+00
LOG: there is no file tablespace_map
LOG: Restore directories and symlinks...
INFO: Start restoring backup files. PGDATA size: 333MB
LOG: Start thread 1
INFO: Backup files are restored. Transfered bytes: 349MB, time elapsed: 2s
INFO: Restore incremental ratio (less is better): 105% (349MB/333MB)
INFO: Syncing restored files to disk
INFO: Restored backup files are synced, time elapsed: 0
INFO: Restore of backup QMRFD9 completed.

编辑recover.conf —> 3. 如果没有指定time/lsn/xid不生成recover.conf文件.如果指定了生成recover.conf.

vi a1/recover.conf
# recovery_target_time = '2021-01-11 03:40:02+00'
recovery_target_lsn = '0/880002A8'
#recovery_target_action = 'pause'
%p --> pg_xlog/000000010000000000000001
%f --> 000000010000000000000001
restore_command = 'cp /var/lib/brm/wal/testdb01/%f %p'
# restore_command = 'brm get-wal -f %f -p %p'
pause_at_recovery_target = true

编辑配置文件(同一台防止端口冲突关闭归档 —> 4. 是否需要配置postgres.conf文件

echo "port=6433" >> a1/postgresql.conf
echo "archive_mode=off" >> a1/postgresql.conf

启动实例

gs_ctl start -D /home/omm/a1 —> 5. 恢复成功进行gs_ctl start -D 恢复目录

[2021-01-11 08:14:56.533][313][][gs_ctl]: gs_ctl started,datadir is -D "/home/omm/a1"
[2021-01-11 08:14:56.576][313][][gs_ctl]: port:5432 already in use. /proc/net/tcp:
  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
   0: 00000000:1538 00000000:0000 0A 00000000:00000000 00:00000000 00000000    70        0 2236132 1 0000000000000000 100 0 0 10 0
[2021-01-11 08:14:56.576][313][][gs_ctl]: CheckPort: popen(command:lsof -i:5432 | grep -E 'COMMAND|LISTEN').
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
GaussMast   1  omm    7u  IPv4 2236132      0t0  TCP *:postgres (LISTEN)
GaussMast   1  omm    8u  IPv6 2236133      0t0  TCP *:postgres (LISTEN)
[2021-01-11 08:14:56.673][313][][gs_ctl]: port conflict when start server
[2021-01-11 08:14:56.674][313][][gs_ctl]: waiting for server to start...
.0 LOG:  The core dump path in core_pattern is an invalid directory.
0 [BACKEND] LOG:  Begin to start openGauss Database.
2021-01-11 08:14:56.761 [unknown] [unknown] localhost 139701065868352 0 0 [BACKEND] LOG:  Transparent encryption disabled.
2021-01-11 08:14:56.763 [unknown] [unknown] localhost 139701065868352 0 0 [BACKEND] WARNING:  could not create any HA TCP/IP sockets
2021-01-11 08:14:56.765 [unknown] [unknown] localhost 139701065868352 0 0 [BACKEND] WARNING:  No explicit IP is configured for listen_addresses GUC.
2021-01-11 08:14:56.765 [unknown] [unknown] localhost 139701065868352 0 0 [BACKEND] LOG:  InitNuma numaNodeNum: 1 numa_distribute_mode: none inheritThreadPool: 0.
2021-01-11 08:14:56.765 [unknown] [unknown] localhost 139701065868352 0 0 [BACKEND] LOG:  shared memory 321 Mbytes, memory context 11454 Mbytes, max process memory 12288 Mbytes
2021-01-11 08:14:56.765 [unknown] [unknown] localhost 139701065868352 0 0 [BACKEND] LOG:  Initilize the memory protect with Process Chunks number 11454, change bits 20
2021-01-11 08:14:56.785 [unknown] [unknown] localhost 139701065868352 0 0 [CACHE] LOG:  set data cache  size(402653184)
2021-01-11 08:14:56.796 [unknown] [unknown] localhost 139701065868352 0 0 [CACHE] LOG:  set metadata cache  size(134217728)
2021-01-11 08:14:56.848 [unknown] [unknown] localhost 139701065868352 0 0 [BACKEND] LOG:  gaussdb: fsync file "/home/omm/a1/gaussdb.state.temp" success
2021-01-11 08:14:56.849 [unknown] [unknown] localhost 139701065868352 0 0 [BACKEND] LOG:  create gaussdb state file success: db state(STARTING_STATE), server mode(Normal)
2021-01-11 08:14:56.908 [unknown] [unknown] localhost 139701065868352 0 0 [BACKEND] LOG:  max_safe_fds = 976, usable_fds = 1000, already_open = 14
2021-01-11 08:14:56.909 [unknown] [unknown] localhost 139701065868352 0 0 [BACKEND] LOG:  The core dump path in core_pattern is an invalid directory.
2021-01-11 08:14:56.910 [unknown] [unknown] localhost 139701065868352 0 0 [BACKEND] LOG:  Success to start openGauss Database. If you specify "&", please press any key to exit...
[2021-01-11 08:14:57.675][313][][gs_ctl]:  waitpid 319 failed, exitstatus is 256, ret is 2
[2021-01-11 08:14:57.675][313][][gs_ctl]: stopped waiting
[2021-01-11 08:14:57.675][313][][gs_ctl]: could not start server
[2021-01-11 08:14:57.675][313][][gs_ctl]: Examine the log output.
[omm@0150b32d2461 ~]$ vi a1/recovery.conf
[omm@0150b32d2461 ~]$ gs_ctl start -D /home/omm/a1/
[2021-01-11 08:15:29.342][352][][gs_ctl]: gs_ctl started,datadir is -D "/home/omm/a1"
[2021-01-11 08:15:29.401][352][][gs_ctl]: port:5432 already in use. /proc/net/tcp:
  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
   0: 00000000:1538 00000000:0000 0A 00000000:00000000 00:00000000 00000000    70        0 2236132 1 0000000000000000 100 0 0 10 0
[2021-01-11 08:15:29.401][352][][gs_ctl]: CheckPort: popen(command:lsof -i:5432 | grep -E 'COMMAND|LISTEN').
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
GaussMast   1  omm    7u  IPv4 2236132      0t0  TCP *:postgres (LISTEN)
GaussMast   1  omm    8u  IPv6 2236133      0t0  TCP *:postgres (LISTEN)
[2021-01-11 08:15:29.500][352][][gs_ctl]: port conflict when start server
[2021-01-11 08:15:29.500][352][][gs_ctl]: waiting for server to start...
.0 LOG:  The core dump path in core_pattern is an invalid directory.
0 [BACKEND] LOG:  Begin to start openGauss Database.
2021-01-11 08:15:29.627 [unknown] [unknown] localhost 140439454434368 0 0 [BACKEND] LOG:  Transparent encryption disabled.
2021-01-11 08:15:29.628 [unknown] [unknown] localhost 140439454434368 0 0 [BACKEND] WARNING:  could not create any HA TCP/IP sockets
2021-01-11 08:15:29.631 [unknown] [unknown] localhost 140439454434368 0 0 [BACKEND] WARNING:  No explicit IP is configured for listen_addresses GUC.
2021-01-11 08:15:29.631 [unknown] [unknown] localhost 140439454434368 0 0 [BACKEND] LOG:  InitNuma numaNodeNum: 1 numa_distribute_mode: none inheritThreadPool: 0.
2021-01-11 08:15:29.631 [unknown] [unknown] localhost 140439454434368 0 0 [BACKEND] LOG:  shared memory 321 Mbytes, memory context 11454 Mbytes, max process memory 12288 Mbytes
2021-01-11 08:15:29.631 [unknown] [unknown] localhost 140439454434368 0 0 [BACKEND] LOG:  Initilize the memory protect with Process Chunks number 11454, change bits 20
2021-01-11 08:15:29.659 [unknown] [unknown] localhost 140439454434368 0 0 [CACHE] LOG:  set data cache  size(402653184)
2021-01-11 08:15:29.674 [unknown] [unknown] localhost 140439454434368 0 0 [CACHE] LOG:  set metadata cache  size(134217728)
2021-01-11 08:15:29.741 [unknown] [unknown] localhost 140439454434368 0 0 [BACKEND] LOG:  gaussdb: fsync file "/home/omm/a1/gaussdb.state.temp" success
2021-01-11 08:15:29.741 [unknown] [unknown] localhost 140439454434368 0 0 [BACKEND] LOG:  create gaussdb state file success: db state(STARTING_STATE), server mode(Normal)
2021-01-11 08:15:29.775 [unknown] [unknown] localhost 140439454434368 0 0 [BACKEND] LOG:  max_safe_fds = 976, usable_fds = 1000, already_open = 14
2021-01-11 08:15:29.775 [unknown] [unknown] localhost 140439454434368 0 0 [BACKEND] LOG:  The core dump path in core_pattern is an invalid directory.
2021-01-11 08:15:29.777 [unknown] [unknown] localhost 140439454434368 0 0 [BACKEND] LOG:  Success to start openGauss Database. If you specify "&", please press any key to exit...
[2021-01-11 08:15:30.517][352][][gs_ctl]:  done
[2021-01-11 08:15:30.517][352][][gs_ctl]: server started (/home/omm/a1)

验证

[omm@0150b32d2461 ~]$ gsql -p6433
gsql ((openGauss 1.0.1 build e9da9fb9) compiled at 2020-10-01 13:58:32 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
omm=# select * from brm_test;
t
----------------------------
2021-01-11 03:33:40.737837
2021-01-11 03:38:46.32794
2021-01-11 03:39:42.466014
2021-01-11 03:40:02.816579
2021-01-11 07:29:21.98839
2021-01-11 07:57:36.799356
(6 rows)

lsn

[omm@7ec0d4302ea3 ~]$ gs_probackup validate --instance testdb01 -D /home/omm/a1/ --recovery-target-lsn=0/79000228
LOG: Validate begin.
INFO: Validating backup QMR39R
INFO: Backup QMR39R data files are valid
LOG: Thread [1]: Opening WAL segment "/var/lib/brm/backups/testdb01/QMR39R/database/pg_xlog/000000010000000000000076"
LOG: Extracting pagemap from tli 1 on range from 0/760001D0 to 0/0
LOG: Thread [1]: Opening WAL segment "/var/lib/brm/wal/testdb01/000000010000000000000076"
WARNING: Thread [1]: Could not read WAL record at 0/77000000: read xlog page failed at 0/77000028
ERROR: Thread [1]: WAL segment "/var/lib/brm/wal/testdb01/000000010000000000000076" is absent
WARNING: Recovery can be done up to time 2021-01-11 03:35:03+00, xid 9930 and LSN 0/760001D0
ERROR: Not enough WAL records to lsn 0/79000228
[omm@7ec0d4302ea3 ~]$ ls -l /var/lib/brm/wal/testdb01/000000010000000000000076
-rw------- 1 omm omm 16777216 Jan 11 03:35 /var/lib/brm/wal/testdb01/000000010000000000000076
[omm@0150b32d2461 ~]$ gs_probackup restore --instance testdb01 --recovery-target-lsn='0/880002A8' --restore-command='cp /var/lib/brm/wal/testdb01/%f %p' --no-validate -D /home/omm/a1/
LOG: Restore begin.
LOG: there is no file tablespace_map
LOG: check tablespace directories of backup QMRFD9
# recovery.conf generated by pg_probackup 2.4.2
LOG: check external directories of backup QMRFD9
WARNING: Backup QMRFD9 is used without validation.
ERROR: Backup QMRFD9 was created for version 9.2 which doesn't support recovery_target_lsn   --->
目录
相关文章
|
关系型数据库 MySQL 数据库
企业实战(15)阿里云数据库RDS MySQL 物理全备文件数据恢复至自建数据库Mysql 5.7中
企业实战(15)阿里云数据库RDS MySQL 物理全备文件数据恢复至自建数据库Mysql 5.7中
353 0
|
JSON 数据库 数据安全/隐私保护
Mongo数据导入导出备份恢复
Mongo数据导入导出备份恢复
191 0
|
Oracle 关系型数据库 Shell
PostgreSQL备份恢复 12.2
本文参考https://yq.aliyun.com/articles/59359
1173 0
PostgreSQL备份恢复 12.2
|
关系型数据库 数据库 PostgreSQL
|
数据库
数据库备份 DBS管理备份计划操作步骤
数据库备份DBS提供全量备份、增量备份和数据恢复能力。在购买并配置备份计划后,用户还可以随时对备份计划进行管理。
1144 0
|
存储 安全 关系型数据库
阿里云发布数据库备份DBS,5分钟完成数据库上云备份
数据库备份DBS作为一款阿里云产品,专注于阿里云体系数据库的一站式保护,用于上云备份、跨云灾备、云归档、云中备份、异地灾备等场景。
4022 0
|
SQL 监控 关系型数据库
Mysql 备份恢复与xtrabackup备份
新年贺词   2017年即将过去,新年的钟声即将敲响。在这辞旧迎新的美好时刻,我向全国各族人民,向香港特别行政区同胞、澳门特别行政区同胞,向台湾同胞和海外侨胞,向工作在一线的运维工程师们,向为开源事业做出贡献的朋友们,向世界各国各地区的朋友们,致以新年的祝福!   今天是2017的最后一天,在这样一个特殊的日子里,希望大家都能事事顺心,快乐常在,希望在2018年里都能有所成就,创造不一样的价值。
2813 0