admin 管理员组

文章数量: 1087649

达梦数据库使用备份还原方式迁移库

一.备份

全备前数据查询

select object_type as "对象类型",count(*) as "数量" from dba_objects group by object_type;
SCH9
TABLE73
VIEW138
CLASS5
TYPE4
PACKAGE42
PACKAGE BODY41
SEQUENCE1
FUNCTION4
PROCEDURE26
CONTEXT1
SYNONYM1
CONSTRAINT60
INDEX89
DSYNOM257

联机备份:

backup database;

备份时不加任何参数的话,会在达梦数据库的dm.ini配置文件中的BAK_PATH参数指定的备份目录下备份,备份名为’DB_数据库名_FULL_时间‘,刚才使用最简单全库备份命令‘backup database’备份出来的备份集为

把备份文件传到待还原的服务器上

附常用备份命令例子

BACKUP DATABASE BACKUPSET ‘/dm8/data/DAMENG/bak7/bak_full_20220322’;指定备份集路径进行全备
BACKUP DATABASE TO “FULL_BAK_TEST” BACKUPSET ‘/dm8/data/DAMENG/bak7/test_full_20220322’;指定备份集名称进行全备
BACKUP DATABASE BACKUPSET ‘/dm8/data/DAMENG/bak7/test_full_1’ COMPRESSED LEVEL 5;指定压缩级别进行全备(若指定COMPRESSED,但未指定LEVEL,则默认1;若未指定COMPRESSED参数,则不会进行压缩;且压缩等级越高,速度越慢,但是备份文件会更小)
BACKUP DATABASE BACKUPSET ‘/dm8/data/DAMENG/bak7/test_full_2’ PARALLEL 8;指定并行数进行全备(指定了PARALLEL参数,但不指定并行数则默认为4)
BACKUP DATABASE INCREMENT WITH BACKUPDIR ‘/dm8/data/DAMENG/bak7/test_full_2’ BACKUPSET ‘/dm8/data/DAMENG/bak7/test_inc_1’;指定基备份进行增备 (若不指定,会在默认备份目录下搜索基备份)

二.还原前准备

1.首先校检备份集

通过dmrman工具

RMAN> check backupset '/dm8/data/DAMENG/bak7/DB_DAMENG_FULL_20220322_113355_324469'


结果显示备份完整,可以进行数据还原恢复。
我尝试删除一个备份集中的数据,会报错。如果提示打开备份文件失败则说明备份集不完整,不可以用来进行数据恢复了。

2.查看备份集信息

通过dmrman工具

RMAN> show backupset '/dm8/data/DAMENG/bak7/DB_DAMENG_FULL_20220322_113355_324469'
(1)先看 <'META INFO>元数据信息

可以看到backup range即备份级别为库级备份,如果显示为table则是表级备份(还可以通过其他属性名能看到表对应的模式,表空间和表名),显示tablespace则备份的为表空间
还可以看到backup type为full即为全备,如果显示为increment则为增备
backup level为online即为在线备份,如果为offline则为脱机备份

(2)再看<'DB INFO>,也就是数据库信息

通过data version,sys version这两个属性名可以得到数据库的版本信息
根据其他属性名还可以看到重要的初始化实例时用到的参数,比如length in char ,page size, extent size, case sensitive,charset,use new hash,blank_pad_mode等

(3)通过<'data_file_list>可以看到备份集备份的整体表空间文件信息

3.另一台服务器安装相同版本的数据库。根据备份集里的参数来进行实例初始化

dminit path=/dm8/test length_in_char=0 page_size=8 extent_size=16 case_sensitive=1 CHARSET=0  use_new_hash=1 blank_pad_mode=0

三.进行还原与恢复

还原

RMAN> restore database '/dm8/test/DAMENG/dm.ini' from backupset '/dm8/data/DAMENG/bak7/DB_DAMENG_FULL_20220322_113355_324469'

恢复

RMAN> recover database '/dm8/test/DAMENG/dm.ini' from backupset '/dm8/data/DAMENG/bak7/DB_DAMENG_FULL_20220322_113355_324469'

更新魔数

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

四.验证

注册服务

su - root
[root@dm ~]# cd /dm8/script/root/
[root@dm /dm8/script/root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/test/DAMENG/dm.ini -p TEST

启动服务

su - dmdba
cd /dm8/bin
[dmdba@dm ~]$ DmServiceTEST start
  • 查看表空间数据
disqlSQL> select TABLESPACE_NAME,FILE_ID,FILE_NAME,BYTES from dba_data_files where TABLESPACE_NAME <> 'TEMP'; 

与备份集里<data_file_list>标签对应的信息一致

  • 查看数据库对象信息
select object_type as "对象类型",count(*) as "数量" from dba_objects group by object_type;

与源库一致,数据迁移成功

-----------------------------------------------------------------------------------------------------------------

有任何问题请到达梦技术社区反馈

达梦云适配中心

eco.dameng

本文标签: 达梦数据库使用备份还原方式迁移库