作者:燕翎
在达梦大学学习数天,终于对达梦数据库又有了更深入的了解,这个数据库相对Oracle,Sqlserver使用上更方便,全中文的操作友好性比日常使用的国外数据库更好用,在这里对相关经验进行一下总结,
我觉得像我们做日常运维工作最重要的就是巡检、数据备份工作。
达梦和oracle一样提供冷备和热备,
它主要分为:
完全备份是指一个备份包含指定数据库或表空间的所有数据
增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。
备份的方式:物理备份和逻辑备份
备份的介质:磁盘,磁带,光盘
集群:数据守护,dsc (rac)
冷备和热备
热备管理工具方式
backup database full to "DB_DAMENG_FULL_2021_04_05_10_22_54" backupset 'DB_DAMENG_FULL_2021_04_05_10_22_54';
命令行方式下全备,增量备
全备
SQL> backup database full backupset '/dm8/backup/fullbak2';
增量备
SQL> backup database increment backupset '/dm8/backup/incr_bak';
表空间还原:
表空间只能脱机还原,使用Dmrman
模拟表空间test 损坏:
[dmdba@localhost DAMENG]$ mv TEST01.DBF TEST01.DBF.BAK
重启实例服务,实例处于mount 状态。关闭实例服务
使用dmrman 进行还原
1、校验备份集
RMAN> check backupset '/dm8/backup/fullbak2';
2、还原表空间
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace test
from backupset '/dm8/backup/fullbak2';
2、恢复表空间
RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace test;
重启实例服务
5.5.3.2 冷备控制台方式
冷备:dmap 服务是打开的,数据库实例是关闭的。
[root@dmdb tool]# ./console
勾上dmap会造成连接通信超时
【问题原因】DmServerDMSERVER服务没有关闭。DMRMAN是脱机备份,备份时一定要关闭数据库。
【解决方法】:使用root执行如下命令关闭数据库实例服务(DMSERVER是数据库实例名)即可。
systemctl stop DmServiceDMSERVER.service
脱机还原时,先还原再恢复。
特别注意,如果还原时候出现服务无法启动,八成你是用root用户启动的图形化界面,所以造成了还原时部分文件权限发生改变,应该用dmdba启动./console
systemctl start DmServiceDMSERVER.service
冷备DMRMAN 工具去备
[-137]:服务器正在运行或者存在其他进程正在操作同一个库
需要停止服务
systemctl stop DmServiceDMSERVER.service
冷备:要停止数据库,如果不停止会造成数据丢失
逻辑备份
导入导出(dexp,dimp)
分四级别:分别独立,互斥不能同时存在
- 数据库级别
- 用户
- 模式
- 表级
1、逻辑导出
[dmdba@dmdb bin]$ ./dexp sysdba/dameng123@localhost:5236 file=dexp01.dmp log=dexp01.log directory=/dm8/backup/dexp full=y
2、逻辑导入
[dmdba@ dmdb bin]$ ./dimp sysdba/SYSDBA@localhost:5239 file=/dm8/backup/dexp/dexp01.dmp log=/dm8/backup/dexp/dimp01.log