关于达梦数据库认证练习的相关记录(二)

达梦数据库DCP认证练习的相关记录

青青子衿,悠悠我心。但为君故,沉吟至今。与达梦数据库有种相见恨晚的感觉。
一、更改权限
chown -R dmdba:dinstall /opt
因为这里需要写/opt下的txt文件,txt文件的权限是root的。所以把权限给dmdba。

二、通过dminit创建数据库实例。
[dmdba@localhost bin]# ./dminit PATH=/dm7/data DB_NAME=DM01 INSTANCE_NAME=DMSVR01 PAGE_SIZE=16 EXTENT_SIZE=32 LOG_SIZE=500
切换目录执行脚本。
cd /dm7/script/root
创建数据库实例的服务。
[root@localhost root]# ./dm_service_installer.sh -p DMSVR01 -t dmserver -i /dm7/data/DM01/dm.ini
启动服务 —service 独立服务名 start|stop|status|restart
[root@localhost root]# service DmServiceDMSVR01 start

三、创建表空间TEST01
CREATE TABLESPACE TEST01 DATAFILE ‘/dm7/data/DM01/TEST01.DBF’
SIZE 500 autoextend ON NEXT 1 MAXSIZE 1024 CACHE = NORMAL;

四、在表空间TEST01上创建用户DMTEST
CREATE USER DMTEST IDENTIFIED BY “DMTEST123”
DEFAULT TABLESPACE “TEST01”;

五、分区表
1、范围分区
分区列为数字或者日期类型
-----若报错:出现错误[-2683]:
-----局部唯一索引必须包含全部分区列
-----解决方法:需要把YEAR字段也设置为主键。
create table “DMTEST”.“SALES”
(
“ID” INT not null ,
“NAME” VARCHAR(20),
“CITY_ID” INT not null ,
“YEAR” DATE not null,
primary key(“ID”, “YEAR”)
)
PARTITION BY RANGE (“YEAR”)
(
PARTITION “PART_1” VALUES LESS THAN (‘2001-01-01’),
PARTITION “PART_2” VALUES LESS THAN (‘2010-01-01’),
PARTITION “PART_3” VALUES LESS THAN (MAXVALUE)
);
2、哈希分区
存数据非常快,取数据慢,数据平均分配到各个子分区
create table “DMTEST”.“PORD”
(
“ID” INT not null ,
“NAME” VARCHAR(20),
“PID” INT not null ,
primary key(“ID”, “PID”)
)
PARTITION BY HASH (“PID”)
PARTITIONS 128
storage(initial 1, next 1, minextents 1, fillfactor 0) ;

六、快速数据加载 达梦:DMFLDR
1、[dmdba@DCP7-1 bin]$ ./dmfldr sysdba/dameng123 control=’/dm7/data/prod.ctl’ dmfldr V7.6.0.197-Build(2019.09.12-112648)ENT 控制文件输入参数出错,请确认以符号’作为首尾字符
#在linux 系统中路劲这里必须转移一下,Win平台不需要转义
[dmdba@DCP7-1 bin]$ ./dmfldr sysdba/dameng123 control=’/dm7/data/prod.ctl’
Dat 文件列数要和表的列数一致,数据类型也一致,不然后迁移出错。 Dmfldr 支持对大字段数据的载入和导出。
2、演示实例:
[root@localhost DM01]# cat sales.dat
1|AAA|1|1999-01-01
2|BBB|2|2001-01-01
3|CCC|3|2010-01-01
4|DDD|4|2020-01-01

[root@localhost DM01]# cat sales.ctl
LOAD DATA
INFILE ‘/dm7/data/DM01/sales.dat’
INTO TABLE DMTEST.SALES
FIELDS ‘|’

[root@localhost bin]# ./dmfldr sysdba/SYSDBA control=’/dm7/data/DM01/sales.ctl’

参数说明:
SKIP 参数用来设置跳过数据文件起始的逻辑行数,整型数值。默认的跳过起始行数为0 行。如果用户指定了多个文件,且起始文件中的行数不足 SKIP 所指定的行数,则dmfldr 工具会扫描下一个文件直至累加的行数等于 SKIP 所设置的行数或者所有文件都已扫描结束。
LOAD 参数用来设置装载的最大行数,整型数值。默认的最大装载行数为数据文件中的所有行数。LOAD 指定的值不包括 SKIP 指定的跳过的行数。
ROWS 参数用来设置每次提交的行数,整型数值。默认的提交行数为 50000 行。提交行数的值表示提交到服务器的行数,并不一定代表按照数据文件中的数据顺序的行数。用户 可以根据实际情况调整每次提交的行数,以达到性能的最佳点。ROWS 参数作用于 MODE 为IN 的情况下,当 MODE 为 OUT 时无效。
3、验证导入的数据和对应的分区。
七、表结构相同的两个表,从一个表导入到另一个表。
INSERT INTO T1 SELECT * FROM T2;
八、创建HUGE表空间和H01表。
1、创建 huge 表空间。
Create huge tablespace <表空间名> path <表空间路径>;
Create huge tablespace HTS PATH ‘/dm7/data/DAMENG/HUGE01/’;
案例 1:创建非事务型 huge 表 H1.
CREATE HUGE TABLE TEST.H1(A INT,B INT) STORAGE(WITHOUT DELTA);
案例 2:创建事务型 huge 表 H2.
CREATE HUGE TABLE TEST.H2(A INT,B INT) STORAGE( ON HTS, WITH DELTA);
九、备份与还原
1、停止实例服务。
通过DM服务查看器,停止服务。
DM服务查看器
2、启动DmAPService服务
3、启动DM控制台工具。新建备份。
DM控制台工具-新建备份
4、启动DM控制台工具。还原->恢复->更新DB_Magic
5、命令行方式备份和还原
用户也可以通过脱机备份、脱机还原的方式同步主库和备库数据,更详细的说明可以参
考备份恢复相关文档。具体步骤包括:

  1. 正常关闭数据库
  2. 进行脱机备份
    ./dmrman CTLSTMT=“BACKUP DATABASE ‘/dm7/data/DAMENG/dm.ini’ FULL TO
    BACKUP_FILE1 BACKUPSET ‘/dm7/data/BACKUP_FILE_01’”
  3. 拷贝备份文件到备库所在机器
  4. 执行脱机数据库还原与恢复
    ./dmrman CTLSTMT=“RESTORE DATABASE ‘/dm7/data/DAMENG/dm.ini’ FROM
    BACKUPSET ‘/dm7/data/BACKUP_FILE_01’”
    ./dmrman CTLSTMT=“RECOVER DATABASE ‘/dm7/data/DAMENG/dm.ini’ FROM
    BACKUPSET ‘/dm7/data/BACKUP_FILE_01’”
    十、数据守护
    所有主机网络互通,防火墙关闭,时间一致
    [root@dca01 ~]# iptables -F
    [root@dca01 ~]# service iptables status
    [root@dca01 ~]# chkconfig iptables off

1、搭建环境
主库 192.168.1.28 (外部服务)
192.168.2.28 (内部通信) GRP1_RT_01 NeoKylin Linux General Server release 6.0 (Dhaulagiri) DM V7.6
备库 192.168.1.38(外部通信)
192.168.2.31(内部通信) GRP1_RT_02 NeoKylin Linux General Server release 6.0 (Dhaulagiri) DM V7.6
监控 192.168.1.18 NeoKylin Linux General Server release 6.0 (Dhaulagiri) DM V7.6

2、端口规划
数据库名:DAMENG
实例名 PORT_NUM DW_PORT MAL_HOST MAL_PORT MAL_DW_PORT
主库 GRP1_RT_01 5236 5239 192.168.2.28 5237 5238
备库 GRP1_RT_02 5236 5239 192.168.2.38 5237 5238

3、数据准备(主库安装好数据库实例,备库我们要安装好数据库)
在开始布署数据守护系统之前,我们先要准备好主库和备库实例的相关数据,我们将主库的数据备份还原到备机上。
2.3.2.1脱机备份、脱机还原方式

  1. 正常关闭主数据库

  2. 进行脱机备份
    ./dmrman CTLSTMT=“BACKUP DATABASE ‘/dm7/data/DAMENG/dm.ini’ FULL TO BACKUP_FILE1 BACKUPSET ‘/dm7/backup/BACKUP_FILE_01’”

  3. 拷贝备份文件到备库所在机器
    scp /dm7/backup/BACKUP_FILE_01/. 192.168.1.38:/dm7/backup/BACKUP_FILE_01

  4. 在备机上执行脱机数据库还原与恢复
    ./dmrman CTLSTMT=“RESTORE DATABASE ‘/dm7/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/dm7/backup/BACKUP_FILE_01’”
    ./dmrman CTLSTMT=“RECOVER DATABASE ‘/dm7/data/DAMENG/dm.ini’ FROM BACKUPSET
    ‘/dm7/backup/BACKUP_FILE_01’”

./dmrman CTLSTMT=“RECOVER DATABASE ‘/dm7/data/DAMENG/dm.ini’ UPDATE DB_MAGIC”

5 配置主库
5.1配置 dm.ini
#实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过 16
INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 5236 #数据库实例监听端口
DW_PORT = 5239 #守护环境下,监听守护进程连接端口
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

5.2配置 dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.2.28 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5237 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.1.28 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 5238 #实例本地的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.2.38
MAL_PORT = 5237
MAL_INST_HOST = 192.168.1.38
MAL_INST_PORT = 5236
MAL_DW_PORT = 5238

5.3配置 dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_02 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm7/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

5.4配置 dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一OGUID 值
INST_INI = /dm7/data/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm7/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

5.5配置 dmwatcher.ctl
./dmctlcvt TYPE=3 SRC=/dm7/data/DAMENG/dmwatcher.ini DEST=/dm7/data

5.6启动主库
以mount 方式启动主库
./dmserver /dm7/data/DAMENG/dm.ini mount

5.7设置 OGUID
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL>sp_set_oguid(453331);
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);

5.8修改数据库模式
SQL>alter database primary;

6配置备库
6.1配置dm.ini
INSTANCE_NAME = GRP1_RT_02
PORT_NUM = 5236 #数据库实例监听端口
DW_PORT = 5239 #守护环境下,监听守护进程连接端口
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志重演信息

6.2 配置dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.2.28 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5237 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.1.28 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 5238 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.2.38
MAL_PORT = 5237
MAL_INST_HOST = 192.168.1.38
MAL_INST_PORT = 5236
MAL_DW_PORT = 5238

6.3 配置 dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_01 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm7/data/DAMENG/arch #本地归档文件路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

6.4配置 dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一OGUID 值
INST_INI = /dm7/data/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm7/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

6.5 配置 dmwatcher.ctl
同一个守护进程组,必须使用同一份 dmwatcher.ctl 文件,这里直接拷贝配置主库
时已经生成的 dmwatcher.ctl 到本地数据文件目录/dm7/data/DAMENG。

6.6 以 mount 方式启动备库
./dmserver /dm7/data/DAMENG/dm.ini mount

6.7 设置 OGUID
sp_set_oguid(453331);

6.8修改数据库模式
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1); ----第 1 步
SQL>alter database standby; ----第 2 步
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0); ----第 3 步

7配置监视器
由于主库和实时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。
和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知
实时备库接管为新的主库,具有自动故障处理的功能
修改 dmmonitor.ini 配置确认监视器,其中 MON_DW_IP 中的 IP 和 PORT 和
dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致。

MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /dm7/data/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值 #以下配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.2.28:5238
MON_DW_IP = 192.168.2.38:5238

8、启动守护进程(主备机)
/dm7/bin/dmwatcher
/dm7/data/DAMENG/dmwatcher.ini

9、启动监视器
./dmmonitor /dm7/dmmonitor.ini

DM7 达梦 数据库 数据守护(Data Watch) (16) – DW 备库 RSTAT 状态 INVALID 解决方法

restore database ‘/dm7/data/DAMENG/dm.ini’ from backupset ‘/dm7/backup/fullbak’

recover database ‘/dm7/data/DAMENG/dm.ini’ from backupset ‘/dm7/backup/fullbak’

5、注意事项:
DM Listener can not create socket or bind port: 32141, errno: 98.
Linux下端口被占用解决
有时候关闭软件后,后台进程死掉,导致端口被占用。下面以JBoss端口8083被占用为例,列出详细解决过程。
解决方法:
1.查找被占用的端口
netstat -tln
netstat -tln | grep 8083
netstat -tln 查看端口使用情况,而netstat -tln | grep 8083 则是只查看端口8083的使用情况
2.查看端口属于哪个程序?端口被哪个进程占用
lsof -i :8083
3.杀掉占用端口的进程
kill -9 进程id
十一、DEM
1、 通过netstat -tln查看端口,是否有8080来判断TOMCAT是否启动。
2、配置步骤:
创建一个数据库作为DEM后台数据库, 数据库dm.ini参数配置进行优化, 推荐配置:
MEMORY_POOL = 200
BUFFER = 1000
KEEP = 64
MAX_BUFFER = 2000
SORT_BUF_SIZE = 50
在该数据库中执行以下SQL脚本dem_init.sql,重启数据库实例;
SQL>set define off
SQL>set char_code utf8
SQL>start /dm7/web/dem_init.sql;
[dmdba@localhost bin] / e t c / r c . d / i n i t . d / D m S e r v i c e D M S E R V E R r e s t a r t 配 置 t o m c a t ( 1 ) 解 压 t o m c a t [ d m d b a @ l o c a l h o s t   ] /etc/rc.d/init.d/DmServiceDMSERVER restart 配置tomcat (1)解压tomcat [dmdba@localhost ~] /etc/rc.d/init.d/DmServiceDMSERVERrestarttomcat(1)tomcat[dmdba@localhost ]tar -xf apache-tomcat-7.0.39.tar
(2)在conf/server.xml中 <Connector port=“8080” protocol=“HTTP/1.1”… 追加属性字段 maxPostSize="-1"

(3)修改jvm启动参数,在catalina.sh加入如下内容:
JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxPermSize=512m -Djava.library.path=/dm7/bin"
配置后台数据库的连接信息:ip、port、用户名、密码信息等,在文件WEB-INF/db.xml(dem.war中)配置如下:


java -verbose

/usr/java/jdk1.8.0_152/

bash: ezport: command not found


(1)配置JAVA环境变量到dmdba用户的.bash_profile中,拷贝dem.war到apache的webapps中。
export JAVA_HOME=/usr/share/jdk1.6.0_45
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
[dmdba@localhost bin]$ cp /dm7/web/dem.war /home/dmdba/apache-tomcat-7.0.39/webapps/
(2)启动tomcat。
[dmdba@localhost bin]$./startup.sh
(3)修改db.xml,IP,端口,用户名密码等信息,根据时间进行调整。

<?xml version="1.0" encoding="UTF-8"?> dm7 192.168.10.63 5236 SYSDBA SYSDBA 50 100 500 60 select 1 ../sslDir/client_ssl/SYSDBA (4)关闭tomcat [dmdba@localhost bin]$ ./shutdown.sh 启动tomcat并且访问 (1)启动tomcat。 [dmdba@localhost bin]$./startup.sh (2)假设本机ip为192.168.10.63,开启浏览器访问url(http://192.168.10.63:8080/dem),登录(admin/888888)

十二、同义词
1、创建同义词
普通:
SQL> create synonym test.sy1 for dmhr.employee;
----dmhr.employee如果不存在,也能创建成功,但是查询同义词时会报错。
SQL> select * from test.sy1;

Linux常用命令:
ifconfig 查看IP;

dmserver 和 dmwatcher 必须用root用户启动。否则会有权限问题。

拷贝至备库服务器
cd /dm7/data/
scp -r DAMENG 192.168.12.11:/dm7/data/

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值