达梦数据库命令行操作(麒麟v10操作系统)

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

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值