数据库异常恢复2-备份文件恢复(快速恢复的手动启动方式)

(四) 备份文件备份恢复的概念

本次所说的数据恢复有异于数据的导入导出

1. 备份工具

gbase8s数据库提供了两种工具进行完成系统物理备份、逻辑日志备份和系统恢复:ontape和onbar

  • ontape:提供了基本的系统物理备份、日志备份和恢复能力,其规定必须使用命令行且必须是gbase8s用户
    • 优点:容易使用
    • 缺点:效率相对较低,无法并行
  • onbar:可以结合其他存储管理软件进行工作,也可以使用第三方的存储管理软件进行数据库的备份和恢复
    • 可以将数据库实例恢复到某个时间点
    • 可以恢复到某个日志文件
    • onbar备份和恢复的性能可以进行监控
    • 如果有多个带库驱动器,onbar的备份和恢复可以并行
  • 两者的备份和恢复过程相同
  • 由于硬件问题,一般使用ontape备份较多

2. 备份的参数

备份会涉及到物理日志和逻辑日志的备份,关于这两个文件的参数如下:

  • 物理日志:
    • TAPEDEV:物理备份的设备路径,如果此处设置了路径,则自动备份和手动备份时会默认选择此路径,也可以手动指定备份路径
    • TAPEBLK:磁带写的块大小,可以不改动
    • TAPESIZE:磁带或者文件大小,可以不改动
  • 逻辑日志
    • LTAPEDEV:逻辑日志的备份路径
      • 如果设置为/dev/null:则逻辑日志切换后,则会立刻设置为可使用状态,即会丢失逻辑日志备份的机会,逻辑日志中的信息回永远丢失。
      • 如果设置为有效路径:则逻辑日志切换后,会设置为待备份状态
      • 如果不备份可以设置为/dev/null,如果备份,则需要设置有效路径,且需要定期进行备份逻辑日志,否则逻辑日志写满会阻塞所有的线索
    • LTAPEBLK:块大小,可以不改动
    • LTAPSIZE:磁带文件大小,可以不改动

3. 备份的级别

gbase8s的系统备份有三个不同的级别:

  • 零级备份:一个基础的备份,包含了在备份命令执行时数据库服务器或者某个数据空间上所有数据的一个拷贝
  • 一级备份:包含最后一次零级备份之后所修改的那些数据的拷贝
  • 二级备份:包含最后一次零级备份或一级备份之后所修改的那些数据的拷贝

4. 备份启动后对当前数据库状态的检查

  • 内部准备,决定是否开始备份
    • 开启备份后,数据库服务器会临时冻结住逻辑日志的状态,并检查逻辑日志空间
      • 如果剩余的空间低于总数据空间的一半,服务器会中断备份,需要备份逻辑日志,然后再重新执行备份
      • onbar的备份工具会自动停止备份,然后进行备份逻辑日志备份,然后重新尝试备份
    • 上述通过检验后,会进行检查点操作,检查点标记了备份的同步点,即哪些页在检查点时刻是一致的。
      • 检查后,服务器通过时间戳判断哪些页是需要备份的,而在时间戳之后创建的页面则不会被备份,物理日志修改前的数据页将备份
    • 服务器会创建一个列表,这个列表包含了每个chunk上需要拷贝备份的页面,在备份检查点时,chunk中没有使用的页不会被备份
  • 检查后,后续如果有用户发出更新操作的设计
    • 备份检查点发出后,如果有用户进行数据库更新操作,
      • 数据库会在指定的dbspacetemp参数指定的临时dbspace中创建临时表,用来存放修改前的记录
      • 如果dbspace上没有足够的空间,备份会被终止

5. ontape过程中dbspace被备份的顺序

  • 首先在磁带上生成控制页的信息,包括备份中包含的dbspace的列表、备份级别、备份的时间戳和日志信息
  • 然后备份系统保留页
  • 如果是零级备份,在备份时,会执行一次checkpoint,在执行checkpoint时,open事务将会被备份
  • 如果系统中包含blobspace,下一步会备份这部分数据库
    • 每个blobspace部分会包含一个磁带控制页,用来记录这些备份的空间中chunks的映射关系
    • 开始备份blobspace时,新的blobspace将会被挂起,直到blobspace备份结束
    • 只备份使用过的blobspace页,而不是所有的页
  • 普通的dbspace并不会按照特定的顺序进行备份,每个dbspace部分会包含一个磁带控制页,用来记录这些备份的空间chunks的映射关系。在执行checkpoint时没有使用的页面不会被备份
  • 当最后一个chunk的最后一个使用的页面备份结束之后,会写一个

(五) 其他特殊对象的备份

1. 简单大对象的日志备份

当使用simple binary-large-object简答大对象数据空间时,需要考虑日志

  • blob数据的更新不写日志,当对blob进行更新时,会同时保留旧的blobpage和新的blobpage,而且更新时会在逻辑日志中写入free-map page和free-map list page的记录
  • 只有当含有free-map page和free-map list page记录的逻辑日志被备份后,旧的blobpage才会被释放
  • 为了保证blobpage尽快释放,需要尽快备份日志
  • 而且针对blob,如果新增的blbospace和chunk,增加后不能马上使用,需要新增过程中的逻辑日志被切换才可以使用,可以onmode -l切换

2. 智能大对象的备份

智能大对象的备份分为两部分:元数据和智能大对象子系统

  • 元数据的备份:双重比较确定需要备份的页面
    • 不管智能大对象做几级备份,都需要去读large-object header页面,在内存中生成一个需要备份的页面列表
    • 对第一轮检查出来的需要备份的页面,比较之前系统备份时的时间戳、当前系统的时间戳和页面的时间戳:落在备份时间戳和当前时间戳的页面时间戳筛选出来
    • 针对大对象的修改,用户可以通过page head,也可以不通过,所以上述第一轮检查不能完全筛选出来需要备份的页面,所以进行了第二轮时间戳的比较
  • 智能大对象子系统的备份:
    • 在sbspace撒花姑娘加锁,读取large-object header partition中的信息,生成需要备份的列表,这些列表也可称作backup descriptor page
    • 这些列表被发送到数据库服务器的备份线索,然后扫描和检索这些表
    • 在这个过程中,可能会用到large buffer writes,备份线索会把这些页面送到客户端程序
  • sbspace的页面备份顺序如下,backup descriptor pages是一种特殊的结构,它用来记录所备份用户数据的偏移量和大小

(六) 逻辑日志备份

1. 逻辑日志的内容和逻辑备份的概述

  • 逻辑日志:记录了检查点、DDL语句以及数据库的插入更新操作
    • 逻辑日志初始化时位于rootdbs上,大多数情况下会新建一个单独存放逻辑日志的数据空间
    • 逻辑日志是循环使用的,当逻辑日志使用完毕,会重新开始写第一个逻辑日志文件,其前提是当重写第一个逻辑日志文件时,必须已经被备份
  • 逻辑日志备份是把一个或多个逻辑日志文件复制到磁盘或磁带的过程

2. 逻辑备份的重要性

  • 提供了恢复所有的事务的能力:恢复分为物理恢复和逻辑恢复
    • 物理恢复是从备份文件中恢复数据,但是备份文件只存在备份时存在的数据,而在备份时间之后的数据并不包含在物理备份文件中
    • 备份文件之后的数据操作都存放在逻辑日志中,如果不备份逻辑日志,则备份文件之后的所有数据都会丢失
  • 避免了逻辑日志写满阻塞所有线索的运行:
    • 日志文件在全部使用之后,需要复用,而在复用之前,需要对已经使用的逻辑日志文件进行备份,如果不备份,服务器所有命令都要被阻塞,直到逻辑日志备份完成
    • 如果配置参数LTAPEDEV设置为/dev/null时,不需要对逻辑日志进行备份,逻辑日志写满后会自动标记为已经备份。可以通过onmode -wf和onmode -wm动态修改
  • 防止逻辑日志文件所在的磁盘损坏导致数据库无法修复:
    • 假设设置为/dev/null,如果日志文件所在的磁盘失败,则所有逻辑日志都会丢世,如果使用了备份,则恢复时,可以尽可能的恢复数据,只有仍没有备份的日志文件包含的事务不能恢复
    • 可以使用HDR或者RSS技术建立一个备份系统
    • 也可以对日志chunk做镜像,当主chunk失败,镜像的chunk仍可以使用,但是镜像chunk不能在同一块磁盘上
  • 许多类型的恢复需要追加逻辑日志:恢复工具和恢复方法不同时,可能需要逻辑日志完成一个完整的恢复
    • 恢复单个dbspace时,逻辑日志可以从备份的时间点追加到当前的时间

3. 逻辑日志的备份策略

  • 按需备份:如果使用ontape进行备份,也称作是手动备份
    • 他会备份所有的没有备份的逻辑日志,但不备份当前的逻辑日志
    • 如果使用了这种备份方式,需要多次执行备份命令,且确保两次备份之间,逻辑日志没有使用完毕,否则会阻塞所有的线索(进程)
  • 连续日志备份:如果备份数据和日志的磁带设或文件是分开的,则使用使用连续日志备份(自动备份)
    • 这种备份方式,会在逻辑日志切换或者写满后自动备份
  • 注:恢复逻辑日志文件比直接从系统备份中恢复慢,所以当逻辑日志较多时,可以进行一级备份或者二级备份,避免恢复大量的逻辑日志文件

(七) 恢复

1. 恢复的要求

为了保证数据的安全,当进行数据恢复时,需要用到一些配置信息,需要和备份时的参数信息一致

  • 配置参数文件:onconfig
  • sqlhosts
  • onbar恢复,需要emergency boot file(ixbar.#SERVERNUM#)和oncfg

2. 需要恢复的场景和各场景对冷恢复和热恢复的使用

场景

  • 整个数据库服务器不能用,无法启动到在线状态
  • 关键的dbspace不能用变成离线
  • 需要将数据恢复到另一个实例
  • 需要搭建HDR或者RSS
  • 非关键的dbspace及其镜像的dbspace不能用

场景的恢复使用

  • 冷恢复:冷恢复是指服务器处于离线状态,上述场景前四个为冷恢复
  • 热恢复:非关键dbspace不能使用,可以在在线状态进行数据恢复,恢复期间,数据库仍可以交易
  • 有时候为了尽快恢复服务器的使用,可能冷热混合使用,称为mixed restore,先冷恢复关键dbspace,再热恢复非关键dbspace

3. 针对恢复开始时对没有备份的逻辑日志进行日志抢救

  • 在数据库没有启动或者无法启动时,仍然可以进行逻辑备份
  • 只能备份那些没有被备份其没有被损坏的逻辑日志
  • 抢救的日志和之前备份的日志可以一起回滚
  • 在原来的数据库实例进行冷恢复时,如果仍然有没有抢救的日志,在恢复过程中,会提醒备份逻辑日志

4. 物理恢复和逻辑恢复

  • 物理恢复是恢复0级备份、1级备份、2级备份中的dbspace和blobspace
  • 逻辑恢复是指找到磁带上的逻辑日志备份,通过这些事务把数据恢复到失败前的状态

5. 特殊数据空间sbsapce的恢复过程

  • 先从磁带上恢复元数据
  • backup-descriptor control page列表列出了用户页面将要被恢复的目标去向,这些列表 的物理地址和extent大小被记录在in-memory表中
  • 恢复的客户端程序从磁带上读取那些smart-large-object页面,服务器把他们写入到control page所指明的位置

(八) 备份操作

1. TAPEDEV和LTAPEDEV设置有效路径的情况

--备份物理日志
ontap -s -L 0
--备份逻辑日志,会提示是否保留当前日志
ontape -a

2. 备份还原冷恢复操作

  • 冷恢复的过程中,会提示抢救没有备份的逻辑日志
  • 冷恢复时:如果创建chunk使用了link,可以使用link指向新的位置,但是大小和偏移量不能变
  • 冷恢复之后为静止状态,需要转为在线

冷恢复全部文件

#在datadbs5创建test1数据库,创建test1表,插入id=3的数据
> create database test1 in datadbs5 with log;
Database closed.
Database created.
> create table test1(id int);
Table created.
> insert into test1 values(1);
1 row(s) inserted.
>
[gbasedbt@VM-8-4-centos ~]$ ontape -s
Your evaluation license will expire on 2024-11-02 00:00:00
Please enter the level of archive to be performed (0, 1, or 2) 0
100 percent done.
File created: /home/gbasedbt/gbase/backup/phy/VM-8-4-centos_1_L0
Please label this tape as number 1 in the arc tape sequence.
This tape contains the following logical logs:59
Program over.
[gbasedbt@VM-8-4-centos ~]$ ontape -a
Your evaluation license will expire on 2024-11-02 00:00:00
Performing automatic backup of logical logs.
Do you want to back up the current logical log? (y/n) y
File created: /home/gbasedbt/gbase/backup/log/VM-8-4-centos_1_Log0000000059
Program over.
[gbasedbt@VM-8-4-centos chunks]$ rm -rf datachk5
[gbasedbt@VM-8-4-centos chunks]$ touch datachk5
  • 全部还原
[gbasedbt@VM-8-4-centos chunks]$ ontape -r
Your evaluation license will expire on 2024-11-02 00:00:00
Restore will use level 0 archive file /home/gbasedbt/gbase/backup/phy/VM-8-4-centos_1_L0. Press Return to continue ...
#是否继续还原
Continue restore? (y/n)y
#是否备份当前的遗留在线日志
Do you want to back up the logs? (y/n)n
Your evaluation license will expire on 2024-11-02 00:00:00
#是否进行一级备份文件还原,没有一级备份,不需要
Restore a level 1 archive (y/n) Restore a level 1 archive (y/n)
#是否还原逻辑日志
Do you want to restore log tapes? (y/n)y
#还原之后将会处于静态模式,使用onmode -m进行还原

3. 热恢复指定数据空间

  • 服务器在线时,且要恢复的数据空间有逻辑日志且不是关键数据空间才可以进行热恢复
    • 热恢复时如果dbspace为在线状态,则ontape恢将在线转为离线

热恢复指定文件

[gbasedbt@VM-8-4-centos chunks]$ dbaccess test1 -
Your evaluation license will expire on 2024-11-02 00:00:00
Database selected.
> select * from test1;id1
1 row(s) retrieved.
> drop table test1;
Table dropped.
[gbasedbt@VM-8-4-centos chunks]$ ontape -r -D datadbs5
Your evaluation license will expire on 2024-11-02 00:00:00
DBspace 'datadbs5' is online; restoring 'datadbs5' will bring all chunks
comprising the DBspace OFFLINE and will terminate all active
transactions and queries accessing the DBspace.
#是否将数据库置为离线状态进行还原
OK to continue?y
Restore will use level 0 archive file /home/gbasedbt/gbase/backup/phy/VM-8-4-centos_1_L0. Press Return to continue ...
Archive Tape Information
Tape type:      Archive Backup Tape
Online version: GBase Database Server Version 12.10.FC4G1TL
Archive date:   Sun Dec 24 16:23:39 2023
User id:        gbasedbt
Terminal id:    /dev/pts/1
Archive level:  0
Tape device:    /home/gbasedbt/gbase/backup/phy/
Tape blocksize (in k): 32
Tape size (in k): system defined for directory
Tape number in series: 1
#是否需要还原上述信息
Continue restore? (y/n)y
Spaces to restore:1 [datadbs5                                                                                                                        ]
#是否需要还原一级备份
Restore a level 1 archive (y/n) Restore a level 1 archive (y/n) n、
#是否需要还原逻辑日志
Do you want to restore log tapes? (y/n)y
Roll forward should start with log number 59
Restore will use log backup file /home/gbasedbt/gbase/backup/log/VM-8-4-centos_1_Log0000000059. Press Return to continue ...
Rollforward log file /home/gbasedbt/gbase/backup/log/VM-8-4-centos_1_Log0000000059 ...
Rollforward log file /home/gbasedbt/gbase/backup/log/VM-8-4-centos_1_Log0000000060 ...
Rollforward log file /home/gbasedbt/gbase/backup/log/VM-8-4-centos_1_Log0000000061 ...
Recommendation: continue the warm restore until  log 62 is replayed.
The last log that has been restored is: 61. If you want to stop the
restore at this log, choose commit, otherwise, choose suspend.
If you have not performed a backup that includes the log 62,
perform a backup using the ontape -a command. Continue the suspended
log restore using the ontape -l command.
#选择y是还原当前日志信息中的操作,n是不还原当前日志中的操作
Do you want to suspend (y), commit (n) or abort (CTRL/C) logical restore?
n
[gbasedbt@VM-8-4-centos chunks]$ dbaccess test1 -
Your evaluation license will expire on 2024-11-02 00:00:00Database selected.> select * from test1;id11 row(s) retrieved.>

(九) 针对快速备份的补充——外部文件备份和手动启动快速恢复

1. 外部文件备份恢复的概述

  • 外部文件备份针对的是正常情况下,将数据空间文件通过cp或者tar的方式备份到其他位置
  • 如果chunk空间出现问题,则通过onclear -ky关闭数据库
  • 进行日志抢救
  • 根据坏的chunk显示,删除或者移动、重命名旧的chunk空间名称
  • 在服务器没有启动时,通过cp或者tar的方式将之前备份的数据空间文件拷贝回来
  • 然后通过ontap -p -e命令将数据库手动启动到快速恢复阶段
  • 然后通过onstat -l前滚所有的逻辑日志,使数据库处于一致的状态
  • 注:外部恢复时,不能进行日志抢救工作,需要提前做
  • 抢救日志的前提是需要设置物理日志和逻辑日志的参数
    • onconfig文件的:TAPEDEV和LTAPEDEV

2. 操作步骤1-修改参数并设置做备份

--查看信息
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ ~]$ onstat -g dis
Your evaluation license will expire on 2025-05-26 00:00:00
On-Line -- Up 00:02:32 -- 258344 Kbytes
There are 2 servers found
Server        : node1
Server Number : 1
Server Type   : IDS
Server Status : Up
Server Version: GBase Database Server Version 12.10.FC4G1TL
Shared Memory : 0x44000000
GBASEDBTDIR   : /home/gbasedbt/gbase
ONCONFIG      : /home/gbasedbt/gbase/etc/onconfig.node1
SQLHOSTS      : /home/gbasedbt/gbase/etc/sqlhosts.node1
Host          : iZ2ze5s78e4tanwe5q2znxZ
--如上可知onconfig文件位置在/home/gbasedbt/gbase/etc/onconfig.node1
--更改步骤不进行描述,更改结果如下
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ ~]$ cat gbase/etc/onconfig.node1 |grep -iE '^TAPEDEV|^LTAPEDEV'
TAPEDEV /home/gbasedbt/BACKUP/BACK
LTAPEDEV /home/gbasedbt/BACKUP/LOGICAL
--按照参数值创建文件
mkdir /home/gbasedbt/BACKUP/BACK
mkdir /home/gbasedbt/BACKUP/LOGICAL
chmod 777 /home/gbasedbt/BACKUP
--重启数据库使参数值生效,生效结果如下
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ ~]$ onstat -g cfg|grep EDEV
Your evaluation license will expire on 2025-05-26 00:00:00
TAPEDEV                   /home/gbasedbt/BACKUP/BACK
LTAPEDEV                  /home/gbasedbt/BACKUP/LOGICAL
--系统备份
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ ~]$ ontape -s -L 0
Your evaluation license will expire on 2025-05-26 00:00:00
100 percent done.
File created: /home/gbasedbt/BACKUP/BACK/iZ2ze5s78e4tanwe5q2znxZ_1_L0Please label this tape as number 1 in the arc tape sequence.
This tape contains the following logical logs:26Program over.
--逻辑备份
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ ~]$ ontape -a
Your evaluation license will expire on 2025-05-26 00:00:00Performing automatic backup of logical logs.Do you want to back up the current logical log? (y/n) y
File created: /home/gbasedbt/BACKUP/LOGICAL/iZ2ze5s78e4tanwe5q2znxZ_1_Log0000000026Program over.

3. 操作步骤2-根据数据空间制定相应计划

--查看当前的数据空间
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ ~]$ onstat -d
Your evaluation license will expire on 2025-05-26 00:00:00
On-Line -- Up 00:00:52 -- 250152 KbytesDbspaces
address          number   flags      fchunk   nchunks  pgsize   flags    owner    name
452a5028         1        0x70001    1        2        2048     N  BA    gbasedbt rootdbs
453bd308         2        0x60001    2        1        2048     N  BA    gbasedbt llogdbs
453bd538         3        0x1070001  3        1        2048     N PBA    gbasedbt plogdbs
453bd768         4        0x60001    4        2        16384    N  BA    gbasedbt datadbs1
453bd998         5        0x42001    5        1        16384    N TBA    gbasedbt tempdbs1
453bdbc8         6        0x60011    6        1        32768    N BBA    gbasedbt bindbs
453bddf8         7        0x68001    7        1        2048     N SBA    gbasedbt sbdbs
52c7c028         8        0x60001    8        1        16384    N  BA    gbasedbt datadbs28 active, 2047 maximumNote: For BLOB chunks, the number of free pages shown is out of date.Run 'onstat -d update' for current stats.Chunks
address          chunk/dbs     offset     size       free       bpages     flags pathname
452a5258         1      1      0          100000     80759                 PO-B-- /home/gbasedbt/gbase/node1_dbs/rootdbs
52c7c258         2      2      0          1024000    123947                PO-B-- /home/gbasedbt/gbase/node1_dbs/llogdbs
52c7d028         3      3      0          1024000    0                     PO-BE- /home/gbasedbt/gbase/node1_dbs/plogdbs
52c7e028         4      4      0          128000     125489                PO-B-- /home/gbasedbt/gbase/node1_dbs/datadbs1
52c7f028         5      5      0          128000     127947                PO-B-- /home/gbasedbt/gbase/node1_dbs/tempdbs1
52c80028         6      6      0          1024000   ~64000      64000      POBB-- /home/gbasedbt/gbase/node1_dbs/bindbs
52c81028         7      7      0          1024000    955003     955004     POSB-- /home/gbasedbt/gbase/node1_dbs/sbdbsMetadata 68943      51302      68943
52c82028         8      8      0          18750      17551                 PO-B-- /home/gbasedbt/gbase/node1_dbs/datadbs2
52c83028         9      1      0          50000      36971                 PO-B-- /home/gbasedbt/gbase/node1_dbs/rootchk2
52c84028         10     4      0          250000     249997                PO-B-- /home/gbasedbt/gbase/node1_dbs/datadbs1_210 active, 32766 maximumNOTE: The values in the "size" and "free" columns for DBspace chunks aredisplayed in terms of "pgsize" of the DBspace to which they belong.Expanded chunk capacity mode: always
  • 由于数据空间有限,所以本次以rootdbs数据空间和数据空间datadbs2为测试案例

4. 操作步骤3-在datadbs2中创建初始数据库、表和数据

[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ ~]$ dbaccess test -
Your evaluation license will expire on 2025-05-26 00:00:00Database selected.> create database test3 in datadbs2 with log;
Database closed.
Database created.
Elapsed time: 0.535 sec
> create table test(id int);
Table created.
Elapsed time: 0.002 sec
> insert into test values(1),(3),(10),(11),(11),(11),(11),(11),(11);
9 row(s) inserted.
> select * from test;id1310111111111111
9 row(s) retrieved.
Elapsed time: 0.032 sec

5. 操作步骤4-阻塞数据库对数据文件进行备份

[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ ls -l
total 16888028
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:06 bindbs
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:06 datadbs1
-rw-rw---- 1 gbasedbt gbasedbt 4096000000 Jun 20 21:06 datadbs1_2
-rw-rw---- 1 gbasedbt gbasedbt  307200000 Jun 20 21:06 datadbs2
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:06 llogdbs
-rw-rw-r-- 1 gbasedbt gbasedbt          0 Jun 17 13:42 plog2
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:06 plogdbs
-rw-rw---- 1 gbasedbt gbasedbt  102400000 Jun 20 21:06 rootchk2
-rw-rw---- 1 gbasedbt gbasedbt  204800000 Jun 20 21:06 rootdbs
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:06 sbdbs
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:06 tempdbs1[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ mkdir test
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ cp root* datadbs2 test/[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ ls -l test/
total 600004
-rw-rw---- 1 gbasedbt gbasedbt 307200000 Jun 20 21:06 datadbs2
-rw-rw---- 1 gbasedbt gbasedbt 102400000 Jun 20 21:06 rootchk2
-rw-rw---- 1 gbasedbt gbasedbt 204800000 Jun 20 21:06 rootdbs

6. 操作步骤5-取消阻塞,并执行一些插入语句

--取消阻塞
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ onmode -c unblock
Your evaluation license will expire on 2025-05-26 00:00:00
--插入两条数据
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ dbaccess test3 -
Your evaluation license will expire on 2025-05-26 00:00:00
Database selected.
> select * from test;id1310111111111111
9 row(s) retrieved.
Elapsed time: 0.001 sec
> insert into test values(12);
1 row(s) inserted.
Elapsed time: 0.002 sec
> insert into test values(13);
1 row(s) inserted.
Elapsed time: 0.002 sec
--切换日志和检查点
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ onmode -l
Your evaluation license will expire on 2025-05-26 00:00:00
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ onmode -c
Your evaluation license will expire on 2025-05-26 00:00:00--插入第二批数据
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ dbaccess test3 -
Your evaluation license will expire on 2025-05-26 00:00:00
Database selected.
> insert into test values(23);
1 row(s) inserted.
Elapsed time: 0.001 sec
> insert into test values(24);
1 row(s) inserted.
Elapsed time: 0.004 sec--再次进行切换日志和检查点
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ onmode -c
Your evaluation license will expire on 2025-05-26 00:00:00
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ onmode -l
Your evaluation license will expire on 2025-05-26 00:00:00
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ onmode -c
Your evaluation license will expire on 2025-05-26 00:00:00

7. 操作步骤6-停止数据库,删掉旧的数据文件,将拷贝的文件改名

[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ onclean -ky
Your evaluation license will expire on 2025-05-26 00:00:00
onclean: Cleaning up processes and resources for 'node1'...- Looking for the master daemon process: 1527798- Looking for the shmem key: 52574803- Looking for the shmem key: 52574804- Looking for semaphore ID: 131118- Looking for the shmem key: 52574801- Looking for the shmem key: 52574802- Looking for the shmem key: 52574805- Looking for the shmem key: 52574806- Looking for the shmem key: 52574807[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ rm -rf rootdbs rootchk2 datadbs2
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ cp test/* ./[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ ls -l
total 16888032
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:06 bindbs
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:06 datadbs1
-rw-rw---- 1 gbasedbt gbasedbt 4096000000 Jun 20 21:06 datadbs1_2
-rw-rw---- 1 gbasedbt gbasedbt  307200000 Jun 20 21:08 datadbs2
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:07 llogdbs
-rw-rw-r-- 1 gbasedbt gbasedbt          0 Jun 17 13:42 plog2
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:07 plogdbs
-rw-rw---- 1 gbasedbt gbasedbt  102400000 Jun 20 21:08 rootchk2
-rw-rw---- 1 gbasedbt gbasedbt  204800000 Jun 20 21:08 rootdbs
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:06 sbdbs
-rw-rw---- 1 gbasedbt gbasedbt 2097152000 Jun 20 21:06 tempdbs1
drwxrwxr-x 2 gbasedbt gbasedbt       4096 Jun 20 21:06 test

8. 操作步骤7-抢救日志

[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ ontape -S
Your evaluation license will expire on 2025-05-26 00:00:00
Do you want to back up the logs? (y/n)y
File created: /home/gbasedbt/BACKUP/LOGICAL/iZ2ze5s78e4tanwe5q2znxZ_1_Log0000000029
File created: /home/gbasedbt/BACKUP/LOGICAL/iZ2ze5s78e4tanwe5q2znxZ_1_Log0000000030Program over.

9. 操作步骤8-进行恢复

[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ ontape -p -e
Your evaluation license will expire on 2025-05-26 00:00:00
Your evaluation license will expire on 2025-05-26 00:00:00
External restore failed.
External restore of critical dbspace 'llogdbs' failed.
External restore cannot continue.
Program over.[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ ontape -l
Your evaluation license will expire on 2025-05-26 00:00:00
Logical restore failed
rootdbs which is the ROOT DBspace
is being restored and llogdbs has not been physically restored.
If the ROOT DBspace or a DBspace containing the physical log or a logical
log file is restored, then the ROOT DBspace and all DBspaces containing
a logical log file or physical log file must be physically restored.
Program over.[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ onstat -
Your evaluation license will expire on 2025-05-26 00:00:00
Fast Recovery -- Up 00:00:23 -- 250152 Kbytes

10. 操作步骤9-重启检查数据空间、检查数据

[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ onclean -ky
Your evaluation license will expire on 2025-05-26 00:00:00
onclean: Cleaning up processes and resources for 'node1'...- Looking for the master daemon process: 1529353- Looking for the shmem key: 52574803- Looking for the shmem key: 52574804- Looking for semaphore ID: 163846- Looking for the shmem key: 52574801- Looking for the shmem key: 52574802- Looking for the shmem key: 52574805- Looking for the shmem key: 52574806
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ oninit -vy
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ onstat -d
Your evaluation license will expire on 2025-05-26 00:00:00
On-Line -- Up 00:16:14 -- 258344 KbytesDbspaces
address          number   flags      fchunk   nchunks  pgsize   flags    owner    name
452a5028         1        0x40001    1        2        2048     N  BA    gbasedbt rootdbs
453bd308         2        0x40001    2        1        2048     N  BA    gbasedbt llogdbs
453bd538         3        0x1040001  3        1        2048     N PBA    gbasedbt plogdbs
453bd768         4        0x40001    4        2        16384    N  BA    gbasedbt datadbs1
453bd998         5        0x42001    5        1        16384    N TBA    gbasedbt tempdbs1
453bdbc8         6        0x40011    6        1        32768    N BBA    gbasedbt bindbs
453bddf8         7        0x48001    7        1        2048     N SBA    gbasedbt sbdbs
52c7c028         8        0x40001    8        1        16384    N  BA    gbasedbt datadbs28 active, 2047 maximumNote: For BLOB chunks, the number of free pages shown is out of date.Run 'onstat -d update' for current stats.Chunks
address          chunk/dbs     offset     size       free       bpages     flags pathname
452a5258         1      1      0          100000     80759                 PO-B-- /home/gbasedbt/gbase/node1_dbs/rootdbs
52c7c258         2      2      0          1024000    123947                PO-B-- /home/gbasedbt/gbase/node1_dbs/llogdbs
52c7d028         3      3      0          1024000    0                     PO-BE- /home/gbasedbt/gbase/node1_dbs/plogdbs
52c7e028         4      4      0          128000     125489                PO-B-- /home/gbasedbt/gbase/node1_dbs/datadbs1
52c7f028         5      5      0          128000     127947                PO-B-- /home/gbasedbt/gbase/node1_dbs/tempdbs1
52c80028         6      6      0          1024000   ~63984      64000      POBB-- /home/gbasedbt/gbase/node1_dbs/bindbs
52c81028         7      7      0          1024000    955003     955004     POSB-- /home/gbasedbt/gbase/node1_dbs/sbdbsMetadata 68943      51302      68943
52c82028         8      8      0          18750      17551                 PO-B-- /home/gbasedbt/gbase/node1_dbs/datadbs2
52c83028         9      1      0          50000      36955                 PO-B-- /home/gbasedbt/gbase/node1_dbs/rootchk2
52c84028         10     4      0          250000     249997                PO-B-- /home/gbasedbt/gbase/node1_dbs/datadbs1_210 active, 32766 maximumNOTE: The values in the "size" and "free" columns for DBspace chunks aredisplayed in terms of "pgsize" of the DBspace to which they belong.Expanded chunk capacity mode: always[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ node1_dbs]$ dbaccess test3 -
Your evaluation license will expire on 2025-05-26 00:00:00Database selected.> select * from test;id13101111111111111213232413 row(s) retrieved.Elapsed time: 0.003 sec>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/30955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++基础知识——命名空间

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:Yan. yan. 文章目录 1、什么是命名空间2、命名空间的作用3、如何定义命名…

js实现canvas截图功能

关键代码 使用canvas的导出功能和drawImage函数 class CropShape{cropShape(shape){let {x,y,w,h} shapeconsole.log(x,y,w,h)const roiCanvas document.createElement(canvas);document.getElementById(app).append(roiCanvas)const roiCtx roiCanvas.getContext(2d);roi…

贝叶斯优化、高斯过程相关概念总结

目录 贝叶斯优化 高斯过程 采集函数 贝叶斯优化 贝叶斯优化 &#xff5c; 黑盒优化全局最优方法 &#xff5c; Bayesian Optimization_哔哩哔哩_bilibili 贝叶斯优化用于解决寻找某个函数的最大值/最小值&#xff0c;在自变量维度比较小时(<20)表现的非常好。 适用…

《计算机英语》Unit1 计算机概述

期末试卷组成 1、选择20道 2、判断20道 3、词汇翻译&#xff08;单词词组&#xff0c;参照课后习题&#xff09; 4、翻译2道&#xff08;一道原题&#xff0c;参照作业&#xff09; Unit One Computer Overview 单元1 计算机概述 algorithm n. 算法 operate …

byte[]转MultipartFile、byte[]转File一次看个够

目录 需求背景 当你需要将byte[]、MultipartFile、File实现互转时&#xff0c;无外乎以下场景&#xff1a; 保存第三方接口返回二进制流前/后端文件流上传微服务间调用文件格式转换 正如你所需要的&#xff0c;通过搜索引擎筛选到我的本篇文章是因为你在开发中需要将byte[]转…

k8s学习笔记(一)

configMap 一般用来存储配置信息 创建configMap 从文件中获取信息创建&#xff1a;kubectl create configmap my-config --from-file/tmp/k8s/user.txt 直接指定信息&#xff1a; kubectl create configmap my-config01 --from-literalkey1config1 --from-literalkey2confi…

深度学习之计算机视觉

神经网络简介 全连接层和卷积层的根本区别在于权重在中间层中彼此连接的方式。图5.1描述了全连接层或线性层是如何工作的。 在计算机视觉中使用线性层或全连接层的最大挑战之一是它们丢失了所有空间信息&#xff0c;并且就全连接层使用的权重数量而言复杂度太高。例如&#xf…

鸿蒙Harmony实战—通过登录Demo了解ArkTS

ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。 ArkTS在TS的基础上主要扩展了如下能力&#xff1a; 基本语法&#xff1a;ArkTS定义…

最新版Cisco Packet Tracer思科模拟器Windows版本64位下载

Cisco Packet Tracer是思科公司推出的一款网络仿真工具&#xff0c;主要用于网络教学、培训和实验。它提供了一个真实的网络环境模拟平台&#xff0c;让用户可以设计、构建和调试网络&#xff0c;以及进行实时互动&#xff0c;从而帮助用户理解和实践网络技术。 通过 Cisco Pa…

Unity和UE免费领恐怖书本头怪兽角色模型恐怖或奇幻游戏monster适合FPS类型PBR202406202143

Unity和UE免费领恐怖书本头怪兽角色模型恐怖或奇幻游戏monster适合FPS类型PBR202406202143 Unity恐怖书本头怪兽角色模型&#xff1a;https://prf.hn/l/zpBqgVl UE恐怖书本头怪兽角色模型&#xff1a;https://prf.hn/l/4PzY1Qy 作者其他资产&#xff1a;https://prf.hn/l/0…

Fastjson漏洞之CVE-2022-25845

前言&#xff1a; 针对Fastjson之前已经介绍了&#xff0c;这里就不再重复了&#xff0c;漏洞CVE-2017-18349只能用来攻击>1.2.24版本的&#xff0c;CVE-2022-25845属于CVE-2017-18349的升级版&#xff0c;但是目前仅影响到1.2.83以下版本。CVE-2022-25845本质上是绕过了名…

SpringBoot | 实现邮件发送

运行环境&#xff1a; IntelliJ IDEA 2022.2.5 (Ultimate Edition) (注意&#xff1a;idea必须在2021版本以上&#xff09;JDK17 项目目录&#xff1a; 该项目分为pojo,service,controller,utils四个部分&#xff0c; 在pojo层里面写实体内容&#xff08;发邮件需要的发件人邮…

【etcd】etcd单机安装及简单操作

https://blog.csdn.net/Mr_XiMu/article/details/125026635 https://blog.csdn.net/m0_73192864/article/details/136509244 etcd在生产环境中一般为集群方式部署 etcd使用的2个默认端口号&#xff1a;2379和2380 2379&#xff1a;用于客户端通信(类似于sqlserver的1433&#x…

vscode卡顿问题处理(vue-official插件)

vue官方扩展由volar升级为vue-official&#xff0c;部分人的ide会变得非常卡顿&#xff0c;这是由于vscode本身一些问题导致&#xff0c;如下图作者解释&#xff1a; 解决方式&#xff1a; 通过禁用Hybrid模式&#xff0c;不使用tsserver来接管语言支持&#xff0c;卡顿会缓解…

CSS文本超限后使用省略号代替

方案一&#xff1a; 只显示一行&#xff0c;超限后使用省略号代替 .detail {overflow: hidden;text-overflow: ellipsis;white-space: nowrap; }方案二&#xff1a; 显示多行&#xff0c;到最后一行还没有显示完&#xff0c;则最后一行多出来的部分使用省略号代替。 .detai…

Vulhub——Log4j、solr

文章目录 一、Log4j1.1 Apache Log4j2 lookup JNDI 注入漏洞&#xff08;CVE-2021-44228&#xff09;1.2 Apache Log4j Server 反序列化命令执行漏洞&#xff08;CVE-2017-5645&#xff09; 二、Solr2.1 Apache Solr 远程命令执行漏洞&#xff08;CVE-2017-12629&#xff09;2.…

异步任务使用场景与实践

异步任务使用场景 根据同步/异步方式划分场景&#xff0c;各场景下常用的技术方案如下&#xff1a; 方式实现特点缺点同步HTTP RPC Cache etc.指标&#xff1a;RT、QPS、TPS、缓存命中率 等&#xff1b; 关注&#xff08;准&#xff09;实时数据&#xff0c;用户可交互1. 处…

javascript--类型检测 type of 和 instanceof

类型判断 1、typeof2、instanceof**instanceof 的原理** 3、constructor 1、typeof typeof在检测null、object、array、data的结果中都是object&#xff0c;所以无法用来区分这几个类型的区别。 <script>let a ["123",123,false,true,Symbol(1),new Date(),n…

ubuntu18.04 安装HBA

HBA是一个激光点云层级式的全局优化的程序&#xff0c;他的论文题目是&#xff1a;HBA: A Globally Consistent and Efficient Large-Scale LiDAR Mapping Module&#xff0c;对应的github地址是&#xff1a;HKU-Mars-Lab GitHub 学习本博客&#xff0c;可以学到gtsam安装&am…

系统凭据钓鱼揭秘

背景 在进行内网横向移动时&#xff0c;通常会尝试抓取目标机器上的登录哈希和密码。但是&#xff0c;这种方法并不总是可行&#xff0c;因为有些目标机器可能没有这些信息&#xff0c;或者这些信息已经被清除或加密。因此&#xff0c;黑客们开始模拟Windows系统环境中的身份认…