达梦数据库如何进行备份还原
达梦数据库如何进行备份还原
一、备份的意义
1、数据备份就是要保存数据的完整性,防止非法关键,断电,病毒感染等等情况,使数据丢失,有必要的话,最好勤备份,防止数据丢失。
2、数据还原:就是数据库出现错误或者是崩溃了不可以用,就把原来的数据恢复回来。
3、提高系统的可用性和灾难可恢复性,在数据库系统崩溃的时候,可以恢复数据。
4、使用数据库备份还原数据库是数据库系统崩溃时提供数据恢复最小代价的最优方案.
5、没有数据就没有一切,数据库备份就是一种防范灾难于未然的强力手段。
二、备份的方式
物理备份
1、冷备份
2、热备
3、如何去打开归档
4、补充:兼容性参数
5、还原
物理备份
冷备(dmap服务是打开的,数据库是关闭的)
热备(dmap服务是打开的,数据库是打开的,数据库要打开归档)
同时达梦也支持第三方的备份软件:上海爱数,鼎甲。
1、冷备份
关闭数据库
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
检查DmAP,如果状态关闭,需要打开DmAP
[dmdba@localhost bin]$ ./DmAPService status
[dmdba@localhost bin]$ ./DmAPService start
控制台工具:
[dmdba@localhost -]$ cd /dm8/tool
[dmdba@localhost tool ]$./console
DM控制台
选择备份的目录,命名备份集名,点击确定
DMRMAN工具去备:
[dmdba@dca01 bin]$ ./dmrman
RMAN> backup database ‘/dm8/data/DMDB/dm.ini' backupset 'dm8/data/DMDB/bak
冷备份,要停止数据库,也可能会造成数据丢失。
还原:(数据库关闭,dmap服务打开)
还原数据
RMAN> restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL'
数据恢复
RMAN> recover database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL'
数据库还原完成,需要更新魔数
RMAN> recover database '/dm8/data/DMDB/dm.ini' update db_magic
启动数据库
[dmdba@localhost bin]$ ./DmServiceDMSERVER start
2、热备
1、数据库是打开的
2、DMAP服务是打开的
3、数据库是归档模式
3、如何去打开归档
命令方式:
数据库到配置模式
alter database mount;
打开归档配置
alter database archivelog;
增加归档文件
alter database add archivelog 'type=local,dest=/dm8/arch,file_size=80,space_limit=0';
数据库到打开状态
alter database open;
查数据库归档
select arch_mode from v$database
利用管理工具开归档
[dmdba@localhost tool ]$./manager
转换系统管理的配置状态
打开归档,配置数据
type=local,dest=/dm8/arch,file_size=80,space_limit=0
热备
备份数据库:
SQL> backup database;
备份表空间:表空间备份只能联机,还原只能脱机
SQL> backup tablespace DMHR;
备份表:
SQL> backup table emp;
备份归档:
SQL> backup archivelog;
命令行方式下增量备
做增量备份,一定要有一次完全备份。以完全备份作为基准,备份改变的。
SQL> backup database full to "DB_DMDB_FULL_2021_01_06_15_55_48" backupset '/dm8/data/FULL';
SQL> backup database increment with backupdir "/dm8/data/FULL" backupset '/dm8/data/FULL1';
increment:指定是增量备份
with backupdir:指定完全备份的路径
利用管理工具进行热备:(一定要打开归档)
完全备份:
增量备份:
备份完成,添加备份的目录
4、补充:兼容性参数
Compatible_mode
是否兼容其他数据库模式。
0:不兼容,
1:兼容SQL92标准,
2:兼容ORACLE,
3:兼容MS SQL SERVER,
4:兼容MYSQL
5、还原
还原之前先关闭数据库服务
整库还原:
dmrman 还原:
RMAN> restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL';
数据恢复
(打开数据归档以后使用这个命令进行数据恢复,冷备的数据恢复和热备的数据恢复有区别)
RMAN>recover database ‘/dm8/data/DMDB/dm.ini’' with archivedir '/dm8/arch';
更新数据库魔数
RMAN> recover database '/dm8/data/DMDB/dm.ini'
update db_magic;
表空间还原:(表空间备份不用脱机,表空间还原需要脱机)
创建表空间:创建表空间TEST,数据文件初始大小为50m,每次自动扩展
2m,最大可扩展1024m;
create tablespace "TEST" datafile '/dm8/data/DAMENG/TEST01.DBF' size
50 autoextend on next 2 maxsize 1024 CACHE = NORMAL;
备份表空间
backup tablespace "TAST" full to "TS_TAST_FULL_2021_01_07_14_40_19" backupset '/dm8/data/backup';
表空间脱机
Alter tablespace test offline;
关闭数据库服务 ./DmServiceDMSERVER stop
表空间还原
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace TAST from backupset '/dm8/data/backup/'
表空间恢复:
RMAN> recover database '/dm8/data/DMDB/dm.ini' tablespace TAST;
逻辑备份
工具:dexp 逻辑导出 dimp 逻辑导入
这是达梦自带的工具,分为四种级别:
数据库级别,用户级,模式级和表级,四种级别独立互斥,不能同时存在,四种级别所提供的功能:
数据库级(full):导出或导入整个数据库中的访问对象。
用户级(owner):导出或导入一个或多个用户所拥有的所有对象。
模式级(schemas):导出或导入一个或多个模式下的所有对象。
表级(table):导出或导入一个或多个指定的表或表分区。
1、逻辑导出
要求:数据库是打开
逻辑导出数据库:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/full.dmp full=y
备份表:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/emp.dmp tables=sysdba.emp
备份模式:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/dmhr.dmp schemas=dmhr
备份用户:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/backup/tast.dmp owner=tast
2. 逻辑导入
假设emp表损坏:dimp还原
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA file=/dm8/backup/emp.dmp tables=emp.dmp ignore=y
如果表存在注意参数IGNORE
如果表不存在:
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA file=/dm8/backup/emp.dmp tables=sysdba.emp
注意:导入和导出的警告
达梦数据库如何进行备份还原
一、备份的意义
1、数据备份就是要保存数据的完整性,防止非法关键,断电,病毒感染等等情况,使数据丢失,有必要的话,最好勤备份,防止数据丢失。
2、数据还原:就是数据库出现错误或者是崩溃了不可以用,就把原来的数据恢复回来。
3、提高系统的可用性和灾难可恢复性,在数据库系统崩溃的时候,可以恢复数据。
4、使用数据库备份还原数据库是数据库系统崩溃时提供数据恢复最小代价的最优方案.
5、没有数据就没有一切,数据库备份就是一种防范灾难于未然的强力手段。
二、备份的方式
物理备份
1、冷备份
2、热备
3、如何去打开归档
4、补充:兼容性参数
5、还原
物理备份
冷备(dmap服务是打开的,数据库是关闭的)
热备(dmap服务是打开的,数据库是打开的,数据库要打开归档)
同时达梦也支持第三方的备份软件:上海爱数,鼎甲。
1、冷备份
关闭数据库
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
检查DmAP,如果状态关闭,需要打开DmAP
[dmdba@localhost bin]$ ./DmAPService status
[dmdba@localhost bin]$ ./DmAPService start
控制台工具:
[dmdba@localhost -]$ cd /dm8/tool
[dmdba@localhost tool ]$./console
DM控制台
选择备份的目录,命名备份集名,点击确定
DMRMAN工具去备:
[dmdba@dca01 bin]$ ./dmrman
RMAN> backup database ‘/dm8/data/DMDB/dm.ini' backupset 'dm8/data/DMDB/bak'
冷备份,要停止数据库,也可能会造成数据丢失。
还原:(数据库关闭,dmap服务打开)
还原数据
RMAN> restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL'
数据恢复
RMAN> recover database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL'
数据库还原完成,需要更新魔数
RMAN> recover database '/dm8/data/DMDB/dm.ini' update db_magic
启动数据库
[dmdba@localhost bin]$ ./DmServiceDMSERVER start
2、热备
1、数据库是打开的
2、DMAP服务是打开的
3、数据库是归档模式
3、如何去打开归档
命令方式:
数据库到配置模式
alter database mount;
打开归档配置
alter database archivelog;
增加归档文件
alter database add archivelog 'type=local,dest=/dm8/arch,file_size=80,space_limit=0';
数据库到打开状态
alter database open;
查数据库归档
select arch_mode from v$database;
利用管理工具开归档
[dmdba@localhost tool ]$./manager
转换系统管理的配置状态
打开归档,配置数据
type=local,dest=/dm8/arch,file_size=80,space_limit=0
热备
备份数据库:
SQL> backup database;
备份表空间:表空间备份只能联机,还原只能脱机
SQL> backup tablespace DMHR;
备份表:
SQL> backup table emp;
备份归档:
SQL> backup archivelog;
命令行方式下增量备
做增量备份,一定要有一次完全备份。以完全备份作为基准,备份改变的。
SQL> backup database full to "DB_DMDB_FULL_2021_01_06_15_55_48" backupset '/dm8/data/FULL';
SQL> backup database increment with backupdir "/dm8/data/FULL" backupset '/dm8/data/FULL1';
increment:指定是增量备份
with backupdir:指定完全备份的路径
利用管理工具进行热备:(一定要打开归档)
完全备份:
增量备份:
备份完成,添加备份的目录
4、补充:兼容性参数
Compatible_mode
是否兼容其他数据库模式。
0:不兼容,
1:兼容SQL92标准,
2:兼容ORACLE,
3:兼容MS SQL SERVER,
4:兼容MYSQL
5、还原
还原之前先关闭数据库服务
整库还原:
dmrman 还原:
RMAN> restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL';
数据恢复
(打开数据归档以后使用这个命令进行数据恢复,冷备的数据恢复和热备的数据恢复有区别)
RMAN>recover database ‘/dm8/data/DMDB/dm.ini’' with archivedir '/dm8/arch';
更新数据库魔数
RMAN> recover database '/dm8/data/DMDB/dm.ini'
update db_magic;
表空间还原:(表空间备份不用脱机,表空间还原需要脱机)
创建表空间:创建表空间TEST,数据文件初始大小为50m,每次自动扩展
2m,最大可扩展1024m;
create tablespace "TEST" datafile '/dm8/data/DAMENG/TEST01.DBF' size
50 autoextend on next 2 maxsize 1024 CACHE = NORMAL;
备份表空间
backup tablespace "TAST" full to "TS_TAST_FULL_2021_01_07_14_40_19" backupset '/dm8/data/backup';
表空间脱机
Alter tablespace test offline;
关闭数据库服务 ./DmServiceDMSERVER stop
表空间还原
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace TAST from backupset '/dm8/data/backup/'
表空间恢复:
RMAN> recover database '/dm8/data/DMDB/dm.ini' tablespace TAST;
逻辑备份
工具:dexp 逻辑导出 dimp 逻辑导入
这是达梦自带的工具,分为四种级别:
数据库级别,用户级,模式级和表级,四种级别独立互斥,不能同时存在,四种级别所提供的功能:
数据库级(full):导出或导入整个数据库中的访问对象。
用户级(owner):导出或导入一个或多个用户所拥有的所有对象。
模式级(schemas):导出或导入一个或多个模式下的所有对象。
表级(table):导出或导入一个或多个指定的表或表分区。
1、逻辑导出
要求:数据库是打开
逻辑导出数据库:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/full.dmp full=y
备份表:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/emp.dmp tables=sysdba.emp
备份模式:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/dmhr.dmp schemas=dmhr
备份用户:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/backup/tast.dmp owner=tast
2. 逻辑导入
假设emp表损坏:dimp还原
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA file=/dm8/backup/emp.dmp tables=emp.dmp ignore=y
如果表存在注意参数IGNORE
如果表不存在:
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA file=/dm8/backup/emp.dmp tables=sysdba.emp
注意:导入和导出的警告