DM8备份还原
备份就是数据库在某一个时间点的副本。
备份主要是为了防止数据丢失(地震、火灾、人为操作、硬件故障。
备份分为:完全备份和增量备份,物理备份和逻辑备份,联机备份和脱机备份。
完全备份:备份的是整个数据库或者是整个表空间的数据。
增量备份:备份的是上一次完全备份或者是增量备份后,以后每次备份修改过的数据页。
物理备份:备份的是使用过的有效的数据页。
逻辑备份:备份的是数据库对象(表、视图、索引、过程、触发器、序列)
联机备份:数据库在正常访问的情况下做的备份
脱机备份:数据库在关闭后做的备份
还原:就是将数据库在某个时间点的副本拷贝到对应的数据库目录下
恢复:就是在数据库还原之后,应用部分或者是全部的归档日志
1 物理备份
1.1 冷备
冷备可以不用开归档,但需要开启 DmAP 服务,需要关闭数据库实例,针对整库做备份
- console 工具备份
关闭数据库实例:
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
启动console工具:
[dmdba@localhost tool]# ./console
(2)dmrman 工具
dmrman 只支持冷备,不支持热备
路径:安装达梦数据库的bin目录下
[dmdba@localhost bin]$ ./dmrman
RMAN> backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/backup';
1.2 热备
需要开启归档,数据库需要打开(open)
可以备份数据库、表空间、表、归档日志
开启归档——命令行
(1)查询归档
SQL> select name,arch_mode from v$database;
行号 NAME ARCH_MODE
----------- ------ ------------
1 DAMENG N
(2)设置归档属性
SQL> alter database add archivelog 'type=local,dest=/dm8/arch,file_size=64,space_limit=0';
(3)开启归档
SQL> alter database archivelog;
开启归档——manager工具
右键——管理服务器
(1)将数据库切换为配置(mount)状态
(2)打开归档,进行归档配置
(3)将数据库切换为打开(open)状态
1.2.1热备实现
全备:
DDL:backup database full to "DB_DAMENG_FULL_2021_01_27_14_53_43" backupset
'DB_DAMENG_FULL_2021_01_27_14_53_43';
增备:
DDL:backup database increment base on backupset
'/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20210127_150035_869446' to
"DB_DAMENG_INCRE_2021_01_27_15_19_14" backupset
'DB_DAMENG_INCRE_2021_01_27_15_19_14';
表空间备份
注:表空间备份只能联机,还原只能脱机
DDL:backup tablespace "BOOKSHOP" full to "TS_BOOKSHOP_FULL_2021_01_27_15_23_46" backupset 'TS_BOOKSHOP_FULL_2021_01_27_15_23_46';
表备份
DDL:backup table "SYSDBA"."##HISTOGRAMS_TABLE" to "TAB_SYSDBA_##HISTOGRAMS_TABLE_2021_03_19_00_02_50" backupset 'TAB_SYSDBA_##HISTOGRAMS_TABLE_2021_03_19_00_02_50';
归档备份
(1)备份所有归档
DDL:backup archivelog all to "ARCH_2021_03_18_23_55_57" backupset 'ARCH_2021_03_18_23_55_57';
(2)基于时间点的归档
DDL:backup archivelog time between '2021-03-17 23:57:52' and '2021-03-18 23:57:52' to "ARCH_2021_03_18_23_57_52" backupset 'ARCH_2021_03_18_23_57_52';
disql工具
SQL> backup database full;--全库备份到默认的备份路径
SQL> backup database full backupset '/dm8/backup';--全库备份到指定路径
SQL> backup tablespace "DMHR" full backupset '/dm8/backup';--备份表空间到指定路径
2. 物理还原
dmrman 工具还原恢复数据库
启动dmrman:进入到数据库安装的bin目录下,执行命令./dmrman
检查备份集是否有效
RMAN> check backupsrt '备份文件夹路径';
RMAN> check backupsrt '/dm8/data/DAMENG/bak';
还原:
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup';
恢复:
RMAN> recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/arch';
更新:
RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
用 console 工具还原数据库
还原:
恢复:
更新:
用 dmrman 工具还原恢复表空间
RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' tablespace "TEST" FROM BACKUPSET
'/dm8/backup';
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' TABLESPACE TEST WITH ARCHIVEDIR
'/dm8/arch';
用manager 工具还原恢复表空间
3 逻辑备份还原
备份的是数据库对象
逻辑备份可以用来迁移和重组数据库,是数据库的辅助备份
dexp/dimp
四个级别导入导出
库级别
用户级别
模式级别
表级别
查看帮助
[dmdba@localhost bin]$ ./dexp help
[dmdba@localhost bin]$ ./dimp help
全库导出:
[dmdba@localhost bin]$ ./dexp sysdba/Dameng123 file=full.dmp log=full.log directory=/dm8/backup full=y
用户导出:
./dexp sysdba/Dameng123 file=TEST.dmp log=TEST.log directory=/dm8/backup owner=TEST
模式导出:
[dmdba@localhost bin]$ ./dexp sysdba/Dameng123 file=DMHR.dmp log=dmhr.log directory=/dm8/backup schemas=dmhr
表级别导出:
[dmdba@localhost bin]$ ./dexp sysdba/Dameng123 file=employee.dmp log=employee.logdirectory=/dm8/backup tables=dmhr.employee
全库导入:
[dmdba@localhost bin]$ ./dimp sysdba/Dameng123 file=full.dmp log=imp_full.log directory=/dm8/backup full=y
注意事项:
执行用户导入时,如果用户不存在,要先创建用户。