ontape 备份与恢复系统
配置 ontape
这些主题说明如何设置 ontape 实用程序用来备份存储空间和逻辑日志的配置参数。
这些主题描述了以下任务:
- 设置 ontape 的配置参数
- 检查 ontape 的配置参数
- 更改 ontape 的配置参数
使用 ontape 备份描述如何使用 ontape 实用程序备份存储空间和逻辑日志文件。
有关 ontape 与 onbar 不同之处的描述,请参阅onbar 和 ontape 实用程序的比较。
设置 ontape 实用程序的配置参数
ontape 实用程序使用 onconfig 文件中的八个配置参数。其中有两个配置参数用于为备份与恢复期间的数据变换指定过滤器程序;其他六个配置参数用于创建存储空间和逻辑日志备份。
ontape 的数据变换过滤器参数
BACKUP_FILTER 和 RESTORE_FILTER 配置参数指定了可用于在备份之前和恢复之后变换数据的外部程序的名称。
BACKUP_FILTER
指定数据变换中所用外部过滤器程序的名称和位置。该过滤器在备份数据之前对其进行变换(例如,将其压缩)。然后变换的数据将被备份,并且会存储成单个文件。过滤器路径指向 $GBASEDBTDIR/bin 目录(缺省值)或程序的绝对路径
RESTORE_FILTER
指定数据变换中所用外部过滤器程序的名称和位置。在数据返回至服务器之前,该过滤器会将数据变换为备份之前的原始状态,例如,将其解压缩。过滤器路径指向 $GBASEDBTDIR/bin 目录(缺省值)或程序的绝对路径
先决条件: 该数据先前必须已使用 BACKUP_FILTER 参数进行变换。
有关语法和使用信息(与 onbar 和 ontape 相同),请参阅 BACKUP_FILTER 配置参数和 RESTORE_FILTER 配置参数。
ontape 的磁带和磁带设备参数
第一组配置参数指定用于存储空间备份的磁带设备和磁带的特征;第二组指定用于逻辑日志备份的磁带设备和磁带的特征。
以下列表显示备份磁带设备以及相关的磁带参数。
TAPEDEV
用于存储空间备份的目录文件系统或磁带设备的绝对路径名称。指定 ontape 在归档过程中写入存储空间数据的目标位置,以及 ontape在恢复过程中读取数据的源位置。
要配置 ontape 以使用 stdio,将 TAPEDEV 设置为 STDIO。
在云环境中备份或恢复时,将以下语法用于 TAPEDEV 配置参数:
TAPEDEV 'local_path, keep=option, cloud=cloud_vendor, url=url'
- local_path 是将存储空间备份对象临时存储在的目录的完整路径名。
- option 可以设置为 yes 或 no。如果 keep 设置为 yes,那么 ontape 实用程序将备份对象保留在本地目录中。如果 keep 设置为 no,那么在云存储位置中传输备份对象后,会将这些对象删除。
- cloud_vendor 是云存储供应商的名称。
- url 是将存储空间备份数据永久存储在的云存储位置。
TAPEBLK
用于存储空间备份的磁带的块大小(以千字节为单位)。
TAPESIZE
用于存储空间备份的磁带的大小(以千字节为单位)。 值可以为 0 - 2,097,151。
以下列表显示逻辑日志磁带设备以及相关的磁带参数。
LTAPEDEV
逻辑日志磁带设备或文件系统目录。
在云环境中备份或恢复时,将以下语法用于 LTAPEDEV 配置参数:
LTAPEDEV 'local_path, keep=option, cloud=cloud_vendor, url=url'
- local_path 是将日志备份对象临时存储在的目录的完整路径名。
- option 可以设置为 yes 或 no。如果 keep 设置为 yes,那么 ontape 实用程序将备份对象保留在本地目录中。如果 keep 设置为 no,那么在云存储位置中传输备份对象后,会将这些对象删除。
- cloud_vendor 是云存储供应商的名称。
- url 是将日志备份数据永久存储在的云存储位置。
LTAPEBLK
用于逻辑日志备份的磁带的块大小(以千字节为单位)。
LTAPESIZE
用于逻辑日志备份的磁带的大小(以千字节为单位)。值可以为 0 - 2,097,151。
以下主题中包含如何为存储空间和逻辑日志备份设置磁带设备、磁带块大小和磁带大小参数的相关信息。
设置磁带设备参数
通过以下方法指定 TAPEDEV 和 LTAPEDEV 的值:
- 尽可能使用不同的磁带设备。
- 使用符号链接。
- 指定文件系统的目录。
- 对于磁带设备,请指定 /dev/null。
- 将磁带设备倒带。
- 配置参数以对云存储执行备份。
下面几部分分别说明这些要点。
为存储空间和逻辑日志备份指定不同的设备
当备份到磁带设备时,请在 onconfig 文件中为 LTAPEDEV 和 TAPEDEV 参数指定不同的设备。您可以单独调度这些备份。可以在一个设备上创建备份同时在另一个设备上连续地备份逻辑日志文件。
如果为 LTAPEDEV 和 TAPEDEV 指定相同的设备,逻辑日志可能会填满,这将导致数据库服务器在备份过程中停止处理。在这种情况下,您有两个选项:
- 停止备份,释放磁带设备,然后备份逻辑日志文件。
- 使标准处理处于暂挂状态,直到备份完成。
使用一个磁带设备时需要采取的预防措施
如果只有一个磁带设备,并要在数据库服务器处于联机状态下创建备份时,请采取以下预防措施:
- 通过将许多或大型的逻辑日志文件组合起来,为数据库服务器配置大量的逻辑日志空间。(请参阅《GBase 8s 管理员指南》。)
- 将所有显式创建的临时表存储在专用的数据库空间中,然后在备份前删除该数据库空间。
- 在数据库活动较少时创建备份。
- 在开始备份前释放尽可能多的逻辑日志文件。
在备份完成前,逻辑日志可能会被填满。备份与检查点同步。备份可以等待检查点以使活动同步,但直到所有虚拟处理器都退出关键段后,该检查点才会发生。当数据库服务器的处理由于某个逻辑日志文件填满而发生暂挂时,虚拟处理器无法退出其关键段,从而导致死锁。
将磁带设备指定为符号链接
可以将 LTAPEDEV 和 TAPEDEV 的值指定为符号链接。使用符号链接,您可以在不更改 onconfig 文件中的路径名的情况下,切换到其他磁带或与磁带兼容的设备。例如:可以为磁带设备 /dev/rst0 指定以下符号链接:
ln -s /dev/rst0 /dbfiles/loontape
当您如以下示例所示设置 LTAPEDEV 配置参数时,可以在不更改 LTAPEDEV 参数的情况下切换到另一个设备:
LTAPEDEV /dbfiles/loontape
您只需要更改符号链接,如以下示例所示:
ln -s /usr/backups /dbfiles/loontape
使用磁带设备进行备份时,如果用户只具有一个磁带设备,那么可以将逻辑日志备份重定向到磁盘文件。
指定文件系统目录
通过使用 ontape 实用程序,您可以在文件系统的目录中执行存储空间(0 级、1 级或 2 级)归档或逻辑日志备份。对于每个存储空间归档和逻辑日志备份,ontape 会在指定目录中创建文件。
要指定文件系统目录,请将 LTAPEDEV 和 TAPEDEV 配置参数设置为目录的绝对路径名。
当 ontape 重复归档操作时,它会重命名现有文件,以便不会重写旧的文件。时间戳记会添加到文件名中,以便将相关存储空间或逻辑日志文件组织到一起。
要了解文件命名模式,请参阅重命名现有文件。
指定远程设备
在网络中执行存储空间或逻辑日志备份时,可以备份到与 UNIX™ 和 Linux™ 平台上另一个主机相连的远程设备。
不应当执行到远程设备上的连续备份。
远程设备和数据库服务器计算机必须具有信任关系,以便 rsh 或 rlogin 实用程序从数据库服务器计算机连接到远程设备计算机,而无需询问密码。您可以通过在远程设备计算机上配置 /etc/hosts.equiv 文件、~/.rhosts 文件或系统的任何对等机制,建立信任关系。要指定另一个主机上的磁带设备,请使用以下语法来设置 TAPEDEV 或 LTAPEDEV 配置参数:
host_machine_name:tape_device_pathname
以下示例指定主机 kyoto 上的磁带设备:
kyoto:/dev/rmt01
有关远程设备上磁带大小的信息,请参阅远程设备的磁带大小。
为磁带设备指定 /dev/null
最好不要将 /dev/null 用作备份时使用的设备。但是,如果您决定不需要从逻辑日志恢复事务,那么可以指定 /dev/null 作为逻辑日志备份的磁带设备
将 /dev/null 指定为备份磁带设备时,可以避免在某些操作(如更改数据库的日志记录状态)后所需的 0 级备份的开销。显然,不能将存储空间从某个备份恢复到 /dev/null 上。
将磁带设备指定为 /dev/null 时,将忽略块大小和磁带大小。 如果您将 LTAPEDEV 配置参数设置为 /dev/null 或从 /dev/null 更改为其他值,那么必须重新启动数据库服务器以使新设置生效。
将 LTAPEDEV 配置参数设置为 /dev/null 时,一旦逻辑日志文件填满,数据库服务器就将其标记为已备份,从而有效地放弃逻辑日志信息。
将 TAPEDEV 设置为 stdio
要将 ontape 实用程序配置为从标准输入读取或写入标准输出,请将 TAPEDEV 配置参数设置为 stdio。
打开前和关闭时将磁带设备倒带
对于 ontape,必须使用可倒带的磁带设备。从磁带读取或向磁带写入之前,数据库服务器将执行一系列需要倒带的检查。
指定磁带块大小
使用 TAPEDEV 和 LTAPEBLK 配置参数可指定您的磁带设备允许的最大块大小(以千字节为单位)。
将磁带参数设置为 /dev/null 时,将忽略相应的块大小。
指定块大小时,ontape 实用程序将不检查磁带设备。请验证磁带设备是否可以读取您指定的块大小。如果不能,您将无法恢复该磁带。
指定磁带大小
使用 TAPESIZE 和 LTAPESIZE 配置参数可指定可以写入磁带的最大数据量。
要写入到或读取到磁带设备的末端,请将 TAPESIZE 和 LTAPESIZE 设置为 0。您不能使用远程设备的该选项。
将磁带设备指定为 /dev/null 时,将忽略相应的磁带大小。
这些参数值的范围为 0 - 2,097,151。
远程设备的磁带大小
您可以估算能够存储在远程设备上的磁带中的连续逻辑日志备份数据量。
在对远程设备执行连接逻辑日志备份时,写入磁带的数据量是 LTAPESIZE 和通过以下公式得出的数量二者中的较小值:
(磁盘上所有逻辑日志文件占用的总空间)- (最大逻辑日志文件)
远程设备的 I/O 完成后,数据库服务器在日志填满条件发生前释放这些逻辑日志文件。
远程设备的磁带大小不能设置为 0。
更改 ontape 配置
在执行备份并复审当前和新的参数值后,您可以更改 TAPEDEV、TAPEBLK 和 TAPESIZE 或 LTAPEDEV、LTAPEBLK 和 LTAPESIZE 配置参数的值。
先决条件:更改 ontape 的参数之前:
- 执行 0 级备份。
- 通过在运行数据库服务器时执行 onstat -c 来检查配置文件。
- 如果计划将 TAPEDEV 或 LTAPEDEV 更改为不同的磁带设备,请验证该磁带设备是否可以读取使用 TAPEBLK 或 LTAPEBLK 配置参数指定的块大小。如果不能,您将无法恢复该磁带。(指定块大小时,ontape 实用程序不会检查该磁带设备。)
- 请确保您以 root 用户或 gbasedbt 的身份登录。
当数据库服务器处于联机状态时可以更改 ontape 参数的值。
要更改 TAPEDEV、TAPEBLK 和 TAPESIZE 或 LTAPEDEV、LTAPEBLK 和 LTAPESIZE 的值:
- 从命令行,使用文本编辑器来编辑您的 onconfig 文件。
- 保存该文件。
更改将立即生效。但是,如果您将 TAPEDEV 参数或 LTAPEDEV 参数设置为 /dev/null,那么必须重新启动数据库服务器。
使用 ontape 备份
这些主题描述如何使用 ontape 实用程序来备份存储空间和逻辑日志文件,以及如何更改数据库日志记录的状态。ontape 实用程序可以备份与恢复数据库服务器所支持的最大的块文件。ontape 实用程序不能备份临时数据库空间和临时智能大对象空间。
ontape 任务摘要
ontape 实用程序允许您完成各种各样的任务:
- 更改数据库日志记录状态
- 创建备份
- 启动连续的逻辑日志文件备份
- ontape 实用程序执行恢复的语法
- 使用外部恢复命令
启动 ontape
如果在备份期间需要多盘磁带,ontape 实用程序会在每次需要添加一盘磁带时进行提示。
如果数据库服务器处于维护方式(例如,在转换期间),那么 ontape 实用程序只能由以下某个用户启动:
- root
- gbasedbt
- 启动过数据库服务器的用户(如果不是用户 root 或 gbasedbt)
请勿在后台方式下启动 ontape 实用程序(即,在命令行上使用 UNIX™ & 运算符来启动)。您可能还需要从终端或窗口提供输入。如果在后台方式下执行 ontape,您可能无法看到提示而延迟操作。
ontape 实用程序不包含用于用户交互的缺省值,也不支持重试操作。当 ontape 期待“是/否”的响应时,它将所有未识别为“是”的响应都假定为“否”。
ontape 的退出码
ontape 实用程序具有下面两个退出码:
0
表示正常退出 ontape。
1
表示出现异常情况。
更改数据库日志记录状态
您可以使用 ontape 实用程序来更改数据库的日志记录状态。大部分情况下,更改日志记录方式都需要完整的 0 级备份。
符合 ANSI 标准的数据库的日志记录方式无法更改。
无缓冲记录或缓冲记录的数据库可以更改为未记录的数据库,这样则无需备份。
使用 0 级备份可以进行以下日志记录方式更改:
- 从无缓冲记录或缓冲记录的数据库更改为 ANSI 数据库
- 从无缓冲记录的数据库更改为缓冲记录的数据库
- 从缓冲记录的数据库更改为无缓冲记录的数据库
示例
以下命令将名为 stores7 的数据库日志记录方式更改为无缓冲日志记录:
ontape -s -L 0 -U stores7
以下命令将数据库日志记录方式更改为符合 ANSI 标准的日志记录方式:
ontape -s -L 0 -A stores7
以下命令将数据库日志记录方式更改为未记录的方式:
ontape -N stores7
创建备份
这些主题说明如何计划和创建数据库服务器数据的备份。
ontape 支持的备份级别
ontape 实用程序支持 0 级、1 级和 2 级备份。
有关调度备份的信息,请参阅计划恢复策略。
创建备份调度,这样可保持较小的 1 级和 2 级备份。调度常用 0 级备份,以避免恢复大型的 1 级和 2 级备份或许多逻辑日志备份。
0 级备份
例如:当火灾或洪水完全毁坏计算机时,就需要通过 0 级备份将数据库服务器数据完全恢复到替换的计算机上。对于联机备份,备份磁带上的数据反映了 0 级备份开始时存储空间中的内容。(备份开始的时间可以反映备份开始前的最后一个检查点。)
0 级备份可能花费较长的时间,因为 ontape 必须将所有页都写入磁带中。
1 级备份
1 级备份通常比 0 级备份花费的时间短,因为您只将数据库服务器的部分数据复制到备份磁带中。
2 级备份
在 1 级备份后执行的 2 级备份通常比再执行另一个 1 级备份花费的时间短,因为它只将上次 1 级备份 后(而不是上次的 0 级备份)发生的更改复制到备份磁带中。
更改物理模式后备份
必须执行 0 级备份以确保在更改物理模式后可以恢复数据。
进行以下管理更改后,执行 0 级备份:
- 将 TAPEDEV 或 LTAPEDEV 配置参数更改为 /dev/null 之外的值
- 将日志记录添加到数据库中
- 在可以使用小于整个系统恢复的任何恢复方式进行恢复之前,添加数据库空间、Blob 空间或智能大对象空间
- 对包含逻辑日志文件的数据库空间开始镜像
- 删除逻辑日志文件
- 移动一个或多个逻辑日志文件
- 更改物理日志的大小或位置,然后设置共享内存
- 在可以重新使用包含某个块的数据库空间前删除该块
- 在冷恢复期间重命名块
请考虑等到下个定期调度的 0 级备份之后再进行这些更改。
尽管在添加逻辑日志文件后不再需要立即备份,但是因为数据结构发生了变化,所以下一个备份应该是 0 级备份。
准备备份
创建备份时,请采取以下预防措施:
- 出现大量活动时避免使用临时表。
- 确保具有足够的逻辑日志空间。
- 保留配置文件的副本。
- 执行 0 级备份之前验证一致性。
- 以适当的方式运行数据库服务器。
- 规划操作符的可用性。
- 与其他管理任务同步。
- 不要使用后台方式。
- 如有必要,适当标记磁带。
- 如有必要,准备写入到标准输出中。
出现大量活动时避免临时表
当您在备份期间使用 ontape 实用程序创建临时表时,该表将置于 DBSPACETEMP 中。 在备份进程中出现大量活动时,临时表可能持续增长并最终填满 DBSPACETEMP。发生这种情况时,备份将停止并且监视器会显示“没有可用磁盘”的错误消息。
确保具有足够的逻辑日志空间
当逻辑日志中总的可用空间少于单个逻辑日志文件的一半时,数据库服务器将不创建备份。此时必须备份逻辑日志文件并再次尝试进行备份。
在备份过程中不能添加镜像。
如果只使用一个可用的磁带设备,请确保开始备份前对所有的逻辑日志文件进行备份,以减少备份期间填满逻辑日志的可能性。
保留配置文件的副本
创建 0 级备份时请保留当前 onconfig 文件的副本。从备份磁带恢复数据库服务器数据时需要该信息。
执行 0 级备份之前验证一致性
要确保备份的完整性,请在创建整个系统的 0 级备份前定期验证所有的数据库服务器数据和开销信息是否一致。不需要在每个 0 级备份前都检查该信息,但建议您保留成功验证数据库服务器的一致性之后随即创建的最新备份。有关一致性检查的信息,请参阅《GBase 8s 管理员指南》。
联机和静默备份
可以在数据库服务器处于联机状态或静默方式时创建备份。用于启动备份命令的终端专用于进行备份(显示消息),直到备份完成为止。一旦备份开始,数据库服务器必须始终处于相同的方式直到备份完成;对方式进行更改将终止备份活动。
联机备份
如果希望创建备份时数据库服务器是可访问的,那么可以使用联机备份。
联机备份期间可能会有些微的不方便。联机备份可能减慢检查点活动,从而可能造成性能下降。然而这种性能的下降造成的代价远小于拒绝用户在备份期间访问数据库服务器而造成的代价。
联机备份期间,存储空间中某些磁盘页的分配会暂时冻结。在您备份块中已使用的页之前,磁盘页的分配在某个时间对该块是阻塞的。
静默备份
当数据库服务器处于停顿方式时创建静默备份。如果要除去备份中的部分事务,请使用静默备份。
如果用户需要连续访问数据库则不要使用静默备份。
备份到磁带
当备份到磁带时,您必须确保有操作员在场,而且有足够多的介质。
在备份期间请保持操作符可用,以便根据提示安装磁带。备份可能需要若干卷磁带。当一个磁带变满而没有可用的操作符来安装新磁带时,备份将等待。如果备份是联机备份,那么在此等待期间,物理日志空间可能会填满,这将导致数据库服务器停止备份。因此,请确保操作员在场。
在一个磁带填满后,ontape 实用程序会将该磁带倒带,显示用于标记的磁带编号,并在需要另一个磁带时提示操作员安装下一个磁带。请按照提示来标记并安装新磁带。当备份完成时有消息通知您。
标记使用 ontape 创建的磁带
当您标记用 ontape 实用程序创建的磁带时,标签必须包含以下信息:
- 备份级别
- 日期和时间
- ontape 提供的磁带编号
以下示例显示标签的形式:
Level 1: Wed Nov 27, 2001 20:45 Tape # 3 of 5
每个备份都以编号为 1 的第一卷磁带开始。随后再对每个附加的磁带卷进行连续编号。将五个磁带的备份编号为 1 到 5。(当然,有可能在备份完成前您无法得知这是五个磁带的备份。)
备份到标准输出
到标准输出的备份在操作系统提供的内存缓冲区中创建归档文件。如果您选择备份到标准输出,您无须提供磁带或其他存储介质。
备份到标准输出具有以下优点:
- 无需代价高昂的磁盘、磁带读写操作。
- 可以使用操作系统实用程序对数据进行压缩或其他处理。
- 可以通过将数据直接恢复到另一台数据库服务器,用归档创建该服务器的副本。
如果您备份到了标准输出,那么您也必须从标准输入恢复。
当 ontape 执行备份到标准输出的操作时,数据被写入一个输出文件。 输出的目录必须有足够的磁盘空间来容纳备份的数据。可以使用操作系统实用程序压缩数据。 此外,执行 backup 命令的用户必须拥有备份转向到的文件的写许可权或创建该文件的权限。
当您备份到标准输出时,ontape 不提示用户交互。 错误和参考消息将写入 stderr,而不是被指向到标准输出。
将不使用 TAPESIZE 配置参数,因为标准输出的容量假定为无限。 但是 TAPEBLK 配置参数有效,因为它定义了后端服务器与 ontape 客户端之间的传送缓冲区大小。 您可以通过将 TAPEBLK 设置为适当的值来优化吞吐量。
您可以用同时备份与恢复的方法克隆一台数据库服务器或建立高可用性数据复制。有关更多信息,请参阅使用标准 I/O 同时备份与恢复。
备份到目录
如果选择备份到目录,那么无需提供磁带。此外,您可以将数据备份到本地文件系统的目录或安装在本地系统上的目录。
运行备份的人员必须具有目录的写许可权。 目录必须有足够的磁带空间来容纳备份的数据。 可以在数据备份后使用该操作系统实用程序对数据进行压缩。
备份到目录具有以下优点:
- 多个实例可以同时备份到相同的目录文件系统。
- 可以使用操作系统实用程序对数据进行压缩或其他处理。
- 当文件满时,您可以轻松地配置您的系统来自动备份日志文件。
设置文件目录路径
请使用 TAPEDEV 配置参数来指定用于存储空间归档文件的文件系统目录的绝对路径名。这是 ontape 在归档过程中写入存储空间数据的目标位置,同时也是 ontape 在恢复过程中读取数据的源位置。您可以使用 LTAPEDEV 配置参数指定写入逻辑日志备份文件的目录。
备份到目录文件系统时,指定 -d 选项来关闭 ontape 交互式提示。
重命名现有文件
当 ontape 重复归档操作时,它会重命名现有文件,以便不会重写旧的文件。时间戳记会添加到文件名中,以便将相关存储空间或逻辑日志文件组织到一起。
重命名约定:
-
存储空间归档文件
将添加归档检查点,并且其格式为 servername_YYYYMMDD_hhmmss_archive-level。
-
逻辑日志备份文件
将添加备份时间,并且其格式为 servername_YYYYMMDD_hhmmss。
例如,文件 My_instance_L0 将重命名为 My_instance_20080913_091527_L0
从文件系统目录恢复时,ontape 需要按照 TAPEDEV 和 LTAPEDEV 参数的指定来命名存储空间归档和逻辑日志备份文件。如果由于重复归档和备份,已重命名文件(包括由 ontape 重命名),那么必须将文件手动重命名为其原始文件名。
覆盖归档文件的缺省名称
可以覆盖归档文件的缺省名称。TAPEDEV 或 LTAPEDEV 是目录路径,缺省的永久文件名由 hostname_servernum_Ln(对于级别)和 hostname_servernum_Lognnnnnnnnnn(对于日志文件)。您可以通过设置环境变量 IFX_ONTAPE_FILE_PREFIX 来覆盖永久文件名的前缀部分 (hostname_servernum)。
例如,如果将 IFX_ONTAPE_FILE_PREFIX 设置为“My_Instance”,那么在归档的过程中,文件将命名为 My_Instance_L0、My_Instance_L1、My_Instance_L2 和 My_Instance_Log0000000001、My_Instance_Log0000000002 等。在恢复过程中,ontape 将在 TAPEDEV 目录中搜索文件名类似于 My_Instance_L0 的文件,并且还将在 LTAPEDEV 目录中搜索文件名类似于 My_Instance_Log0000000001 的文件。
执行备份
使用 ontape 实用程序命令选项可备份到磁带。
先决条件:开始备份前,请执行以下步骤:
-
如有必要,将可写的磁带放在 TAPEDEV 指定的磁盘机设备中。
如果将 TAPEDEV 设置为 STDIO,要确保为备份数据留有足够内存量。
-
使用适当的操作系统命令使该设备联机。
-
使数据库服务器处于联机状态或静默方式。
不要在同一个磁带上存储多个备份;每次备份开始时都使用不同的磁带。(通常,一次备份将使用多卷磁带。)
要创建备份,请使用 ontape 命令的 -s 选项。
语法
创建备份
元素 | 用途 | 关键注意事项 |
---|---|---|
-A | 指示 ontape 将指定数据库的状态更改为符合 ANSI 标准的日志记录。 | 具有符合 ANSI 标准的日志记录的数据库无法更改为其他日志记录方式。需要 0 级备份才能更改此日志记录方式。 |
-B | 指示 ontape 将指定数据库的状态更改为缓冲日志记录。 | 需要 0 级备份才能更改此日志记录方式。 |
-d | 指示执行 ontape,同时没有交互式提示。 | 如果要备份到文件系统目录或从文件系统目录中恢复,那么可以关闭提示。此选项不适用于磁带设备,在您更换磁带时,必须暂停备份。 |
database | 要更改日志记录方式的数据库的名称。 | 数据库名称中不能包含数据库服务器名称。可以在同一命令中指定多个数据库名称。 |
-F | 指示 ontape 执行伪备份。 | 伪备份仅当备份到标准输出期间适用。 伪备份可用于克隆服务器中的数据。例如,填充高可用性集群中的辅助服务器。 为了不危害正常的备份活动,请不要保留假备份的记录。 此外,您也可以使用与 SQL 管理 API 等效的 ARCHIVE FAKE。有关更多信息,请参阅《GBase 8s 管理员参考》。 |
-L | 指示 ontape 创建指定级别的备份。 | 如果您要备份到磁带,使用 -L 选项将备份级别指定为命令的一部分,就可以避免出现与其相关的提示。 如果您要备份到标准输出而不指定备份级别,ontape 将执行 0 级备份。 |
-N | 指示 ontape 终止指定数据库的日志记录。 | 更改此日志记录方式时可选择使用备份。 |
-s | 指示 ontape 创建备份。 | 如果您未使用 -L 选项提供一个值,ontape 将提示您提供要创建的备份级别(0、1 或 2)。 |
-t | 指示 ontape 为当前备份或恢复使用其他磁带设备。 | -t 选项为当前备份或恢复覆盖 TAPEDEV 配置参数的值。-t STDIO 选项指示ontape 备份到标准输出或从标准输入恢复。 |
tape_device | 存储备份的磁带设备的名称。 | |
-U | 指示 ontape 将指定数据库的状态更改为无缓冲日志记录。 | 需要 0 级备份才能更改此日志记录方式。 |
-v | 指示 ontape 在备份到标准输出时向 stderr 写入参考消息。 | 详细模式对于监视备份到标准输出的进程很有用。 |
ontape 实用程序按照以下次序备份存储空间:根数据库空间、Blob 空间、智能大对象空间和数据库空间。
备份示例
执行以下命令以在不指定级别的情况下启动备份到磁带:ontape -s
可以使用 -L 选项将备份级别指定为命令的一部分,如以下示例所示:ontape -s -L 0
当备份到目录或从目录中复原时,请使用 -d 选项来避免交互式提示:ontape -s -L 0 -d
如果不在命令行上指定备份级别,ontape 将提示您输入它。下图举例说明了一个简单的 ontape 备份会话。
图: 使用 ontape 创建的简单备份的示例
ontape -s
请输入要执行的归档级别(0、1 或 2)0
请在 /dev/rst0 上安装磁带 1 并按“返回”以继续...
16:23:13 检查点已完成:持续时间是 2 秒
16:23:13 rootdbs 上的 0 级归档已启动
16:23:30 rootdbs 上的归档已完成。
16:23:31 检查点已完成:持续时间是 0 秒
请在弧形磁带序列中将该磁带标记为编号 1。
该磁带包含以下逻辑日志:
3
程序结束。
以下示例显示了如何创建所有存储空间的 0 级归档到标准输出,并转向到 /home 目录中的名为 level_0_archive 的文件:
ontape -s -L 0 >/home/level_0_archive -t STDIO
以下示例假定 onconfig 中有 TAPEDEV STDIO,并创建了一个 1 级归档到标准输出,并转向到一个管道:
ontape -v -s -L 1|compress -c >/home/compressed/level_1_archive
compress 系统实用程序从管道读取数据作为输入,压缩数据,并数据写入 /home/compressed 目录中的 level_1_archive 文件。ontape 参考消息被送到 stderr。
备份原始表
可以使用 ontape 备份原始表,但是不为原始表记录日志。因此当您复原原始表时,无法复原自上次备份以来发生的所有更改。 建议只在最初装入数据时使用原始表,随后在执行事务前改用标准表。有关更多信息,请参阅《GBase 8s 管理员指南》。
备份到 Amazon Simple Storage Service
您可以使用 ontape 实用程序在 Amazon Simple Storage Service (S3) 中备份与恢复数据。您应该遵守 Amazon Simple Storage Service 的相关条款并承担任何相关费用。
先决条件:
- 您必须具有 Amazon 帐户,才能执行云存储备份。请参阅 Amazon Web 站点,以获取有关设置帐户的指示信息。
- 需要 Java™ V1.5 或更高版本。
- 备份对象必须为 5 GB 或更低。
以下步骤显示如何使用 ontape 备份与恢复实用程序来将数据备份到 Amazon Simple Storage Service (S3) 系统并从中恢复。在此上下文中,云存储指一种通过因特网提供的联机存储服务。如果选择备份到云存储,那么无需提供磁带。取而代之的是将数据备份到虚拟设备,大多是位于因特网中。
-
配置联机存储设备。
a. 使用 Web 浏览器,浏览到 Amazon S3 Web 站点并登录。
b. 获取访问密钥标识和访问密钥。
c. 将访问凭证存储到文件中。将文件的许可权设置为仅执行 ontape 实用程序的用户可访问。
- 在 UNIX™ 系统上,将值存储到该文件中:$GBASEDBTDIR/etc/ifxbkpcloud.credentials
文件必须具有以下格式:
secretKey=secret_access_key
accessKey=access_key_ID使用 ifxbkpcloud.jar 实用程序在准备用于存储 GBase 8s 数据的区域中创建存储设备并命名。Amazon 使用词汇存储区来描述备份数据的容器。选择存储设备的名称与 Amazon S3 中存储区的名称具有相同的限制要求,且必须是唯一的。
例如,以下命令在 Amazon S3 上的 US Standard 区域中创建名为 mytapedevice 的存储设备。从 UNIX 系统上的$GBASEDBTDIR/bin 目录运行该命令。
java -jar ifxbkpcloud.jar CREATE_DEVICE amazon mytapedevice US_Standard
-
将 onconfig 文件中的 TAPEDEV 和 LTAPEDEV 配置参数设置为云存储的位置。例如:
TAPEDEV '/opt/gbase/gbasedbt/tapedev_dir, keep = yes, cloud = amazon,
url = https://mytapedevice.s3.amazonaws.com'
LTAPEDEV '/opt/gbase/gbasedbt/ltapedev_dir, keep = yes, cloud = amazon,
url = https://mylogdevice.s3.amazonaws.com' -
使用 ontape 实用程序将数据备份到联机存储设备中。
ontape -s -L 0
使用以下命令可以从云存储恢复数据:
ontape -r
将数据传输到云存储时应使用 https 保密数据传输。将数据传输到云映像之前应加密数据。要加密数据,请使用 BACKUP_FILTER 和 RESTORE_FILTER 配置参数来调用外部加密程序。archecker 实用程序不支持云存储的数据表级别恢复。
ifxbkpcloud.jar 实用程序
使用 ifxbkpcloud.jar 实用程序来配置 Amazon Simple Storage Service 的联机存储设备。
ifxbkpcloud.jar 实用程序支持以下选项:
- CREATE_DEVICE provider device [region]
- DELETE_DEVICE provider device
- LIST_DEVICES provider
- DELETE_FILE provider device file
- LIST_FILES provider device
ifxbkpcloud.jar 命令的参数定义如下所示:
- provider 是 amazon。
- device 是存储设备的名称。
- region 是以下某个区域:US_Standard、US_West、EU_Ireland 或 AP_Singapore。
- file 是在 Amazon S3 上存储的备份对象(键)的名称。
ifxbkpcloud.jar 的错误消息会写入到 UNIX™ 机器上的 $GBASEDBTDIR/ifxbkpcloud.log 。
云存储文件命名约定
与云存储备份相关联的文件具有唯一文件名。
数据空间备份文件使用以下格式进行保存:
hostname_servernum_Larchive_level
日志备份文件名使用以下格式进行保存:
hostname_servernum_lognnnnnnnnnn
如果云存储位置中已存在对象,那么会对文件重命名以避免覆盖旧对象。重命名文件是将时间戳记添加到对象名中。
数据空间备份文件使用以下格式进行保存:
hostname_servernum_YYYYMMDD_hhmmss_Larchive_level
日志备份文件名使用以下格式进行保存:
hostname_servernum_lognnnnnnnnnn_YYYYMMDD_hhmmss
备份期间逻辑日志文件填满
如果在备份期间逻辑日志文件填满,控制台显示一条消息,备份暂挂正常处理。如何处理逻辑日志填满取决于您是使用一个还是两个磁带设备。
可以使用两个磁带设备时
如果可以将两个磁带设备与数据库服务器一起使用,那么在可用终端上以用户 gbasedbt 登录。
验证 LTAPEDEV 和 TAPEDEV 是否指定了与单独的磁带设备对应的不同路径名。如果是,那么备份逻辑日志文件。请参阅创建备份。
如果 LTAPEDEV 和 TAPEDEV 是相同的,请对逻辑日志磁带设备指定不同的值 (LTAPEDEV) 并启动逻辑日志文件的备份。否则,可以选择让正常的数据库服务器处理暂挂直到备份完成,或选择取消备份。
只有一个磁带设备可用时
可以使用一个可用的磁带设备创建备份时,在完成备份前不能备份任何逻辑日志文件。如果在备份期间逻辑日志文件填满,正常的数据库服务器处理将停止。您可以停止备份(使用 Ctrl-C 即可)来释放磁带设备并备份逻辑日志以继续处理,或者让正常的处理暂挂直到备份完成为止。
可以采取一些步骤来防止这种情况的发生。启动自动逻辑日志备份这一部分描述了这些步骤。
备份过早终止
如果取消或中断备份,有时备份进行到了您可能认为已经完成的位置。如果监视信息列出备份已完成(如使用 oncheck 监视备份历史记录所述),那么备份确实已完成。
使用 oncheck 监视备份历史记录
可以使用 oncheck 监视上次整个系统备份的历史记录。
执行 oncheck -pr 命令可显示根数据库空间的保留页信息。最后一对保留页包含最近备份的以下信息:
- 备份级别(0、1 或 2)
- 备份的有效日期和时间
- 描述备份何时开始的时间戳记(用十进制数表示)
- 备份开始时当前逻辑日志的标识号
- 检查点记录(备份开始时写入的)在逻辑日志中的物理位置
备份的有效日期和时间等于作为此次备份开始点的检查点的日期和时间。 此日期和时间与备份进程启动的时间可能明显不同。
例如:如果在星期二下午 7 点以后再没有人访问数据库服务器,您在星期三早上创建了一个备份,那么该备份的有效日期和时间是星期二晚上,即最近一个检查点的时间。也就是说,如果在上一个检查点后没有活动发生,数据库服务器开始备份时将不执行另外的检查点。
使用 ontape 备份逻辑日志文件
当您使用 ontape 制作备份磁带时,便只能使用 ontape 备份逻辑日志文件。
除了备份逻辑日志文件外,还可以使用 ontape 切换到下一个日志文件、将逻辑日志文件移动到其他数据库空间或更改逻辑日志的大小。有关那些任务的指示信息出现在《GBase 8s 管理员指南》中。
备份逻辑日志文件之前
备份逻辑日志文件之前,必须了解以下问题:
- 是否需要备份逻辑日志文件
- 何时需要备份逻辑日志文件
- 需要执行自动备份还是连续备份
有关这些问题的更多信息,请参阅逻辑日志备份。
使用 Blob 空间 TEXT 和 BYTE 数据类型以及逻辑日志文件
在使用事务日志记录的数据库中使用 TEXT 和 BYTE 数据类型时,必须切记以下两点:
- 为确保能及时重用 Blob 页,请备份逻辑日志文件。 当用户删除 Blob 空间中的 TEXT 或 BYTE 值时,直到您释放包含已删除记录的日志文件以后 Blob 页才会释放以供重新使用。必须备份日志文件才能将其释放。
- 必须备份不可用的 Blob 空间时,ontape 将跳过它,这将造成必要时不可能恢复 TEXT 或 BYTE 的值。(不过,即使没有备份 TEXT 或 BYTE 的值,一旦 Blob 空间可用时,已删除的 TEXT 或 BYTE 值的 Blob 页也可用了。)
此外,不管数据库是否使用事务日志记录,当您创建 Blob 空间或向 Blob 空间添加块时,该 Blob 空间或新块不可用,直到记录事件的逻辑日志文件不是当前的逻辑日志文件为止。有关切换逻辑日志文件的信息,请参阅《GBase 8s 管理员指南》。
在不需要恢复时使用 /dev/null
当您确定在两次备份之间不需要恢复事务或管理数据库活动时,可以将数据库服务器配置参数 LTAPEDEV 设置为 /dev/null。
将 LTAPEDEV 设置为 /dev/null 时,它具有以下含义:
- 只能将数据库服务器管理的数据恢复到最近的备份以及任何先前备份的逻辑日志文件之时的状态。
- 进行恢复时,必须始终执行整个系统恢复。(请参阅全面系统恢复。)不能执行部分恢复或在数据库服务器处于联机状态时进行恢复。
当您将 LTAPEDEV 设置为 /dev/null 时,逻辑日志文件一填满,数据库服务器就将其标记为已备份(状态 B)。这样数据库服务器就可以接着重用该逻辑日志文件而不需要等待您将其备份。其结果是数据库服务器不保留任何逻辑日志记录。
将 /dev/null 用作日志文件备份设备时,快速恢复和回滚事务不会受到不利影响。有关快速恢复的描述,请参阅《GBase 8s 管理员指南》。有关回滚事务的信息,请 参阅 GBase 8s SQL 指南:语法 中的 ROLLBACK WORK 语句。
备份逻辑日志文件的时间
您必须试着在每个逻辑日志文件填满时尽快将其备份。由于每个逻辑日志文件都具有已使用状态,因此您可以判断何时可以备份逻辑日志文件。有关监视逻辑日志文件状态的更多信息,请参阅《GBase 8s 管理员指南》。
启动自动逻辑日志备份
备份逻辑日志文件时,数据库服务器可以在联机状态下运行。要备份所有已满的逻辑日志文件,请使用 ontape 命令的 -a 选项。
请求逻辑日志备份
-a 选项备份所有已满的逻辑日志文件,并提示您通过某个选项切换逻辑日志文件以及备份当时的最新日志。
如果在逻辑日志文件结束前,安装在 LTAPEDEV 上的磁带变满,ontape 将提示您安装新磁带。
如果在备份发生时按下中断键,数据库服务器将结束备份并将控制权交回给用户。其他任何已满的逻辑日志文件都收到已使用状态。
要备份所有已满的逻辑日志文件,请执行 ontape -a 命令。
启动连续的逻辑日志文件备份
如果不希望监视逻辑日志文件并在逻辑日志文件填满时开始备份,您可以启动连续备份。
启动连续备份后,数据库服务器将在每个逻辑日志文件填满后自动将其备份。执行连续逻辑日志文件备份时,即使在最坏的情况下,即包含逻辑日志文件的块出现故障而造成介质故障时,数据库服务器也能提供保护,防止您丢失一个以上的部分逻辑日志文件。
要启动逻辑日志文件的连续备份,请使用 ontape -c 命令。-c 选项启动逻辑日志文件的连续备份。每个逻辑日志文件一填满,数据库服务器就对其进行备份。连续备份将不对当前逻辑日志文件进行备份。启动连续备份后,数据库服务器可以在联机方式下运行。
逻辑日志文件是备份到磁带还是目录中取决于 LTAPEDEV 配置参数的设置:
- 如果 LTAPEDEV 配置参数设置为磁带设备,那么必须有人始终提供用于备份进程的介质。如果指定的已安装磁带被填满而逻辑日志文件还未结束,那么数据库服务器会提示操作员安装新磁带。同时还必须为备份进程指定备份设备。
- 如果 LTAPEDEV 配置参数设置为目录,那么可以在无人照管的情况下备份逻辑日志文件。逻辑日志填满时会进行备份,并且会在目录中为每个逻辑日志创建新文件。备份受限于新文件可用的空间。
要备份到目录,您可以从 ALARMPROGRAM 配置参数指定的脚本调用 ontape -a -d 自动逻辑日志备份命令,而不需要使用 ontape -c 命令。您可以使用 alarmprogram 脚本或 log_full 脚本,这两个脚本都位于 $GBASEDBTDIR/etc 目录中。
要使用 alarmprogram 脚本来将逻辑日志备份到目录:
-
将 LTAPEDEV 参数设置为现有目录。
确保 gbasedbt 和组 gbasedbt 具有此目录。
-
编辑 ALARMPROGRAM 脚本(UNIX™ 或 Linux™ 上的 $GBASEDBTDIR/etc/alarmprogram.sh),如下所示:
a. 将文件内的 BACKUPLOGS 参数设置为 Y。
b. 将备份程序从 onbar -b -l 更改为 ontape -a -d。
-
重新启动数据库服务器。
结束连续的逻辑日志备份
要结束连续逻辑日志备份,请按中断键 (CTRL-C)。
如果在数据库服务器将逻辑日志文件备份到本地设备时按下中断键,那么中断前备份的所有日志都将捕获到磁带上,并由数据库服务器标记为已备份。
如果数据库服务器等待逻辑日志文件填满(因而不备份任何逻辑日志文件)时按下中断键,所有中断前已备份的日志将驻留在磁带上,并由数据库服务器标记为已备份。
如果数据库服务器执行到远程设备的连续备份时按下中断键,那么此操作过程中备份的所有逻辑日志文件可能会也可能不会驻留在磁带上,并且数据库服务器不将其标记为已备份(这是您为什么不应进行连续远程备份的一个适当原因)。
停止连续日志记录后,必须对随后的日志备份操作开始使用新磁带。
必须显式地请求逻辑日志备份(使用 ontape -a),直到重新启动连续日志记录。
逻辑日志备份必须使用的设备
ontape 实用程序使用在 onconfig 文件中定义的参数来定义用于逻辑日志备份的磁带设备。然而,在选择逻辑日志备份设备时请考虑以下问题:
-
如果逻辑日志设备与备份设备不同,在规划备份时可以不需要考虑备份调度中的争用需要。
-
如果将 /dev/null 指定为配置参数 LTAPEDEV 中的逻辑日志备份设备,那么不必安装和维护备份磁带。不过您只能将数据恢复到最近的备份磁带中的内容。无法恢复备份后完成的工作。请参阅在不需要恢复时使用 /dev/null 中有关将 LTAPEDEV 设置为 /dev/null 的相关警告。
如果高可用性集群中任意服务器节点上的日志备份设备设置为 /dev/null(在 Linux™ 或 UNIX™ 上),那么集群内所有其他服务器(包括主服务器和任何 HAC、RHAC 或 SSC 辅助服务器)的备份设备都必须设置为 /dev/null(或 NUL)。
-
当磁带设备运行减慢时,逻辑日志填充的速度可能大于将其复制到磁带上的速度。在这种情况下,可以考虑执行到磁盘的备份,然后将磁盘上的备份复制到磁带上。
使用 ontape 恢复
这些主题为以下过程提供使用 ontape 实用程序恢复数据的指示信息:
- 恢复整个系统
- 对选定的数据库空间、Blob 空间和智能大对象空间进行恢复
开始恢复数据前,必须理解恢复系统中的概念。如该节中说明的那样,对数据库服务器数据的完整恢复通常包含物理恢复和逻辑恢复。
物理恢复的类型
如果故障导致数据库服务器脱机,您必须恢复所有的数据库服务器数据。此类型的恢复 是整个系统恢复。您仅可以将数据恢复到相同版本的 GBase 8s。如果故障没有导致数据库服务器脱机,那么您可以只恢复发生故障的存储空间。有关恢复类型的举例说明,请参阅热恢复、冷恢复和混合恢复。
全面系统恢复
当数据库服务器由于磁盘故障或数据毁坏而脱机时,这意味 着关键数据库空间受损。以下列表显示关键数据库空间:
- 根数据库空间
- 包含物理日志的数据库空间
- 包含逻辑日志文件的数据库空间
如果需要恢复任一关键数据库空间,必须执行整个系统恢复以恢复您的数据库服务器管理的所有数据。必须 用冷恢复来启动整个系统恢复。请参阅冷恢复、热恢复或混合恢复。
对数据库空间、Blob 空间和智能大对象空间进行恢复
当数据库服务器没有因为磁盘故障或数据毁坏而脱机时,将对非关键数据库空间、Blob 空间或智能大对象空间造成损害。
如果不需要恢复关键数据库空间,您可以只恢复包含已受损的块的那些存储空间。如果存储空间跨越多个块,当其中一块发生介质故障时,必须终止该存储空间的所有活动事务,这样数据库服务器才可以恢复它。您可以在数据库服务器完成事务前启动恢复操作,但是该恢复将延迟,直到数据库服务器验证您已经完成故障发生时所有活动的事务时为止。
冷恢复、热恢复或混合恢复
当您恢复数据库服务器的数据时,必须确定是在数据库服务器脱机还是联机状态下进行。该决定部分取决于您打算恢复的数据。
冷恢复
当数据库服务器处于脱机状态时执行冷恢复。它由物理恢复和逻辑恢复组成。要恢复所有关键数据库空间必须执行冷恢复。
开始冷恢复时数据库服务器处于脱机状态,但当它恢复保留页后将进入恢复方式。从这时起,它一直停留在恢复方式直到逻辑恢复完成为止(之后它工作在停顿方式下),或者使用 onmode 实用程序将其转换为另一种方式。
可以在冷恢复期间指定新块路径和偏移量来重命名块。如果需要将存储空间恢复到与完成备份的磁盘不同的磁盘上,该选项很有帮助。可以重命名任意类型的块,包括关键块和镜像块。有关更多信息,请参阅恢复期间重命名块。您还可以对外部冷恢复的块进行重命名,请参阅重命名块以获取更多信息。
在已重命名数据库空间,并且执行了 0 级备份或 rootdbs 和重命名数据库空间的备份之后,可以执行冷恢复。
热恢复
热恢复在数据库服务器处于联机状态或静默方式时恢复非关键存储空间。它由一个或多个物理恢复操作(同时恢复多个存储空间时)、一个逻辑日志备份和一个逻辑恢复组成。
在热恢复期间,数据库服务器为您恢复的存储空间重放已备份的逻辑日志文件。为避免覆盖当前逻辑日志,数据库服务器将您指定要重放的逻辑日志文件写入到临时空间中。因此,热恢复要求有足够的临时空间,用来保存逻辑日志或被重放的日志文件的数目这两者中较小的那个。有关数据库服务器如何查找临时空间的信息,请参阅《GBase 8s 管理员指南》中 DBSPACETEMP 的讨论。
确保有足够的临时空间用于热恢复的逻辑日志部分;数据库服务器需要的最大临时空间量等于所有逻辑日志文件的大小。
在已重命名数据库空间,并且执行了 rootdbs 和重命名数据库空间的 0 级归档之后,可以执行热恢复。
混合恢复
混合恢复是在冷恢复后再进行热恢复。混合恢复在冷恢复期间恢复一些存储空间(数据库服务器处于脱机状态),然后在热恢复期间再恢复一些存储空间(数据库服务器处于联机状态)。可以在执行整个系统恢复时进行混合恢复,但需尽快提供对特殊表或表集合的访问权。在这种情况下,执行冷恢复可以恢复关键数据库空间和包含重要表的数据库空间。
尽管在混合恢复的一部分时间里数据库服务器处于联机状态,但冷恢复恢复所有数据使用的总时间比混合恢复少,这是因为混合恢复需要两个逻辑恢复(一个用于冷恢复,另一个用于热恢复)。不过,混合恢复要求数据库服务器处 于脱机状态的时间比冷恢复少。
对于冷恢复中未恢复的数据库空间,即使关键数据库空间可能并未损坏它们,它们也必须等到数据库服务器在热恢复中恢复了它们才可以使用。
ontape 实用程序执行恢复的语法
将 -r 选项和 ontape 一起使用对数据库服务器数据执行完全物理恢复和逻辑恢复。使用 -D 选项恢复选定的存储空间。使用 -rename 选项在恢复期间重命名块。
元素 | 用途 | 关键注意事项 |
---|---|---|
-C | 从当前逻辑日志磁带中恢复日志,同时不发送安装磁带的提示。 | 服务器处于暂挂日志恢复状态,在最后一个可用日志恢复后,该命令依然存在。如果日志存在于多个磁带中,那么服务器将发出提示。 |
-D | 指示 ontape 只恢复您指定的存储空间。 | 数据库服务器必须处于联机状态或停顿方式才能执行热恢复。当您使用 -D 选项时,可以恢复选定的存储空间。 如果不指定 -D 选项,那么 ontape 将执行整个系统恢复。数据库服务器必须处于脱机状态才能执行整个系统恢复。有关更多信息,请参阅恢复选定的存储空间。 |
dbspace | 要恢复的存储空间的名称。 | 可以指定多个存储空间,但是必须包括根数据库空间。 |
-e | 指示 ontape 执行外部恢复 | 有关更多信息,请参阅执行外部备份与恢复。 该选项与外部冷恢复的其余块相兼容。 |
-f filename | 指定一个文件,该文件包含要重命名的块的名称和偏移量,以及它们的新位置。 用于同时为很多块重命名。 | 文件名可以是任何有效的 UNIX™ 文件名,包括简单文件名 (listfile_1)、相对文件名(../backup_lists/listfile_2 或 ..\backup_lists\listfile2)以及绝对文件名(/usr/gbasedbt/backup_lists/listfile3 或c:\gbasedbt\backup_lists\listfile3)。 文件中列出旧块路径名和偏移量以及新块新路径名和偏移量,每项以空格或制表符分隔。将每个块的信息置于单独的行上。忽略空白行。注释行以 # 号开始。 |
-l | 指示 ontape 执行逻辑恢复。 | -l 选项从上次 0 级备份以后创建的逻辑日志备份磁带中恢复数据(含上次 0 级备份)。 |
-p | 指示 ontape 执行物理数据恢复。 | -p 选项从上次 0 级备份以后创建的备份磁带中恢复数据(含上次 0 级备份)。恢复期间,数据库服务器处于单用户方式。 |
-p old_path -o old_offset-nnew_path -o new_offset | 指定要重命名的块及其新位置。 用于同时重命名一个或多个块。 | 用于该元素的参数是: old_path 块的当前路径和文件名。 old_offset 块的当前偏移量(以千字节计)。 new_path 块的新路径和文件名。 new_offset 块的新偏移量。 |
-r | 指示 ontape 执行数据恢复(物理和逻辑恢复)。 | -r 选项将从上次 0 级备份以后(并包含)创建的备份磁带和逻辑日志备份磁带中恢复数据。 |
-rename | 指示 ontape 重命名指定的块。 | 有关在恢复期间重命名块的更多信息,请参阅恢复期间重命名块。 |
-S | 指示 ontape 执行逻辑日志回收。 | 如果想要回收逻辑日志,那么在执行从标准输入恢复之前必须使用 -S 选项。LTAPEDEV 配置参数必须设置为逻辑日志磁带设备。 |
-t STDIO | 指示 ontape 从标准输入恢复。 | -t 选项为当前恢复覆盖 TAPEDEV 配置参数的值。 |
-v | 指示 ontape 在从标准输入恢复期间向 stderr 写入参考消息。 | 详细模式对于监视从标准输入恢复的进度很有用。 |
-X | 使服务器停顿在逻辑恢复暂挂状态,但不恢复其他日志。 | 包括带有 -r -l 的该选项,以结束逻辑日志的连续日志恢复。 |
请参阅 《GBase 8s 管理员参考》中的 -FILE 选项。
恢复整个系统
本部分概述了使用 ontape 恢复整个数据库服务器之前所需完成的先决条件和步骤。
以下列表汇总了完全系统恢复中的主要步骤:
- 收集适当的备份和逻辑日志磁带。
- 决定是执行完整的冷恢复还是混合恢复。
- 验证您的数据库服务器的配置。
- 执行冷恢复。
尝试整个系统恢复之前请先熟悉这些指示信息。
在恢复前收集备份和逻辑日志磁带
在恢复整个数据库系统前,您必须收集备份和逻辑日志磁带。如果您更改了备份和逻辑日志文件的名称,那么还必须手动将这些文件重命名为其原始文件名。
备份磁带
从包含要恢复的存储空间的最新 0 级备份以及任何后续 1 级或 2 级备份中收集所有磁带。
标识出其中有根数据库空间最近一次 0 级备份的磁带;必须先使用该磁带。
逻辑日志磁带
如果在归档检查点时启动了一个打开的事务,请在执行 0 级备份前收集所有逻辑日志磁带。
从要恢复的存储空间的最新 0 级备份后的备份中,收集所有逻辑日志磁带。
当使用 ontape 创建系统的归档备份时,该归档中会包含逻辑日志的快照。在归档结束时,系统将显示一条消息以指示归档中包含哪些逻辑日志。归档中包含该快照,这样如果备份时存在任何打开的事务,这些事务可以在恢复归档时进行调整。然后:
- 如果您决定不重放任何逻辑日志,系统即可进入一致的状态。
- 如果您决定重放逻辑日志,那么将放弃归档备份中包含的日志,然后您必须从逻辑日志备份重放事务。
起始日志文件是最旧的日志文件,其中包含上次恢复归档时的打开事务。您可以从上次恢复归档时显示的消息识别该日志文件。
示例:
- ontape -s -L 0 命令执行系统的 0 级备份,并显示消息以说明归档包含日志 2 到 4。
- ontape -s -L 1 命令执行系统的 1 级增量备份,并显示消息以说明归档包含日志 8 到 9。
如果您只恢复 0 级归档并且希望重放日志,那么需要从日志 2 开始的日志备份。如果恢复 0 级和 1 级归档并且希望重放日志,那么需要从日志 8 开始的日志备份。
逻辑日志文件的恢复使用归档格式,而不是日志文件格式。但是,恢复的归档中包含的日志使用日志文件格式,而不是归档格式。
从目录恢复时的文件名
从文件系统目录恢复时,ontape 要求如 TAPEDEV 和 LTAPEDEV 配置参数所指定那样命名存储空间归档和逻辑日志备份文件。如果由于重复的归档和备份而重命名了文件(包括由 ontape 重命名),那么必须手动将这些文件重命名为其原始文件名。要了解存储空间归档文件和逻辑日志备份文件的命名约定,请参阅备份到目录以获取这些文件的命名约定。
决定是执行完整的冷恢复还是混合恢复
如冷恢复、热恢复或混合恢复中提到的,如果是恢复整个数据库服务器,可以在冷恢复期间恢复关键数据库空间(以及需要迅速联机的任何其他存储空间),接着在热恢复期间恢复剩余的存储空间。启动恢复之前确定是要进行冷恢复还是混合恢复。
验证数据库服务器的配置
在冷恢复期间,不能设置共享内存、添加块或更换磁带设备。因此,开始恢复时,当前数据库服务器的配置必须保持与最近一次备份后指定的所有参数值一致,并能接受这些值。
有关指导信息,请使用每次备份时创建的配置文件的副本。但是,不要将当前所有参数设置为与最后一次备份时记录的值相同的那些值。请注意以下三组参数:
- 共享内存参数
- 镜像参数
- 设备参数
将共享内存参数设置为指定的最大值
确保将当前共享内存参数设置为 0 级备份后指定的最大值。例如:如果您在 0 级备份后的某个时间将 USERTHREADS 的值从 45 减少到 30,那么开始恢复时必须将 USERTHREADS 设置为 45 而不是 30,即使最近一次备份的配置文件副本可能注册了设置为 30 的 USERTHREADS 值。(如果在 0 级备份后不处理 USERTHREADS 的最大值的记录,请将该值设置为您需要的最高值。也可以为 BUFFERPOOL、LOCKS 和 TBLSPACES 重新指定值,因为这三个参数的最小值都是基于 USERTHREADS 的值。)
将镜像配置设置为 0 级备份状态
请验证当前的镜像配置是否与最近的 0 级备份时的有效配置相匹配。由于建议您在每次更改镜像配置后都创建 0 级备份,因此这不会产生任何问题。最关键的参数是出现在配置文件中的镜像参数 MIRRORPATH 和 MIRROROFFSET。
验证原始设备或文件是否可用
验证 0 级备份后用于存储(属于要恢复的存储空间)的原始设备或文件是否可用。
例如:如果在 0 级备份后删除了数据库空间或数据库空间的镜像,那么必须在开始恢复时确保此数据库空间或镜像块设备对于数据库服务器是可用的。如果数据库服务器试图写入块中但找不到该块,那么恢复无法完成。同样,如果自上次备份后添加了块,那么必须在数据库服务器开始前滚逻辑日志时,让块备份对于数据库服务器可用。
执行冷恢复
要执行冷恢复,数据库服务器必须是脱机的。
要使用 ontape,必须以 gbasedbt 用户 或 root 登录。执行以下 ontape 命令可恢复所有存储空间:ontape -r
如果执行混合恢复,那么在冷恢复期间只恢复部分存储空间。必须至少恢复所有的关键数据库空间,如以下示例所示:
ontape -r -D rootdbs llogdbs plogdbs
回收逻辑日志文件
冷恢复开始前,控制台提示您回收磁盘上的逻辑日志文件。要回收逻辑日志文件,请使用新磁带。它将保存您未备份的日志记录,并使您可以将数据库服务器的数据恢复到故障发生前的情形。
下面显示了一个日志回收示例:
...
继续恢复?(y/n) y
是否要备份日志?(y/n) y
请在 /dev/ltapedev 上安装磁带 1 并按“返回”以继续。
希望备份日志 31 - 32 中的任意一个吗?(y/n) y
逻辑日志 31 - 32 可能已备份。
请输入您希望备份的最旧的日志的标识?31
请将该磁带标记为日志磁带序列中的编号 1。
该磁带包含以下逻辑日志:
31-32
日志回收已完成,继续归档的恢复。
恢复 1 级归档 (y/n) y
准备 1 级磁带
...
恢复期间安装磁带
在冷恢复期间,ontape 将提示您安装带有适当备份文件的磁带。
从目录恢复时,提示中会指定目录的绝对路径名。响应提示前,您可以复制或重命名目录中的文件。
使用 ontape -d 选项可以避免出现提示。使用此选项时,请确保存储空间归档和逻辑日志备份文件存在于 TAPEDEV 和 LTAPEDEV 参数指定的目录中。ontape 实用程序会扫描这些目录,获取目录中的文件并将这些文件用于恢复。恢复适用的最新逻辑日志备份文件后,ontape 会自动落实恢复并将 GBase 8s 实例更改为静默方式。
恢复逻辑日志文件
执行混合恢复时,必须恢复自上次 0 级备份以后备份的所有逻辑日志文件。
执行完全恢复时,可以选择不恢复逻辑日志文件。如果不备份逻辑日志文件或选择不恢复它们,那么只能将数据恢复到最近一次进行备份时所处的状态。有关更多信息,请参阅使用 ontape 备份逻辑日志文件。
要恢复逻辑日志,请使用 ontape -l 命令。
恢复完成时使数据库服务器处于联机状态
冷恢复结束后,数据库服务器处于停顿方式。可以让数据库服务器处于联机状态并继续常规处理。
如果在冷恢复期间仅恢复部分存储空间,那么可以在数据库服务器处于联机状态后对其余的存储空间启动热恢复。
恢复选定的存储空间
这些主题概述当数据库服务器处于联机状态或静默方式时,使用 ontape 恢复选定存储空间(热恢复)过程中必须执行的步骤。在热恢复期间,与冷恢复不同的是不需要担心共享内存参数。
尝试恢复前,请先熟悉这些指示信息。
以下列表描述热恢复中采取的主要步骤:
- 收集适当的磁带
- 确保需要的设备可用
- 备份逻辑日志文件
- 执行热恢复
收集适当的磁带
收集适当的备份和逻辑日志磁带。
备份磁带
开始恢复之前,从包含要恢复的存储空间的最近 0 级备份以及所有随后的 1 级或 2 级备份中收集所有磁带。
逻辑日志磁带
从要恢复的存储空间的最近一次 0 级备份后的逻辑日志备份中,收集所有逻辑日志磁带。
确保需要的设备可用
开始恢复前请验证存储设备和文件可用。例如:当您在 0 级备份后删除数据库空间或数据库空间的镜像时,必须确保开始恢复时数据库空间或镜像块设备对于数据库服务器是可用的。如果存储设备不可用,那么数据库服务器无法写入块中,恢复将失败。
在上次备份后添加块时,必须确保数据库服务器前滚逻辑日志时,块备份对于数据库服务器是可用的。
备份逻辑日志文件
开始热恢复前(即使是作为混合恢复的一部分执行热恢复),必须备份逻辑日志文件。请参阅使用 ontape 备份逻辑日志文件。
执行热恢复后,必须前滚逻辑日志文件,使您要恢复的数据库空间与系统中其他数据库空间的状态一致。恢复选定的数据库空间后未能前滚逻辑日志,那么 ontape 将生成以下消息:
部分系统恢复未完成。
执行热恢复
要执行热恢复,数据库服务器必须在联机状态或停顿方式下运行。
要使用 ontape,必须以 gbasedbt 用户 或 root 登录。要恢复选定的存储空间,请执行 ontape 命令,并使用以下示例显示的选项:
ontape -r -D dbspace1 dbspace2
无法在热恢复期间恢复关键数据库空间;必须将其作为冷恢复的一部分进行恢复,如恢复整个系统中所述。
在恢复期间,ontape 将提示您安装带有适当备份文件的磁带。
热恢复结束时,原来关闭的存储空间又处于联机状态。
恢复原始表
使用 ontape 恢复原始表时,该表中只包含上次备份时磁盘上存在的数据。由于原始表不记录日志,因此无法恢复自上次备份以来发生的所有更改。要了解更多信息,请参阅备份原始表和《GBase 8s 管理员指南》。
使用 ontape 配置连续日志恢复
确保主系统和辅助系统上的 GBase 8s 版本相同。
所有当前可用日志恢复后,请使用连续日志恢复来重新启动带有新可用日志的日志恢复。有关更多信息,请参阅连续日志恢复。
要使用 ontape 配置连续的日志恢复:
-
在主系统上,使用 ontape -s -L 0 命令执行 0 级归档。
-
在辅助系统上,复制文件或安装磁带(由 LTAPEDEV 分配),然后使用 ontape -p 命令执行物理恢复。
-
对以下提示作出响应:
继续恢复?Y
是否要备份日志?N是否要恢复 1 级归档?N物理恢复完成后,数据库实例等待快速恢复方式来恢复逻辑日志。
-
在主系统上,使用 ontape -a 命令备份逻辑日志。
-
在辅助系统中,复制文件或安装包含主系统中备份逻辑日志的磁带。使用 ontape -l -C 命令执行逻辑日志恢复。
-
对可用于备份与恢复的所有逻辑日志重复步骤 4 和 5。
-
如果您要在紧急备用的辅助系统上执行连续日志恢复,请运行以下命令来完成逻辑日志恢复并停顿服务器
- 如果逻辑日志可用于恢复,请使用 ontape -l 命令。
- 在恢复所有可用逻辑日志之后,使用 ontape -l -X 命令。
恢复期间重命名块
可以在冷恢复期间使用 ontape 重命名块。如果需要将存储空间恢复到与完成备份的磁盘不同的磁盘上,该选项很有帮助。可以重命名任意类型的块,包括关键块和镜像块。
ontape 重命名块恢复仅对冷恢复可用。
冷恢复时必须恢复关键的数据库空间(如 rootdbs)。 如果不指定要恢复的数据库空间列表,那么服务器会恢复关键的数据库空间以及其他所有数据库空间。但如果指定了要恢复的数据库空间列表,那么其中必须包括关键的数据库空间。
有关使用 ontape 重命名块的语法,请参阅ontape 实用程序执行恢复的语法。
如果使用到块名称的符号链接,可以不需要重命名块;而只需编辑符号名称定义即可。有关更多信息,请参阅《GBase 8s 管理员指南》。
您可以在外部冷恢复的过程中对块进行重命名。有关更多信息,请参阅重命名块。
重命名块的验证顺序
在冷恢复期间,ontape 执行以下验证来重命名块:
- 验证在归档保留页中是否存在旧块的路径名和偏移量。
- 验证各个新块之间或新块与现有块之间的路径名与偏移量是否相互重叠。
- 如果对主根块或镜像根块进行重命名,那么将更新 onconfig 文件参数 ROOTPATH 和 ROOTOFFSET,或 MIRRORPATH 和 MIRROROFFSET。旧版本的 onconfig 文件将另存为 $ONCONFIG.localtime。
- 将旧块中的数据恢复到新块(如果新块存在)中。
- 将每个块的重命名信息写入到联机日志中。
如果任意一个验证步骤失败,剩余的进程停止并且 ontape 将一条错误消息写入到 ontape 活动日志中。
- 重命名块后请执行 0 级归档;否则下次恢复将失败。
- 如果在执行 0 级归档后添加了块,那么恢复期间无法重命名该块。同时也不能安全地在映射列表中将该块指定为新路径。
- 为参与 HAC 的数据库服务器重命名块的操作中,两个数据库服务器都要长时间地脱机。有关更多信息,请参阅《GBase 8s 管理员指南》。
新块需求
要重命名块,请遵循以下新块的准则:
-
新块不是必须存在的
可以以后安装新块并对包含它的存储空间执行热恢复。如果指定不存在的块,ontape 将重命名信息记录在块的保留页中,但不恢复数据。已重命名(但未恢复)的块处于脱机状态,在 onstat -d 块状态命令输出中由 D 指示。
-
新块必须有适当的权限。
除非新块有适当的权限,否则重命名操作将失败。有关更多信息,请参阅《GBase 8s 管理员指南》。
使用命令行选项重命名块
要通过提供命令行的信息来重命名块,请使用此命令:
ontape -r -rename -p /chunk1 -o 0 -n /chunk1N -o 20000
-rename -p /chunk2 -o 10000 -n /chunk2N -o 0
在重命名和恢复操作完成后执行 0 级归档。
使用文件重命名块
要通过提供名为 listfile 的文件来重命名块,请使用以下命令:ontape -r -rename -f listfile
listfile 文件的内容是:
/chunk1 0 /chunk1N 20000
/chunk2 10000 /chunk2N 0
在重命名和恢复操作完成后执行 0 级归档。
指定其他选项时重命名块
要在 dbspace1 和 dbspace2 上执行恢复时使用命令行选项来重命名块,并且其中 rootdbs 是 rootdbs 的名称,请使用以下命令:
ontape -r -rename -p /chunk1 -o 0 -n /chunk1N -o 20000
-rename -p /chunk2 -o 10000 -n /chunk2N -o 0
-D rootdbs dbspace1 dbspace2
此外,要在 dbspace1 和 dbspace2 上执行恢复时使用文件重命名块,请使用以下命令:
ontape -r -rename -f listfile -D rootdbs dbspace1 dbspace2
在重命名和恢复操作完成后执行 0 级归档。
将块重命名到不存在的设备上
要将块重命名到还不存在的设备上,首先指定新的路径名,但直到您安装了该物理设备后,才能恢复它的存储空间。该选项在您需要重命名块时很有用,便于您在安装新设备前执行冷恢复。当新块设备就绪后,您可以在它上面执行存储空间的热恢复。
可以在同一个重命名操作中将重命名块与现有设备结合在一起,以及将重命名块与不存在的设备结合在一起。本示例显示如何将单个块重命名到不存在的设备名上。
下表列出本示例中使用的块的示例值。
存储空间 | 旧块的路径 | 旧偏移量 | 新块的路径 | 新偏移量 |
---|---|---|---|---|
sbspace1 | /chunk3 | 0 | /chunk3N | 0 |
将块重命名到不存在的设备上
要将块重命名到不存在的设备上:
-
重命名块:使用以下命令:ontape -r -rename -p /chunk3 -o 0 -n /chunk3N -o 0
-
当以下提示出现时,请输入 y 以继续:
块 /chunk3N 不存在。如果继续,那么对包含该块
的数据库空间的恢复操作稍后可能会失败。
在不创建该块的情况下,是否继续?(y/n)块 /chunk3 被重命名为 /chunk3N,但数据还未恢复到 /chunk3N 上。
-
执行 0 级归档。
-
为 /chunk3N 添加物理设备。
-
使用 ontape -r -D sbspace1 命令来执行 sbspace1 的热恢复。
-
执行 0 级归档。
从标准输入恢复
可以从标准输入执行恢复,必须首先已经执行到标准输出的备份。
当您从标准输入恢复时,ontape 不会提示您提供选项或信息。 如果 ontape 不能根据您在恢复命令中提供的信息执行该操作,ontape 将退出并生成相应的错误。 从标准输入中恢复和从磁带恢复在以下几个方面不同:
-
不发生逻辑恢复或逻辑日志回收。
要执行逻辑恢复,在物理恢复后使用 ontape -l 命令。
要回收逻辑日志,请在物理恢复之前使用 ontape -S 命令。
-
不会提示您确认恢复操作。关于归档的参考消息被送到 stderr。
如果您发现有问题,您可以在归档信息完成而数据库服务器尚未启动的 10 秒延迟期间中断恢复。
示例
在以下示例中,ontape 从文件 level_0_archive 执行了物理恢复,该文件中包含上次执行的到标准输出的归档。
cat /home/level_0_archive | ontape -p
在以下示例中,ontape 执行了 0 级归档的恢复,随后是 1 级归档的恢复:
cat /home/level_0_archive /home/level_1_archive | ontape -r
在以下示例中,ontape 执行了 sbspace1 的恢复:
cat/home/level_0_archive | ontape -r -D spspace1 -t STDIO
当这些恢复完成时,数据库服务器处于单用户方式。
将数据恢复到远程服务器
可以用以下命令将数据恢复到远程服务器:
ontape -s -L 0 -F | rsh remote_server "ontape -p"
但在成功完成后,过程可能会挂起。您有三个主要选项:
-
终止远程 shell 过程
-
用以下命令执行远程服务器中的远程 shell:
rsh local_server "ontape -s -L 0 -F" | ontape -p
-
使用 sh 或 bash shell 中的以下命令对远程服务器上的标准输出 (stdout) 和标准错误 (stderr) 进行重定向:
ontape -p >/dev/null 2>&1
-
通过将上述命令放置在远程服务器上的 shell 脚本 (ontape.sh) 中,您可以简化此重定向。可以从本地服务器发布以下命令:
ontape -s -L 0 -F | rsh remote_server /my/path/ontape.sh
使用标准 I/O 同时备份与恢复
为了克隆数据库服务器或快速建立高可用性数据复制 (HAC),您可以同时执行向标准输出的备份和从标准输入的恢复。如果您执行备份与恢复只是为了复制数据库服务器,使用 -F 选项以避免保存归档。
在 HAC 上,辅助服务器只能恢复 0 级的归档。
要使用标准 I/O 来执行备份与恢复,请将 TAPEDEV 配置参数设置为 STDIO,也可以从命令行指定 -t STDIO。
例如,如果 TAPEDEV 配置参数设置为 STDIO,以下命令会将数据装入一个 HAC 对上的辅助服务器(名为 secondary_host)。
ontape -s -L 0 -F | rsh secondary_host "ontape -p"
在下一个示例中,假设未设置 TAPEDEV 配置参数。以下命令将数据装入一个 HAC 对的辅助服务器(名为 secondary_host):
ontape -s -L 0 -F -t STDIO | rsh secondary_host "ontape -t STDIO -p"
这些示例在本地计算机上执行数据库服务器的伪 0 级归档,使用 rsh 系统实用程序通过管道将数据传输到远程计算机,并直接从管道中读取数据从而在远程计算机上执行物理恢复。
执行外部备份与恢复
这些主题将讨论如何执行外部备份以及通过使用 ontape 实用程序将其恢复来恢复数据。
使用外部备份和恢复来恢复数据
您可以执行外部备份与恢复,以消除系统的停机时间,因为备份与恢复操作都是在 GBase 8s 系统外部执行的。
在备份或物理恢复期间 ontape 实用程序不移动数据。外部备份使您不必使用 ontape 就可以复制包含存储空间块的磁盘。当磁盘发生故障时,将其更换并使用供应商软件来恢复数据,然后使用 ontape 进行逻辑恢复。有关更多信息,请参阅在外部恢复中恢复的数据。
以下是外部备份与恢复的典型情况:
-
磁盘镜像的可用性
如果您使用硬件磁盘镜像,那么与使用常规的 ontape 命令相比,使用外部备份与恢复方法可以使系统更快地联机。
-
克隆
可以使用外部备份与恢复来克隆现有的生产系统,以在不干扰生产系统的情况下对其进行测试或迁移。
在外部备份中备份的数据
开始外部备份之前,需要阻塞数据库服务器。阻塞将强制设置检查点,清空缓冲区、将其中的内容都保存到磁盘,并阻塞包含临时表的用户事务。在阻塞操作期间,用户可采用只读方式访问数据库服务器。接着您可以使用操作系统或第三方的工具以物理方式将数据备份或复制到另一组磁盘或存储介质上。完成外部备份后,取消阻塞数据库服务器以使事务能继续进行。在外部备份中应包含每个存储空间中的所有块文件以及管理文件(例如 onconfig)。
要使跟踪备份更加容易,建议您在每个外部备份中备份所有存储空间。
ontape 实用程序将外部备份视为 0 级备份。您不能在执行外部备份后使用 ontape 执行 1 级备份,反之亦然,因为 ontape 没有外部备份的任何记录。有关更多信息,请参阅执行外部冷恢复。
外部备份的规则
开始外部备份之前,记住以下规则:
- 在执行外部备份期间,数据库服务器必须处于联机或停顿方式下。
- 用 ontape 备份包括当前日志在内的所有逻辑日志,这样您就可以在外部恢复结束时恢复逻辑日志。
- 阻塞数据库服务器以进行外部备份之前请暂挂连续逻辑日志备份。外部备份完成后,恢复连续逻辑日志备份。
- 等到所有 ontape 备份会话完成后再阻塞数据库服务器。如果有任何备份会话是活动的,阻塞命令将显示错误消息。
- 当数据库服务器阻塞时,所有 OLTP 工作或查询都将暂挂。直到数据库服务器取消阻塞后它们才会继续进行。
- 数据库服务器实例中所有关键的数据库空间必须使用同一个 onmode -c block … onmode -c unblock 命令编组一同进行备份。 在不同时间对不同的关键数据库空间所做的备份无法恢复到一致的系统中。
由于外部备份不受 ontape 的控制,因此您必须手工跟踪这些备份。有关更多信息,请参阅跟踪外部备份。
执行外部备份
外部备份期间数据库服务器必须处于联机状态或停顿方式。
要在不使用磁盘镜像的情况下执行外部备份:
-
要获取外部备份,请使用 onmode -c block 命令来阻塞数据库服务器。
系统将获取一个检查点并暂挂所有更新事务。用户能以只读方式访问数据库服务器。
-
要备份存储空间和管理文件,请使用复制命令(如 UNIX™ 上的 cp、dd 或 tar,)或文件备份程序。
必须备份存储空间中的所有块。
-
要允许正常操作继续,请使用 onmode -c unblock 命令来取消阻塞数据库服务器。
-
备份包括当前日志在内的所有逻辑日志,这样就可以将检查点信息用于外部恢复。
重要由于外部备份并不是通过 ontape 完成的,因此必须确保具有从执行 onmode -c block 命令时开始的当前逻辑日志的备份。没有该逻辑日志文件的备份,外部备份将是不可恢复的。
-
执行外部备份后,请备份当前日志。 使用 ontape -a 命令。
如果您丢失磁盘或整个系统,现在便可以执行外部恢复。
准备进行外部备份
这些主题描述了用于准备外部备份的命令。有关过程的信息,请参阅执行外部备份。
阻塞和取消阻塞 GBase 8s
本部分介绍 block 和 unblock 命令的语法。
元素 | 用途 | 关键注意事项 |
---|---|---|
-c | 执行检查点并阻塞或取消阻塞数据库服务器 | 无。 |
block | 阻止数据库服务器执行任何事务 | 设置数据库服务器以进行外部备份。当数据库服务器被阻塞时,用户可采用只读方式进行访问。样本命令:onmode -c block |
unblock | 取消阻塞数据库服务器,从而允许数据事务和正常的数据库服务器操作可以继续进行 | 在外部备份完成前请勿取消阻塞。样本命令:onmode -c unblock |
跟踪外部备份
数据库服务器和 ontape 不会跟踪外部备份。要跟踪外部备份数据,请使用第三方存储管理器或手动跟踪数据。下表显示了建议您在外部备份中跟踪的项。
表 1. 使用外部备份与恢复时要跟踪的项
要跟踪的项 | 示例 |
---|---|
每个已备份存储空间的各个块文件的完整路径名 | UNIX™:/work/dbspaces/rootdbs |
对象类型 | 关键数据库空间、非关键存储空间 |
ins_copyid_hi 和 ins_copyid_lo | 存储管理器分配给每个备份对象的副本标识 |
备份日期和时间 | 阻塞和取消阻塞数据库服务器的时间 |
备份介质 | 磁带卷编号或磁盘路径名 |
数据库服务器版本 | V8.8 |
在外部恢复中恢复的数据
仅当您在外部备份数据后,才能够在丢失磁盘或整个系统的情况下从外部进行恢复。 必须对外部备份与恢复使用相同的第三方实用程序。要从外部恢复存储空间,请将已备份的数据复制到磁盘。使用 ontape -p -e 命令将存储空间标记为已物理恢复,通过 ontape -l 命令重放逻辑日志,并使存储空间重新联机。如果未指定外部恢复命令,那么数据库服务器无法将这些存储空间的状态更新为联机。
您只能使用 ontape 执行外部冷恢复。外部冷恢复将存储空间标记为已物理恢复,然后对所有存储空间执行逻辑恢复。
当执行外部冷恢复时,ontape 并不首先尝试从数据库服务器回收逻辑日志文件,因为外部备份已经复制了所有逻辑日志数据。
要回收逻辑日志,请在复制外部备份之前执行 ontape -S,然后执行外部恢复 (ontape -p -e)。
使用外部恢复命令
ontape -p -e 命令用于执行外部冷恢复。该命令将存储空间标记为已物理恢复。下图显示外部物理恢复语法。
执行外部物理恢复
元素 | 用途 | 关键注意事项 |
---|---|---|
-e | 指定外部恢复 | 必须与 -p 选项一起使用。 |
-p | 指定物理恢复。 | 在冷恢复中,如果未指定存储空间名称,那么所有存储空间都将标记为已恢复。物理恢复完成后,您必须执行逻辑恢复。 |
ontape -l 命令用于执行逻辑恢复。有关更多信息,请参阅ontape 实用程序执行恢复的语法。
外部恢复的规则
开始外部恢复之前,请了解从外部备份可恢复以及无法恢复的内容,并注意外部恢复的规则。
这些需求和规则如下:
- 必须从外部备份进行外部恢复。尽管外部备份被视为 0 级备份,但它实际上可能是非 GBase 8s 增量备份。
- 不能从外部恢复临时数据库空间。
- 不能从常规 ontape 备份执行外部恢复。
- 如果使用 ontape,您无法验证是否在从正确的备份进行恢复以及存储介质是否可读。
- 如果多个外部备份在不同的时间进行,那么外部恢复将使用最早的备份中的开始逻辑日志。
- 应在切换包含关键存储空间的磁盘之前回收逻辑日志 (ontape -l)。
- 如果正在恢复关键数据库空间,那么数据库服务器必须处于脱机状态。
- 如果正在恢复 rootdbs,那么在恢复期间应禁用镜像。
- 数据库服务器实例的所有关键数据库空间的外部备份必须同时进行。必须在同一个 onmode -c block … onmode -c unblock 命令编组中备份了所有关键的数据库空间。
重命名块
您可以使用其他恢复方法的重命名选项语法,对外部冷恢复中的块进行重命名。
在外部冷恢复过程中使用以下命令对块进行重命名:
ontape -p -e -rename -f
filename
或
ontape -p -e -rename -p old_path -o old_offset-n new_path-o new_offset
执行外部冷恢复
如果在冷恢复过程中指定 ontape -p -e 命令,那么必须恢复所有存储空间。使用 ontape -p -e 命令来恢复所有存储空间。
要执行外部冷恢复:
-
使用 onmode -ky 命令来关闭数据库服务器。
-
要从外部备份恢复存储空间,请使用复制命令,例如 UNIX™ 上的 cp、dd 或 tar,或使用文件备份程序。
您必须将存储空间恢复为与原始数据相同的路径。
-
要对所有存储空间执行外部恢复,然后执行逻辑恢复,请使用以下命令:
- ontape -p -e
- ontape -l
外部恢复命令的示例
下表包含外部恢复命令的示例。
外部恢复命令 | 操作 | 注释 |
---|---|---|
ontape -p -e ontape -l | 物理外部恢复和逻辑恢复 | 系统从最早的外部备份恢复逻辑日志。 |
ontape -p -e -rename -f | 使用已重命名的块执行外部冷恢复 |
使用外部备份与恢复来初始化 HAC
您可以使用外部备份来初始化“高可用性数据复制”(HAC)。
要使用外部备份与恢复来初始化 HAC:
- 使用 onmode -c block 命令来阻塞源数据库服务器。
- 在外部备份源数据库服务器上的所有块。
- 备份完成时,使用 onmode -c unblock 命令来取消阻塞源数据库服务器。
- 使用以下命令来使源数据库服务器成为主服务器:onmode -d primary secondary_servername
- 在目标数据库服务器上,通过复制或文件备份程序从外部备份恢复数据。
- 在目标数据库服务器上,使用 ontape -p -e 命令恢复所有块的外部备份。
- 使用以下命令来使目标数据库服务器成为辅助服务器:onmode -d secondary primary_servername
- 如果从步骤 1 以来写入到主数据库服务器中的逻辑日志记录仍然驻留在主数据库服务器磁盘上,那么辅助数据库服务器将读取这些记录以执行逻辑恢复。否则,使用 ontape -l 命令来执行逻辑恢复。
数据库服务器可操作消息将显示在主服务器和辅助服务器上的消息日志中。