一 备份的作用
1、防止误操作
2、软件硬件故障
3、防止天灾人祸
备份方式:物理备份,逻辑备份
二 物理备份与还原
物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。
达梦数据库中,物理备份分为脱机备份(冷备)和联机备份(热备)两种备份方式。其中脱机备份可通过console控制台工具和DMRMAN命令行的方式进行备份,联机备份可通过达梦管理工具和使用SQL命令的方式进行备份。
2.1配置本地归档
2.1.1在管理工具中配置本地归档
打开管理工具后,右键数据库实例,选择管理服务器,然后点击“系统管理”,选择“配置”后点击“转换”,成功后点击“确定”
选择“归档配置”,选择“归档目标”后,点击“归档”,然后“确定”。
2.1.2在DIsql里联机配置本地归档
#打开DIsql
#修改数据库状态为MOUNT
SQL> alter database mount;
#配置本地归档
SQL> alter database add archivelog 'type=local,dest=/home/dmdba/dmdbms/arch,file_size=64,space_limit=0';
#开启归档模式
SQL> alter database archivelog;
#修改数据库为OPEN状态
SQL> alter database open;
2.1.3手动配置归档
vi dmarch.ini
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M
vi dm.ini
.2脱机备份 (冷备)与还原
脱机备份发生在数据库已经正常关闭的情况下,这种情况会提供给我们一个完整的数据库,将关键性文件拷贝到另外位置的一个说法。如果可能的话(主要看效率),将信息备份到磁盘上,然后启动数据库(不耽误用户工作)同时将所备份的信息拷贝到磁盘上(拷贝时数据库可以工作)。为保证备份文件的数据完整性,必须确保数据库是正常关闭的,数据库服务也要停止。
脱机备份的优点:
-
-
- 非常快速的备份方法(只拷贝文件)。
- 容易归档(拷贝即可)。
- 容易恢复到某个时间点上(只需将文件再拷贝回去)。
- 能与归档方法相结合,做数据库“最新状态”的恢复。
- 低度维护,高度安全。
-
脱机备份的缺点:
-
- 单独使用时,只能提供到“某一时间点上”的恢复。
- 实时备份的全过程中,数据库必须关闭,只能做备份工作。
- 若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。
- 不能按表或者用户恢复。
脱机备份必须拷贝的文件:
-
- 所有数据文件。
- 所有控制文件。
- 所有联机redo log(重做日志)文件。
2.2.1使用console控制台工具脱机备份与还原(Linux)
#备份前一定要关闭要备份的数据库实例,停止该实例服务。
#打开console控制台工具
INI 文件路径:必填,待备份目标数据库 dm.ini 文件路径。
备份类型:完全备份和增量备份。数据库克隆是完全备份的一个选项,表示进行数据库备份时,仅拷贝所有的元数据不拷贝数据。默认选完全备份,在已经存在完全备份的情况下,可以选择增量备份。
点击确定,等待备份成功。
打开console控制台工具,选择还原。
备份集目录:指定用于还原目标数据库的备份集目录。若指定为相对路径,会在基备份集搜索目录下搜索备份集。
INI 文件路径:指定还原库目标的 dm.ini 文件路径。此时,还可以使用备份集 dm.ini的参数,表示会将备份集中备份的 dm.ini 参数(除路径相关的 INI 参数外),拷贝到当前dm.ini 上,取而代之。
点击确定,等待还原成功。
数据库还原后,一定要进行更新DA_Magic(表空间等还原不需要)
2.2.2使用DMRMAN进行脱机备份与还原(Linux)
备份:
#保证数据库处于脱机状态 ,在bin目录下启动dmservice
#进入dmrman所在路径,启动程序
cd /home/dmdba/dmdbms/bin
./dmrman
#在dmrman中输入以下命令进行全库备份,然后备份到/home/dmdba/dmdbms/bak:
backup database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' backupset '/home/dmdba/dmdbms/bak'
#需要的情况下可进行增量备份
backup database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' increment base on backupset'基备份集目录' to "备份名称" backupset '备份集目录';
还原:
#校验备份
check backupset '/home/dmdba/dmdbms/bak';
#还原数据库
restore database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/bak';
#恢复数据库
recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/bak';
#更新magic
recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' update db_magic;
2.3联机备份(热备)与还原
联机备份是在数据库运行的情况下,在archivelog方式下操作,联机备份只能在数据库不适用或使用率低的情况下进行,且需要大量的档案空间。
联机备份的优点:
-
- 可以在表空间或者数据文件级备份,备份时间短。
- 备份时数据库仍可用。
- 可达到秒级恢复(恢复到某一时间点上)。
- 恢复是快速的,在大多数情况下在数据库仍工作时恢复。
联机备份的缺点:
-
- 不能出错,否则后果严重。
- 若联机备份不成功,所得结果不可与时间点的恢复。
- 维护困难,所以要特别仔细小心。
2.3.1使用MANGER管理工具进行脱机备份与还原
备份:
#配置本地归档2.1章节
#在数据库实例的备份选项中,右键“库备份”,选择相关选项,点击确定。
还原:
库备份和表空间不支持联机还原,只有表备份支持联机还原。表还原过程中表空间中其他的表还可以正常操作。
#表还原。
2.3.2使用SQL语句进行联机备份与还原
备份:
#打开DIsql
#修改数据库状态为mount
SQL> alter database mount;
#配置本地归档属性
SQL> alter database add archivelog 'dest = /home/dmdba/dmdbms/data/DAMENG/arch,type=local,file_size=64,space_limit=0';
#开启归档模式
SQL> alter database archivelog;
#修改数据库状态为open
SQL> alter database open;
#进行联机库备份
SQL> backup database backupset '/home/dmdba/dmdbms/data/DAMENG/db_bak_01';
还原:只有表支持联机还原
#还原表
SQL>restore table tt from backupset '/home/dmdba/dmdbms/data/DAMENG/tab_bak_01’;
三、逻辑备份与还原
达梦数据库中,逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。
逻辑备份分为四个级别:数据库级、用户级、模式级、表级。
3.1 dexp逻辑导出
dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备
份。
以下导出库:环境为linux,服务器为192.168.109.22,端口号为5236,用户名和密码均为SYSDBA。
3.1.1数据库级
./dexp SYSDBA/[email protected]:5236 file=dexp01.dmp log=dexp01.log directory=/home/dmdba/dmdbms/data/dexp full=y
3.1.2用户级
./dexp SYSDBA/[email protected]:5236 file=dexp_user.dmp log=dexp_user.log owner=ttt directory=/home/dmdba/dmdbms/data/dexp_user
3.1.3模式级
./dexp SYSDBA/[email protected]:5236 file=dexp_sch.dmp log=dexp_sch.log schemas=ttt directory=/ home/dmdba/dmdbms/data/dexp_sch
3.1.4表级
./dexp SYSDBA/[email protected]:5236 file=dexp_tab.dmp log=dexp_tab.log tables=ttt1 directory=/home/dmdba/dmdbms/data/dexp_tab
3.2dimp逻辑导入
dimp工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑还原。
以下导入库:环境为linux,服务器为192.168.109.22,端口号为5237,用户名和密码均为SYSDBA。
3.2.1数据库级
./dimp SYSDBA/[email protected]:5237 file=/home/dmdba/dmdbms/data/dexp/ dexp01.dmp log=dimp01.log directory=/ home/dmdba/dmdbms/data/dimp schemas=SYSDBA,,OTHER
3.2.2用户级
./dimp SYSDBA/[email protected]:5237 file=/home/dmdba/dmdbms/data/dexp_user/ dexp_user.dmp log=dimp_user.log owner=ttt directory=/ home/dmdba/dmdbms/data/dimp_user
3.2.3模式级
./dimp SYSDBA/[email protected]:5237 file=/home/dmdba/dmdbms/data/dexp_sch/ dexp_sch.dmp log=dimp_sch.log schemas=ttt directory=/ home/dmdba/dmdbms/data/dimp_sch
3.2.4表级
./dimp SYSDBA/[email protected]:5237 file=/home/dmdba/dmdbms/data/dexp_tab/ dexp_tap.dmp log=dimp_tap.log tables=ttt1 directory=/home/dmdba/dmdbms/data/dimp_tab