最近公司的项目要上达梦数据库。提前学习了一下数据库运维的知识。知识基本上是大同小异,对应达梦数据库,我首先关注的是备份和还原。
备份和还原是运维工作的最基础任务。下面记录一下备份过程。
达梦数据库有物理备份和逻辑备份,物理备份和还原的速度快,运维主要使用这种方法。
1. 物理备份过程:
首先数据库要打开归档模式。(当然,生产环境不会有谁不打开归档模式吧)
联机归档配置操作步骤如下所示:
(1)修改数据库为 Mount 状态
alter DATABASE MOUNT
(2)配置本地归档
ALTER DATABASE ADD ARCHIVELOG 'DEST = /home/dm_arch/arch, TYPE = local,FILE_SIZE = 1024, SPACE_LIMIT = 2048';
(3)开启归档模式
ALTER DATABASE ARCHIVELOG;
(4)修改数据库为 Open 状态
ALTER DATABASE OPEN;
2. 联机备份
备份命令的语法如下:
BACKUP DATABASE [[[FULL] [DDL_CLONE]]|
INCREMENT [CUMULATIVE][WITH BACKUPDIR '<基备份搜索目录>'{,'<基备份搜索目录>'} |
[BASE ON <BACKUPSET '<基备份目录>']][TO <备份名>][BACKUPSET '<备份集路径>']
[DEVICE TYPE <介质类型> [PARMS '<介质参数>']]
[BACKUPINFO '<备份描述>'] [MAXPIECESIZE <备份片限制大小>]
[IDENTIFIED BY <密码>[WITH ENCRYPTION<TYPE>]
[ENCRYPT WITH <加密算法>]][COMPRESSED [LEVEL <压缩级别>]]
[WITHOUT LOG][TRACE FILE '< TRACE 文件名>']
[TRACE LEVEL < TRACE 日志级别>][TASK THREAD <线程数>]
[PARALLEL [<并行数>] [READ SIZE <拆分块大小>]];
数据库备份:
执行checkpoint命令,确保可以正常备份。
checkpoint(100)
BACKUP DATABASE FULL BACKUPSET '/opt/dmdbms/BAK/db_full_bak_01';
看到备份成功的输出,即执行完毕。
3. 数据模拟损坏
首先模拟系统损坏,删除system表空间数据文件。
4. 数据库还原
使用dmrman工具进行数据还原。
/dm8/bin/dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup/FULL_BACK' "
/dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup/FULL_BACK' "
/dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
这样整个备份和还原过程就执行完了。启动数据库进行检查一下。
5. 后记
数据库的备份是重中之重,以前也经历过运维人员误操作,删除了oracle system表空间的一个文件,导致数据库无法启动。幸好有备份数据,才没问题。前段时间有某单位运维的oracle,删除了重做日志文件导致无法启动,备份也没做,无法还原,找到我们咨询处理办法。检查了一下,除了重做日志以外,还误删除了不少文件。没有备份就是血的教训。
后面介绍去找工具load出来,不知道最后结果如何,希望他们幸运吧。