groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
id dmdba
passwd dmdba
Dameng123
mkdir /dm8
chown dmdba:dinstall /dm8
挂载安装包
mkdir -p /mnt/dm
cd /mnt
mount /opt/dm8_20220525_x86_rh6_64.iso /mnt/dm
tmp内存处理(root用户执行)
mkdir -p /opt/tmp
chmod 777 /opt/tmp
文件打开数过小(root用户执行)
ulimit -a
ulimit -n
vim /etc/security/limits.conf
dmdba soft nofile 102400
dmdba hard nofile 204800
root soft nofile 102400
root hard nofile 202800
df -h
# 重新指定过tmp,dmdba用户安装前执行
export DM_INSTALL_TMPDIR=/opt/tmp
cd /mnt/dm
./DMInstall.bin -i
安装目录:/dm8
# 根据安装提示,用root用户执行
/dm8/script/root/root_installer.sh
cd /dm8/bin
./dminit path=/dm8/data db_name=DMHR instance_name=DMHRSVR port_num=5238 sysdba_pwd=dameng123
# 查看数据进程
ps -ef|grep dmserver
systemctl status DmServiceDMHRSVR
cd /dm8/script/root
./dm_service_installer.sh -t dmserver -p DMHRSVR -dm_ini /dm8/data/DMHR/dm.ini
systemctl enable DmServiceDMHRSVR.service
systemctl start DmServiceDMHRSVR.service
#卸载服务
./dm_service_uninstaller.sh -n DmServiceDMHRSVR
firewall-cmd --add-port=5236/tcp --permanent --zone=public
firewall-cmd --reload
firewall-cmd --list-ports
启动顺序:shutdown ->mount->open
select status$ from v$instance;
select * from sysobjects limit 10;
select path from v$datafile;
alter database mount;#可读控制文件、内存数据;不可数据文件中数据
alter database open;# 正常状态,可读可写。
alter database suspend;# 只能读不能写
select table_name from dba_tables limit 10;
select name from sysobjects limit 10;
# 前台启动
cd /dm8/bin/
./dmserver /dm8/data/DAMENG/dm.ini
shutdown immediate;
# 后台启动(需要注册为服务才能使用)
cd /dm8/bin/
ll Dm*
./DmServiceDMSERVER status
./DmServiceDMSERVER stop
./DmServiceDMSERVER start
systemctl status DmServiceDMHRSVR
systemctl start DmServiceDMHRSVR
systemctl stop DmServiceDMHRSVR
# 需要注册为服务才能使用
cd /dm8/tool/
./dmservice.sh
export DISPLAY=:0.0
cd /dm8/tool/
./manager
cd /dm8/bin
# 连接数据库(默认端口5236)
./disql sysdba/Dameng123
# 连接指定端口数据库
./disql sysdba/Dameng123:5238
vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
DM=(127.0.0.1:5236)
vim .bash_profile
添加
export PATH=$PATH:$DM_HOME/BIN:$DM_HOME/tool
alias disql="rlwrap disql"
alias dmrman="rlwrap dmrman"
source ~/.bash_profile
alter system set 'UNDO_RETENTION'=180 memory; -- 修改内存值
alter system set 'UNDO_RETENTION'=180 spfile; -- 修改配置文件值
alter system set 'UNDO_RETENTION'=180 both; -- 同时修改内存和配置文件值
# 修改数据库兼容性参数(静态参数,只能修改参数文件中的值, 重启才生效)
alter system set 'COMPATIBLE_MODE' =2 spfile;
# 修改 LIST_TABLE(会话级动态参数, 默认是 memory)
alter session set 'LIST_TABLE' = 0;
# 修改缓冲区BUFFER
alter system set 'BUFFER'= 500 spfile;
默认创建5个表空间:SYSTEM、ROLL、MAIN、TEMP、HMAIN
一个表空间至少有一个数据文件
只有空的表空间才能删除
create tablespace dmtbs DATAFILE 'DMTBS01.DBF' size 32; -- 表空间不支持指定单位,默认单位是M
select page*4096/1024/1024; -- 表空间最小
alter tablespace "TBS" add datafile '/dm8/data/DAMENG/TBS02.DBF' size 32;
alter tablespace dmtbs DATAFILE 'DMTBS01.DBF' AUTOEXTEND off;
alter tablespace dmtbs resize DATAFILE 'DMTBS01.DBF' TO 64;
alter tablespace dmtbs add datafile 'DMTBS02.DBF' size 64 AUTOEXTEND on NEXT 2 MAXSIZE 10240;
-- 未设置自动扩展,默认扩展1M
-- 表空间最大:2的31次方
-- 工作中,数据表空间和索引表空间分开
select * from DBA_DATA_FILES;
select * from DBA_FREE_SPACE;
select a.TABLESPACE_NAME,a.FILE_NAME, a.BYTES, a.MAXBYTES,a.USER_BYTES from DBA_DATA_FILES a;
select * from v$parameter t where t.name='PWD_POLICY'; -- 默认为2
alter system set 'PWD_POLICY'=31 BOTH;
-- 创建用户
create user dmtest IDENTIFIED BY "Dameng@123" DEFAULT TABLESPACE dmtbs DEFAULT INDEX TABLESPACE DMTBSIDX;
select * from dba_users;
select b.name,a.* from SYS.SYSUSERS a,sysobjects b where a.id=b.id;
alter user dmtest ACCOUNT UNLOCK; -- 用户解锁
-- 用户会话
alter user dmtest limit SESSION_PER_USER 3;
-- 数据库会话
select * from v$parameter t where t.name='MAX_SESSIONS';
alter system set 'MAX_SERSSIONS'=100 BOTH;
-- 限制用户密码错误,锁定3分钟
create PROFILE profile1 LIMIT FAILED_LOGIN_ATTEMPS 5,PASSWORD_LOCK_TIME 3;
alter user dmtest PROFILE profile1;
select * from dba_roles;
-- 创建角色
create role r1;
grant create table to r1;
grant select on dmhr.department to r1;
grant r1 to dmtest;
sp_set_role('R1',0) --角色禁用和启用,禁用后角色权限将不在生效。
--授权
grant create table to dmtest;
-- 回收权限
revoke create table from dmtest;
revoke select on dmhr.department from dmtest CASCADE;
-- 客户端查看对象无权限
grant vti to dmtest;
create table dmtest.t_pid(pid int,pname varchar(50),sex bit) tablespace DMTBS;
-- 复制表
create table dmtest.t_emp as select * from dmhr.EMPOLYEE;
create table dmtest.t_emp01 like dmhr.EMPOLYEE;
-- CTAB_SEL_WITH_CONS 控制是否复制约束
select * FROM SYS."V$PARAMETER" t where t.NAME like 'CTAB_SEL_WITH_CONS';
NOT NULL:非空约束
UNIQUE:唯一约束
PRIMARY KEY:主键约束 (唯一约束+非空约束)
FOREIGN KEY:外键约束
CHECK:检验约束
-- 非空约束
alter table dmtest.t_testpid modify pname not null;
-- 唯一约束
alter table dmtest.t_testpid add CONSTRAINT uk_testpid_email unique (email);
-- 主键约束
alter table dmtest.t_testpid ADD CONSTRAINT pk_testpid_pid PRIMARY KEY(pid);
-- 检验约束
alter table dmtest.t_testpid add salary number(10,2);
alter table dmtest.t_testpid ADD CONSTRAINT ck_testpid_salary CHECK(salary>=2100);
-- 外键约束(外键引用两一张表的主键或者唯一键)
alter table dmtest.t_test add CONSTRAINT fk_test_id FOREIGN KEY(id) REFERENCES dmtest.t_testpid(pid);
--约束的禁用和启用、删除
alter table dmtest.t_test disable CONSTRAINT fk_test_id;
alter table dmtest.t_test enable CONSTRAINT fk_test_id;
alter table dmtest.t_test drop CONSTRAINT fk_test_id;
-- 批量禁用外键约束
select 'alter table '||owner||'.'||table_name||' disable constraint '|| t.CONSTRAINT_NAME ||';'
from DBA_CONSTRAINTS t
where t.OWNER ='DMTEST' and t.CONSTRAINT_TYPE = 'R';
cd /dm8/bin
./disql sysdba/Dameng123
set TIMING off;
set FEEDback off;
set echo off;
start /dm8/backup/t_emp.sql
-- 图形工具导入(注意:需要手动提交):
`/dm8/backup/t_emp.sql
commit;
未指定表空间,默认为当前用户模式指定的索引表空间
create index JOB_IND on DMHR.JOB
explain select * from dmtest.t_emp01 t where T.EMPLOYEE_NAME = '马学铭';
create index ix_emp01_employeename ON HRTEST.T_EMP01(EMPLOYEE_NAME);
select * from USER_IND_COLUMNS;
alter index ix_emp_empname on t_emp(empployee_nam)
alter index ix_emp_empname MONITORING USAGE;--开启索引监控
alter index ix_emp_empname noMONITORING USAGE;--关闭索引监控
select * from v$object_usage;
alter table t_emp move tablespace DMTBSIDX; -- 达梦的索引不会失效,达梦会自动编译
create view dmtest.v_emp as
select * from dmtest.t_emp t
cat dm.ini|grep ARCH_INI
-- 开启归档
alter database mount;
alter database ARCHIVELOG;
alter database add ARCHIVELOG 'type=local,dest=/dm8/arch,file_size=64,space_limit=10240';
alter database open;
select * from SYS."V$ARCH_FILE"
-- 查看是否开启归档
select arch_mode from v$database;
-- 关闭归档日志
alter database mount;
alter database noarchivelog;
alter database delete archivelog 'type=local,dest=/dm8/arch';
alter database open;
backup DATABASE FULL; --
backup DATABASE INCREMENT;
backup DATABASE full to FULLBAK01 BACKUPSET '/dm8/backup/FULLBACK01';
backup TABLESPACE DMTBS;
backup TABLE dmtest.t_emp;
backup ARCHIVE LOG all;
select * from SYS."V$PARAMETER" t WHERE t.NAME in ('BAK_PATH','BAK_USE_AP');
select * from SYS."V$BACKUPSET";
只支持脱机,不支持联机
cd /dm8/bin
./dmrman
backup database '/dm8/data/DAMENG/dm.ini' to FULLBAK01 backupset '/dm8/backup/FULLBAK01';
backup database '/dm8/data/DAMENG/dm.ini' to FULLBAK03 backupset '/dm8/backup/FULLBAK03';
-- 备份表空间
restore database '/dm8/data/DAMENG/dm.ini' tablespace dmtbs from backupset '/dm8/backup/FULLBAK01';
recover database '/dm8/data/DAMENG/dm.ini' tablespace dmtbs;
-- 备份整个数据库
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup/FULLBAK01'; -- 恢复到指定备份集
recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/arch'; -- 恢复到归档
recover database '/dm8/data/DAMENG/dm.ini' update db_magic; -- 更新魔数
DmServiceDMSERVER restart
show backupset '/dm8/backup/FULLBAK01';
cd /dm8/bin
-- 导出
dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=full.dmp log=full.log full=y
-- 导入
dimp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=full.dmp log=impfull.log
full=y
-- 按模式导入(将 A 模式导入到 B 模式,使用 REMAP_SCHEMA 参数)
dimp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=DMHR.dmp
log=impDMHR.log REMAP_SCHEMA=DMHR:DMTEST
cd /dm8/tool/
./manager
# 图形
代理——创建代理环境——
# 命令
call SP_INIT_DBMS_SCHEDULER_SYS(1);
# 全量
call SP_CREATE_JOB('job1',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('job1');
call SP_ADD_JOB_STEP('job1', 'FULLBAK', 6, '00000000', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('job1', 'FULLBAK', 1, 2, 1, 9, 0, '23:00:07', NULL, '2023-01-05 01:00:07', NULL, '');
call SP_JOB_CONFIG_COMMIT('job1');
# 增量
call SP_CREATE_JOB('job2',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('job2');
call SP_ADD_JOB_STEP('job2', 'INCRBAK', 6, '10000000/dm8/data/DAMENG/bak', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('job2', 'INCRBAK', 1, 2, 1, 118, 0, '23:57:46', NULL, '2023-01-05 00:57:46', NULL, '');
call SP_JOB_CONFIG_COMMIT('job2');
# 查看作业
select * from user_jobs;
# root 用户执行
cd /opt
tar -zxvf unixODBC-2.3.0.tar.gz
cd unixODBC-2.3.0/
./configure
make
make install
odbcinst -j
vim /usr/local/etc/odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so
vim /usr/local/etc/odbc.ini
[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236
# dmdba用户执行
isql dm8 -v
# 用root执行
xhost +
echo $DISPLAY
用dmdba账号执行
export DISPLAY=:0.0
cd /mnt/dm
./DMInstall.bin
cd /dm8/tool/
./dbca.sh
cd /dm8/tool/
./manager
cd /dm8/tool/
./nca.sh
网络服务名:DM
网络服务地址:127.0.0.1:5236
cd /dm8/tool/
./dmservice.sh
cd /dm8/tool/
./console
cd /dm8/tool/
./dts
cd /dm8/tool/
./monitor
# 图形化
/dm8/uninstall.sh
/dm8/root_uninstaller.sh
# 命令行
/dm8/uninstall.sh -i
文章
阅读量
获赞