注册
达梦数据库的备份与还原
培训园地/ 文章详情 /

达梦数据库的备份与还原

JasonLiu 2022/11/17 3315 1 0

1. 前景
数据库在软件程序中是最至关重要的,在突然停电、火灾或者服务器挂掉了等等不可预知的灾难时,数据也丢失了,那么还原数据库必然条件就是“备份”。(使用物理服务器的有条件建议备份数据库的服务器跟生成环境下的数据库服务器不要放在一个服务器上,遇到服务器挡掉就很难找回来了,亲身经历。)

2. 备份类型
2.1 冷备:
需停止服务器的服务,才能进行的备份;

2.2 热备:
不需要停止服务器服务,就可备份;

3.备份前期准备
我的达梦安装目录为 /dm8目录,存放数据库的文件夹为 /dm8/data目录,备份集存放目录/dm8/backup,存放归档日志路径/dm8/arch,记得这些目录权限都得是dmdba用户的。(文件夹命名看个人习惯)

3.1 创建文件名
用dmdba账号创建文件夹arch和backup,data安装自带

[dmdba@localhost ~]$ cd /dm8
[dmdba@localhost dm8]$ mkdir arch
[dmdba@localhost dm8]$ mkdir backup

3.2 部分文件夹解释
bin:主要通过命令行的方式执行的各类文件

tool:主要存放视图工具

4. 备份操作
4.1 冷备

注意:如果图形化打不开请执行以下命令,且需要启动DmAP服务。

access control disabled, clients can connect from any host
[root@localhost mnt]# echo $DISPLAY
:0.0
[root@localhost mnt]# su - dmdba
[dmdba@localhost ~]$ export DISPLAY=:0.0   //这里“=”后面的值为上条命令查询的值
[dmdba@localhost ~]$ xhost +
access control disabled, clients can connect from any host
[dmdba@localhost ~]$ cd /dm8/bin
[dmdba@localhost bin]$ ./DmAPService status  //查看达梦ap服务是否开启
DmAPService (pid 9717) is running.  //如果未启动请执行 ./DmAPService start

(1) 冷备前需要停止数据库服务,且需开启DmAP服务:

[root@localhost ~]$ cd /dm8/bin
[dmdba@localhost bin]$ ./DmServiceDMSERVER status  // DmService+DMSERVER(你数据库的实例名)+status:查看状态;start:启动;stop:停止;restart:重启
DmAPService (pid 9717) is running.     //说明启动中
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop

(2)执行冷备

[dmdba@localhost bin]$ ./dmrman 
 
RMAN> backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/backup';  //备份到指定的目录
RMAN> exit

5. 热备
(1)启动数据库服务,DmAp服务也必须是启动着的。

[root@localhost ~]$ cd /dm8/bin
[dmdba@localhost bin]$ ./DmServiceDMSERVER start  //启动数据库服务
Starting DmServiceDMSERVER:              [ok]

(2)开启归档模式

[dmdba@localhost bin]$ ./disql sysdba/你的数据库密码@LOCALHOST:5236 //连接本地端口为5236的数据库
 
disql V8
 
SQL> alter database mount;  //数据库设为配置状态
SQL> alter database add archivelog 'type=local,dest=/dm8/arch,file_size=80,space_limit=0';
SQL> alter database archivelog;
SQL> alter database open; //数据库设为打开状态
SQL> exit
(3)执行热备,如果执行下面报错为“归档日志不连续”的话,请重新启动数据库服务,再执行以下操作。

[dmdba@localhost bin]$ ./disql sysdba/你的数据库密码@LOCALHOST:5236 //连接本地端口为5236的数据库
SQL> backup database full backupset '/dm8/backup/full2';    //备份到指定路径full2为备份文件名
SQL> exit

6. 还原恢复
注意:需执行四步方可达到完全恢复的效果。检查–>还原–>恢复–>更新

(1)停掉数据库服务

[dmdba@localhost bin]$ ./DmServiceDMSERVER stop  //关闭服务

(2)检查备份集是否可以使用。

dmrman V8
RMAN> check backupset '/dm8/backup';  //检验备份集是否可用
check backupset successfully. time used: 46.671(ms)  //successfully可正常使用

(3)还原、恢复、更新(一步都不能少,否则启动数据库服务的时候会报错)

dmrman V8
 
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   //更新db_magic
(4)重启数据库服务,这样就完成了数据库的备份还原操作

[dmdba@localhost ~]$ cd /dm8/bin
[dmdba@localhost bin]$ ./DmServiceDMSERVER start  //开启服务

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服