1、前期准备工作
安装达梦数据库前需要先查看一些配置信息,比如:CPU信息,操作系统信息,glibc版本,磁盘容量,内存。
//第一次登录需要关闭访问控制
xhost +
//查看display
echo $DISPLAY
//创建用户组和用户并设置密码
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
id dmdba
passwd dmdba
//创建安装目录
mkdir /dm8
chown dmdba:dinstall /dm8
ll -ld /dm8
//查看磁盘容量,扩容tmp
df -h
mount -o remount,size=4G /tmp
df -h
//设置最大可打开文件
ulimit -a
ulimit -n 20480
ulimit -a
//挂载镜像
mkdir /mnt/dm
mount dm8.iso /mnt/dm
df -h
//切换到dmdba用户下
su - dmdba
echo $DISPLAY
export DISPLAY=:0.0 (或者2.0,根据root用户查询到的值填写)
echo $DISPLAY
2、安装达梦数据库
//开始安装(在dmdba用户下)
cd /mnt/dm
ls
# 图形化安装
./DMInstall.bin
# 命令行安装
./DMInstall.bin -i
3、创建实例
//创建实例
cd /dm8/tool
# 图形化方式
./dbca.sh
# 命令行方式
cd /dm8/bin
./dminit path=/dm8/data db_name=DAMENG instance_name=POED port_num=5237 page_size=16 SYSDBA_PWD=Dameng123
4、 连接数据库
//连接数据库
#使用disql连接
cd /dm8/bin
./disql sysdba/Dameng123:5237
#进入manager图形化工具(确保DISPLAY设置过)
cd /dm8/tool
./manager
5、 设置参数
oracle参数类型:
both : 既修改内存中的值,也修改配置文件中的值,即时生效。
spfile:只修改配置文件中的值,重启数据库生效。memory
:只修改内存中的值,重启数据库后恢复为设置前的样子。达梦参数类型可分为(静态和动态两种参数均支持通过系统函数、SQL命令进行修改):
1、静态参数(IN FILE):只修改配置文件中的值,对内存中的值不进行修改,所以静态参数修改后使其生效的话,需要对数据库进行重启。
2、动态参数(SYS和SESSION):既能修改内存中的值,也能修改配置文件中的值,所以动态参数修改后是立即生效的。3、只读参数(READ ONLY):不能通过系统函数、SQL命令达到修改参数的目的,只能从dm.ini配置文件中进行修改。
//查看参数
select name,type,value from v$parameter where name='PWD_POLICY';
//设置参数
//动态sys
alter system set 'PWD_POLICY'=7 both;
alter system set 'UNDO_RETENTION'=180 both;
alter system set 'ENABLE_DDL_ANY_PRIV'=1 both;
//静态 in file
alter system set 'COMPATIBLE_MODE'=2 spfile;
alter system set 'MAX_SESSIONS'=9 spfile;
alter system set 'BUFFER'=2000 spfile;
alter system set 'TEMP_SIZE'=64 spfile;
//会话session
alter session set 'LIST_TABLE'=1;
5、查看状态与文件
//查看数据库状态:
select status$ from v$instance;
//查看是否归档状态:
select arch_mode from v$database;
//查看归档文件:
select * from SYS."V$ARCH_FILE";
//查看联机日志:
select * from v$rlog;
select * from v$rlogfile;
6、创建表空间
//查看表空间信息
SQL> select FILE_NAME,FILE_ID,TABLESPACE_NAME from dba_data_files;
SQL> select TABLESPACE_NAME from dba_tablespaces;
//创建表空间(注意:当路径中没有TBS文件夹时,该命令可以自动生成)
create tablespace tbs datafile '/dm8/data/DAMENG/TBS/TBS01.DBF' size 64 autoextend on next 1 maxsize 1024 cache=normal;
alter tablespace tbs add datafile '/dm8/data/DAMENG/TBS02.DBF' size 64 autoextend on next 1 maxsize 1024 cache=normal;
//表空间迁移(需要让表空间离线)
alter tablespace tbs offline;
alter tablespace tbs rename datafile '/dm8/data/DAMENG/TBS01.DBF' to '/dm8/data/DAMENG/TBS/TBS01.DBF';
alter tablespace tbs rename datafile '/dm8/data/DAMENG/TBS01.DBF' to '/dm8/data/DAMENG/TBS/TBS01.DBF';
alter tablespace tbs online;
7、重做日志迁移
//重做日志迁移(需要在mount状态下,需要提前创建好REDO文件夹)
alter database mount;
alter database rename logfile '/dm8/data/DAMENG/DAMENG01.log' to '/dm8/data/DAMENG/REDO/DAMENG01.log';
alter database open;
8、开启归档
//开启归档(需要在mount状态下)
alter database mount;
alter database archivelog;
alter database add archivelog 'type=local,dest=/dm8/arch,file_size=64,space_limit=10240';
alter database open;
9、创建角色、用户并给用户授权
//查看用户信息
SQL> select username from dba_users;
//创建角色
create role ROLEDM;
//创建用户
create user lsn identified by ehd123456 default tablespace tbs;
alter user lsn limit failed_login_attemps 5,password_life_time 90,password_lock_time 10;
例题:–登录失败次数5次,口令有效期90天,口令锁定期10分钟,口令宽限期20天
alter user “SYSDBA” limit failed_login_attemps 5, password_life_time 90, password_lock_time 10, password_grace_time 20,SESSION_PER_USER 3;
//给用户授权
grant create table,create view,create index to lsn;
grant select on tbs.table01 to lsn;
grant update on tbs.table01 to lsn;
grant delete on tbs.table01 to lsn;
//将角色赋予给用户
grant ROLEDM to lsn;
10、创建表和视图
//创建表
create TEST.EMPLOYEE(
EMPLOYEE_ID INTEGER,
EMPLOYEE_NAME VARCHAR(20),
EMAIL VARCHAR(50),
PHONE_NUM VARCHAR(20),
HIRE_DATE DATE,
JOB_ID VARCHAR(10),
SALARY INTEGER,
DEPARTMENT_ID INTEGER)tablespace TBS;
# 添加主键约束
alter table test.employee add CONSTRAINT pk_employee_id PRIMARY key(EMPLOYEE_ID);
# 添加校验约束
alter table test.employee add CONSTRAINT ck_employee_salary CHECK (SALARY>=3000);
create TEST.DEPARTMENT(
DEPARTMENT_ID INTEGER,
DEPARTMENT_NAME VARCHAR(30),
LOCATION_ID INTEGER,
LOCATION_ADDR VARCHAR(30))tablespace TBS;
# 添加主键约束
alter table test.department add CONSTRAINT pk_department_id PRIMARY key(DEPARTMENT_ID);
# 添加外键约束,注意REFERENCES表里的字段必须是主键或者是添加了唯一索引的字段
alter table test.employee add CONSTRAINT fk_temployee_did FOREIGN key(DEPARTMENT_ID) REFERENCES test.department(DEPARTMENT_ID);
//创建视图
create or replace view dmtest.v_empnum AS
select b.DEPARTMENT_ID, b.DEPARTMENT_NAME, count(a.employee_id) empnum
from dmhr.employee a left join dmhr.department b
on a.DEPARTMENT_ID = b.DEPARTMENT_ID
group by b.DEPARTMENT_ID, b.DEPARTMENT_NAME;
create view test.view01 AS
select b.DEPARTMENT_ID, b.DEPARTMENT_NAME, sum(a.salary) sumsalary
from test.employee a left join test.department b
on a.DEPARTMENT_ID = b.DEPARTMENT_ID
having sum(a.salary)>80000
group by b.DEPARTMENT_ID, b.DEPARTMENT_NAME;
11、备份与还原
//逻辑备份 在/dm8/bin下执行./dexp命令
1、按用户导出
./dexp userid=sysdba/SYSDBA:5237 directory=/dm8/backup/dexp file=dmtest.dmp log=dmtest.log owner=dmtest
2、全库导出
./dexp userid=sysdba/SYSDBA:5238 directory=/dm8/backup/dexp file=full.dmp log=full.log full=y
3、导入sql文件
start sql文件路径
` sql文件路径
//物理备份 需要先开启归档,再进行联机备份
1、联机备份
数据库全库备份:
backup database full to FULL_BACK backupset '/dm8/backup/FULL_BACK';
数据库差异增量备份(默认):
backup database increment to INCREM_BACK backupset '/dm8/backup/INCREM_BACK';
数据库累积增量备份:
backup database increment cumulative to INCREM_BACK02 backupset '/dm8/backup/INCREM_BACK02';
表空间备份:
backup tablespace TBS to TS_BACK backupset '/dm8/backup/TS_BACK';
2、脱机备份(需要先关闭数据库:systemctl stop DmServiceDMSERVER.service)
cd /dm8/bin
dmrman
RMAN> backup database '/dm8/data/DAMENG/dm.ini' to FULLBAK03 backupset
'/dm8/backup/FULLBAK03';
//还原(需要关闭数据库)
cd /dm8/bin
./dmrman
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup/offback';
recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/arch';
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
12、 安装odbc并连接数据库
//安装UnixODBC驱动并连接数据库
1、下载odbc
wget ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.0.tar.gz
下载的安装包unixODBC-2.3.0.tar.gz放到选定目录下。
2、解压odbc
[root@localhost opt]# tar -xzvf unixODBC-2.3.0.tar.gz
3、安装odbc
[root@sing_instance unixODBC-2.3.0]# ./configure
[root@sing_instance unixODBC-2.3.0]# make
[root@sing_instance unixODBC-2.3.0]# make install
[root@sing_instance unixODBC-2.3.0]# odbcinst –j
4、修改配置文件
[root@localhost etc]# cd /usr/local/etc
[root@localhost etc]# ll
总用量 0
drwxr-xr-x 2 root root 6 8月 31 14:56 ODBCDataSources
-rw-r--r-- 1 root root 0 8月 31 14:56 odbc.ini
-rw-r--r-- 1 root root 0 8月 31 14:56 odbcinst.ini
[root@localhost etc]# vim odbc.ini
[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = dameng123
TCP_PORT = 5236
[root@localhost etc]# vim odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so
5、登录测试连接
[root@localhost etc]# su - dmdba
上一次登录: 三 8月 31 14:59:48 CST 2022 pts/6 上
[dmdba@localhost ~]$ isql dm8 -v
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> exit