Advertisement

达梦数据库安装及使用简单介绍

阅读量:

达dream数据库通过不断的迭代与进化,在借鉴主流database产品优点的同时, 也逐步形成了自身的特点, 得到业界和用户的广泛认可。本文着重阐述DM8的简单安装及操作步骤。

1.tmp 空间

安装过程中tmp空间不能太小,查看所分配的空间大小和使用情况。

df -h

tmpfs 2.0G 586M 1.5G 29% /tmp

如果 小于 2g 临时增大 tmp 空间

vim /etc/fstab

tmpfs /tmp tmpfs defaults,size=2G,noatime,mode=1777 0 0

reboot;// 修改后重启

2.设置可视化图形界面配置

export DISPLAY=clientIp:0.0 // ssh端

echo $DISPLAY // linux 端 输出 :2.0

export DISPLAY=:2.0

xhost +

3.安装用户和用户组

创建用户组和用户:

groupadd dinstall

useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba

passwd dmdba

创建安装目录并赋权限:

mkdir /dm8

给用户目录赋权

chown dmdba:dinstall /dm8

安装前需要先挂载.iso 文件。

mkdir /mnt/dm

mount /opt/dm8_20220304_x86_rh6_64.iso /mnt/dm

图形化安装:

su - dmdba

cd /mnt/dm

./DMInstall.bin ( ./DMInstall.bin -i)

创建数据库实例:

/dm8/tool/dbca.sh // 注册或创建实例

将文件'DmServiceDMSERVER.service'从'dm8/bin/'移动至'/usr/lib/systemd/system/DmServiceDMServer.service'

systemctl enable DmServiceDMSERVER.service

systemctl start DmServiceDMSERVER.service

ps -ef|grep dmserver //查看实例

netstat -anlp|grep 5236 //查看实例

如果该界面弹出文件打开数过小,需要设置下文件打开数:

[dmdba@KylinDCA04 dm]$ ulimit -a

open files (-n) 102400

dmdba@KylinDCA04 dm]$ ulimit -n 20480 (当前会话生效)

永久生效方法,修改/etc/security/limits.conf 文件:

root@KylinDCA04 opt]# vim /etc/security/limits.conf

  • hard nofile 20000

  • soft nofile 15000

DM 数据库的状态:

select status from vinstance;

alter database mount;

alter database open;

管理服务器/系统管理

后台启动查看数据库:

/dm8/bin

./DmServiceDMSERVER status

./DmServiceDMSERVER stop

./DmServiceDMSERVER start

数据库体系结构:

安装目录:

/dm8/data/DAMENG

dm.ini:配置参数文件

dm.ctl:控制文件

DM 提供 dmctlcvt 工具可以将控制文件转换为文本文件。

/dm8/bin/dmctlcvt help

//转换

/dm8/bin/dmctlcvt type=1 src=dm.ctl dest=dmctl.txt

运行此脚本命令以设置类型为1,并指定源文件路径和目标文件路径

ctl_bak:备份目录

修改参数:

(1)修改dm.ini 文件

(2) console 控制台

(3)sql语句

alter system set “参数名” = 参数值 both|spfile|memory;

指定为spfile的范围仅限于本地存储;不会影响内存;即在下次数据库启动时才会生效;某些特定参数仅能通过这种方式进行更新

2、scope=memory 仅仅更改内存,不改spfile。也就是下次启动就失效了

3、scope=both 内存和spfile都更改

4、不指定scope搜索参数,等同于scope=both.

alter system set 'UNDO_RETENTION'=180 both; // 事务提交后回滚页保持时间

alter system set 'UNDO_RETENTION'=300 memory;

alter session set 'LIST_TABLE'=1; // 默认情况下,创建的表不是堆表,0:否;1:是

alter system set 'BUFFER'= 500 spfile; //修改数据缓冲区大小为500M

alter system set 'COMPATIBLE_MODE' =2 spfile; // 兼容oracle

alter system set 'PWD_POLICY' = 31 both; //密码策略

(4)函数修改:sp_set_para_value(2,LIST_TABLE,0);

(scope,paraname,value)

select name, value, SYS_VALUE, FILE_VALUE, type from v$parameter where name = 'LIST_TABLE'

修改系统口令策略:

于指定系统支持的口令策略,包含:

⚫ 1 禁止与用户名相同

⚫ 2 口令长度不小于9

⚫ 4 至少包含一个大写字母(A-Z)

⚫ 8 至少包含一个数字(0-9)

⚫ 16 至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)

口令策略既可以单独使用,也可以以组合形式应用.当需要同时应用多个策略时,在设置口令策略时只需将所需的所有策略编号相加即可.

用户/角色/表空间:

create tablespace DMTBS DATAFILE 'DMTBS01.DBF' SIZE 32; // 创建表空间

创建一个名为DMTBS的数据文件表空间,并将其设置为自动扩展下一个2M区间,并将最大容量设置为10G

alter TABLESPACE DMTBS RENAME TO dmtest; //表空间重命名

alter table dmtest.T_TESTPID move tablespace main; //修改表的表空间

//表空间迁移 数据文件的迁移:

alter tablespace dmtest offline;

alter tablespace dmtest RENAME DATAFILE 'DMTBS02.DBF'

to '/dm8/data/DAMENG/DMTEST/DMTBS02.DBF';

alter tablespace dmtest online;

归档管理:

(1) SQL 方式

--开启归档

alter database mount;

alter database ARCHIVELOG;

执行命令用于在数据库中创建日志文件的日志类型设置为本地,并将目标存储路径指定为/dm8/arch文件夹,并设置日志文件大小为64字节以及空间限制为10240字节。

alter database open;

--关闭归档

alter database mount;

alter database NOARCHIVELOG;

remove from the database the log file named 'ARCHIVELOG' with the following specifications: type is local, destination is /dm8/arch, file size is 64 bytes, and space limit is 10240 characters;

alter database open;

// 创建用户

create a user named hrtest identified by Dameng123 with a default tablespace setting of DMTBS; this action is carried out to establish a new user account within the specified database structure.

alter user hrtest limit SESSIONPERUSER 3; //最大会话数

set account input hrtest limit 5; //设置账户输入错误次数限制为5次后将被禁用3分钟

alter user hrtest ACCOUNT UNLOCK; --手动解锁

alter user hrtest ACCOUNT LOCK; --手动锁定

//系统权限:

grant create table to hrtest; // 赋予用户创建表权限

grant create any table to hrtest; //默认dba角色的any 权限不可转授

grant create schema to hrtest; //赋予用户创建模式权限

revoke create table from hrtest; // 收回用户权限

//对象权限的赋予:

grant select on dmhr.department to hrtest;

select grant from dmhr.employe into hrtest;

//如果赋予表更新、删除权限,需要赋予该表查询权限才能更新或删除。

grant update on t_test to hrtest;

grant select on t_test to hrtest;

//角色管理:

create role r1; //创建角色

grant create table to r1; //给角色赋予创建表的权限

grant r1 to hrtest; //给用户赋予角色

revoke r1 from hrtest; //收回用户角色

当在配置系统权限时,在满足某些条件的情况下(如管理员认证通过),允许将权限下放给子用户以获得更高的访问权限。

授予对象权限时,请允许设置与他人共享权限以满足用户的转权需求。

revoke select on sysdba.t_test from hrtest CASCADE; --级联回收转授的权限

//模式管理:

define table structure sche1 under AUTHORIZATION hrtest; //为数据库表添加权限设置

//创建表:

创建表SCHE1.t_testpid,并包含字段:

  • pid:整数型
  • pname:长度限制为10个字符的varchar类型
  • logtime:datetime类型,默认值设为当前日期
  • sex:二进制型/位型
    ),该表位于存储空间DMTBS中

create table SCHE1.t_emp01 as select * from dmhr.employee;

表的修改: alter table dmtest.t_testpid add email varchar(20); // 增加列

alter table dmtest.t_testpid modify email varchar(30); // 修改列

alter table dmtest.t_testpid drop email; //删除列

导入:

disql hrtest/'"Dameng@123"';

start /dm8/backup/dts/t_department.sql;

添加约束信息:

创建并附加表结构dmtest.t_testpid,并在其上创建并附加名为pk_testpid_pid的Primary Key Constraint on pid列。

create table dmtest.t_testchild(

childid int primary key , //主键

childname varchar(10) not null, // 非空

logtime datetime DEFAULT sysdate, //日期

email varchar(20) CONSTRAINT uk_email unique, //唯一约束

sex bit) tablespace HRTBS; //指定表空间

//索引

create index ix_emp01_empname ON t_emp01 (employee_name); // 创建索引

alter index ix_emp01_deptid MONITORING USAGE; // 给索引创建监控

select * from SYS."V$OBJECT_USAGE"; // 查看索引监控

//视图

create view v_emp as select * from t_emp01 where DEPARTMENT_ID = 1001;

create or replace view v_emp as a SELECT subquery from the table t_emp_2 where department_id = 555 and employee_id in (select employee_id from t_employees where salary > 8999);

// gui 数据导入

'/path/*.sql;

commit;

备份还原:

ps -ef|grep dmap;

select * from v$parameter t where name in ('BAK_PATH', 'BAK_USE_AP'); // 查看备份

checkpoint(100); //不连续的备份执行此命令

联机备份;
表空间和表的备份仅限于进行 联机 备份;
而 manager 则提供了便捷的操作界面用于实现 联机 备份功能。

联机备份;
表空间和表的备份仅限于进行 联机 备份;
而 manager 则提供了便捷的操作界面用于实现 联机 备份功能。

backup database; //执行备份

$full_database_backup = backupset('/dm8/Backup/Full', 'fullbak01'); // 全量备份

copy the database incrementally into the incremental backup set incrbak01; //增量备份

表空间备份: backup tablespace HRTBS;

Create an incremental backup of the HRTBS tablespace by backing up the directory located at '/dm8/backup/full' to incrhrtbsbak01 as part of the incremental backup set, which includes backing up '/dm8/backup/incr' as well.

表的备份: backup table dmhr.employee;

归档备份: backup ARCHIVELOG ALL;

脱机备份与还原数据库:为确保数据安全需先关闭数据库并进行相关操作,并支持库级及归档级别的数据复制及存储备份功能。该系统提供一个基于图形界面的管理界面用于完成DM系列脱机数据备份及恢复操作。

DmServiceDMSERVER stop //关闭数据库服务。

tool/./console-->配置-->添加-->选择备份路径--->获取备份

console-->新建备份

DMRMAN是DM脱机备份和还原的命令行工具。

dmrman // bin 目录下命令

将数据库文件'/dm8/data/DAMENG/dm.ini'复制到指定位置'/dm8/backup fuller fullbak0415'

// 表空间的还原与恢复需要在脱机状态下完成

dmrman // bin 目录下命令

restores the database '/dm8/data/DAMENG/dm.ini' tablespace primary from the full backup set '/dm8/backup/full/CONSOLEFULLBAK'

recover database '/dm8/data/DAMENG/dm.ini' tablespace main;

// 测试删除 SYSTEM.DBF,进行恢复

Revert the database '/dm8/data/DAMENG/dm.ini' to the backup set '/dm8/backup/full/CONSOLEFULLBAK'.

recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/arch';

recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

// 切换到bin下 逻辑备份 导出

./dxCmd username=sysdba root="root@123321":5236 dm8BackupDir/dxp /file=full.dmp/log=full.log/full=y

全库导出:

./dexp username=sysdba/SYSDBA:5238 path=/dm8/backup/dexp file=full.dmp log=full.log full=y=yes

按用户导出:

./dexp ./user account name=sysdba/SYSDBA:5238 working directory=/dm8/backup/dexp file=dmtest.dmp log=dmtest.log owner=user account name=dmtest

按模式导出:

./dexp username systemdba:5238 folder:/dm8/backup/dexp fileset=DMTESTSCHE.DMP journal=DMTESTSCHE.LOG schema=DMTEST

按表导出:

The script path is ./dexp, which specifies the user account sysdba/SYSDBA with a password of 5238. This configuration is applied to the backup directory /dm8/backup/dexp for the data file t_dept.dmp and its corresponding log file t_dept.log, detailing the table structure SYSDBA.t_dept.

// 导入

./DIMP命令将系统用户名sysdba设置为密码信息Root@123321,并指定数值5236作为参数值运行该操作。该操作将执行以下设置:

  • 指定目录为/dm8/backup/dexp
  • 文件路径设为t_dept.dmp
  • 日志文件设为t_dept.log
  • 数据表结构设为SYSdba中的t_dept表

// 指定用户的schema

./dimp username=sysdba/SYSDBA:5238 folder=/dm8/backup/dexp file location=t_dept.dmp log file=t_dept.log data tables=SYSDBA.t_dept schema remapping=SYSDBA:DMHR

// 作业

代理-->创建代理-->作业--->新建作业

select * from user_jobs; // 查看作业

call dbms_job.run(1650357053); //运行作业

select * from SYSJOB.SYSJOBHISTORIES2; //查看作业

// odbc 配置

tar -zxvf /opt/unixODBC-2.3.0.tar.gz

//切换到解压目录执行

./configure

make

make install

修改 /usr/local/etc/ 文件 odbcinst.ini

cat odbcinst.ini

===============

[DM8 ODBC DRIVER]

Description = ODBC DRIVER FOR DM8

Driver = /dm8/bin/libdodbc.so

==================

-------------- /usr/local/etc/odbc.ini

cat odbc.ini

=================

[DM8]

Description = DM ODBC DSN

Driver = DM8 ODBC DRIVER

SERVER = localhost

UID = SYSDBA

PWD = Dameng123

TCP_PORT = 5238

====================

isql dm8 -v

如果该界面弹出文件打开数过小,需要设置下文件打开数:

永久生效方法,修改/etc/security/limits.conf 文件:

[root@KylinDCA04 opt]# vim /etc/security/limits.conf

ulimit -n 20480 (当前会话生效)

全部评论 (0)

还没有任何评论哟~