<达梦>《达梦数据库备份归档》

这篇具有很好参考价值的文章主要介绍了<达梦>《达梦数据库备份归档》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 版本

1.1 kylin版本

$ lsb_release -a
-- kylin 4.0.2

1.2 达梦数据库license

$ SQL > SELECT * FROM V$LICENSE;

2 达梦数据库命令

2.1 启动数据库

// dmdba 前台命令
$ cd /home/dmdba/dmdbms/bin
$ ./dmserver /home/dmdba/dmdbms/DAMENG/dm.ini

// 启动脚本
dmdba@else-virtual-machine:~$ cat startdb.sh 
cd /home/dmdba/dmdbms/bin
nohup ./dmserver /home/dmdba/dmdbms/DAMENG/dm.ini > /dev/null &

// 停止脚本
dmdba@else-virtual-machine:~$ cat stopdb.sh 
ps -ef|grep ./dmserver | grep -v grep | awk '{print $2}'|xargs kill -9

2.2 连接数据库并执行命令

// 连接数据库
$  ./disql SYSDBA/SYSDBA@localhost:5236
// 直接执行命令
disql SYSDBA/SYSDBA -E "SELECT TOP 1 * FROM SYSOBJECTS; SELECT TOP 1 * FROM V$CMD_HISTORY"
disql SYSDBA/SYSDBA -C "SET LONG 1000 PAGESIZE 0"

2.3 查看数据库

SQL> select * from v$database;

行号     NAME   CREATE_TIME         ARCH_MODE LAST_CKPT_TIME      STATUS$     ROLE$       MAX_SIZE             TOTAL_SIZE           DSC_NODES   OPEN_COUNT  STARTUP_COUNT        LAST_STARTUP_TIME  
---------- ------ ------------------- --------- ------------------- ----------- ----------- -------------------- -------------------- ----------- ----------- -------------------- -------------------
1          DAMENG 2023-05-15 23:03:26 N         2023-05-16 14:02:24 4           0           0                    20992                1           4           4                    2023-05-16 12:53:26

已用时间: 3.166(毫秒). 执行号:500.



3 数据库备份

3.1 数据库备份原理

方式 备份
DIsql 工具 用于执行联机的数据备份与数据还原,包括数据库备份、归档备份、表空间备份与还原、表备份与还原;
DMRMAN 工具 用于执行脱机的数据备份、还原与恢复,包括脱机的数据库备份、还原与恢复,脱机还原表空间,归档的备份、还原与修复;
客户端工具 MANAGER 对应命令行工具 DIsql,用于联机备份还原数据。
客户端工具 CONSOLE 对应命令行工具 DMRMAN,用于脱机备份还原数据。

3.2 开启归档日志

//修改数据库为MOUNT状态
ALTER DATABASE MOUNT;

//配置本地归档
ALTER DATABASE ADD ARCHIVELOG 'DEST = /dmdata/dameng/arch_dsc0, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 2048, ARCH_FLUSH_BUF_SIZE=16,HANG_FLAG=1';

//配置远程归档
ALTER DATABASE ADD ARCHIVELOG 'DEST = DSC1, TYPE = REMOTE, FILE_SIZE = 1024, SPACE_LIMIT = 2048, ARCH_FLUSH_BUF_SIZE=16, INCOMING_PATH = /dmdata/dameng/arch_dsc1';

//开启归档模式
ALTER DATABASE ARCHIVELOG;

//修改数据库为OPEN状态
ALTER DATABASE OPEN;

3.3 脱机创建完全备份(RMAN)

dmdba@else-virtual-machine:~/dmdbms/bin$ pwd
/home/dmdba/dmdbms/bin
dmdba@else-virtual-machine:~/dmdbms/bin$ ./dmrman
dmrman V8


// 脱机完全备份
RMAN> BACKUP DATABASE '/home/dmdba/dmdbms/DAMENG/dm.ini' FULL BACKUPSET '/else/bakup_dm'; 
--输出结果:
BACKUP DATABASE '/home/dmdba/dmdbms/DAMENG/dm.ini' FULL BACKUPSET '/else/bakup_dm';
file dm.key not found, use default license!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
begin redo pwr log collect, last ckpt lsn: 37027 ...
redo pwr log collect finished
EP[0]'s cur_lsn[37190], file_lsn[37190]
Processing backupset /else/bakup_dm
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
backup successfully!
time used: 00:00:02.423
RMAN> exit
time used: 0.211(ms)
dmdba@else-virtual-machine:~/dmdbms/bin


//检查备份
RMAN> CHECK BACKUPSET '/backup/dmdb';
CHECK BACKUPSET '/backup/dmdb';
                                                                                                                                                                                                                                                                                                                                                [Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
check backupset successfully.
time used: 33.279(ms)
RMAN> 

说明: 1、如果未开启归档,则无法进行备份,会出现以下报错。2、如果已经开启归档,则新建表插入数据出现归档日志即可。

RMAN> BACKUP DATABASE '/home/dmdba/dmdbms/DAMENG/dm.ini' FULL BACKUPSET '/backup/dmdb'; 
BACKUP DATABASE '/home/dmdba/dmdbms/DAMENG/dm.ini' FULL BACKUPSET '/backup/dmdb';
file dm.key not found, use default license!

Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
begin redo pwr log collect, last ckpt lsn: 37388 ...
redo pwr log collect finished
EP[0]'s cur_lsn[41361], file_lsn[41361]
[-8216]:归档日志不完整,请使用dmrman工具执行'repair archive log ...'语句修复归档日志
RMAN> RMAN> 

3.4 联机完全备份(disql)

SQL> BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/backup/dmdb/online';
操作已执行
已用时间: 856.729(毫秒). 执行号:505.
// 或者
BACKUP  DATABASE  FULL  BACKUPSET '/backup/dmdb/online';

1、名称中不支持特殊字符。

SQL> BACKUP DATABASE BACKUPSET '/backup/dmdb/online/bak_`date +%F`' BACKUPINFO  '完全备份';
操作已执行
已用时间: 876.343(毫秒). 执行号:502.
dmdba@else-virtual-machine:/backup/dmdb/online$ ls
bak_`date +%F`

2、两次备份路径不能相同。

SQL> BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/backup/dmdb/online';
操作已执行
已用时间: 856.729(毫秒). 执行号:505.
SQL> BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/backup/dmdb/online';
BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/backup/dmdb/online';
[-8055]:备份目录冲突.
已用时间: 4.006(毫秒). 执行号:0.
SQL> ^C

3.5 数据库表备份

SQL> BACKUP TABLE t1 BACKUPSET '/backup/dmdb/t1_bak_01';
操作已执行
已用时间: 820.100(毫秒). 执行号:600.
dmdba@else-virtual-machine:/backup/dmdb/t1_bak_01$ ls
t1_bak_01.bak  t1_bak_01.meta

说明:

  1. 仅支持对用户的非分区的行存储表和堆表进行备份,不支持对分区表的备份。在非分区表中,也不支持对临时表、物化视图表、物化视图附属表、日志表和特定模式(DBG_PKG/INFORMATION_SCHEMA/INFO_SCHEM/SYSREP/SYSGEO/SYSJOB/SYSCPT/SYS)下的表进行表备份。
  2. 表的列类型为对象类型的表不支持表备份。
  3. 表备份不备份表上的注释以及 default 表达式中的函数定义,因此还原时需用户自行确认。
  4. 不支持在加密库上进行表备份与还原。
  5. 当备份数据超过限制大小时,会生成新的备份文件,新的备份文件名是初始文件名后加文件编号。
  6. 表备份时,其所属表空间必须处于联机状态。
  7. 目前表备份不支持备份到 TAPE 介质上。

3.5 数据库表空间备份

问题

SQL> BACKUP TABLESPACE MAIN BACKUPSET '/backup/tabspace/ts_bak_01';
BACKUP TABLESPACE MAIN BACKUPSET '/backup/tabspace/ts_bak_01';
[-8117]:等待归档刷盘,请稍后重试.
已用时间: 102.618(毫秒). 执行号:0.

4 数据库恢复

4.1 表恢复

SQL> RESTORE TABLE t1 FROM BACKUPSET '/backup/dmdb/t1_bak_01';
操作已执行
已用时间: 9.957(毫秒). 执行号:603.

说明:表必须存在。

4.1 数据库恢复

dmdba@else-virtual-machine:~/dmdbms/bin$ pwd
/home/dmdba/dmdbms/bin
dmdba@else-virtual-machine:~/dmdbms/bin$ ./dmrman
dmrman V8
// 还原数据库
RMAN> RESTORE DATABASE '/home/dmdba/dmdbms/DAMENG/dm.ini' FROM BACKUPSET '/backup/dmdb/online';
RESTORE DATABASE '/home/dmdba/dmdbms/DAMENG/dm.ini' FROM BACKUPSET '/backup/dmdb/online';
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                [Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
restore successfully.
time used: 00:00:02.398
// 恢复数据库
RMAN> RECOVER DATABASE '/home/dmdba/dmdbms/DAMENG/dm.ini' FROM BACKUPSET '/backup/dmdb/online';
RECOVER DATABASE '/home/dmdba/dmdbms/DAMENG/dm.ini' FROM BACKUPSET '/backup/dmdb/online';
file dm.key not found, use default license!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]s cur_lsn[50190], file_lsn[50190]
                                                                                                                                                                                                                                                            [Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]
recover successfully!
time used: 00:00:02.336

// 更新数据库
RMAN> RECOVER DATABASE '/home/dmdba/dmdbms/DAMENG/dm.ini' UPDATE DB_MAGIC;
RECOVER DATABASE '/home/dmdba/dmdbms/DAMENG/dm.ini' UPDATE DB_MAGIC;
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[52678], file_lsn[52678]
recover successfully!
time used: 00:00:01.032
RMAN> quit
// 启动数据库
cd /home/dmdba/dmdbms/bin
nohup ./dmserver /home/dmdba/dmdbms/DAMENG/dm.ini > /dev/null &
dmdba@else-virtual-machine:~/dmdbms/bin$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 1.525(ms)
disql V8
SQL> select * from t1;    

行号     NO          NAME    
---------- ----------- --------
1          1           wang    
2          2           zhang   
3          3           li      
4          4           chen    

已用时间: 1.710(毫秒). 执行号:500.

5 数据库原理

5.1 数据库状态和模式

DM 数据库包含以下几种状态 说明
配置状态(MOUNT) 不允许访问数据库对象,只能进行控制文件维护、归档配置、数据库模式修改等操作;
打开状态(OPEN) 不能进行控制文件维护、归档配置等操作,可以访问数据库对象,对外提供正常的数据库服务;
挂起状态(SUSPEND) 与 OPEN 状态的唯一区别就是,限制磁盘写入功能;一旦修改了数据页,触发 REDO 日志、数据页刷盘,当前用户将被挂起。
说明 OPEN 状态与 MOUNT 和 SUSPEND 能相互转换,但是 MOUNT 和 SUSPEND 之间不能相互转换。
DM 数据库包含以下几种模式: 说明
普通模式(NORMAL) 用户可以正常访问数据库,操作没有限制;
主库模式(PRIMARY) 用户可以正常访问数据库,所有对数据库对象的修改强制生成 REDO 日志,在归档有效时,发送 REDO 日志到备库;
备库模式(STANDBY) 接收主库发送过来的 REDO 日志并重做。数据对用户只读。
说明 三种模式只能在 MOUNT 状态下设置,模式之间可以相互转换。

1、对于新初始化的库,首次启动不允许使用 mount 方式,需要先正常启动并正常退出,然后才允许 mount 方式启动。

2、一般情况下,数据库为 NORMAL 模式,如果不指定 MOUNT 状态启动,则自动启动到 OPEN 状态。

3、在需要对数据库配置时(如配置数据守护、数据复制),服务器需要指定 MOUNT 状态启动。当数据库模式为非 NORMAL
模式(PRIMARY、STANDBY 模式),无论是否指定启动状态,服务器启动时自动启动到 MOUNT 状态。

// 数据库状态
SQL> select status$ from v$instance;

行号     STATUS$
---------- -------
1          OPEN

已用时间: 0.617(毫秒). 执行号:501.

// 数据库模式
SQL> select MODE$ from v$instance;

行号     MODE$ 
---------- ------
1          NORMAL

已用时间: 0.842(毫秒). 执行号:502.
SQL> 

5 操作系统管理

5.1 扩容

1、虚拟机划分磁盘,然后实用fdisk查看并创建、分配分区。

root@else-virtual-machine:~# fdisk -l
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x2d990cf9

设备       启动    Start   末尾   扇区  Size Id 类型
/dev/sda1  *        2048   999423   997376  487M 83 Linux
/dev/sda2         999424 25165823 24166400 11.5G 83 Linux
/dev/sda3       25167870 41940991 16773122    8G  5 扩展
/dev/sda5       25167872 41940991 16773120    8G 82 Linux 交换 / Solaris


Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@else-virtual-machine:~# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x04879ea3.

命令(输入 m 获取帮助): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
分区号 (1-4, default 1): 1
First sector (2048-41943039, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): 

Created a new partition 1 of type 'Linux' and of size 20 GiB.

命令(输入 m 获取帮助): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

root@else-virtual-machine:~# 

2、确认并识别分区,不成功实用partprobe命令重新同步。

root@else-virtual-machine:~# file /dev/sdb1
/dev/sdb1: block special (8/17)
root@else-virtual-machine:~# partprobe
root@else-virtual-machine:~# 

3、格式化

root@else-virtual-machine:~# file /dev/sdb1
/dev/sdb1: block special (8/17)
root@else-virtual-machine:~# partprobe
root@else-virtual-machine:~# 

4、挂载目录/backup

root@else-virtual-machine:~# mkdir /backup
root@else-virtual-machine:~# id dmdba
uid=12345(dmdba) gid=12349(dinstall)=12349(dinstall)
root@else-virtual-machine:~# chown dmdba:dinstall /backup/
root@else-virtual-machine:~# mount /dev/sdb1 /backup
root@else-virtual-machine:~# df -h
文件系统        容量  已用  可用 已用% 挂载点
udev            3.9G     0  3.9G    0% /dev
tmpfs           797M  9.2M  788M    2% /run
/dev/sda2        12G  8.6G  2.1G   81% /
tmpfs           3.9G  192K  3.9G    1% /dev/shm
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/sda1       464M   76M  361M   18% /boot
tmpfs           797M   20K  797M    1% /run/user/1000
/dev/sdb1        20G   44M   19G    1% /backup

报错

1、出现如下报错:file dm.key not found, use default license!

dmdba@else-virtual-machine:~/dmdbms/bin$ ./dmserver ../DAMENG/dm.ini 
file dm.key not found, use default license!
version info: develop
instance DMSERVER is running.

解决:可能已经启动了一个dm.ini文章来源地址https://www.toymoban.com/news/detail-448133.html

root@else-virtual-machine:/home/dmdba/dmdbms/bin# ps -ef|grep dm.int
dmdba      6708   1853  0 23:10 pts/1    00:00:00 ./dmserver /home/dmdba/dmdbms/DAMENG/dm.ini

到了这里,关于<达梦>《达梦数据库备份归档》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ORACLE 10G版本数据库系统产生大量归档日志问题的分析

    近期接到用户告知 数据库归档暴增,导致生产库归档空间满,手动删除后,归档空间很快就会满。 立即登陆数据库系统,查询发现归档日志异常增长,从以前的每小时产生3 00M ,增长到每小时产生5 9150M 。拉取问题时段的A WR 报告,将问题S QL 提交给应用运维人员,应用修复

    2024年02月03日
    浏览(34)
  • beetlsql3.x版本适配达梦数据库

    BeetlSQL的目标是提供 开发高效 , 维护高效 , 运行高效 的数据库访问框架,在一个系统多个库的情况下,提供一致的编写代码方式。支持如下数据平台 传统数据库:MySQL(国内兼容MySQL协议的各种大数据库),MariaDB,Oracle,Postgres,DB2,SQL Server,H2,SQLite,Derby,神通,达梦,华为高斯,

    2024年02月09日
    浏览(31)
  • Sql Server高版本数据库数据备份后还原到低版本数据库

    如果需要将高版本的Sql Server2019数据库还原到Sql Server低版本(2012,2008等)数据库,通过以下方法可以顺利还原 通过高版本生成sql脚本在低版本执行,并且数据也能保留 步骤:选择数据库右键 点击任务 生成脚本 在设置脚本编写选项时,选择高级,编写脚本数据类型选择为架构和数

    2024年02月09日
    浏览(48)
  • 当前服务器版本不支持该功能,请联系经销商升级服务器 - - 达梦数据库报错

    某项目使用标准版数据库中,使用insert into 正常操作表,插入数据时报错,表为普通表。 -539:当前服务器版本不支持该功能,请联系经销商升级服务器

    2024年02月13日
    浏览(41)
  • 【数据库管理】⑤归档日志Archive Log

    日志归档 是指 将数据库的归档日志文件保存到指定的位置 , 以便在需要时进行恢复和回滚操作。 在Oracle数据库中, 日志归档是一种重要的备份和恢复策略,可以保证数据库的数据完整性和可靠性。 日志归档的 主要用途包括 : 数据库备份 :归档日志文件可以用于数据库

    2023年04月09日
    浏览(28)
  • 利用 pt-archiver 实现数据库归档功能

    一个完整的项目,除了开发阶段,还有运维移交阶段,运维移交往往需要考虑数据库后续的归档机制,比如:将1年前的数据归档到另外一台服务器的归档库。有些业务表数据量比较大,为了更快的查询速度更好的用户体验,可能会对某张特定的表做归档处理,只保留最近1个

    2024年02月19日
    浏览(30)
  • MySQL数据库归档工具之【pt-archiver】

    前言 当MySQL数据库积累了大量历史数据时,有效地管理这些数据变得至关重要。为了避免影响数据库性能,并确保其顺畅运行,我们可以利用 pt-archiver 工具来对历史数据进行归档。 什么是pt-archiver? pt-archiver是Percona Toolkit的一部分,是一个强大的MySQL数据归档工具。它能够帮

    2024年04月14日
    浏览(28)
  • 达梦数据库创建及数据库实例管理

    数据库配置助手创建数据库调用 dbca.sh 图形化界面创建数据库: [dmdba@DCA02 tool]$ ./dbca.sh 2021-01-11 11:43:45 [com.dameng.dbca.Startup] [INFO] 启动 DBCA 指定数据库名称、实例名称(单机情况下数据库和实例名称可以相同),指定端口号: 簇大小、页大小、字符集、 字符串 大小写敏感、

    2023年04月08日
    浏览(39)
  • 达梦数据库 优化

    优化不能仅从数据库方面考虑,比如,在存储达到数据库极限、应用涉及人员设计的代码稀巴烂的情况下,进行调优就是杯水车薪的效果。 涉及到优化人员: 数据库管理员 应用程序架构师 应用程序设计人员 系统管理员 存储管理员 涉及到的优化内容: 应用程序:(与开发人员

    2024年04月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包