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

news2024/12/22 9:56:32

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

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

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

>


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

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

相关文章

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

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

QT自定义标题栏窗口其二:实现拖动及可拉伸效果 + 顶部全屏/侧边半屏

1、效果 2、核心代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent<

管理咨询公司的五个招聘秘密

在管理咨询中&#xff0c;人是业务&#xff1b;客户支付数百万美元&#xff0c;要求管理顾问确认问题&#xff0c;并推荐解决方案。由于收入和合规性受到威胁&#xff0c;招聘错误的成本可能非常昂贵&#xff0c;一些公司更倾向于谨慎而不是效率。然而&#xff0c;在当今竞争激…

掌握大型语言模型的 7 个基本步骤

介绍 LLMs 正在改变我们今天与科技互动的方式。这些人工智能程序能够理解和模仿人类语言。它们可以应用于数据分析、客户服务、内容创作和其他领域。但对于新手来说&#xff0c;了解如何使用它们似乎很有挑战性。本文将引导读者了解掌握大型语言模型的 7 个基本步骤。 本文还…

ROM以及ROM与RAM对比

1.ROM ROM最原始的定义是“只读存储器”&#xff0c;一旦写入原始信息则不能更改。所以ROM通常用来存放固定不变的程序、常数和汉字字库&#xff0c;甚至用于操作系统的固化。它与随机存储器可共同作为主存的一部分&#xff0c;统一构成主存的地址域。 现在已经发展出了很多R…

AI 情感聊天机器人之旅 —— 相关论文调研

开放域闲聊场景 Prompted LLMs as Chatbot Modules for Long Open-domain Conversation 发布日期&#xff1a;2023-05-01 简要介绍&#xff1a;作者提出了 MPC&#xff08;模块化提示聊天机器人&#xff09;&#xff0c;这是一种无需微调即可创建高质量对话代理的新方法&…

6.20学习总结

D - 刻录光盘https://vjudge.net/problem/%E6%B4%9B%E8%B0%B7-P2835 思路&#xff1a; 利用并查集和弗洛伊德&#xff0c;对需要传递的对象都进行标记&#xff0c;经过处理后使他们的父亲发生相应的改变&#xff0c;最后对数组进行查询累加即可 代码&#xff1a; #include<…

【前端项目笔记】4 权限管理

权限管理 效果展示&#xff1a; &#xff08;1&#xff09;权限列表 &#xff08;2&#xff09;角色列表 其中的分配权限功能 权限列表功能开发 新功能模块&#xff0c;需要创建新分支 git branch 查看所有分支&#xff08;*表示当前分支&#xff09; git checkout -b ri…

【第22章】Vue实战篇之文章分类

文章目录 前言一、文章分类列表查询1. 界面2. 脚本3. 展示 二、文章分类添加1. 界面2. 接口脚本3. 点击事件 三、文章分类编辑1. 界面2. 接口脚本3. 点击事件 四、文章分类删除1. 界面2. 接口脚本3. 点击事件 总结 前言 这里来学习文章分类相关界面和接口的调用(增删改查)。 一…

Java 笔记:常见正则使用

文章目录 Java 笔记&#xff1a;常见正则使用正则简介常用匹配年月日的时间匹配手机号码校验 参考文章 Java 笔记&#xff1a;常见正则使用 正则简介 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言&#xff0c;但…

在Maven工程中手动配置并测试SpringBoot(巨详)

本篇博客承继自博客&#xff1a; 在IDEA 2024.1.3 (Community Edition)中创建Maven项目_idea2024.1.3如何创建maven项目-CSDN博客 配置POM文件 打开工程中的pom.xml文件&#xff0c;先向其中写入 <parent><groupId>org.springframework.boot</groupId><…

Adams 插件Plugin二次开发教程

通过cmd或python开发的Adams程序&#xff0c;可以通过执行cmd&#xff08;python&#xff09;命令的方式直接运行&#xff0c;也可以根据cmd教程中提供的创建菜单和对话框的方式调用这些程序&#xff0c;当然更合适的方式是通过插件的方式对二次开发的程序进行管理&#xff0c;…

Openldap集成Kerberos

文章目录 一、背景二、Openldap集成Kerberos2.1kerberos服务器中绑定Ldap服务器2.1.1创建LDAP管理员用户2.1.2添加principal2.1.3生成keytab文件2.1.4赋予keytab文件权限2.1.5验证keytab文件2.1.6增加KRB5_KTNAME配置 2.2Ldap服务器中绑定kerberos服务器2.2.1生成LDAP数据库Roo…

MicroPython+ESP32 C3+ST7735S LCD屏 WIFI联网显示实时时间

案例地址&#xff1a;https://gitee.com/whltaoin_admin/MP_ESP32_ST7735S- 展示效果 ESP32LCD屏 WIFI联网并显示实时时间 TFT LCD模块参数介绍 名称&#xff1a;1.8 128*160 RGB_TFT驱动芯片&#xff1a;ST7735S ESP32 C3 参数介绍&#xff08;经典款&#xff09; 外观及…

LeetCode 算法:两两交换链表中的节点 c++

原题链接&#x1f517;&#xff1a;两两交换链表中的节点 难度&#xff1a;中等⭐️⭐️ 题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交…

sqlcoder实践

背景 Defog llama-3 意义 翻译自然语言到sql&#xff0c;类似脑机接口&#xff0c;大模型重要应用领域 sql是数据库查询标准;关系数据库&#xff0c;工具(datax,sqoop&#xff0c;logstash,hive)&#xff0c;非关系数据库&#xff08;MongoDB&#xff0c;图数据库&#xff…

安装Xshell和Xftp后,打开程序下无法使用,要继续使用此程序,您必须应用最新的更新或使用新版本。

之前我遇到这种情况的时候&#xff0c;修改了nslicense.dll&#xff0c;结果这次重新下载结果把修改代码给忘了&#xff08;因为我也不会这个&#xff09;&#xff0c;于是我用了最直接的办法去官网找最新版本下载&#xff1a;xshell/xftp官网 后面直接点下载&#xff0c;然后开…

网络编程5----初识http

1.1 请求和响应的格式 http协议和前边学过的传输层、网络层协议不同&#xff0c;它是“一问一答”形式的&#xff0c;所以要分为请求和响应两部分看待&#xff0c;同时&#xff0c;请求和响应的格式是不同的&#xff0c;我们来具体介绍一下。 1.1.1 请求 在介绍请求之前&…

PMP报考千万不要踩这些坑

8月份的PMP考试即将到来&#xff0c;在这里预祝大家都能一次过~~~~ - 现在这个大环境不是很好&#xff0c;很多公司都是需要学历、相关证书的&#xff0c;说实在的我公司要求就是除了要有专业证书之外还要额外其他的证书&#xff0c;例如&#xff0c;pmp证书。这段时间我的同…

卷积篇 | YOLOv8改进之引入重新参数化再聚焦卷积RefConv | 即插即用

前言:Hello大家好,我是小哥谈。论文提出了重新参数化再聚焦卷积RefConv作为常规卷积层的替代品,它是一个即插即用模块,可以在没有任何推理成本的情况下提高性能。具体来说,在给定预训练模型的情况下,RefConv对从预训练模型继承的基核进行可训练的再聚焦变换,以建立参数之…