达梦数据库:备份与还原(物理备份和逻辑备份)

时间:2024-03-19 17:38:35

一 备份的作用

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脱机备份 (冷备)与还原

         脱机备份发生在数据库已经正常关闭的情况下,这种情况会提供给我们一个完整的数据库,将关键性文件拷贝到另外位置的一个说法。如果可能的话(主要看效率),将信息备份到磁盘上,然后启动数据库(不耽误用户工作)同时将所备份的信息拷贝到磁盘上(拷贝时数据库可以工作)。为保证备份文件的数据完整性,必须确保数据库是正常关闭的,数据库服务也要停止。

         脱机备份的优点:

      1. 非常快速的备份方法(只拷贝文件)。
      2. 容易归档(拷贝即可)。
      3. 容易恢复到某个时间点上(只需将文件再拷贝回去)。
      4. 能与归档方法相结合,做数据库“最新状态”的恢复。
      5. 低度维护,高度安全。

脱机备份的缺点:

    1. 单独使用时,只能提供到“某一时间点上”的恢复。
    2. 实时备份的全过程中,数据库必须关闭,只能做备份工作。
    3. 若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。
    4. 不能按表或者用户恢复。

脱机备份必须拷贝的文件:

    1. 所有数据文件。
    2. 所有控制文件。
    3. 所有联机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方式下操作,联机备份只能在数据库不适用或使用率低的情况下进行,且需要大量的档案空间。

         联机备份的优点:

    1. 可以在表空间或者数据文件级备份,备份时间短。
    2. 备份时数据库仍可用。
    3. 可达到秒级恢复(恢复到某一时间点上)。
    4. 恢复是快速的,在大多数情况下在数据库仍工作时恢复。

         联机备份的缺点:

    1. 不能出错,否则后果严重。
    2. 若联机备份不成功,所得结果不可与时间点的恢复。
    3. 维护困难,所以要特别仔细小心。

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