注册
达梦DCA实操学习完整摘记(基于dm8)
培训园地/ 文章详情 /

达梦DCA实操学习完整摘记(基于dm8)

皮皮创 2022/12/26 828 0 0

安装单实例数据库

收集软件信息
##uname -ra

##rpm -aq | grep glibc*
glibc-2.28-49.p02.ky10.x86_64

##cat /proc/cpuinfo

##free -m

##systemctl stop firewalld.service
##systemctl disable firewalld.service
##systemctl status firewalld.service

##iptables -L

##getenforce
Disabled

##vi /etc/sysconfig/selinux
SELINUX=disabled

##rpm -aq | grep gcc*
gcc-7.3.0-20190804.35.p02.ky10.x86_64

规划用户
##groupadd dinstall

##useradd -g dinstall dmdba

##id dmdba
用户id=1000(dmdba) 组id=1000(dinstall) 组=1000(dinstall)

##passwd dmdba

##mkdir /dm8

##chown dmdba:dinstall -R /dm8

配置环境变量
##su - dmdba
dmdba##vi .bash_profile
export DM_HOME=/dm8
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH
##source .bash_profile
##echo $DM_HOME

设置文件最大打开数目
方式一:
[root@localhost /]# ulimit -n 65536 (仅限当前会话有效)
方式二:
[root@localhost /]# vi /etc/security/limits.conf
dmdba soft nofile 65536
dmdba hard nofile 65536

挂载镜像
root##cd /opt
root##ll
root##mount -o loop /opt/dm8_20220525_x86_rh6_64.iso /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.

root##cd /mnt
root##ll
-r-xr-xr-x 1 root root 2802237 5月 25 2022 ‘DM8 Install.pdf’
-r-xr-xr-x 1 root root 951385360 5月 25 2022 DMInstall.bin

root##cd /mnt
root##mount -t tmpfs -o size=4G none /tmp

dmdba##export DISPLAY=192.168.6.1:0.0
dmdba##xhost +
dmdba##cd /mnt
dmdba##./DMInstall.bin

root##echo $DISPLAY
:0.0
root##xhost +
access control disabled, clients can connect from any host
root##su - dmdba
dmdba##export DISPLAY=:0.0
dmdba##xhost +
access control disabled, clients can connect from any host
dmdba##cd /mnt
dmdba##./DMInstall.bin

软件安装脚本执行
[root@localhost ~]# /dm8/script/root/root_installer.sh
移动 /dm8/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
[root@localhost ~]# cd /dm8
[root@localhost dm8]# ll
总用量 36
drwxr-xr-x 10 dmdba dinstall 8192 12月 19 15:58 bin
drwxr-xr-x 2 dmdba dinstall 30 12月 19 15:25 bin2
drwxr-xr-x 3 dmdba dinstall 19 12月 19 15:25 desktop
drwxr-xr-x 2 dmdba dinstall 4096 12月 19 15:26 doc
drwxr-xr-x 12 dmdba dinstall 131 12月 19 15:26 drivers
drwxr-xr-x 2 dmdba dinstall 4096 12月 19 15:25 include
drwxr-xr-x 2 dmdba dinstall 94 12月 19 15:25 jar
drwxr-xr-x 7 dmdba dinstall 161 12月 19 15:24 jdk
-rwxr-xr-x 1 dmdba dinstall 1071 12月 19 15:25 license_en.txt
-rwxr-xr-x 1 dmdba dinstall 1146 12月 19 15:25 license_zh.txt
drwxr-xr-x 2 dmdba dinstall 117 12月 19 15:58 log
drwxr-xr-x 6 dmdba dinstall 92 12月 19 15:25 samples
drwxr-xr-x 3 dmdba dinstall 37 12月 19 15:25 script
drwxr-xr-x 9 dmdba dinstall 4096 12月 19 15:25 tool
drwxr-xr-x 3 dmdba dinstall 97 12月 19 15:26 uninstall
-rwxr-xr-x 1 dmdba dinstall 2146 12月 19 15:26 uninstall.sh
drwxr-xr-x 3 dmdba dinstall 88 12月 19 15:25 web
drwxr-xr-x 2 dmdba dinstall 94 12月 19 15:25 jar

[dmdba@localhost ~]$ cd /dm8/tool
[dmdba@localhost tool]$ export DISPLAY=192.168.6.1:0.0
[dmdba@localhost tool]$ xhost +
access control disabled, clients can connect from any host

还没初始化实例还无法使用管理工具

图形化初始化达梦实例
[dmdba@localhost tool]$ ./dbca.sh
2022-12-20 19:41:48 [com.dameng.dbca.Startup]

将DMSERVER这个服务注册到操作系统并启动
[root@localhost ~]# mv /dm8/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
[root@localhost ~]# systemctl enable DmServiceDMSERVER.service
[root@localhost ~]# systemctl start DmServiceDMSERVER.service

[root@localhost ~]# systemctl restart DmServiceDMSERVER.service

两种方式连接实例

[dmdba@localhost ~]$ cd /dm8/bin
[dmdba@localhost bin]$ /dm8/bin/disql sysdba/dameng123
[dmdba@localhost bin]$ ./disql sysdba/Dameng123@192.168.6.3:5236
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 1.196(ms)
disql V8
SQL> select * from v$instance;

[dmdba@localhost bin]$ cd /dm8/tool
[dmdba@localhost tool]$ export DISPLAY=192.168.6.1:0.0
[dmdba@localhost tool]$ xhost +
access control disabled, clients can connect from any host
[dmdba@localhost tool]$ ./manager

[dmdba@localhost bin]$ ps -ef | grep dmserver
dmdba 1603 1 0 09:58 ? 00:00:05 /dm8/bin/dmserver path=/dm8/data/DAMENG/dm.ini -noconsole
dmdba 2686 2267 0 10:57 pts/0 00:00:00 grep dmserver
[dmdba@localhost bin]$ netstat -ntl | grep 5236
tcp6 0 0 :::5236

命令行初始化达梦实例
[dmdba@localhost ~]$ cd /dm8/bin
[dmdba@localhost bin]$ ./dminit path=/dm8/data DB_NAME=DM02 INSTANCE_NAME=DM02 PORT_NUM=5239

[root@localhost ~]# cd /dm8/script/root
[root@localhost root]# ll
总用量 48
-rwxr-xr-x 1 dmdba dinstall 29104 12月 19 15:26 dm_service_installer.sh
-rwxr-xr-x 1 dmdba dinstall 9611 12月 19 15:26 dm_service_uninstaller.sh
-rwxr-xr-x 1 dmdba dinstall 579 12月 19 15:26 root_installer.sh
[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DM02/dm.ini -p DM02
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDM02.service → /usr/lib/systemd/system/DmServiceDM02.service.
创建服务(DmServiceDM02)完成
[root@localhost root]# systemctl start DmServiceDM02.service
[root@localhost root]# systemctl enable DmServiceDM02.service

[root@localhost root]# systemctl status DmServiceDM02.service
● DmServiceDM02.service - DM Instance Service(DmServiceDM02).
Loaded: loaded (/usr/lib/systemd/system/DmServiceDM02.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2022-12-21 11:38:03 CST; 1min 29s ago
Main PID: 3463 (dmserver)
Tasks: 65
Memory: 715.0M
CGroup: /system.slice/DmServiceDM02.service
└─3463 /dm8/bin/dmserver path=/dm8/data/DM02/dm.ini -noconsole

12月 21 11:37:48 localhost.localdomain systemd[1]: Starting DM Instance Service(DmServiceDM02)…
12月 21 11:38:03 localhost.localdomain DmServiceDM02[3439]: [35B blob data]
12月 21 11:38:03 localhost.localdomain systemd[1]: Started DM Instance Service(DmServiceDM02)…
[root@localhost root]# ps -ef | grep dmserver
dmdba 1603 1 0 09:58 ? 00:00:08 /dm8/bin/dmserver path=/dm8/data/DAMENG/dm.ini -noconsole
dmdba 3463 1 1 11:37 ? 00:00:05 /dm8/bin/dmserver path=/dm8/data/DM02/dm.ini -noconsole
root 3912 2051 0 11:46 pts/0 00:00:00 grep dmserver
[root@localhost root]# netstat -ntl | grep 523*
tcp6 0 0 :::5236 ::: * LISTEN
tcp6 0 0 :::5239 ::: * LISTEN

[root@localhost ~]# su - dmdba
上一次登录: 三 12月 21 10:06:56 CST 2022 pts/0 上
[dmdba@localhost ~]$ export DISPLAY=192.168.6.1:0.0
[dmdba@localhost ~]$ xhost +
access control disabled, clients can connect from any host
[dmdba@localhost ~]$ cd /dm8/tool/
[dmdba@localhost tool]$ ./dmservice.sh

[dmdba@localhost bin]$ ./DmServiceDM02 stop
Stopping DmServiceDM02: [ OK ]
[dmdba@localhost bin]$
[dmdba@localhost bin]$ ./DmServiceDM02 start
Starting DmServiceDM02: [ OK ]

[root@localhost root]# systemctl status DmServiceDM02.service
[root@localhost root]# systemctl start DmServiceDM02.service
[root@localhost root]# systemctl enable DmServiceDM02.service

[dmdba@localhost bin]$ ./disql sysdba/dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.339(ms)
disql V8
SQL> select status$ from v$instance;

SQL> alter database mount;

SQL> select status$ from v$instance;

SQL> alter database open;

数据迁移工具

[dmdba@localhost ~]$ export DISPLAY=192.168.6.1:0.0
[dmdba@localhost ~]$ xhost +
access control disabled, clients can connect from any host
[dmdba@localhost ~]$ cd /dm8/tool/
[dmdba@localhost tool]$ ./dts

脱机工具/DM控制台工具
[dmdba@localhost ~]$ export DISPLAY=192.168.6.1:0.0
[dmdba@localhost ~]$ xhost +
access control disabled, clients can connect from any host
[dmdba@localhost ~]$ cd /dm8/tool/
[dmdba@localhost tool]$ ./console

性能监视工具
[dmdba@localhost ~]$ export DISPLAY=192.168.6.1:0.0
[dmdba@localhost ~]$ xhost +
access control disabled, clients can connect from any host
[dmdba@localhost ~]$ cd /dm8/tool/
[dmdba@localhost tool]$ ./monitor

常用基础SQL

重做日志文件
重做日志不能删不能减,只能加和增。是为了防止数据丢失。
alter database add logfile ‘/dm8/data/DAMENG/DAMENG03.log’ size 500;
alter database add logfile ‘/dm8/data/DAMENG/DAMENG04.log’ size 500;

select PATH,RLOG_SIZE/1024/1024 from v$rlogfile;

alter database resize logfile ‘/dm8/data/DAMENG/DAMENG04.log’ to 1024;

select arch_mode from v$database;

表空间数据文件
create tablespace “TEST” datafile ‘/dm8/data/DAMENG/TEST_01.DBF’ size 32
autoextend on next 2 maxsize 10240;

alter tablespace “TEST” add datafile ‘/dm8/data/DAMENG/TEST_02.DBF’ size 32
autoextend on next 2 maxsize 10240;

select * from SYS.USER_TABLESPACES;
alter tablespace test01 offline/online;
alter tablespace “TEST” cache = “KEEP”;

##更改数据文件存储位置
alter tablespace TEST rename datafile ‘/dm8/data/DAMENG/TEST_02.DBF’ to ‘/dm8/TEST_02.DBF’;

TEMP表空间
select para_name,para_value from v$dm_ini where para_name like ‘%TEMP%’;
1.修改 temp_size 的值
sp_set_para_value(2,‘TEMP_SIZE’,100);
[dmdba@localhost bin]$ /dm8/bin/DmServiceDMSERVER restart
2.如果先修改 temp.dbf 则还需要修改 TEMP_SIZE 的值
alter tablespace temp resize datafile ‘/dm8/data/DAMENG/TEMP.DBF’ to 256;
sp_set_para_value(2,‘TEMP_SIZE’,128);

ROLL
alter tablespace ROLL resize datafile ‘/dm8/data/DAMENG/ROLL.DBF’ TO256;

删除表空间
Drop tablespace test;

创建用户
##设置密码策略
sp_set_para_value(1,‘PWD_POLICY’,7);
select * from v$parameter where name = ‘PWD_POLICY’;

创建模式
CREATE SCHEMA “TEST03” AUTHORIZATION “TEST”;

建表
create table “TEST”.“EMPLOYEE”
(
“EMPLOYEE_ID” INTEGER not null,
“EMPLOYEE_NAME” VARCHAR(20),
“EMAIL” VARCHAR(50) ,
“PHONE_NUM” VARCHAR(20),
“HIRE_DATE” DATE ,
“JOB_ID” VARCHAR(10),
“SALARY” INTEGER,
“DEPARTMENT_ID” INTEGER,
primary key (EMPLOYEE_ID))
;

create table “TEST02”.“STUDENT”
(“ID” INTEGER,
primary key (ID))
;

insert into “TEST”.“T40” values(1,‘www’,100);
insert into “TEST02”.“STUDENT” values(1);

加字段
alter table “TEST”.“T40” add column (“C1” DEC(10,2));
alter table “TEST”.“T40” drop column “C1” ;

加约束
非空约束
alter table hrtest.t_testpid modify pname not null;
唯一约束
alter table hrtest.t_testpid add CONSTRAINT uk_testpid_email unique (email);
主键约束
alter table hrtest.t_testpid ADD CONSTRAINT pk_testpid_pid PRIMARY KEY(pid);
检验约束
alter table hrtest.t_testpid add salary number(10,2);
alter table hrtest.t_testpid ADD CONSTRAINT ck_testpid_salary CHECK
(salary>=2100);
外键约束(外键引用两一张表的主键或者唯一键)
alter table hrtest.t_test add CONSTRAINT fk_test_id FOREIGN KEY(id) REFERENCES
hrtest.t_testpid(pid);

建索引
create index idx_表名_字段名 ON 表名 (字段名,字段名);
create index IND_EMP_DATE ON TEST.EMPLOYEE(HIRE_DATE);

建视图
create or replace view TEST.VIEW_SALARY as
select * from aaa where age > 10;

批量导入
su - dmdba
cd /dm8/bin
./disql sysdba/dameng123
SQL> start /dm8/script.sql
或用迁移工具
su - dmdba
cd /dm8/tool
./dts

备份

逻辑备份
su - dmdba
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=full.log full=y

用户
导出:
./dexp userid=sysdba/dameng123:5236 directory=/dm8/backup/dexp file=TEST03.dmp log=TEST03.log owner=TEST
导入:
./dimp SYSDBA/dameng123@192.168.109.22:5237 directory=/dm8/backup/dexp file=dexp_user.dmp log=dimp_user.log owner=TEST

模式
导出:
dexp userid=sysdba/dameng123:5236 directory=/dm8/backup/dexp file=DMHR.dmp log=DMHR.log schemas=DMHR
导入:
dimp userid=sysdba/dameng123:5238 directory=/dm8/backup/dexp file=DMHR.dmp log=impDMHR.log REMAP_SCHEMA=DMHR:DMTEST

冷备份脱机备份
./DmServiceDMSERVER stop
./DmAPService status
./DmAPService start
./dmrman
backup database ‘/dm8/data/DAMENG/dm.ini’ 或
backup database ‘/dm8/data/DAMENG/dm.ini’ backupset ‘/dm8/back’

这里/dm8/back
chown dmdba:dinstall -R /dm8/back

热备 联机备份
SQL>alter database mount;

SQL>alter database add archivelog ‘dest=/dm8/arch,type=local,file_size=128,space_limit=0’;

SQL>alter database archivelog;

SQL>alter database open;

SQL>backup database full to “BACK” backupset ‘/dm8/backup/’;
还原表不需要关库

ODBC

##root用户
cd /opt
tar -zxvf /opt/unixODBC-2.3.0.tar.gz
cd unixODBC-2.3.0
./configure
make 编译
make install 安装

##root用户
cd /usr/local/etc
vi odbc.ini
[DM8] # 这个按要求改
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER # 要和下面对应
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236

vi odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so --dm8安装目录的bin目录下

切换到dmdba用户,进行登陆即可
su - dmdba
[dmdba@localhost ~]$ isql dm8 -v
±--------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
±--------------------------------------+

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服