ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

LINUX系统下DM企业版的使用

2022-08-31 01:00:09  阅读:235  来源: 互联网

标签:DM testpid pid LINUX 系统 SQL null alter localhost


一、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/SYSDBA@192.168.88.4: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,'123@qq.com',null); 影响行数 1 已用时间: 0.952(毫秒). 执行号:1114. SQL> insert into t_testpid(pid, pname, sex, email, salary) values(4, 'bbb', null,'123@qq.com',null); insert into t_testpid(pid, pname, sex, email, salary) values(4, 'bbb', null,'123@qq.com',null); [-6602]:违反表[T_TESTPID]唯一性约束. 已用时间: 1.029(毫秒). 执行号:0. SQL> insert into t_testpid(pid, pname, sex, email, salary) values(5, 'bbb', null,'123@qq.com',2800); insert into t_testpid(pid, pname, sex, email, salary) values(5, 'bbb', null,'123@qq.com',2800); [-6604]:违反 CHECK 约束[CK_TESTPID_SALARY]. 已用时间: 0.866(毫秒). 执行号:0. SQL> insert into t_testpid(pid, pname, sex, email, salary) values(5, 'bbb', null,'1234@qq.com',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 123@qq.com NULL 4 5 bbb NULL 1234@qq.com 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
来源: https://www.cnblogs.com/-dym/p/16641513.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有