达梦数据库dm8——PxStudyNote

学了太多,忘了太多,还是应该做一下笔记,只为下一次重拾可以快一点

学习视频:腾讯课堂(2021年1月31日已过期)

学习资料:百度网盘已备份

软件的名称:

dbca.sh 数据库配置助手 #创建数据实例
manager 管理工具
dmservice.sh 服务查看器(只有root有权限) 启动、关闭服务
dts 数据迁移工具 数据的导入和导出
nca.sh 网络配置
Console 控制台 实例配置;物理备份

系统用户

创建系统用户

[root]# groupadd dinstall    //添加dinstall用户组
[root]# cat /etc/group | grep dinstall    //查看用户组是否存在
[root]# useradd -g dinstall dmdba   //添加dmdba用户在dinstall用户组下面
[root]# cat /etc/passwd | grep dmdba    //查看用户是否存在
[root]# passwd dmdba      //修改dmdba的密码

1、创一个只有dmdba用户可以访问的夹目录

[root]# mkdir /dm8
[root]# chown dmdba:dinstall /dm8

指令提示:切换用户

[root]# su - dmdba

安装达梦数据库

[root]# mkdir /mnt/dm
[root]# mount dm8_setup_rh7.........iso /mnt/dm
[root]# su - dmdba
[dmdba@ ]# cd /mnt/dm
[dmdba@dm]# ./DMInstall.bin
解压安装程序中……
图形化失败……………………………………

如果出现上图中的这种“图形化失败”,使用以下办法:

[root]# xhost +
[root]# xclock      //如果该命令失败,就需要使用下一个标题来进行安装xclock

//如果成功就继续往下
[root]# echo $DISPLAY
:0
[root]# su - dmdba
[dmdba@ ]# export DISPLAY=:0
[dmdba@ ]# xclock
//然后就可以安装dm了
[dmdba@ ]# cd /mnt/dm
[dmdba@dm]# ./DMInstall.bin

2、图形化界面xclock的安装:

(视频2: 13:27)


3、open files最小文件的限制

[root@192 root]# vi /etc/security/limits.conf 

dmdba soft nofile 10240
dmdba hard nofile 65536


#dmdba      ulimit -n 65536(source .bash_profile )

卸载数据库

cd /dm8
./uninstall.sh

PATH文件的修改(安装以后的配置)

[dmdba@ ]# cd
[dmdba@ ~]# vi .bash_profile 
[dmdba@ ~]# source .bash_profile 
//再加一条
export DISPLAY=:0

创建数据库实例

创建数据库实例(图形化界面):

**创建数据库实例(命令行方式):

(视频1:1:59:40):

[dmdba@192 ~]$ dminit help
格式: ./dminit     KEYWORD=value
例程: ./dminit     PATH=/public/dmdb/dmData PAGE_SIZE=16
关键字                     说明(默认值)
--------------------------------------------------------------------------------
INI_FILE                   初始化文件dm.ini存放的路径
PATH                       初始数据库存放的路径
CTL_PATH                   控制文件路径
····(省略)····

通过下述的命令创建了一个新的实例数据库(DMTEST)

[dmdba@192 ~]$ dminit path=/dm8/data db_name=DMTEST instance_name=DMTESTSERVER port_num=5237

全过程:

[dmdba@192 ~]$ dminit path=/dm8/data db_name=DMTRY instance_name=DMTRYSERVER port_num=5239
initdb V8
db version: 0x7000a
file dm.key not found, use default license!
License will expire on 2021-06-24
 log file path: /dm8/data/DMTRY/DMTRY01.log
 log file path: /dm8/d[图片上传中...(image-20201229194153058.png-e2d258-1612094739355-0)]
ata/DMTRY/DMTRY02.log
write to dir [/dm8/data/DMTRY].
create dm database success. 2020-08-23 22:24:35

[dmdba@192 ~]$ source /home/dmdba/.bash_profile
[dmdba@192 ~]$ dmserver /dm8/data/DMTRY/dm.ini      #启动

查看有哪些数据库

[root@192 data]# ll /dm8/data
总用量 0
drwxr-xr-x 6 dmdba dinstall 307 8月  21 01:01 DAMENG
drwxr-xr-x 5 dmdba dinstall 238 8月  21 21:15 DMTEST

通过dmservice.sh打开数据库服务查看器

通过上图就可以看到新建的dmtest没有启动

通过dbca.sh(数据库配置助手)注册服务

查看:./dmservice.sh打开数据库服务查看器(root)

 实例服务可以右击删除
[root@192 DMTEST]# cd /dm8/tool
[root@192 tool]# ./dmservice.sh

通过命令注册服务

[root@192 dm8]# cd /dm8/script/root
[root@192 root]# ll
总用量 44
-rwxr-xr-x 1 dmdba dinstall 27023 8月  21 00:53 dm_service_installer.sh
-rwxr-xr-x 1 dmdba dinstall  8736 8月  21 00:53 dm_service_uninstaller.sh
-rwxr-xr-x 1 dmdba dinstall   579 8月  21 00:53 root_installer.sh

数据库的启动状态

图形化界面

[root@192 tool]# ./dmservice.sh

代码方式

root@192 root]# ps -ef | grep dmserver
dmdba    19677     1  0 20:22 ?     00:00:31 /dm8/bin/dmserver /dm8/data/DAMENG/dm.ini -noconsole
dmdba    78470     1  0 21:37 ?     00:00:11 /dm8/bin/dmserver /dm8/data/DMTEST/dm.ini -noconsole
root      79075   9619  0 22:02 pts/0    00:00:00 grep --color=auto dmserver
[root@192 root]# lsof -i:5236
COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dmserver 19677 dmdba    4u  IPv6  91340      0t0  TCP *:padl2sim (LISTEN)

如上图中的名称一致:

[root@192 root]# cd /dm8/bin
[root@192 bin]# ll Dm*
-rwxr-xr-x 1 dmdba dinstall 13993 8月  21 00:53 DmAPService
-rwxr-xr-x 1 dmdba dinstall 14454 8月  21 00:53 DmAuditMonitorService
-rwxr-xr-x 1 dmdba dinstall 13630 8月  21 00:53 DmInstanceMonitorService
-rwxr-xr-x 1 dmdba dinstall 14101 8月  21 00:53 DmJobMonitorService
-rwxr-xr-x 1 dmdba dinstall 15918 8月  21 01:00 DmServiceDMSERVER
-rwxr-xr-x 1 dmdba dinstall 15922 8月  21 21:36 DmServiceDMTESTSERVER
#################查看的服务的status##############
[dmdba@192 ~]$ cd /dm8/bin
--------------------------------------------------------
[dmdba@192 bin]$ DmServiceDMTESTSERVER status
-----------------------------------------------------------
DmServiceDMTESTSERVER (pid 78470) is running.
[dmdba@192 bin]$ DmServiceDMTESTSERVER stop
Stopping DmServiceDMTESTSERVER:                            [ OK ]
[dmdba@192 bin]$ DmServiceDMTESTSERVER start
Starting DmServiceDMTESTSERVER:                            [ OK ]

或者:

DM管理工具

(视频2: 36:22)

图形化界面

image-20200821221930459.png

代码方式

[dmdba@192 bin]$ disql
disql V8
用户名:sysdba
密码:

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 8.807(毫秒)
SQL> 

[dmdba@192 bin]$ disql sysdba/[email protected]:5237
SQL> select instance_name from v$instance;   

行号        INSTANCE_NAME
---------- -------------
1           DMTESTSERVER

已用时间: 1.183(毫秒). 执行号:6.

网络配置可以定义ip:port

方便以后的连接

[dmdba@192 bin]$ nca.sh

修改数据库的状态:

alter database mount;    --配置状态
alter database open;    --打开状态(只有打开可以与另外两个互换)
alter database suspend;   --挂起状态

DM管理工具打开语法检查和输入助手:

新建表空间

(段落3: 1:32:48)

查看表空间的情况:

select * from DBA_TABLESPACES;
select * from V$TABLESPACE;
select * from V$HUGE_TABLESPACE;

select * from DBA_DATA_FILES;         --查看表空间
select * from V$DATAFILE;         --查看表空间
创建用户test,密码为dameng123
>create user test identified BY dameng123 DEFAULT TABLESPACE TBS;
create TABLE TEST.t_test AS SELECT * From SYS.DBA_DATA_FILES;

代码创建表空间:

create TABLESPACE tbsprod datafile '/dm8/data/DMTEST/tbs.tbsprod.dbf' size 32;--size必须大于2

alter TABLESPACE TBSPROD add DATAFILE '/dm8/data/DMTEST/tbs/tbsprod02.dbf' size 32;--添加表空间文件路径
alter TABLESPACE TBSPROD datafile '/dm8/data/DMTEST/tbs/tbsprod02.dbf' AUTOEXTEND OFF;--关闭自动填充
alter TABLESPACE TBSPROD datafile '/dm8/data/DMTEST/tbs/tbsprod02.dbf' AUTOEXTEND on NEXT 2 MAXSIZE 1024;  --打开自动填充
alter TABLESPACE TBSPROD RESIZE DATAFILE '/dm8/data/DMTEST/tbs/tbsprod02.dbf' to 64;--表空间文件改成64M
alter TABLESPACE TBSPROD OFFLINE;
alter TABLESPACE TBSPROD ONLINE;
alter TABLESPACE TBSPROD RENAME to TBSPRODtest; --修改表名称

修改表空间

表空间脱机可以做什么?
数据迁移
>alter TABLESPACE TBSPROD OFFLINE;
alter TABLESPACE TBSPROD RENAME DATAFILE './tbs/tbsprod01.dbf' TO './tbs/tbsprod001.dbf';
alter TABLESPACE TBSPROD RENAME DATAFILE './tbs/tbsprod02.dbf' TO './tbs/tbsprod002.dbf';

删除表空间:

>drop TABLESPACE TBSPRODTEST;

【日志】管理服务器的日志文件:

代码方式:

>alter DATABASE add LOGFILE 'DAMENG04.log' SIZE 32;
重做日志的地址可以修改吗?如果修改应该怎么修改?
可以。通过控制文件的修改。。。。。。或者通过代码如下:
alter DATABASE mount;
alter DATABASE RENAME LOGFILE 'DAMENG04.log' to './redo1/DMTEST04.log' ;

【附件】系统权限&对象权限





用户

查找所有的用户

select * from DBA_USERS;

创建用户(视频3: 35:00)


修改用户密码

alter user testuser idenitified by dameng123

resource 里面有create table权限

--授权
grant create TABLE to testuser;
grant resource TO testuser;
--收回
revoke CREATE table FROM testuser;
revoke resource FROM testuser;

换用户登录source

用户的资源限制

锁定账号:

角色

查找所有的角色

select * from DBA_ROLES;
--授权
grant ROLE1 to testuser;   --ROLE1是角色名

--收回
revoke ROLE1 FROM testuser;

DMSQL


右连接:

全连接:



数据的导入和导出

数据的导出

dmdba@192 ~]$ dts    #打开DM数据迁移工具


数据的导入

[dmdba@192 ~]$ disql SYSDBA/dameng123@localhost:5237  --进入swl

SQL> start /dm8/data/DAMENG/bak/DMHR_DEPARTMENT.sql

【附件】复制表:(用于对数据的还原)

create TABLE TESTUSER.EMPLOYEE AS SELECT * FROM DMHR.EMPLOYEE WHERE 1=0;
create TABLE TESTUSER.DEPARTMENT AS SELECT * FROM DMHR.DEPARTMENT WHERE 1=0;
-- “where  1=0”是为了只复制表结构

在创建表结构后,导入数据,导入数据方式如下代码:

SQL> start /dm8/data/DAMENG/bak/DMHR_EMPLOYEE.sql      --在终端下运行,没有分号结尾

--同样的方法
SQL> start /dm8/data/DAMENG/bak/DMHR_DEPARTMENT.sql

创建视图

create view testuser.v_dept1 
as 
select t.employee_id, t employee_name
from TESTUSER.employee t;

物理备份

冷备(全备份)

首先要在root下关闭DM服务

[root@192 ~]# systemctl stop DmServiceDMSERVER.service 

可以在root下打开 ./dmservice.sh 关闭服务

[dmdba@192 ~]$ cd dm8/bin
[dmdba@192 ~]$ ./dmrman
dmrman V8
RMAN> backup database '/dm8/data/DAMENG/dm.ini' full;    #全备份

全备份的还原:

RMAN> restore database '/dm8/data/DM新地址/dm.ini' from  '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20200823_214036_030768'; ----第一步

RMAN> recover database '/dm8/data/DM新地址/dm.ini' updatedb_magic;   ---第二步 更新魔术

[dmdba@192 ~]# dmserver  /dm8/data/DM新地址/dm.ini     --第三步  启动数据库

###需要创建一各新的实例

需要创建一各新的实例

dminit path=/dm8/data db_name=DMTEST instance_name=DMTEST port_num=5237

图形化界面方式:

[dmdba@192 ~]$ console     #在控制台工具中操作

(冷备份可以不做下图操作***************)

下一步:一定要更新db_magic

逻辑备份

一定要在数据库启动的情况下

查看数据库是否启动

ps -ef | grep dmserver

启动数据库命令

DmServiceDMSERVER start

逻辑的导出分为:模式的导出、飚的导出、用户的导出,全库的导出

全库的导出:


image-20200823234747075.png

导出表空间了以后,,,导入需要创建表空间

导入:

创建一个实例数据库

你可能感兴趣的:(达梦数据库dm8——PxStudyNote)