安装单实例数据库
收集软件信息
##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 |
| |
±--------------------------------------+
文章
阅读量
获赞