暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦DCA-达梦数据库的安装与使用(DM8)

默默无闻de小人物 2022-06-23
1923


DM8 安装

用户权限配置
groupadd dinstall
useradd -g dinstall dmdba
chown -R dmdba:dinstall dm

设置图形化界面:

对于我们这些懒人来说,当然特别喜欢使用图形化界面了。要启动图形化界面,首先需要进行设置。

( 1 )第一次进入虚拟机,root用户下执行 xhost +

[root@localhost 桌面 ]# xhost +
access control disabled, clients can connect from any host

( 2 )查看 root 用户的 DISPLAY 变量值

[root@localhost 桌面 ]# echo $DISPLAY

:0.0

( 3 )切换 dmdba 用户

[root@localhost 桌面 ]# su - dmdba

软件安装

安装达梦数据库DM8(1)将dm8软件挂载在/mnt文件夹下

将安装包上传到/opt 文件下


[root@localhost ~]# mount opt/dm8_setup_rh7_64_ent_8.1.1.88_20200629.iso mnt

结果:
mount: dev/loop0 写保护,将以只读方式挂载

(2)切换到dmdba用户

[root@localhost ~]# su - dmdba

(3)安装数据库软件

[dmdba@localhost ~]$ cd mnt
[dmdba@localhost mnt]$ ./DMInstall.bin

启动图形化界面安装:

这里因为是开发版,没有key文件;如果是正式版本的,可以选择key文件

可以根据需要选择安装的类型,这里选择典型安装即可

这里注意,需要安装到自己创建的文件夹下

这里需要开启另一个终端窗口,使用root执行脚本

执行脚本指令

[root@localhost ~]# dm8/script/root/root_installer.sh

结果:

移动 dm8/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink from etc/systemd/system/multi-user.target.wants/DmAPService.service to usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务

配置好环境变量

vi ~/.bash_profile
export DM_HOME="/dmsoft/dmdbms"
export PATH=$DM_HOME/bin:$PATH
source ~/.bash_profile

单点配置

初始化数据库

su - dmdba
cd dm
mkdir dmdata dmarch dmbak
cd dmdba/dmdbms/bin

通过 dminit 来设置参数

./dminit help # 查看参数说明,按照要求设置参数

./dminit PATH=/dm/dmdata DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5238 LOG_SIZE=300 EXTENT_SIZE=16 SYSDBA_PWD=[password] SYSAUDITOR_PWD=[password]

启用 DM 数据库服务

切到 root 用户

将服务注册到操作系统

cd dm/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -dm_ini dm/dmdata/DMDB/dm.ini -p DBSERVER

使用 systemctl 管理服务

systemctl enable DmServiceDBSERVER.service
systemctl start DmServiceDBSERVER.service

数据库维护与管理

使用 sql 脚本

假设有脚本 /dm/script1.sql

INSERT INTO EMP (EMP_ID, EMP_NAME) VALUES (1, 'NAME');
INSERT INTO EMP (EMP_ID, EMP_NAME, EMAIL) VALUES (2, 'NAME', 'a@b');
INSERT INTO DEPT (DEPT_ID, DEPT_NAME) VALUES (1, 'DEPTNAME');

连接到数据库后可直接调用该脚本

SQL> start dm/script1.sql

表与用户创建

登录数据库

cd dm/dmdba/dmdbms/bin
./disql SYSDBA/[password]@localhost:5238

创建表空间 DMTBS,文件存储在 /dm/dmdata
中,分为两个数据文件 DMTBS01.DBF 和 DMTBS02.DBF,每个文件初始大小为 64M,每次自动扩展 2M,单个数据文件最大 10G

SQL> CREATE TABLESPCE "DMTBS" DATAFILE '/dm/dmdata/DMTBS01.DBF' SIZE 64 AUTOEXTEND ON NEXT 2 MAXSIZE 10240, '/dm/dmdata/DMTBS02.DBF' SIZE 64 AUTOEXTEND ON NEXT 2 MAXSIZE 10240 CACHE = NORMAL;

创建用户 DMTEST,密码 [password],默认表空间为 DMTBS

SQL> CREATE USER "DMTEST" IDENTIFIED BY [password] DEFAULT TABLESPACE "DMTBS"

创建角色 TESTROLE,具有创建表,创建视图,创建索引的权限

SQL> CREATE ROLE TESTROLE;
SQL> GRANT CREATE TABLE, CREATE VIEW, CREATE INDEX TO TESTROLE;

将角色 RESOURCE,TESTROLE 赋给 DMTEST 用户,并赋予 DMTEST 查询 DBA_TABLESPACES 的权限

SQL> GRANT RESOURCE, TESTROLE TO DMTEST;
SQL> GRANT SELECT ON DBA_TABLESPACES TO DMTEST;

在 DMTEST 用户下创建 EMP 表和 DEPT 表。

SQL> CREATE TABLE EMP (
  EMP_ID INT NOT NULL,
  EMP_NAME VARCHAR(20),
  EMAIL VARCHAR(50),
  PHONE_NUM VARCHAR(20),
  HIRE_DATE DATE,
  JOB_ID VARCHAR(10),
  MANAGER_ID INT,
  SALARY INT,
  DEPT_ID INT
);
SQL> CREATE TABLE DEPT (
  DEPT_ID INT NOT NULL,
  DEPT_NAME VARCHAR(30),
  LOCATION_ID INT,
  LOCATION_ADDR VARCHAR(30)
);

创建视图

创建视图 VIEW_HIREDATE 存放 HIRE_DATE 为 2006-01-01 至 2009-01-01 的条目

SQL> CREATE VIEW VIEW_HIREDATE AS SELECT * FROM EMP WHERE HIRE_DATE BETWEEN '2006-01-01' AND '2009-01-01';

创建视图 VIEW_SALARY 查询平均 SALARY 大于 12000 的 DEPT

SQL> CREATE VIEW VIEW_SALARY AS SELECT * FROM DEPT WHERE DEPT_ID IN (
   SELECT DEPT_ID
   FROM EMP
   GROUP BY DEPT_ID
   HAVING AVG(SALARY) > 12000
);

数据库备份

热备

使用 SQL 进行备份,DMAP 服务和数据库实例都是打开状态,为了保证备份数据的一致性,需要配置并开启本地归档

-- 打开归档
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ADD ARCHIVELOG 'type=local,dest=/dm/dmarch,file_size=64,space_limit=0';
-- 如果需要修改归档配置则可使用 ALTER DATABASE MODIFY ARCHIVELOG
SQL> ALTER DATABSE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
-- 检查归档状态
SQL> SELECT name, status$, arch_mode FROM v$database;

-- 完全备份
SQL> backup database full backupset '/dm/dmbak/DMDB_bak2';

-- 增量备份
SQL> backup database increment backupset '/dm/dmbak/incr_DMDB_bak2';

配置 ODBC

编译好 ODBC 后,配置 odbc.ini 和 odbcinst.ini

# odbc.ini
[dm8]
DESCRIPTION = DM ODBC DSND
DRIVER = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDA
PWD = [password]
TCP_PORT = 5238

# odbcinst.ini
[DM8 ODBC DRIVER]
DESCRIPTION = ODBC DRIVER FOR DM8
DRIVER = /dm/dmdba/dmdbms/bin/libdodbc.so

修改文件属性即可连接

chmod 777 odbc.ini
chmod 777 odbcinst.ini
su - dmdba
isql dm8 -v


文章转载自默默无闻de小人物,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论