qq空间刷赞推广网站,如何开发网站自己做站长,上海市建设质量协会网站,网站自己建机房备份与还原是DBA必备的技能之一#xff0c;为防止数据的误操作、误删除等突发情况#xff0c;所以备份还原至关重要#xff0c;一下从几方面共同学习一下达梦数据库的备份与还原基础知识。
一、概述 达梦数据库的备份还原方式#xff1a;物理备份还原和逻辑备份还原物理备… 备份与还原是DBA必备的技能之一为防止数据的误操作、误删除等突发情况所以备份还原至关重要一下从几方面共同学习一下达梦数据库的备份与还原基础知识。
一、概述 达梦数据库的备份还原方式物理备份还原和逻辑备份还原物理备份 冷备dmap服务打开的状态下数据库是关闭的 热备dmap服务必定是打开的数据库是打开的数据库要开归档) 物理备份还原是对数据库的操做系统物理文件如数据文件、控制文件和日志文件等的备份还原。
逻辑备份 导出dexp / 导入dimp
逻辑导出和逻辑导入数据库对象分为四种级别数据库级、用户级、模式级和表级。四种级别独立互斥不能同时存在。四种级别所提供的功能数据库级FULL导出或导入整个数据库中的全部对象。用户级OWNER导出或导入一个或多个用户所拥有的全部对象。模式级SCHEMAS导出或导入一个或多个模式下的全部对象。表级TABLE导出或导入一个或多个指定的表或表分区。
与备份类似还原分为逻辑还原和物理还原 联机还原和脱机还原 联机还原指数据库处于运行状态时通过SQL语句执行还原操作。表还原可以在联机状态下执行。 脱机还原指数据库处于关闭状态时执行的还原操作脱机还原通过DMRMAN工具进行。库备份、表空间备份和归档备份可以执行脱机还原。脱机还原操作的目标库必须处于关闭状态。
数据还原和归档日志还原 数据还原可以分为库还原、表空间还原和表还原。库还原和表空间必须脱机执行表还原操作只能联机执行。表还原从表备份集读取数据重新恢复目标表数据还会在目标表上重建索引、约束。归档日志还原则将归档日志备份集中的归档日志内容重新生成到指定目录中。
完全还原和增量还原 完全还原是指直接利用完全备份集进行数据还原操作。增量还原指通过增量备份集进行数据还原操作。但是考虑到增量备份集的基础一定是一个完全备份集因此增量还原过程中隐含了一个完全还原操作。如果增量备份集的基备份集被删除了那么单独使用这个增量备份集是无法进行还原操作的。
二、备份服务进程 备份还原实现策略有两种dmap辅助进程方式和无辅助进程方式。
DMAP辅助进程方式可支持第三方备份指定DEVICE TYPE为TAPE。DMAP插件执行改造了备份还原任务子系统允许指定并行度大幅提升了备份还原的效率特别是加密、压缩的处理效率。如果选择使用DMAP辅助进程执行备份还原之前就必须启动DMAP服务。安装DM数据库以后DMAP服务会自动启动。如果需要手动启动有两种途径一是启动DM服务查看器中的DmAPService。二是通过手动启动DMAP执行码实现DMAP执行码位于DM安装目录的bin子目录下。除此之外LINUX下还可以调用bin目录下的DmAPService脚本。无辅助进程方式不依赖DMAP由主进程dmserver自身执行备份还原但不支持第三方备份指定DEVICE TYPE为TAPE。
三、物理归备份档参数配置
1、归档配置 通过 dm.ini 和 dmarch.ini 可以配置本地归档。dmarch.ini 生效的前提是 dm.ini 中的参数 ARCH_INI 置为 1。dmarch.ini 可以进行本地归档和远程归档的设置DM 备份与还原过程中使用的日志均为本地归档日志。 2、手工SQL配置 ①、修改数据库为 Mount 状态 SQLalter DATABASE MOUNT; ②、配置本地归档 SQLALTER DATABASE ADD ARCHIVELOG DEST /dm8/dmdata/arch, TYPE local,FILE_SIZE 1024, SPACE_LIMIT 2048; ③、开启归档模式 SQLALTER DATABASE ARCHIVELOG; ④、修改数据库为 Open 状态 SQLALTER DATABASE OPEN; ⑤、查看开启状态 SQLselect name,status$,ARCH_MODE from v$database;
四、备份
1、备份整个库 SQL BACKUP DATABASE FULL BACKUPSET /opt/dmdbms/BAK/db_full_bak_01; 2、指定备份集路径为 /home/dm_bak/db_bak_3_01执行以下命令 SQL BACKUP DATABASE BACKUPSET /home/dm_bak/db_bak_3_01; 3、创建备份集备份名设置为 WEEKLY_FULL_BAK执行以下命令 SQL BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET /home/dm_bak/db_bak_3_02; 4、创建备份为备份集添加描述信息为完全备份执行以下命令 SQL BACKUP DATABASE BACKUPSET /home/dm_bak/db_bak_3_04 BACKUPINFO 完全备份; 5、创建备份限制备份片大小为 300 MB执行以下命令 SQL BACKUP DATABASE BACKUPSET /home/dm_bak/db_bak_3_05 MAXPIECESIZE 300; 6、执行备份压缩压缩级别设置为 5执行以下命令 SQL BACKUP DATABASE BACKUPSET /home/dm_bak/db_bak_3_06 COMPRESSED LEVEL 5; 7、创建并行备份指定并行数为 8执行以下命令 SQL BACKUP DATABASE BACKUPSET /home/dm_bak/db_bak_3_07 PARALLEL 8; 8、基于 /home/dm_bak 全量备份的增量备份执行以下命令 SQL BACKUP DATABASE INCREMENT WITH BACKUPDIR /home/dm_bak BACKUPSET /home/dm_bak/db_increment_bak_02; 注意 当备份数据超过限制大小时会生成新的备份文件新的备份文件名是初始文件名后加文件编号。 系统处于归档模式下时才允许进行表空间备份。 Mount 状态下不允许进行表空间备份。 MPP 环境不允许进行表空间备份。
当备份数据超过限制大小时会生成新的备份文件新的备份文件名是初始文件名后加文件编号。系统处于归档模式下时才允许进行表空间备份。Mount 状态下不允许进行表空间备份。MPP 环境不允许进行表空间备份。
9、完全备份单个表空间执行以下命令 SQL BACKUP TABLESPACE MAIN FULL BACKUPSET /home/dm_bak/ts_full_bak_01; 10、增量备份指定备份目录以备份 MAIN 表空间为例指定 BASE_ON 参数执行增量备份执行以下命令 SQL BACKUP TABLESPACE MAIN INCREMENT WITH BACKUPDIR /home/dm_bakBACKUPSET /home/dm_bak/ts_increment_bak_02;注意
若要创建累积增量备份还需要指定 CUMULATIVE 参数否则缺省为差异增量备份。若基备份不在默认备份目录WITH BACKUPDIR 参数必须指定用于搜索基备份集。
11、以备份 test表为例执行以下命令 SQL BACKUP TABLE TEST BACKUPSET /home/dm_bak/tab_bak_01; 12、添加备份目录。若添加目录已经存在或者为库默认备份路径则认为已经存在不添加但也不报错。执行以下命令 SQL INT SF_BAKSET_BACKUP_DIR_ADD(device_type varchar,backup_dir varchar(256)); 13、删除备份目录。若删除目录为库默认备份路径不进行删除认为删除失败。若指定目录存在于记录的合法目录中则删除不存在或者为空则跳过正常返回。执行以下命令 SQLINT SF_BAKSET_BACKUP_DIR_REMOVE (device_type varchar,backup_dir varchar(256)); 14、清理全部备份目录默认备份目录除外执行以下命令 SQLINT SF_BAKSET_BACKUP_DIR_REMOVE_ALL ();
脱机备份rman15、全库备份在 DMRMAN 下执行以下命令 dramn BACKUP DATABASE /opt/dmdbms/data/DAMENG/dm.ini FULL BACKUPSET /home/dm_bak/db_full_bak_01; 16、增量备份在 DMRMAN 下执行以下命令 dramn BACKUP DATABASE /opt/dmdbms/data/DAMENG/dm.ini INCREMENT WITH BACKUPDIR /home/dm_bak BACKUPSET /home/dm_bak/db_increment_bak_02;
注意
增量备份指基于指定的库的某个备份完全备份或者增量备份备份自该备份以来所有发生修改了的数据页。脱机增量备份要求两次备份之间数据库必须有操作否则备份会报错。WITH BACKUPDIR 参数用于搜索基备份集。INCREMENT 参数表示执行的备份为增量备份增量备份该参数不可省略。
17、校验特定的备份集在 DMRMAN 下执行以下命令 BACKUP DATABASE /opt/dmdbms/data/DAMENG/dm.ini FULL BACKUPSET /home/dm_bak/db_full_bak_01; CHECK BACKUPSET /home/dm_bak/db_full_bak_01; 18、删除特定备份集每次只能删除一个备份集在 DMRMAN 下执行以下命令 BACKUP DATABASE /opt/dmdbms/data/DAMENG/dm.ini BACKUPSET /home/dm_bak/db_bak_for_remove_01; REMOVE BACKUPSET /home/dm_bak/db_bak_for_remove_01; 19、备份集在数据库默认备份目录默认目录在 dm.ini 参数 BAK_PATH执行以下命令 BACKUP DATABASE /opt/dmdbms/data/DAMENG/dm.ini BACKUPSETdb_bak_for_remove_01; REMOVE BACKUPSET db_bak_for_remove_01 DATABASE /opt/dmdbms/data/DAMENG/dm.ini; 20、备份集为其他备份集的基备份且备份集都在数据库默认备份目录下执行以下命令 BACKUP DATABASE /opt/dmdbms/data/DAMENG/dm.ini BACKUPSETdb_bak_for_remove_01; BACKUP DATABASE /opt/dmdbms/data/DAMENG/dm.ini INCREMENT BACKUPSETdb_bak_for_remove_01_incr; REMOVE BACKUPSET db_bak_for_remove_01_incr DATABASE/opt/dmdbms/data/DAMENG/dm.ini CASCADE; 21、批量删除所有备份执行以下命令 BACKUP DATABASE /opt/dmdbms/data/DAMENG/dm.iniBACKUPSET/home/dm_bak/db_bak_for_remove_02; REMOVE BACKUPSETS WITH BACKUPDIR /home/dm_bak;
逻辑备份
1、FULL 方式导出数据库的所有对象。 dexp USERIDSYSDBA/SYSDBA FILEdb_str.dmp LOGdb_str.log FULLYDIRECTORY/mnt/data/dexp 2、OWNER 方式导出一个或多个用户拥有的所有对象。 dexp USERIDSYSDBA/SYSDBA FILEdb_str.dmp LOGdb_str.log OWNERUSER01 DIRECTORY/mnt/data/dexp 3、SCHEMAS 方式的导出一个或多个模式下的所有对象。 dexp USERIDSYSDBA/SYSDBA FILEdb_str.dmp LOGdb_str.log SCHEMASUSER01DIRECTORY/mnt/data/dexp 4、TABLES 方式导出和导入一个或多个指定的表或表分区。导出所有数据行、约束、索引等信息。和 TABLES 导出有关的参数还有 QUERY、EXCLUDE 和 INCLUDE都是用来设置过滤条件的。 dexp USERIDSYSDBA/SYSDBA FILEdb_str.dmp LOGdb_str.log TABLEStable1,table2 DIRECTORY/mnt/data/dexp
五、还原 DM 仅支持表的联机还原数据库、表空间和归档日志的还原必须通过脱机工具 DMRMAN 执行。
逻辑还原 1、还原表结构执行以下命令 SQLrestore table struct from backupset /home/dm_bak/tab_bak_for_res_01; 2、还原表数据执行以下命令 SQLRESTORE TABLE FROM BACKUPSET /home/dm_bak/tab_bak_for_res_01; 3、还原表数据但不重建索引执行以下命令 SQLRESTORE TABLE WITHOUT INDEX FROM BACKUPSET /home/dm_bak/tab_bak_for_res_01; 4、还原表数据但不还原约束执行以下命令 SQLRESTORE WITHOUT CONSTRAINT FROM BACKUPSET /home/dm_bak/tab_bak_for_res_01;
脱机还原rman 进入数据库安装目录的 bin 目录下例如 Linux 下的目录为 /opt/dmdbms/bin执行以下命令./dmrman 1、联机备份数据库保证数据库运行在归档模式及 Open 状态。执行以下命令 BACKUP DATABASE BACKUPSET /home/dm_bak/db_full_bak_for_restore; 2、准备目标库。还原目标库可以是已经存在的数据库也可使用 dminit 工具初始2、化一个新库。执行以下命令 ./dminit path/opt/dmdbms/data db_nameDAMENG_FOR_RESTORE 3、启动 RMAN校验备份校验待还原备份集的合法性。校验备份有两种方式联机和脱机此处使用脱机校验。执行以下命令 CHECK BACKUPSET /home/dm_bak/db_full_bak_for_restore; 4、还原数据库。启动 DMRMAN执行以下命令 RESTORE DATABASE /opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini FROM BACKUPSET /home/dm_bak/db_full_bak_for_restore; 5、恢复数据库。启动 DMRMAN执行以下命令 RECOVER DATABASE /opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini FROM BACKUPSET /home/dm_bak/db_full_bak_for_recover_backupset; 6、恢复 db_magic执行以下命令 RECOVER DATABASE /opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini UPDATE DB_MAGIC;注意 可通过调整 dm.ini 中的和检查点和 REDO 日志相关参数降低检查点频率增大 REDO 日志包大小来提升还原性能。
表空间还原 使用 RESTORE 命令完成表空间的脱机还原还原的备份集可以是联机或脱机生成的库备份集也可以是联机生成的表空间备份集。脱机表空间还原仅涉及表空间数据文件的重建与数据页的拷贝。不需要事先置目标表空间为 OFFLINE 状态。表空间还原后表空间状态被置为 RES_OFFLINE并设置数据标记 FIL_TS_RECV_STATE_RESTORED表示经过还原但数据不完整。 1、创建表空间执行以下命令 CREATE TABLESPACE TS1 DATAFILE TS1.DBF SIZE 128; 2、创建表指定表的存储空间为 TS1执行以下命令 CREATE TABLE RCT_BFHF_BKJ (C1 INT) STORAGE(ON TS1); INSERT INTO RCT_BFHF_BKJ VALUES(1); Commit; 3、联机备份数据库保证数据库运行在归档模式及 OPEN 状态。执行以下命令 BACKUP TABLESPACE MAIN BACKUPSET /home/dm_bak/ts_full_bak_for_restore; 4、校验备份校验待还原备份集的合法性此步骤可选执行以下命令 CHECK BACKUPSET /home/dm_bak/ts_full_bak_for_restore; 5、将表空间脱机执行以下命令 ALTER TABLESPACE TS1 OFFLINE; 6、还原表空间。需要注意表空间还原的目标库只能是备份集产生的源库否则将报错。 RESTORE DATABASE /opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini TABLESPACE MAIN FROM BACKUPSET /home/dm_bak/db_full_bak_for_restore; 7、恢复表空间。启动 DMRMAN执行以下命令 RECOVER DATABASE /opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini TABLESPACE TS1;
到此文章结束请耐心阅读~
更多达梦技术资讯请访问达梦技术社区
达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心
https://eco.dameng.com/