专栏/培训园地/ 文章详情 /

DM8备份还原相关操作的总结

Qiao🌞 2024/09/23 467 0 0
摘要

在我们日常生产环境中数据库的备份还原是至关重要的。数据库备份目的是防止天灾人祸(地震、火灾、人为操作、硬件故障)导致数据丢失,在数据丢失时能够还原恢复数据库。
所谓数据库备份,就是数据库在某一个时间点的副本。
数据库备份主要分为有物理备份和逻辑备份。物理备份主要是备份使用过的有效的数据页,是对数据库的操作系统物理文件(数据文件,控制文件,日志文件)的备份;逻辑备份主要是备份数据库对象(表,索引,视图,存储过程等)。
物理备份分为联机备份和脱机备份、完全备份和增量备份。完全备份是备份整个数据库或者表空间的全部数据;增量备份是备份上一次全备或增备后,以后每次备份只需要备份修改过的数据页。数据库备份关系如下图:
image.png

数据库还原就是将某个时间点的数据库副本拷贝到对应的目录下。恢复就是在完成数据库还原之后,应用部分或者是全部归档日志。
数据库备份、还原与恢复关系如下图:
image.png

一、物理备份

物理备份分为有冷备和热备。

1.1、冷备

冷备不需要开启归档模式,需要开启DmAP服务,需要关闭数据库实例,针对整库做备份。
冷备有console工具和dmrman工具两种备份方式。

1.1.1、使用console工具备份

用命令关闭数据库实例
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
进入数据库安装路径tool目录下,用命令./console启用console工具。注意:用安装数据库的新建用户(我这里是dmdba)打开,用root打开进行备份会有很多问题。
image.png

点击新建备份,选择对应的备份类型,我们进行备份。我这里演示整库备份。
image.png
点击确定,备份成功。
image.png

1.1.2、用dmrman工具备份

dmrman只支持冷备,用新建dmdba用户。
[dmdba@localhost backup]$ cd/dm8/bin
[dmdba@localhost bin]$ ./dmrman
RMAN> backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/backup';

1.2、热备

热备需要开启归档模式,数据库实例需要开启,热备可以备份数据库、表空间、表、归档日志。
只有开启归档模式才能还原到任意时间点。
查看数据库归档模式:
SQL> select name,arch_mode from v$database;
归档日志是非活动的重做日志备份。通过使用归档日志,可以保留所有重做历史记录,当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库。
如何打开归档:两种方式。
1)命令行方式
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> select name,status$,arch_mode from v$database;
2)管理工具来打开
打开管理服务器。
image.png

系统管理中状态转换改为配置。
image.png
归档配置中归档模式改为归档,并添加归档目标。
image.png
系统管理中状态转换改为打开。
image.png

通过命令select arch_mode from v$database;查看归档模式是否打开。
image.png

热备可以用manager和disql两种方式。

1.2.1、整库备份

使用manager工具进行整库备份。
进入数据库安装路径tool目录下,用命令./manager启用manager工具。
使用manager登录数据库,左侧菜单里备份里库备份,右键选择新建备份。
image.png

可以手动指定备份集目录,不修改就是在默认的路径。
image.png

备份集目录默认路径是/dm8/data/DAMENG/bak,可以查看dm.ini里面para_PATH参数。也可以通过修改参数文件para_PATH参数进行更改默认路径。
通过SQL语句查询备份路径:
SQL> select para_name,para_value from v$dm_ini where para_name like ‘%BAK%’;
点击确定备份会报如下错误。
image.png

这时我们可以执行命令checkpoint(100);刷一下盘,再点击确定备份就可以备份成功了。
image.png

备份后我们可以查看备份。如果指定了备份集目录,需要指定工作目录,不然还是默认路径下的工作目录,无法查看备份。指定工作目录是会话级,刷新备份就回到默认目录。

image.png
image.png
image.png

使用disql工具做整库备份。
用户dmdba进入/dm8/bin目录下使用命令:[dmdba@DM bin]$ ./disql sysdba/Dameng123(数据库的sysdba密码)进入到disql。
SQL> backup database full to "DB_DAMENG_FULL"; //备份到参数文件中的默认备份路径
SQL> backup database full to "DB_DAMENG_FULL" BACKUPSET '/dm8/backup';
//备份到指定的备份路径

1.2.2、增量备份

同样使用manager工具,在新建库备份中选择备份类型:增量备份。
image.png
使用disql工具。
SQL> backup database increment to "DB_DAMENG_INCRE_2021_10_26_21_43_41" backupset 'DB_DAMENG_INCRE_2021_10_26_21_43_41';

1.2.3、表空间备份

表空间备份只能联机,还原只能脱机。表空间也可以进行增量备份。
使用manager工具。
image.png
使用disql工具。
SQL> backup tablespace "BOOKSHOP" full to "TS_BOOKSHOP_FULL_2021_10_26_21_44_10" backupset 'TS_BOOKSHOP_FULL_2021_10_26_21_44_10';

1.2.4、表备份

表备份不能应用归档日志。
使用manager工具,选择对应的模式名和表名进行备份。
image.png
使用disql工具。
SQL> backup table "DMHR"."DEPARTMENT" to "TAB_DMHR_DEPARTMENT_2021_10_26_23_13_03" backupset 'TAB_DMHR_DEPARTMENT_2021_10_26_23_13_03';

1.2.5、归档备份

归档备份可以指定时间段备份。
使用manager工具,可以指定LSN和时间段进行备份。
image.png
使用disql工具。
SQL> backup archivelog all to "ARCH_2021_10_26_23_17_13" backupset 'ARCH_2021_10_26_23_17_13';

二、物理还原

还原之前我们一定要先检查备份集是否有效。
使用dmrman工具检查备份集。
image.png
然后用命令关闭数据库实例
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop

2.1、使用Console工具还原

启用console工具,console工具目录位于/dm8/tool。
image.png
可以选择库还原、归档还原、表空间还原。
image.png
还原之后还需要进行恢复。
image.png
也可以指定归档恢复,其中可以指定恢复时间点进行不完全恢复。
image.png

进行了整个还原恢复过程之后,我要一定执行更新DB_Magic。不更新DB_Magic启动数据库会报错。
image.png

2.2、dmrman工具进行整库还原

RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup';
RMAN> recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/data/arch';
RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

2.3、dmrman工具进行表空间还原

模拟表空间损坏:
[dmdba@localhost DAMENG]$ mv TEST_01.DBF TEST_01.DBF.BAK
重启实例,实例处于 mount 状态,还原时关闭实例服务。
image.png
关闭实例,进行还原:
校验备份集
[dmdba@localhost bin]$ ./dmrman dmrman V8
RMAN> check backupset '/dm8/backup/fullbak';
还原表空间
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace test from backupset '/dm8/backup/fullbak';
恢复表空间
RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace test;
重启实例,表空间还原成功。
注意:表空间里文件损坏或者删掉可以进行表空间还原;在数据库里面执行drop tablespace操作,这个无法通过还原表空间进行还原,只能进行整库还原。

三、逻辑备份还原

逻辑备份是指使用软件技术从数据库中导出数据并写入一个输出文件,该文件个格式一般与原数据库的文件格式不同,只是原数据库中数据内容的一个映像。简单来说,逻辑备份的是数据库对象。
逻辑备份需要开启数据库服务,可以用来迁移和重组数据库,是数据库辅助型备份。
四种级别导入导出: 库级别、用户级别、模式级别、表级别。有 FULL、OWNER、SCHEMAS、TABLES 四种导出方式可供选择。一次导出只能指定一种方式。可选参数,缺省为 SCHEMAS。
逻辑备份导入导出有manager工具和命令行形式两种方式。

3.1、使用manager工具

manager工具比较方便简单,直接在指定的对象右键选择导入导出,选择相应对象配置对应参数进行导入导出。这里不作演示了。注意:用户导入和模式导入需要在上一层菜单右键选择导入。表导入图形化界面无法执行。
image.png

3.2、命令行形式

逻辑备份的两个命令dexp(导出)/dimp(导入)在bin目录下
我们可以查看帮助:
[dmdba@localhost bin]$ ./dexp help
[dmdba@localhost bin]$ ./dimp help

3.2.1、四种级别的的导出方式

全库导出:
[dmdba@localhost bin]$ ./dexp sysdba/Dameng123 file=full.dmp log=full.log directory=/dm8/backup full=y
模式导出:
[dmdba@localhost bin]$ ./dexp sysdba/Dameng123 file=imp_exp.dmp schemas=dmhr directory=/dm8/backup log=schemas.log
用户导出:
[dmdba@localhost bin]$ ./dexp sysdba/Dameng123 file=dmhr.dmp log=dmhr.log directory=/dm8/backup owner=dmhr
一般情况下,OWNER 与 SCHEMAS 导入导出是相同的。但是用户可以包含多个模式,在这种情况下 SCHEMAS 的导入导出是 OWNER 导入导出的一个子集。
表导出:
[dmdba@localhost bin]$ ./dexp sysdba/Dameng123 file=city.dmp log=city.log directory=/dm8/backup tables=dmhr.city

3.2.2、四种级别的的导入方式

导入方式可以和导出方式不一致。例如:当导出方式不为 FULL 时,导入时也可以指定为 FULL 方式,此时的 FULL 会将导出文件包含的全部内容导入到指定的实例中。
全库导入:
[dmdba@localhost bin]$ ./dimp sysdba/Dameng123 file=full.dmp log=imp_full.log directory=/dm8/backup full=y
模式导入:
[dmdba@localhost bin]$ ./dimp sysdba/Dameng123 file=imp_exp.dmp schemas=dmhr remap_schema=dmhr: test directory=/dm8/backup log=schemas.log
用户导入:
[dmdba@localhost bin]$ ./dimp sysdba/Dameng123 file=dmhr.dmp remap_schema=dmhr: test log=test.log directory=/dm8/backup owner=dmhr
注意事项:1.执行用户导入时,如果用户不存在,要先创建;2.这里要设置一个参数remap_schema,remap_schema=dmhr: test是将dmhr中的数据导入到test中。
表导入:
[dmdba@localhost bin]$ ./dimp sysdba/Dameng123 file=test.dmp log=test.log directory=/dm8/backup tables=dmhr.city remap_schema=dmhr: test table_exists_action=replace
注意事项:跨模式导入需要设置参数remap_schema,remap_schema=dmhr: test是将dmhr中的数据导入到test中。

DM8的备份还原操作就大致给大家介绍到这里。
最后特别提醒:在日常是生产环境中,我们做好数据库备份后一定要校验备份,以免备份出错导致数据丢失。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服