一、DM8企业版安装
图形化安装
设置图形化:(第一次开机登录,需要执行 xhost +)
[root@localhost ~]# xhost +
[root@localhost ~]# su - dmdba
上一次登录: 三 8 月 24 11:25:37 CST 2022 pts/0 上
[dmdba@localhost ~]$ echo $DISPLAY
[dmdba@localhost ~]$ export DISPLAY=:0.0
[dmdba@localhost ~]$ echo $DISPLAY
:0.0
执行安装命令:
[dmdba@localhost ~]$ cd /mnt/dm
[dmdba@localhost dm]$ ll
总用量 931825
-r-xr-xr-x 1 root root 2802237 5 月 25 15:31 'DM8 Install.pdf'
-r-xr-xr-x 1 root root 951385360 5 月 25 15:37 DMInstall.bin
[dmdba@localhost dm]$ ./DMInstall.bin
二、创建数据库及数据库实例管理
DBCA 数据库配置助手
进入数据库安装目录 tool 下,执行 dbca.sh
[dmdba@localhost dm]$ cd /dm8/tool
[dmdba@localhost tool]$ ./dbca.sh
按照图形化操作教程后
执行命令
[root@localhost tmp]# mv
/dm8/bin/DmServiceDMOASERVER.service
/usr/lib/systemd/system/DmServiceDMOASERVER.service
[root@localhost tmp]# systemctl enable DmServiceDMOASERVER.service
[root@localhost tmp]# systemctl start DmServiceDMOASERVER.service
执行以下命令注册数据库服务
[root@localhost root]# ./dm_service_installer.sh -t dmserver -p DMOASERVER -dm_ini
/dm8/data/DMOA/dm.ini
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMOASERVER.service
→ /usr/lib/systemd/system/DmServiceDMOASERVER.service.
创建服务(DmServiceDMOASERVER)完成
[root@localhost root]# ./dm_service_uninstaller.sh -h
Usage: dm_service_uninstaller.sh [-n service_name]
-n 服务名,删除指定服务
-h 帮助
[root@localhost root]# ./dm_service_uninstaller.sh -n DmServiceDMOASERVER
是否删除服务(DmServiceDMOASERVER)?(Y/y:是 N/n:否): y
Removed /etc/systemd/system/multi-user.target.wants/DmServiceDMOASERVER.service.
删除服务文件(/usr/lib/systemd/system/DmServiceDMOASERVER.service)完成
删除服务(DmServiceDMOASERVER)完成
使用disql 命令行方式连接数据库
[dmdba@localhost bin]$ ./disql sysdba/SYSDBA:5236
[dmdba@localhost bin]$ ./disql sysdba/[email protected]:5236服务器[192.168.88.4:5236]:处于普通打开状态
登录使用时间 : 15.096(ms)
disql V8
SQL> exit
root 用户管理数据库:
(1) linux 服务管理方式(systemctl 命令)
[root@localhost data]# systemctl start DmServiceDMOASERVER.service
[root@localhost data]# systemctl status DmServiceDMOASERVER.service
[root@localhost data]# systemctl restart DmServiceDMOASERVER.service
[root@localhost data]# systemctl stop DmServiceDMOASERVER.service
dmdba 用户管理数据库:
(1) DmServiceDMSERVER(DMSERVER 为实例名)文件启动
(注意:此启动方式不会更新 DM 服务查看器)。
[dmdba@localhost ~]$ ./DmServiceDMSERVER status
DmServiceDMSERVER (pid 42522) is running.[dmdba@localhost ~]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
[dmdba@localhost ~]$ ./DmServiceDMSERVER status
DmServiceDMSERVER is stopped
[dmdba@localhost ~]$ ./DmServiceDMSERVER start
可以启动数据库到 mount 状态:
[dmdba@localhost ~]$ ./DmServiceDMSERVER start mount
(
2) dmserver 前台启动方式(不管是否注册 linux 服务都可以使用)
dmserver 不管是否注册 linux 服务都可以使用,其他方式只适用于注册 linux 服务的数据库。
可以将数据库启动到 mount 状态。
[dmdba@localhost ~]$ cd /dm8/bin
[dmdba@localhost bin]$ ./dmserver path=/dm8/data/DMOA/dm.ini mount
表空间管理
管理数据文件
修改数据文件大小:
alter tablespace tbs RESIZE DATAFILE 'TBS01.DBF' to 128;
添加数据文件:
alter tablespace tbs ADD DATAFILE 'TBS02.DBF' SIZE 128 AUTOEXTEND ON NEXT 4
MAXSIZE 10240;
修改数据文扩展尺寸:
alter tablespace tbs DATAFILE 'TBS01.DBF' AUTOEXTEND ON NEXT 4 MAXSIZE 10240;
数据文件的迁移:
alter tablespace tbs offline;
alter tablespace tbs RENAME DATAFILE 'TBS01.DBF'
to '/dm8/data/DAMENG/TBS/TBS01.DBF';
alter tablespace tbs RENAME DATAFILE 'TBS02.DBF'
to '/dm8/data/DAMENG/TBS/TBS02.DBF';
alter tablespace tbs online;
管理重做日志文件
What?重做日志文件用于保存 redo 日志。包含联机日志文件和归档日志文件(开归档时才
会产生)。联机日志文件是循环使用,内容不断覆盖。
Why?联机日志文件用于故障重启的数据恢复。归档日志文件主要用于数据库还原与恢复。
When?如果业务数据量大,可以将联机日志设置的更大,或者添加联机日志文件。如果业
务数据量大,而联机日志过小,会造成频繁的日志切换,频繁的日志切换会降低数据库的性
能。达梦联机日志由数据库自动切换。
how?alter database add/resize/rename logfile
数据字典:
select * from "V$RLOGFILE";
select * from v$rlog; --cur_file表示当前正在使用的联机日志文件ID
添加联机日志文件:alter DATABASE add LOGFILE 'DAMENG03.log' size 256;
修改联机日志文件大小:
alter database resize LOGFILE 'DAMENG03.log' to 300;
迁移联机日志文件:
alter database mount;
alter database RENAME LOGFILE 'DAMENG03.log'
to '/dm8/data/DAMENG/REDO/DAMENG03.log';
alter database RENAME LOGFILE 'DAMENG02.log'
to '/dm8/data/DAMENG/REDO/DAMENG02.log';
alter database RENAME LOGFILE 'DAMENG01.log'
to '/dm8/data/DAMENG/REDO/DAMENG01.log';
alter database open;
归档管理
What?归档是什么,归档是对重做日志 redo 信息的归档。数据库默认运行在非归档模式下,
开启归档可以更好的保证数据的安全性。
Why?用于数据库的还原与恢复。
比如,昨天凌晨数据库备份,今天下午 14:00 故障,
利用备份可以还原和恢复到昨天备份的时间点,利用归档可以恢复到故障的前一刻(完全恢
复)或者任意的时间点(不完全恢复)。
When?生产环境不能接受数据丢失都应该开归档。
how?SQL 方式/图形化界面/修改配置文件
(1) SQL 方式
select arch_mode from v$database;
开启归档:
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 "V$DM_ARCH_INI";
关闭归档:
alter database mount;
alter database NOARCHIVELOG;
alter database delete ARCHIVELOG 'type=local, dest=/dm8/arch,
file_size=64,space_limit=10240';
alter database open;
管理模式 模式与用户之间的关系: 当系统建立一个用户时,会自动生成一个对应的模式 用户还可以建立其他模式 [dmdba@localhost DAMENG]$ disql dmtest/dameng123 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间 : 2.765(ms) disql V8 SQL> create table t_test(id int); 操作已执行 已用时间: 7.118(毫秒). 执行号:1100. SQL> select sys_context('USERENV','CURRENT_SCHEMA'); 行号 SYS_CONTEXT('USERENV','CURRENT_SCHEMA') ---------- --------------------------------------- 1 DMTEST 已用时间: 1.218(毫秒). 执行号:1101. SQL> select user; 行号 USER() ---------- ------ 1 DMTEST create SCHEMA DMTES01 AUTHORIZATION dmtest; select * from SYS.SYSOBJECTS t where t."TYPE$" ='SCH'; select a.id schid, a.name schname, a."TYPE$", b.id userid, b.name, b."TYPE$" username from SYSOBJECTS a, SYSOBJECTS b where a."TYPE$" ='SCH' and a.pid = b.id; SQL> create table dmtes01.t_test01(id int); 操作已执行 已用时间: 4.300(毫秒). 执行号:1103. SQL> select * from dmtes01.t_test01; SQL> set schema dmtes01; 操作已执行 已用时间: 0.665(毫秒). 执行号:0. SQL> create table t_test(id int); 操作已执行 已用时间: 7.915(毫秒). 执行号:919. SQL> select table_name, owner from all_tables; 用户默认模式不能删除,模式下有对象时不能直接删除(可以增加 cascade 级联删除用户模 式及模式下对象,生产环境慎用 cascade,防治误删) drop schema DMTES01 CASCADE; drop SCHEMA dmtest; 管理表 DM 中的表默认是索引组织表。Oracle 默认是堆表。 两者的区别和优势: (1) 索引组织表数据是有序的,有且仅有一个聚簇索引键,数据按照聚簇索引键排序。 插入有序;创建表时可以指定聚簇索引键,如果不指定,默认 ROWID 为聚簇索引 键,索引组织表 rowid 是逻辑 rowid,占用存储空间,所以索引组织表占用更大空间。 DM 中 老 的 版 本 创 建 表 时 指 定 主 键 , 则 主 键 是 聚 簇 索 引 键 ( 由 参 数 PK_WITH_CLUSTER) SQL> select name, value, type from v$parameter t where t.name like '%PK_WITH%';行号 NAME VALUE TYPE ---------- --------------- ----- ------- 1 PK_WITH_CLUSTER 0 SESSION ( 2)堆表数据是无序的,插入无序,所以堆表的插入效率高,并发插入效率也高。堆表的 rowid 是物理 rowid,rowid 不占用存储空间,所以堆表更节约空间。 索引组织表的聚簇索引键的范围查询效率较高。 创建表的方法: create table dmtest.t_testpid (pid int, pname varchar(30), sex bit, email varchar(50)) tablespace tbs; create table t_emp as select * from dmhr.EMPLOYEE; create table t_emp01 like dmhr.EMPLOYEE; create table t_emptab as select * from dmhr.EMPLOYEE where 1=0; 数据导入:oracle 用@,DM 使用 start 或者` SQL> start /dm8/backup/t_emp.sql SQL> `/dm8/backup/t_emp.sql 相关数据字典: select * from dba_tables t where t.OWNER = 'DMTEST'; select * from DBA_tab_COLUMNS t where t.OWNER = 'DMTEST'; 管理约束 约束类型: NOT NULL:非空 UNIQUE:唯一 PRIMARY KEY:一个表只能由一个主键,主键唯一且非空。 FOREIGN KEY:外键引用另一张表的主键或者唯一键。 CHECK:数据检验 alter table dmtest.t_testpid modify pname not null; alter table dmtest.t_testpid ADD CONSTRAINT pk_testpid_pid PRIMARY KEY(pid); alter table dmtest.t_testpid ADD CONSTRAINT uk_testpid_email UNIQUE (email); alter table DMTEST.T_TESTPID add salary int; alter table dmtest.t_testpid ADD CONSTRAINT ck_testpid_salary CHECK(salary>3000); drop table if EXISTS dmtest.t_testchild; create table dmtest.t_testchild ( childid int, childname varchar(20),pid int) TABLESPACE tbs; alter table dmtest.t_testchild ADD CONSTRAINT fk_testchild_pid FOREIGN KEY(pid) REFERENCES dmtest.t_testpid(pid); select * from DBA_CONSTRAINTS t where T.OWNER='DMTEST'; select * from DBA_CONS_COLUMNS t where T.OWNER='DMTEST'; SQL> desc t_testpid; 行号 NAME TYPE$ NULLABLE ---------- ------ ----------- -------- 1 PID INTEGER N 2 PNAME VARCHAR(30) N 3 SEX BIT Y 4 EMAIL VARCHAR(50) Y 5 SALARY INTEGER Y 已用时间: 11.444(毫秒). 执行号:1109. SQL> insert into t_testpid(pid, pname, sex, email, salary) values(1, null, null,null,null); insert into t_testpid(pid, pname, sex, email, salary) values(1, null, null,null,null); [-6609]:违反列[PNAME]非空约束. 已用时间: 2.966(毫秒). 执行号:0. SQL> insert into t_testpid(pid, pname, sex, email, salary) values(1, 'aaa', null,null,null);影响行数 1 已用时间: 0.774(毫秒). 执行号:1111. SQL> insert into t_testpid(pid, pname, sex, email, salary) values(1, 'aaa', null,null,null); insert into t_testpid(pid, pname, sex, email, salary) values(1, 'aaa', null,null,null); [-6602]:违反表[T_TESTPID]唯一性约束. 已用时间: 0.397(毫秒). 执行号:0. SQL> insert into t_testpid(pid, pname, sex, email, salary) values(2, 'aaa', null,null,null); 影响行数 1 已用时间: 0.755(毫秒). 执行号:1113. SQL> insert into t_testpid(pid, pname, sex, email, salary) values(3, 'bbb', null,'[email protected]',null); 影响行数 1 已用时间: 0.952(毫秒). 执行号:1114. SQL> insert into t_testpid(pid, pname, sex, email, salary) values(4, 'bbb', null,'[email protected]',null); insert into t_testpid(pid, pname, sex, email, salary) values(4, 'bbb', null,'[email protected]',null); [-6602]:违反表[T_TESTPID]唯一性约束. 已用时间: 1.029(毫秒). 执行号:0. SQL> insert into t_testpid(pid, pname, sex, email, salary) values(5, 'bbb', null,'[email protected]',2800); insert into t_testpid(pid, pname, sex, email, salary) values(5, 'bbb', null,'[email protected]',2800); [-6604]:违反 CHECK 约束[CK_TESTPID_SALARY]. 已用时间: 0.866(毫秒). 执行号:0. SQL> insert into t_testpid(pid, pname, sex, email, salary) values(5, 'bbb', null,'[email protected]',3800); 影响行数 1 已用时间: 0.767(毫秒). 执行号:1118. 外键约束检验: SQL> desc t_testchild; 行号 NAME TYPE$ NULLABLE ---------- --------- ----------- -------- 1 CHILDID INTEGER Y 2 CHILDNAME VARCHAR(20) Y 3 PID INTEGER Y 已用时间: 10.823(毫秒). 执行号:1119. SQL> insert into t_testchild(CHILDID, CHILDNAME, PID) values(null, null, 6); insert into t_testchild(CHILDID, CHILDNAME, PID) values(null, null, 6); [-6607]:违反引用约束[FK_TESTCHILD_PID]. 已用时间: 1.024(毫秒). 执行号:0. SQL> insert into t_testchild(CHILDID, CHILDNAME, PID) values(null, null, 5); 影响行数 1SQL> select * from t_testpid; 行号 PID PNAME SEX EMAIL SALARY ---------- ----------- ----- ---- ----------- ----------- 1 1 aaa NULL NULL NULL 2 2 aaa NULL NULL NULL 3 3 bbb NULL [email protected] NULL 4 5 bbb NULL [email protected] 3800 已用时间: 0.741(毫秒). 执行号:1122. SQL> insert into t_testchild(CHILDID, CHILDNAME, PID) values(null, null, 4); insert into t_testchild(CHILDID, CHILDNAME, PID) values(null, null, 4); [-6607]:违反引用约束[FK_TESTCHILD_PID]. 已用时间: 0.911(毫秒). 执行号:0. SQL> commit; 操作已执行 已用时间: 1.071(毫秒). 执行号:1124. SQL> delete from t_testpid where pid=5; delete from t_testpid where pid=5; [-6607]:违反引用约束[FK_TESTCHILD_PID]. 已用时间: 0.985(毫秒). 执行号:0. SQL> delete from t_testpid where pid=1; 影响行数 1 已用时间: 1.089(毫秒). 执行号:1126. SQL> select * from t_testchild; 行号 CHILDID CHILDNAME PID ---------- ----------- --------- ----------- 1 NULL NULL 5 已用时间: 0.773(毫秒). 执行号:1127. SQL> 标签:DM,testpid,pid,LINUX,系统,SQL,null,alter,localhost From: https://www.cnblogs.com/-dym/p/16641513.html