数据库异常恢复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;
         id
          1
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:00

Database selected.

> select * from test1;


         id

          1

1 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_L0

Please label this tape as number 1 in the arc tape sequence.
This tape contains the following logical logs:

 26

Program over.
--逻辑备份
[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ ~]$ ontape -a
Your evaluation license will expire on 2025-05-26 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/BACKUP/LOGICAL/iZ2ze5s78e4tanwe5q2znxZ_1_Log0000000026

Program 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 Kbytes

Dbspaces
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 datadbs2
 8 active, 2047 maximum

Note: 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/sbdbs
                                 Metadata 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_2
 10 active, 32766 maximum

NOTE: The values in the "size" and "free" columns for DBspace chunks are
      displayed 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:00

Database 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;
         id
          1
          3
         10
         11
         11
         11
         11
         11
         11
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;
         id
          1
          3
         10
         11
         11
         11
         11
         11
         11
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_Log0000000030

Program 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 Kbytes

Dbspaces
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 datadbs2
 8 active, 2047 maximum

Note: 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/sbdbs
                                 Metadata 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_2
 10 active, 32766 maximum

NOTE: The values in the "size" and "free" columns for DBspace chunks are
      displayed 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:00

Database selected.

> select * from test;


         id

          1
          3
         10
         11
         11
         11
         11
         11
         11
         12
         13
         23
         24

13 row(s) retrieved.

Elapsed time: 0.003 sec

>


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多目标跟踪中用到的求解线性分配问题(Linear Assignment Problem,LAP)Python

多目标跟踪中用到的求解线性分配问题(Linear Assignment Problem,LAP)Python flyfish 如果想看 C版本的,请点这里。 线性分配问题(LAP,Linear Assignment Problem)是一个经典的优化问题&…

java实现分类下拉树,点击时对应搜索---后端逻辑

一直想做分类下拉,然后选择后搜索的页面,正好做项目有了明确的需求,查找后发现el-tree的构件可满足需求,数据要求为:{ id:1, label:name, childer:[……] }形式的,于是乎,开搞! 一…

如何下载DVS Gesture数据集?解决tonic.datasets.DVSGesture错误HTTP Error 403: Forbidden

1 问题 DVSGesture数据集是一个专注于动态视觉传感(Dynamic Vision Sensor, DVS)技术的数据集,它包含了基于事件的图像记录,用于手势识别任务。DVSGesture数据集由一系列动态图像组成,这些图像是通过动态视觉传感器捕…

免费分享:GIS插件-ARCGIS一键拓扑(模型构建器)(附下载方法)

工具详情 ARCGIS一键拓扑(模型构建器),可直接在ArcGIS中安装使用。 可试用本工具进行数据拓扑检查。 下载方法 下载地址:https://open.geovisearth.com/service/resource/150下载流程:点击上面的下载地址,打开数字地球开放平台…

数据结构-绪论

目录 前言一、从问题到程序二、数据结构的研究内容三、理解数据结构3.1 数据3.2 结构3.2.1 逻辑结构的分类3.2.2 存储结构的分类 3.3 数据结构 四、数据类型和抽象数据类型4.1 抽象数据类型的定义格式4.2 抽象数据类型的实现 总结 前言 本篇文章先介绍数据结构的研究内容&…

php反序列化的一些知识

问题 <?php $raw O:1:"A":1:{s:1:"a";s:1:"b";}; echo serialize(unserialize($raw)); //O:1:"A":1:{s:1:"a";s:1:"b";}?> php反序列化的时按理说找不到A这个类&#xff0c;但是他没有报错&#xff0c;…

SAR动目标检测系列:【4】动目标二维速度估计

在三大类杂波抑制技术(ATI、DPCA和STAP)中&#xff0c;STAP技术利用杂波与动目标在二维空时谱的差异&#xff0c;以信噪比最优为准则&#xff0c;对地杂波抑制的同时有效保留动目标后向散射能量&#xff0c;有效提高运动目标的检测概率和动目标信号输出信杂比&#xff0c;提供理…

C++学习(23)

#学习自用# union 共用体和结构体相似&#xff0c;但是共用体一次只能占用一个成员的内存&#xff0c;所有成员共用同一地址。 #include<iostream> using namespace std; union A {int int_val;float float_val; }a; int main() {a.float_val 2.0f;cout << a.f…

【AWS SMB 能力最佳实践】利用 MGN 解决方案实现跨AWS账号迁移Amazon EC2 实例、弹性IP地址等资源

文章目录 一、实验情景二、实验关键服务概述2.1 MGN解决方案2.2 VPC对等连接 三、实验架构示意图四、实验具体操作步骤4.0 创建访问密钥4.1 创建VPC资源4.1.1 在源账号上创建VPC4.1.2 在目标账号上创建VPC 4.2 创建对等连接✨4.2.1 发起对等连接请求4.2.2 接受对等连接请求4.2.…

【内含优惠码】重磅发售!《2023年度中国量化投资白皮书》(纸质版)

这是可以公开了解量化行业图景的&#xff0c;为数不多资料。 简介 《2023年度中国量化投资白皮书》由宽邦科技、华泰证券、金融阶、华锐技术、AMD、阿里云、英迈中国等多家机构联合发起编写&#xff0c;并于2024年6月15日正式发布&#xff0c;全书公17万字6大章节勾勒最新量化…

torch.optim 之 Algorithms (Implementation: for-loop, foreach, fused)

torch.optim的官方文档 官方文档中文版 一、Implementation torch.optim的官方文档在介绍一些optimizer Algorithms时提及它们的implementation共有如下三个类别&#xff1a;for-loop, foreach (multi-tensor), and fused。 Chat-GPT对这三个implementation的解释是&#xf…

算法设计与分析 实验4 动态规划法求扔鸡蛋问题

目录 一、实验目的 二、问题描述 三、实验要求 四、实验内容 动态规划法 算法描述 算法伪代码描述 算法复杂度分析 数据测试 二分优化的动态规划法 算法描述 二分优化&#xff1a; 算法伪代码 算法复杂度分析 数据测试 单调决策优化的动态规划法 算法描述 算…

【Ardiuno】实验使用ESP32接收电脑发送的串口数据(图文)

使用ESP32可以非常方便的与电脑进行串口通讯&#xff0c;一般我们可以用串口接收ESP32的输出作为调试使用&#xff0c;今天我们再来实验一下从电脑端向ESP32单片机发送数据。 发送数据程序代码&#xff1a; void setup() {Serial.begin(9600); }void loop() { if(Serial.ava…

股票核心因子解读以及如何从接口获取股票数据信息

目录 1 股票基础信息1.1 股票核心因子1.2 获取股票信息 2 如何从接口获取股票数据2.1 yfinance2.2 finnhub-python2.3 alpha_vantage2.4 efinance2.4 Tushare 3 如何从各大金融平台获取咨询信息3.1 国外3.2 国内 1 股票基础信息 1.1 股票核心因子 基本面因子 因子名称计算公…

前缀和+双指针,CF 131F - Present to Mom

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 131F - Present to Mom 二、解题报告 1、思路分析 很经典的一种把列看作cell 来进行双指针/递推的题型 我们考虑&#xff0c;可以预处理出原矩阵中的所有star 然后我们去枚举矩形的上下边界&#xff0c;把…

java读取wps嵌入式图片思路

这个只写了思路具体代码在文章最后&#xff0c;不想了解得直接去拿代码 了解Excel数据结构 Excel 文件格式后缀xls,xlsx 其实是一个压缩文件&#xff0c;是由多个文件夹以及xml 文件组合为一个文件&#xff0c;xml文件记录了Excel得内容以及样式等信息。加入在桌面新建一个xls…

MySQL之复制(七)

复制 定制的复制方案 分离功能 许多应用都混合了在线事务处理(OLTP)和在线数据分析(OLAP)的查询。OLTP查询比较短并且是事务型的。OLAP查询则通常很大&#xff0c;也很慢&#xff0c;并且不要求绝对最新的数据。这两种查询给服务器带来的负担完全不同&#xff0c;因此它们需…

一文教你在centos 7.9中安装mysql5.7(超级详细)

##red## &#x1f534; 大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff0c;雄雄的小课堂。 一、前言 每当新来一个服务器之后&#xff0c;习惯性的都会安装一个宝塔面板&#xff0c;不为别的&#xff0c;就为了装环境方便点儿&#xff0c;比如常用的jdk,m…

python的赋值运算

# coding:utf-8 x20 #直接复制&#xff0c;直接将20赋值给x y10 xxy #将xy的和赋值给给x print(x) xy print(x)#40 x-y #相当于x-y print(x) #30x*y #xx*y x/y #xx/y print(x) x%2#xx%2 print(x)#0.0 隐式转换 z3 y//z #yy//z y**2#yy**2 #python支持链式赋值 abc100#相当于a10…

【ai】tx2-nx 查看 jetpack 版本信息及对应的tritonserver

3 jtop nvidia@tx2-nx:~$ jtop [WARN] Board missing UNKNOWN (press CTRL + Click) nvidia@tx2-nx:~$ 点击info 可以看到 jetpack是4.6opencv 是4.1.15.1.2 的不适合我 tritonserver2.35.0-jetpack5.1.2-update-2.tgz tritonserver2.19.0-jetpack4.6.1.tgz. 4.6.1<