学了太多,忘了太多,还是应该做一下笔记,只为下一次重拾可以快一点
学习视频:腾讯课堂(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)
图形化界面
代码方式
[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
逻辑的导出分为:模式的导出、飚的导出、用户的导出,全库的导出
全库的导出:
导出表空间了以后,,,导入需要创建表空间
导入:
创建一个实例数据库