关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

最近参加达梦数据库公司的DCA培训,学习有关达梦数据库(DM)相关的使用,现记录如下。文章内容包括DM的简介,到DM数据库软件的安装、卸载,DM数据库实例的创建以及一些关于DM数据库的使用操作,最后总结了如何用DM来进行数据库备份还原,最后通过配置定时作业来实现数据库的完全/增量备份。附赠上如何配置DM8的odbc配置源。
此次培训让自己收获很多,弥补上了之前学习DM的一些漏洞。
达梦公司安排的培训讲师,讲的很详细、回答问题很耐心。
以下内容全部都是实操,干货满满,对于想学习DM数据库的小伙伴来说很有用。
达梦数据库简介
达梦数据库(Database Multimedia)是由武汉达梦数据库有限公司自主、原创研发出来的数据库产品,该公司以“中国人要制造出自己的数据库管理系统”为宗旨,一直致力于数据库领域的产品开发。达梦数据库是一种关系型数据库,对oracle数据库的兼容性非常高。目前达梦数据库的最新的发行版本为DM8。
达梦数据库的版本类:
开发版:有时间和并发数限制,不能作为商用
标准版:小型应用,没有集群等高级功能和特性
企业版:三权分立,大中型企业使用,具有集群等高级特性
安全版:基于企业版的四权分立,安全特性进一步增强(强访问控制、客体重用等)
作为学习使用,可以去达梦公司的官网下载不同版本的达梦数据库。
http://www.dameng.com/down.aspxypeId=11&FId=t14:11:14

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法
关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

安装数据库内存至少要1G,我的内存是够的。
3)查看硬盘信息
[root@localhost ~]# df -h

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

6)查看安装机上的gcc编译器,这是为后面配置unixodbc做准备
[root@localhost /]# gcc -v
没有安装的话,直接安装即可
安装达梦数据库
1)规划安装路径
[root@localhost /]# mkdir -p /dm8
2)添加安装数据库的用户和组
[root@localhost /]# groupdel dinstall
[root@localhost /]# useradd -g dinstall dmdba
[root@localhost /]# passwd dmdba
3)将安装数据库文件夹的权限赋给dmdba用户
[root@localhost /]# chown dmdba:dinstall /dm8 -R
[root@localhost ~]# chmod -R 777 /dm8
[root@localhost /]# ls -ld /dm8

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

使环境变量生效
[dmdba@localhost ~]$ source .bash_profile
5)查看系统资源
[root@localhost /]# ulimit -a

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

最大文件打开数已经变为65536,如果最大文件打开数仍是1024的话,会出现下面的错误

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

7)数据库软件安装
dm8的镜像文件,已通过ftp传送到安装机的/opt目录下。
在root用户下,将镜像文件挂载到mnt目录下
[root@localhost opt]# mount -o loop /opt/dm8_setup.iso /mnt
在dmdba用户下,执行脚本
[dmdba@localhost mnt]$ ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:c
是否输入Key文件路径(Y/y:是 N/n:否) [Y/y]:n
是否设置时区(Y/y:是 N/n:否) [Y/y]:y
21]:21
请选择安装类型的数字序号 [1 典型安装]:1
请选择安装目录 [/home/dmdba/dmdbms]:/dm8
请以root系统用户执行命令:
/dm8/script/root/root_installer.sh
[root@localhost mnt]# /dm8/script/root/root_installer.sh
执行该脚本就是启动DmAPService服务
卸载达梦数据库
将当前的用户切换到root用户,
[dmdba@localhost tool]$ su
[root@localhost tool]# ./dmservice.sh
在安装目录的tool目录下,打开达梦数据库的服务助手,将达梦数据库的后台服务关掉

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

最后会提示使用root用户执行脚本

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

如何在达梦数据库中开启归档
1)进入安装软件的bin目录,使用disql工具登录上面创建的数据库实例。disql后面接的是 “用户名/用户密码@LOCALHOST:端口号”。
[dmdba@localhost ~]$ cd /dm8/bin
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@LOCALHOST:5237
2)开归档的SQL语句如下:
3)首先将数据库设置为配置状态
SQL> ALTER DATABASE MOUNT;
4)再添加本地归档文件
SQL> ALTER DATABASE ADD ARCHIVELOG ‘dest=/opt/arch,type=local,file_size=1024,space_limit=2048’;
5)将数据库配置为归档模式
SQL> alter database archivelog;
6)将数据设置为open状态
SQL> alter database open;
达梦数据库一些常用的数据库工具简介
disql
disql,一种可以进行交互式sql界面的工具,位于安装数据库软件的bin目录下
类似于oracle的sqlplus /as sysdba
manager
管理工具manager,一种图形化管理工具,可以方便直观地进行数据库管理,位于安装数据库软件的tool目录下
monitor
达梦数据库软件的一种性能监控工具,位于安装数据库软件的tool目录下
dts
dts 数据迁移工具,可以将其他数据库中的数据迁移到达梦数据库,位于安装数据库软件的tool目录下
console
console 工具,可以用来查看和调整参数,还可以进行数据库的脱机备份,位于安装数据库软件的tool目录下
达梦数据库的用户管理
使用达梦数据库来创建一个用户,该用户的密码长度应不小于9个,且禁止密码和用户名相同,且密码中应包含一个特殊字符,例如@符号,用户名为TEST。附加该数据库兼容ORACLE数据库。TEST用户属于TEST表空间。
1)使用下面的SQL语句查看当前数据库的所有用户
SQL> select username,account_status from dba_users;

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

PWD_POLICY的值为2,查看DM8系统管理员手册(手册在安装数据库软件的doc目录下),找到关于PWD_POLICY参数的描述。该参数为一个系统动态级参数,动态代表该参数可以被动态修改,修改后立即生效,系统代表该参数被修改后会影响所有的会话。
按照给用户设置密码的要求,PWD_POLICY的值要被设置为3即可。
设置过程如下:
1)调用系统会话函数SP_SET_PARA_VALUE()来修改
SQL> SP_SET_PARA_VALUE(1,‘PWD_POLICY’ ,3);
该函数中第一个参数值为1,代表要修改的’PWD_POLICY’ 参数是一个动态参数,如果要修改的参数为静态参数,第一个参数值就是2
该函数中第二个参数值就是指要修改的参数
该函数中第三个参数值代表要修改的参数的新值
2)修改完后,重新查看参数PWD_POLICY的值
SQL> select * from v$dm_ini where para_name=‘PWD_POLICY’;

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

该参数值为0,查看手册,该参数为静态参数,静态参数可以被动态修改,但是修改完之后得重启服务器使该参数值生效。
调用系统过程函数 SP_SET_PARA_VALUE修改参数值
SQL> SP_SET_PARA_VALUE(2,‘COMPATIBLE_MODE’,2);
第一个参数值为2,代表参数COMPATIBLE_MODE为静态参数
第三个参数值为2,代表参数COMPATIBLE_MODE修改为2,部分兼容ORACEL数据库
3)重启数据库实例,重新查看修改的参数值

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

查看新创建的用户拥有的权限
SQL> SELECT * FROM SYS.DBA_SYS_PRIVS WHERE GRANTEE=‘TEST’;

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

案例1
Create user “TEST” identified by “dameng1234”
Limit failed_login_attemps 3,password_life_time 60,password_lock_time 5,password_grace_time 10 default tablespace “TEST”;
Grant “PUBLIC”,”VTI” to “TEST”;
登录失败次数:登录失败超过限制的次数,用户将无法登录
口令有效期:指密码在多少天内是有效的,一般不设限制
口令等待期:每一用过
口令宽限期:指账号口令到期后,系统仍然允许改账户登录的时间限制,在这个事件限制内账户登录系统时将会被要求设置新密码,超过这个时间后账户将被永久锁定。
会话持续时间:会话持续期是指一个会话连接、访问和操作数据库服务器的时间上限,如果达到时间上限系统将会强制断开会话。
口令锁定期:登录失败次数超过限制时,会锁定用户登录,等过了口令锁定期设置的时间才允许用户进行等录。
管理表
在TEST用户下创建普通表test,该表所属的表空间为TEST
SQL> create table “TEST”.“test”(id int primary key not null,name varchar(30) not null, address varchar(60),phone_number number(20,6))storage(on “TEST”);
登录TEST用户
[dmdba@localhost bin]$ ./disql TEST/’“mmde12345@”’@LOCALHOST:5237
向表test中插入数据
1)直接使用SQL语句
SQL> insert into “TEST”.“test” values(1,‘ss’,‘武汉’,15013122451);
2)执行SQL脚本
SQL> start /dm8/test.sql
创建简单视图
SQL> create view TEST.emp_v as select * from “SYSDBA”.“class”;

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

联机状态下,完全备份数据库
SQL> backup database full to full_bak backupset ‘/opt/dm_bak/full_bak’;
删除整个数据库,模拟数据库故障
[dmdba@localhost data]$ rm -rf D1
重新初始化和被删除数据库初始参数一样的数据库实例
[dmdba@localhost bin]$ ./dminit path=/dm8/data instance_name=D1 db_name=D1 port_num=5237
不开启数据库实例服务,但是开启DMAP服务,进行数据库还原
RMAN> restore database ‘/dm8/data/D1/dm.ini’ from backupset ‘/opt/dm_bak/db_full’;
RMAN> recover database ‘/dm8/data/D1/dm.ini’ from backupset ‘/opt/dm_bak/full_bak’;
RMAN> recover database ‘/dm8/data/D1/dm.ini’ update db_magic;
进入TEST用户还是能查询到创建的视图和表,从SYSDBA模式下的赋予权限的表也能查到。
[dmdba@localhost bin]$ ./disql TEST/’“mmde12345@”’@LOCALHOST:5237

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

表空间备份、还原与恢复
给数据库的表空间进行备份,联机备份,需要开启归档日志才能备份
SQL> backup tablespace “TEST” full to “TS_TEST_FULL” backupset ‘/opt/dm_bak/TS_TEST_FULL’;
表空间还原与恢复只能在数据库实例服务停止状态下进行
RMAN> restore database ‘/dm8/data/D1/dm.ini’ tablespace TEST from backupset ‘/opt/dm_bak/TS_TEST_FULL’;
RMAN> recover database ‘/dm8/data/D1/dm.ini’ tablespace TEST;
表备份与还原
给数据库的表进行备份,联机备份,需要开启归档日志才能备份
SQL> backup table “TEST”.“test” to “TAB_TEST_test” backupset ‘/opt/dm_bak/TAB_TEST_test’;
数据库的表只能在联机状态下进行还原
SQL> restore table “TEST”.“test” from backupset ‘/opt/dm_bak/TAB_TEST_test’;
备份归档
联机状态下,备份归档日志
SQL> backup archivelog all to “ARCH_2020_09_27” backupset ‘/opt/arch_bak/ARCH_2020_09_27’;

逻辑导入导出
达梦数据库使用位于数据软件安装的bin目录下逻辑导出(dexp)和逻辑导入(dimp)这两个命令行工具来实现数据库的逻辑备份。
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。
数据库级(FULL):导出或导入整个数据库中的所有对象。
用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
表级(TABLE):导出或导入一个或多个指定的表或表分区。

下面将分别模拟四种级别的导出。
将端口号为5237数据库实例下的SYSDBA用户的数据以整个数据库导出的方式,导出到full.dmp文件中。
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA@LOCALHOST:5237 FILE=/opt/dexp/full.dmp log=full.log directory=/opt/dexp full=y
将端口号为5237数据库实例下的SYSDBA用户的数据以用户TEST为导出对象的方式,导出到full1.dmp文件中。
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA@LOCALHOST:5237 FILE=/opt/dexp/full1.dmp log=full1.log directory=/opt/dexp owner=TEST
将端口号为5237数据库实例下的SYSDBA用户的数据以模式TEST为导出对象的方式,导出到full2.dmp文件中。
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA@LOCALHOST:5237 FILE=/opt/dexp/full2.dmp log=full2.log directory=/opt/dexp schemas=TEST
将端口号为5237数据库实例下的SYSDBA用户的数据以表student,student1为导出对象的方式,导出到full3.dmp文件中。
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA@LOCALHOST:5237 FILE=/opt/dexp/full3.dmp log=full3.log directory=/opt/dexp tables=student,student1

模拟数据丢失,将该用户下的表丢失
下面将分别模拟四种级别的导入,实现丢失数据的找回。
将导出的dmp文件以整个数据库级别的方式重新导入到SYSDBA用户下
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA@LOCALHOST:5237 FILE=/opt/dexp/full.dmp log=full_imp.log directory=/opt/dimp full=y
将导出的dmp文件以用户级别的方式重新导入到SYSDBA用户下
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA@LOCALHOST:5237 FILE=/opt/dexp/full1.dmp log=full_imp1.log directory=/opt/dimp owner=TEST;
将导出的dmp文件以模式级别的方式重新导入到SYSDBA用户下
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA@LOCALHOST:5237 FILE=/opt/dexp/full2.dmp log=full_imp2.log directory=/opt/dimp schemas=TEST;
将导出的dmp文件以表级别的方式重新导入到SYSDBA用户下
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA@LOCALHOST:5237 FILE=/opt/dexp/full3.dmp log=full_imp3.log directory=/opt/dimp tables=student,student1;

案例1:将TEST用户下的表test和test1导入到SYSDBA用户下,将SYSDBA用户下的两种表student和student1导入TEST用户下。
解决方法:将SYSDBA模式下的表全部导入到TEST模式下。如果表存在的话直接REPLACE。

查看导入命令帮助参数
[dmdba@localhost bin]$ ./dimp help
TABLE_EXISTS_ACTION 需要的导入表在目标库中存在时采取的操作[SKIP | APPEND | TRUNCATE | REPLACE]
SKIP:跳过此表
APPEND:直接向现有的表中导入数据
TRUNCATE:先删除表中的数据,再向表中导入数据
REPLACE:先删除先有表,再导数据
REMAP_SCHEMA 格式(SOURCE_SCHEMA:TARGET_SCHEMA)
将SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA中,将源模式中的数据导入到目标模式中。
首先将两个用户的整个两个表分别导出
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA@LOCALHOST:5237 FILE=/opt/dexp/sys.dmp log=tab_sys.log directory=/opt/dexp tables=SYSDBA.class,SYSDBA.class1;
[dmdba@localhost bin]$ ./dexp TEST/dameng12345@LOCALHOST:5237 FILE=/opt/dexp/test.dmp log=tab_test.log directory=/opt/dexp tables=TEST.test,TEST.test1;

将TEST模式下的表导入到SYSDBA用户下
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA@LOCALHOST:5237 FILE=/opt/dexp/test.dmp log=test_imp.log directory=/opt/dimp tables=TEST.test,TEST.test1 TABLE_EXISTS_ACTION=REPLACE REMAP_SCHEMA=TEST:SYSDBA

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法
关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法
关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法
关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

[root@localhost unixODBC-2.3.0]# cd /usr/local/etc/
[root@localhost etc]# vi odbc.ini
[dm8]
Description = DM ODBC DSND
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID=TEST 数据库用户名
PWD=dameng12345 创建用户时的密码,在这里为dameng12345
TCP_PORT=5237 数据库实例端口号

[root@localhost etc]# vi odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
DRIVER = /dm8/bin/libdodbc.so 安装数据库软件的bin目录下

测试连接,切换到dmdba用户下
[dmdba@localhost ~]$ isql dm8

关于进行达梦数据库(DM)培训的总结,包括安装DM数据库软件时报错的解决方法

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树首页概览32096 人正在系统学习中

来源:wg5foc08

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年8月25日
下一篇 2020年8月25日

相关推荐