一、脱机备份与还原

图形化Console控制台操作

  1. DM8控制台脱机备份数据库
  2. DM8控制台还原数据库
  3. DM8控制台恢复数据库
  4. 更新DB_MAGIC

如下:

1.关闭数据库服务(实例)

#systemctl stop DmServiceDAMENG.service

2.dmdba用户打开另一个DM Console(千万注意使用dmdba用户打开图形化界面操作)

$cd /dm8/tool

$console

3.创建备份,点击New backup

4.启动数据库服务

#systemctl start DmServiceDAMENG.service

#su - dmdba

$cd /dm8/tool

$./manager

(任意修改新增:创建了WDM user)

删除/dm8/data/DAMENG/*.DBF文件后启动数据库服务,用户级别的DBF,不影响数据库启动。

5.关闭数据库服务,进入console,还原备份

Restore还原成功,但无法启动数据库

 

尝试recover恢复成功,但还是无法启动数据库

6.按提示需要update db_magic,进入console点击update db_magic成功

7.重启数据库服务成功

#systemctl start DmServiceDAMENG.service

打开/dm8/data/DAMENG查看备份数据恢复情况,*.DBF文件还在

$/dm8/data/DAMENG

$ll

DMRMAN命令行操作

 

DMRMAN介绍

DMRMAN是DM8的脱机备份还原管理工具,由它来统一负责库级脱机备份、 脱机还原。

DMRMAN工具支持命令行指定语句、命令行指定脚本和控制台输入三种操作方式。

配置DMRMAN
  1. CONFIGURE语句进行DMRMAN的默认参数配置,配置默认的存储介质类型、备份集搜集目录、归档日志搜集目录、跟踪日志文件
  2. 显示所有默认配置项 – CONFIGURE;
  3. 清除所有默认配置项 – CONFIGURE CLEAR;
  4. 配置默认设备类型为磁盘DISKᅳ CONFIGURE DEFAULT DEVICE TYPE DISK;

打开dmrman

$cd /dm8/bin

$./dmrman

 

RMAN>configure 查看参数;

DMRMAN备份数据库

对数据做完全备份

RMAN>backup database '/dm8/data/DAMENG/dm.ini' full

backupset '/dm8/data/DAMENG/bak_full';

DMRMAN还原和恢复数据库

• 还原数据库

RMAN>restore database '/dm8/data/DAMENG/dm.ini' from

backupset '/dm8/data/DAMENG/bak_full' ;

• 恢复数据库

RMAN>recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

DMRMAN重用的命令
  1. show 查看备份集 – show backupset '/dm8/data/DAMENG/bak_full';
  2. remove 删除备份集 – remove backupset '/dm8/data/DAMENG/bak_increment';
  3. check 检查备份集 – check backupset '/dm8/data/DAMENG/bak_full';
  4. load 导入备份集 – load backupset '/dm8/data/DAMENG/bak_full';

二、联机备份与还原

归档日志

归档日志(Archive Log)是非活动的重做日志备份. 通过使用归档日志,可以保留所有重做历史记录, 当数据库出现介质失败时,使用数据文件备份,归档日志重做日志可以完全恢复数据库

配置本地归档
图形化配置本地归档日志

进入manager——右键——管理服务器

 

 系统管理——将数据库状态改成mount

 

配置本地归档:目录/dm8/arch

DDL:alter database add archivelog 'DEST=/dm8/arch, TYPE=LOCAL, FILE_SIZE=64, SPACE_LIMIT=0';

数据库状态切换到open

命令行配置本地归档

SQL> alter database mount;

SQL> alter database add archivelog 'type=local,dest=/dm8/arch,file_size=64,space_limit=0' ;

SQL> alter database archivelog;

SQL> alter database open;

联机备份

联机备份可以备份数据库,表空间,表和归档文件。

 

 

联机备份表空间

SQL命令行创建一个测试表空间test

刷新manager可以看到test表空间

 

 配置本地归档日志(见上文),然后新建备份;

 图形化备份表空间

 

 

命令行备份表空间

SQL>backup tablespace DMHR full to TS_TEST_FULL_2022_12_04_20_23_05 backupset ' /dm8/data/DAMENG/bak/TS_TEST_FULL_2022_12_04_20_23_05'

备份后删除dbf文件(操作系统级别删除文件,表空间仍然在)

 

 

 备份后插入数据,再插入新数据新插入数据只在内存(在线日志)。

数据库完全备份与增量备份(联机)
完全备份

执行数据库备份,数据库必须处于 OPEN 状态,MOUNT 和 SUSPEND 状态下不允许执行数据库备份。

数据库完全备份中包含了指定库的全部有效数据页,为了保证数据安全应该对数据库定 期执行完全备份。多久执行一次完全备份才合适,一般规则是数据库经过频繁修改后最好执 行一次完全备份。

完全备份数据库步骤如下:

1.配置归档日志

配置归档过程(命令行):

$disql sysdba/dameng123

SQL> ALTER DATABASE MOUNT;

SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST = G:\dmdbms\arch, TYPE = local,         FILE_SIZE = 1024, SPACE_LIMIT = 204800';

SQL>ALTER DATABASE ARCHIVELOG;

SQL>ALTER DATABASE OPEN;

查看是否配置归档;

SQL>select name,arch_mode from v$database;

查看是否归档,及归档的空间,路径;

SQL>select arch_name,arch_type,arch_dest,arch_file_size,arch_space_limit from v$dm_arch_ini;  

查看实例名,状态,主机名, 保证数据库处于 OPEN 状态。

SQL>select instance_name,status$,host_name from v$instance;   

2.Disql中输入备份数据库语句,最简单的不设置其他参数的完全备份语句如下:         

SQL>BACKUP DATABASE FULL BACKUPSET '/home/dm_bak/db_full_bak_01';

备份语句中的参数 FULL 参数可以省略,不指定备份类型服务器会默认指定备份类型为完全备份。

增量备份

增量备份指基于指定的库(或者表空间)的某个备份(完全备份或者增量备份),备份 自该备份以来所有发生修改了的数据页。执行增量备份的主要目的是快速备份数据库中的修 改,减少备份时间和避免重复的备份。

如何制定备份策略要根据可接受的最小恢复时间。例如,每周执行一次完全备份,每天 执行一次增量备份,那么恢复时要重做的归档就不会超过一天。

增量备份数据库步骤如下:

  1. 配置归档,参考上文。
  2. 保证数据库处于 OPEN 状态。
  3. Disql中输入备份数据库语句,最简单的不设置其他参数的增量备份语句如下:   SQL>BACKUP DATABASE INCREMENT WITH BACKUPDIR '/home/dm_bak'   BACKUPSET         '/home/dm_bak/db_increment_bak_02';

备份语句中的 INCREMENT 参数不可省略,该参数用来指定执行的备份类型为增量备份。 若要创建累积增量备份,还需要指定 CUMULATIVE 参数,否则缺省为差异增量备份。WITH BACKUPDIR 参数用来指定基备份集的搜索目录,如果基备份集不在默认目录该参数不可省略。

归档日志备份

在 Disql工具中使用 BACKUP 语句可以备份归档日志。

使用归档备份的前提:

  1. 一是,归档文件的 db_magic 值和库的 db_magic 值必须一样;
  2. 二是,服务器必须配置归档;
  3. 三是,归档日志必须连续,如果出现不连续的情况,前面的会忽略,仅备份最新的连续部分。如果未收集到指定范围内的归档,则不会备份。联机备份的时候经常会切换归档文件,最后一个归档总是空的,所以最后一个归档不会被备份。

SQL>BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01'; 备份集“arch_bak_01”会生成到默认的备份路径下。 

归档备份拷贝指定归档目录下的所有的归档文件到备份集中,并记录各个归档文件的属 性,文件大小,LSN 区间等。归档备份不存在增量备份之说。当需要保存库的归档时,可以 使用归档备份。

完整的备份归档步骤如下:

        1) 配置归档

        2) 数据库处于OPEN或者MOUNT状态。

        3) DIsql 中输入备份数据库语句。

例如,备份归档日志,通过 LSN BETWEEN ... AND ...来指定起始和截至 LSN。

首先,确定 LSN 范围:

SQL>select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;

其次,备份归档日志

SQL>BACKUP ARCHIVELOG LSN BETWEEN 50414 AND 50478 BACKUPSET '/home/dm_bak/arch_bak_time_14-78';

联机还原

DM仅支持表空间和表的联机还原,数据库和归档日志的还原必须通过脱机工具DMRMAN 执行。

还原表空间(只能脱机还原)
Console控制台恢复表空间

尝试恢复test表空间

#systemctl stop DmServiceDMSERVER.service;----------------关闭数据库服务

#su – dmdba

$/dm8/tool/console

 

表空间还原本身包含恢复操作,因此还原后不需要再执行恢复操作(即不需要update DB_Magic)。

# systemctl start DmServiceDMSERVER.service --------------启动数据库

 连接manager查看TEST表空间file已恢复。

 进入/dm8/data/DAMENG8查看data_test01.dbf也已恢复

 DMRMAN还原表空间

dmrman需要在数据库服务关闭的状态运行(即脱机状态)。

#dmrman

RMAN>RESTORE DATABASE ('/dm8/data/DAMENG/dm.ini' )tablespace "DMHR" FROM BACKUPSET '/dm8/data/DAMENG/bak/TS_DMHR_FULL'

RMAN>RECOVER DATABASE ('/dm8/data/DAMENG/dm.ini' )TABLESPACE DMHR;

在线日志中的数据可以恢复回来。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐