linux下安装达梦数据库以及数据库基本操作

一、 安装linux检查环境新增用户

1.1 检查系统环境

  1. sudo passwd root ~~修改root用户密码,安装完成之后第一次用root时需要
  2. su - root ~~切换用户
  3. uname -r ~~显示操作系统的发行编号
  4. List item
  5. cat /etc/issue 看系统版本
  6. df -h 看挂载文件夹信息
  7. cat /proc/meminfo 查看内存
  8. cat /proc/cpuinfo 查看cpu信息
  9. fdisk -l 查看硬盘信息

1.2 挂载DM数据库安装文件,新增数据库用户组

  1. mount -o loop 文件.ios /mnt 将文件.ios挂载到mnt文件夹下,挂载会有提示只读,暂时未弄清除是什么原因
  2. groupadd dinstall 加用户组dinstall
  3. useradd -g dinstall -s /bin/bash dmdba 添加dmdba用户到dinstall用户组
  4. passwd dmdba 设置dmdba用户的密码
  5. id dmdba 查看用户信息
  6. cat /etc/group 查看用户组信息
  7. cat /etc/passwd 查看用户详细信息

1.3 设置用户文件连接数以及文件夹权限

  1. ulimit -a 查看最大文件连接数open files,安装达梦数据库建议修改未65536或者无
    限制,切换到 /etc/security/文件夹下vi limits.conf修改文件,在文件最后插入
    dmdba soft nofile 65536
    dmdba hard nofile 65536

    dmdba是指定到dmdba用户,也可以用*代替,不指定用户,所有用户生效。
    按esc退出插入模式,输入w(保存)q(退出)
  2. mkdir /dm7 建立dm7文件夹
  3. chown dmdba:dinstall /dm7 将文件夹dm7的权限赋予给dmdba用户组,可用ll查看
    赋权情况.
  4. 切换到su - dmdba用户,ulimit -a 查看修改的效果

二、 安装初始化DM数据库

2.1 安装DM数据库

  1. 切换到mnt文件夹,执行./DMInstall.bin命令,开始安装达梦数据库。
    解压安装可能会提示"初始化图形界面失败,如果当前监视器窗口不支持图形界面,请进入安装文件所在文件夹并使用"./DMInstall.bin -i"进行命令行安装"
    也可以修改vi /etc/pam.d/xserver文件,将#auth required pam_console.so注释掉,重新登录dmdba用户再次执行安装命令。注意,同时只能一个终端运行图形化界面,两个终端有一个会报错。
  2. 根据安装包提示安装达梦数据库。

2.2 初始化连接数据库及各种工具

  1. /dm7/tool/dbca.sh 打开初始化数据库工具,完成数据库初始化配置
  2. 修改环境变量 cd 进入home主菜单,ll -a查看.bash_profile。
    添加EXPORT PATH=“ P A T H : PATH: PATH:DM_HOME/bin:$DM_HOME/tool”,保存退出。
    修改环境变量需要source .bash_profile才能生效
  3. disql连接。进入/dm7/tool/ 执行./disql(类似sqlplus)
    disql 用户名/密码
    disql 用户名/密码@ip:端口
    配置disql连接字符串vi /etc/dm_svc.conf 添加dmservice01=(127.0.0.1:5236),保存退出。disql 用户名/密码@dmservice01 也可以登录
  4. desc dba_users;select username from dba_users; 查看用户
  5. 命令查看服务tool下dmservice.sh
  6. manager连接(DM管理工具)。进入/dm7/tool/ 执行manager。或者配置环境变量
    下直接manager。连接数据库管理
  7. console连接(DM控制台工具)。进入/dm7/tool/ 执行console。或者配置环境变量
    下直接console。配置文件参数管理
  8. analyzer连接(DM审计分析工具)。进入/dm7/tool/ 执行analyzer。或者配置环境变量
    下直接analyzer。审计分析
  9. dts连接(DM迁移工具)。进入/dm7/tool/ 执行dts。或者配置环境变量下直接dts。
  10. monitor连接(DM性能监控工具)。进入/dm7/tool/ 执行monitor。或者配置环境变
    量下直接monitor。
    注意:关机之后重启发现DmAPservice服务打不开,日志提示管道文件已存在,删除/dm7/bin下的DM_PIPE_DMAP_LSNR_RD和DM_PIPE_DMAP_LSNR_WR。重新启动DmAPservice服务。或者用开机之后dmdba进入系统就不会出现该问题。
  11. 角色权限
    dba 最大权限,生产环境一般不给dba
    public 表视图等权限,一般开发测试赋权
    resource 模式,表,视图,存储过程,触发器等等,一般开发测试赋权
    select * from v$tablespace; 查询表空间
    select * from dba_data_files; 查询数据文件
  12. dm7系统管理员手册中有系统参数设置,在console(dm控制台)中服务器配置修改
    如:密码策略Pwd_policy,多个规则同时生效,为相加的数字,如规则4和规则8,填
    写12则4和8同时生效
    兼容性参数COMPATIBLE_MODE,2为兼容oracle
    动态监控功能ENABLE_MONITOR,1为启动后,监控所有sql
    最大会话数max_session,数字越大占用资源越多
    参数级别:in file 需要重启数据库,sys系统级别,影像所有会话,session会话级别,read only 不支持修改,只能在.ini文件中修改
    sp_set_para_value(scope,name,value)
    scope,1修改内存和ini文件中的参数,2修改ini文件中的参数
    例子:sp_set_para_value(1,” Pwd_policy”,12)

三、 达梦的体系结构

达梦体系结构
数据库存储结构(物理文件/dm7/data/dameng)
配置文件(dm.ini,查看控制文件和备份的位置),控制文件(dm.ctl,有备份文件
/dm7/data/DAMENG/ctl_bak),
数据文件(表空间的文件),重做日志文件
归档文件,跟踪日志文件,服务日志
内存结构(实例)
日志缓存区,sql缓存区等
线程结构
归档线程开启才有
表占空间水位线问题 delete和truncate,delete不会降低水位线

重启达梦数据库
cd /etc/rc.d/init.d/
service DmServiceDMSERVER restart

四、 数据库操作

数据库状态:mount(操作静止文件,V$开头可以查,其他的包括DBA_开头不能查询) open(数据库读写) suspeng挂起(数据库只读)

4.1 表空间操作

建议:自动扩展,下次扩展值,最大扩展到多少.
数据表空间和索引表空间分开,业务繁忙的建议分开,减少io的争用
数据表空间和索引表空间规划(7/3),避免磁盘浪费
1.最好不用ttt,大小不用指定单位,默M。1g就是1024M.
create tablespace tbs datafile ‘/dm7/data/DAMENG/tbs01.ttt’ size 200;

2.联机状态不能修改表空间tbs数据文件名称。所以先offline脱机。
alter tablespace tbs offline;
alter tablespace tbs rename datafile ‘/dm7/data/DAMENG/tbs01.ttt’ to ‘/dm7/data/DAMENG/tbs01.dbf’;

3.脱机状态不能修改表空间tbs大小。所以先online联机。
alter tablespace tbs online;
alter tablespace tbs add datafile ‘/dm7/data/DAMENG/tbs02.dbf’ size 200;

4.默认自动扩展,可以关闭,关闭tbs的其中一个tbs02,tbs01还是自动增长的
alter tablespace tbs datafile ‘/dm7/data/DAMENG/tbs02.dbf’ autoextand pff;
开启自动增长,每次扩展4m,最大500m,也可以在创建的时候指定
alter tablespace tbs datafile ‘/dm7/data/DAMENG/tbs02.dbf’ autoextand on next 4 maxsize 500;

4.2 联机重做日志

不支持手工切换,oracle支持

  1. 查询重做日志,记录操作,比如insert语句会记录在重做日志中
    如果开启了归档,归档日志中也会有记录
    select * from “V R L O G " ; s e l e c t ∗ f r o m " V RLOG"; select * from "V RLOG";selectfrom"VRLOGFILE”;
  2. 重做日志规划依托于业务的大小,修改重做日志的大小
    alter database resize logfile ‘/dm7/data/DAMENG/DAMENG01.log’ to 500;
    查看修改效果
    select * from “V$RLOGFILE”;
  3. 增加重做日志文件
    alter database add logfile ‘/dm7/data/DAMENG/DAMENG02.log’ size 500;
  4. 先切换数据库到mount状态下,才能重命名重做日志
    alter database mount;
    alter database rename logfile ‘/dm7/data/DAMENG/DAMENG01.log’
    to ‘/dm7/data/DAMENG/DAMENG03.log’;

4.3 临时表空间

一般作用于:○1as select 子句,不建议使用。可读性差,建议创建临时表,不占用归档重做等日志,五张表不要一次性关联,可以两两关联再查。○2临时表占用临时表空间。○3排序

  1. 查询临时表空间参数
    SELECT t.PARA_NAME,t.PARA_VALUE,t.PARA_TYPE FROM v$dm_ini t WHERE t.PARA_NAME LIKE ‘TEMP%’
  2. 增加临时表空间
    alter tablespace temp add datafile ‘/dm7/data/DAMENG/TEMP01.dbf’ size 200 ;
  3. 修改临时表空间大小,只能变大不能变小,数据文件不能drop和offline
    alter tablespace temp resize datafile ‘/dm7/data/DAMENG/TEMP01.dbf’ to 250 ;

4.4 UNDO表空间

存放DML(insert,update,delete)的回滚操作

  1. 查询undo表空间参数,和其他表空间维护一样的,可以设置自动增长等。
    SELECT t.PARA_NAME,t.PARA_VALUE,t.PARA_TYPE FROM v$dm_ini t WHERE t.PARA_NAME LIKE ‘UNDO%’
  2. 增加undo表空间
    alter tablespace roll add datafile ‘/dm7/data/DAMENG/roll01.dbf’ size 200 ;
  3. 修改undo表空间大小
    alter tablespace temp resize datafile ‘/dm7/data/DAMENG/TEMP01.dbf’ to 250 ;

4.5 用户角色权限模式管理

select * form dba_users;

  1. 创建用户语句
    create user test IDENTIFIED BY test123 default tablespace tbs DEFAULT index tablespace tbs_index;
  2. 尝试登录次数超过三次,锁定3分钟
    ALTER USER test LIMIT FAILED_LOGIN_ATTEMPS 3 PASSWORD_LOCK_TIME 3
  3. 用户被锁定之后解锁
    alter user test account unlock;
  4. 用户赋权
    grant public to test;
    grant resource to test;
    grnat create table to test;
    grant select,update,delete,insert on dmhr.employee to test;
  5. 回收用户权限,只能重整张表回收,不能从列回收
    revoke resource from test;
  6. 查询当前登录用户的权限
    select * from USER_TAB_PRIVS;
    select * FROM USER_SYS_PRIVS;
  7. 创建角色,赋予权限
    create role r_test;
    grant select,update,delete,insert on dmhr.emxxxxx to r_test;
  8. 查询角色和相关权限
    select * from DBA_ROLE_PRIVS;
    SELECT * FROM DBA_ROLES;
  9. 赋权某些字段列给角色,删除不能单独赋权字段
    grant select (employee_id,name,phone_num) on dmhr.employee to test;
  10. 创建s_test模式,属于test用户
    create schema s_test authorization test;
  11. 当前用户拥有的模式切换,不属于当前用户,不允许切换。
    Set schema s_test;

4.6 表,视图,约束,索引管理

达梦表包含:普通表(索引组织表),堆表,分区表,外部表,临时表等
FILLFACTOR填充比例,可以根据业务配置,100情况下,更新数据数据比之前长会导致数据碎片

  1. 创建表
    create table dmhr.t_test1( --dmhr指定模式
    id int identity primary key, --identity自增列,primary key创建主键
    name varchar2(100) unique, – unique唯一键
    dept_id int foreign key references t_test02(id)), –外键foreign key references t_test02(id)
    age int ,
    storage(on main) ;–指定表空间
  2. 创建主键
    alter table t_test1 add constraint pk_id primary key(id);
  3. as select复制创建表
    create table t_test02 as select * from dmhr.t_test1;
  4. 查询约束和约束对应列
    select * from user_constraints;
    select * from user_cons_columns;
  5. 建立外键,外键引用的一定是另一张表的主键
    alter table t_test1 add constraint fk_id_id foraign key(id) references t_test02(id);
  6. 检查约束
    alter table t_test1 add constraint check_age check(age>=6);
    check(age)>=6
  7. 创建视图,视图不占用存储空间,简单视图可以做增删改的DML操作
    复杂视图如 group by,集函数count,sum不支持
    create view v_test1 as select * from t_test1;
  8. 创建索引,查询索引和索引列的属性。索引降低更新和插入速度,提高查询速度。
    create index index_test1_name on t_test1(name);
    select * from user_indexes;
    select * from user_ind_columns;

你可能感兴趣的:(数据,数据库,linux,运维)