目录

达梦数据库日常查询与管理

达梦数据库日常查询与管理

文章目录

1,登录命令行

su - dmdba
	#使得环境变量生效: ~/.bashrc
	#export DM_HOME=/home/dmdba/dmdbms
	#export PATH=$PATH:$DM_HOME/bin
disql SYSDBA/'"SYSDBA"'@192.168.56.12:5236

2,查看达梦版本

SQL>  select * from v$version;
行号     BANNER                   
---------- -------------------------
1          DM Database Server 64 V8
2          DB Version: 0x7000c

3,创建用户,授权,查看schema ,用户下的表名,建表语句

-- 创建用户 【sysdba权限执行】 
create user user1 identified by "user1#123"; -- 后面可接 default tablespace "TBS_READONLY_USER" ;
grant PUBLIC to user1;  -- 在自己模式下操作数据的权限
grant RESOURCE to user1; -- 在自己模式下创建表、视图等对象的权限,也具有操作自己模式下对象数据的权限
grant SOI to user1;  -- 查询系统表的权限 【VTI:查询动态视图】

-- 修改密码 
alter user userTest identified by 123456;

-- 给用户授权多个schema 的表权限 
GRANT ALL PRIVILEGES ON user2.xxx TO user1;

-- 查看所有 shema 和表【sysdba权限执行】 
 select owner,table_name,tablespace_name,status from dba_tables; 
 SELECT TABLE_NAME FROM DBA_TABLES WHERE OWNER IN ('user1');   -- 【只查某个schema的表】
 
-- 切换schema
 set SCHEMA schemaXXX;

-- 查看表名
 select table_name from user_tables; --【 只显示用户默认schema下面的表 】
 SELECT TABLE_NAME, OWNER FROM ALL_TABLES ORDER BY OWNER, TABLE_NAME;   --【 显示所有有权限的表 】
 
-- 新增字段
alter table table1 add msg  VARCHAR(128) default ''  ;

-- 修改字段类型
alter table table1 modify msg  text default ''  ;

-- 重命名表名
alter table table1 rename to table11;
-- 创建备份表
create table table1bak as select * from table1;

-- 查看建表语句
call SP_TABLEDEF('DBName','TAble_name');

-- 达梦锁超时定位解决 【SOI 可读系统表权限】
SELECT * FROM V$SESSIONS WHERE SQL_TEXT LIKE '%tabname%';
SP_CLOSE_SESSION(281458835200952);

-- 执行sql脚本
start /tmp/a.sql

-- 设置字符集:
set char_code utf8;
set define off;

4,logstash 连接达梦数据库

input {
jdbc
{
  #jdbc_driver_library => "/opt/logstash/lib/Dm8JdbcDriver18-8.1.1.49.jar" #驱动包放在logstash/lib目录就可以
  #jdbc_driver_class => "dm.jdbc.driver.DmDriver" ,报错driver找不到,读不到数据
  jdbc_driver_class => "Java::dm.jdbc.driver.DmDriver"
  jdbc_connection_string => "jdbc:dm://192.168.56.12:5236/TEST"
  jdbc_user => "TEST"
  jdbc_password => "test123"

5,达梦数据库导入导出: 参考安装目录下的 dmdbms\doc\DM8_dexp和dimp使用手册.pdf

dexp 模式名/密码@192.168.X.X:5236 file=模式名 directory=D:\DB\ owner=模式名
   dexp SYSDBA/SYSDBA GRANTS=Y TABLES=(SYSDBA.TAB1,SYSDBA.TAB2,SYSDBA.TAB3)
   dexp wang/'"wangwang@123"'@192.168.56.12:5236 file=wang directory=/tmp/ owner=wang

dimp 模式名/密码 file=/tmp/xxx   user=模式名
   dimp wang/'"wangwang@123"'@192.168.56.12:5236 file=wang directory=/tmp    覆盖导入参数:PRIMARY_CONFLICT=OVERWRITE IGNORE=Y

6,达梦–安装管理

[dmdba@db02 dmdbms]$ ps -ef |grep dm*
dmdba     782710       1  0 7月12 ?       00:59:39 /home/dmdba/dmdbms/bin/dmwatcher path=/data/dmdb/dmwatcher.ini
dmdba     861042       1  0 7月13 ?       14:30:59 /home/dmdba/dmdbms/bin/dmserver path=/data/dmdb/dm.ini -noconsole
dmdba    3220244 3219036  0 17:09 pts/0    00:00:00 grep dmdbms

[dmdba@db02 dmdbms]$ pwd
/home/dmdba/dmdbms
[dmdba@db02 dmdbms]$ ./bin/DmServiceDM
Usage: ./bin/DmServiceDM { start [ mount ] | stop [ -s signal ] | stop_all | status | condrestart | restart [ mount ] }
[dmdba@db02 dmdbms]$ ./bin/DmServiceDM status
DmServiceDM (pid 861042) is running.

#启动服务
[dmdba@db02 dmdbms]$
    systemctl status DmServiceDM         # su dmdba; /home/dmdba/dmdbms/bin/DmServiceDM start
    systemctl status  DmWatcherServiceDM # su dmdba; /home/dmdba/dmdbms/bin/DmWatcherServiceDM start
    #systemctl status DmAPService.service

#[root@db02 ~]# ls /home/dmdba/dmdbms/bin/dmserver
#/home/dmdba/dmdbms/bin/dmserver
[dmdba@db02 dmdbms]$ dmserver /data/dmdb/dm.ini
#出现system is ready后表示数据已正常启动