达梦数据库初学--小坑介绍

初学,使用虚拟机安装学习测试,遇到的小坑记录

一、准备工作
1.必须关闭防火墙!
关闭防火墙 和 Selinux:
[root@px ~]# service iptables stop
[root@px ~]# chkconfig iptables off

2.作为学习,粗暴点,尽量给你安装的数据库文件夹或创建的用户更多权限。

[root@px ~]# mkdir -p /dm/dmdbms
[root@px ~]# mkdir -p /dm/dmarch
[root@px ~]# mkdir -p /dm/dmbak
[root@px ~]# chown -R dmdba:dinstall /dm/
[root@px ~]# chmod -R 775 /dm/

dm 是安装数据库的文件夹名,dmdba:dinstall 是用户名和组
碰见了创建的新用户无权限调用tool工具的问题,再暴力点,给个777吧。

3.配置环境变量
在之前创建的用户的~/.bash_profile 里添加如下内容:
[dmdba@px ~]$ vim ~/.bash_profile

.bash_profile # Get the aliases and functions

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
dms

User specific environment and startup programs

PATH= P A T H : PATH: PATH:HOME/bin

export PATH
(加以下内容,路径为数据库所在)
export DM_HOME="/dm/dmdbms"
export LD_LIBRARY_PATH="/dm/dmdbms/bin: L D L I B R A R Y P A T H " e x p o r t P A T H = " / d m / d m d b m s / b i n : LD_LIBRARY_PATH" export PATH="/dm/dmdbms/bin: LDLIBRARYPATH"exportPATH="/dm/dmdbms/bin:PATH"

注意,在DM 软件安装时会自动添加DM_HOME 和 LD_LIBRARY_PATH 变量,这里只需要添加PATH即可。

4.安装gcc
(1)yum安装
(2)小白安装
https://blog.csdn.net/faintlight/article/details/103514065

用的中标麒麟,没有gcc,centOs也是没有的

二、达梦数据的安装

复制安装文件: 将DM的ISO上传到Linux系统,并挂载:
[root@px ~]# mount dmdba_setup_centos7_64_ent_7.6.0.145_20190325.iso /mnt

[root@px /]# cd /mnt
[root@px mnt]# ls
DMInstall.bin DM_Install_en.pdf DM_Install_zh.pdf release_en.txt release_zh.txt

**将安装文件复制到/dm 目录下并修改安装文件权限:

[root@px mnt]# cp DMInstall.bin /dm/
[root@px mnt]# cd /dm
[root@px dm]# ll
total 522052
-r-xr-xr-x. 1 root root 534580108 Feb 22 23:06 DMInstall.bin
[root@dm1 dm]# chown dmdba:dinstall DMInstall.bin
[root@dm1 dm]# ll
-r-xr-xr-x. 1 dmdba dinstall 534580108 Feb 22 23:06 DMInstall.bin
[root@px dm]#chmod a+x DMInstall.bin
这个要做,不然创建的用户依然无法安装

[dmdba@px dm]$ ls
dmdbms DMInstall.bin
[dmdba@px dm]$ ll
total 511628
drwxrwxr-x. 2 dmdba dinstall 4096 Dec 4 22:07 dmdbms
-rw-r–r--. 1 dmdba dinstall 523895894 Dec 4 22:29 DMInstall.bin
[dmdba@px dm]$ ./DMInstall.bin
用dmdba用户执行./DMInstall.bin 程序,开始图形安装或命令号安装
[dmdba@px dm]$ ./DMInstall.bin -i
在安装结束的时候,会提示我们是否初始化数据库,我们这里选择不初始化,结束安装。

坑点:
1.挂载有时候挂不上,可以暴力点,将DMInstall.bin直接手动复制到相应的文件夹去,和windows一样;
2.读写权限一定要注意修改;
3.安装路径一定要和之前环境变量里的一致,如果修改了路径,就修改环境变量里的路径.
4.使用命令行安装的,要注意不要一路Enter,再次强调路径,默认的是建在
/home目录里,请手动输入之前bash_profile里修改的路径。
5.安装完成后一定要做以下操作:
有提示的,注意看,让你用root权限运行,不要漏了。
[root@px ~]# /dm/dmdbms/script/root/root_installer.sh
Move /dm/dmdbms/bin/dm_svc.conf to /etc
Modify the files’ mode of DM Server
Create the DmAPService service
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
Finished to create the service (DmAPService)
Start the DmAPService service

三、创建数据库实例
DM数据库创建实例有两种方式
1)dminit命令
2)/dm/dmdbms/tool 目录下的dbca.sh工具。
小白建议第二种,也可以暴力点,直接在文件系统里找到后运行

最后使用disql登录验证一下:
[dmdba@px ~]$ disql SYSDBA/SYSDBA@px:5236

Server[px:5236]:mode is normal, state is open
login used time: 9.988(ms)
disql V7.6.0.145-Build(2019.03.20-104220)ENT
SQL> select * from v$version;

LINEID BANNER


1 DM Database Server x64 V7.6.0.145-Build(2019.03.20-104220)ENT
2 DB Version: 0x7000a

used time: 7.566(ms). Execute id is 2107.
SQL>

坑点:
1.disql验证的时候报错,一般是端口没配好吧,后面解决了来改。
报错就[dmdba@px ~]$ disql SYSDBA/SYSDBA或[dmdba@px ~]$ disql

2.启动实例啊,巨坑,卡了好久
以下是7的命令
[root@px ~]# mv /dm/dmdbms/bin/DmServicedave.service /usr/lib/systemd/system/DmServicedave.service
[root@px ~]# systemctl enable DmServicedave.service
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicedave.service to /usr/lib/systemd/system/DmServicedave.service.
[root@px ~]# systemctl start DmServicedave.service

以下是6的命令
6文件放在 /etc/rc.d/init.d里面
[root@px init.d]# service DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]

四、DM Manager 工具使用
小白啊,所以用这个

坑点:
1.创建表空间、用户、表,按这个顺序来,当然可以后面改,关联起来。
2.归档
达梦数据库初学--小坑介绍_第1张图片
达梦数据库初学--小坑介绍_第2张图片配置—转换—归档配置
大坑在这儿,配置完后,一定要再次还原到打开状态,不然DM Manager少很多功能。

如果用命令行可以跳过这个坑。

五、控制台工具(console)使用

1.大坑,这个是冷备用的,一定要关DB,暴力点就在
/dm/dmdbms/tool 里将dmservice.sh运行吧,命令就照路径敲就行了。
然后关掉DmServiceDMSERVER,这个名字是根据你建的实例来的,后面大写部分就是自己建的实例名。

达梦数据库初学--小坑介绍_第3张图片
2.备份啊
大坑继续,上图的DmAPService一定要启动,报错的话,就在/dm/dmdbms/bin里找到DM_PIPE开头的文件都删掉,然后重新启动就可以了。

3.备份路径
这个工具每次备份的路径只有一次,再次备份请新建个路径。

4.恢复
要先还原后恢复哦,还原只是还原到你备份的时间点,恢复是读取归档里的数据恢复到之后的某个时间点的内容,减少损失。
还原—恢复
restore–recover

六.ODBC

手动配置

查找驱动文件:
[root@px unixODBC-2.3.0]# find / -name libdodbc.so
/dm7/dmdbms/bin/libdodbc.so

编辑/etc/odbcinst.ini,输入如下内容:
[root@dm8 /]# cat /etc/odbcinst.ini
[DM7 ODBC DRIVER]
Description = ODBC DRIVER FOR DM7
Driver = /dm7/dmdbms/bin/libdodbc.so

[root@dm8 /]#

编辑/etc/odbc.ini,输入如下内容:不要留空格和空行
[root@px unixODBC-2.3.0]# cat /etc/odbc.ini
[dm] (就是后面的测试账号)
Description = DM ODBC DSN (这个是描述,根据实际写)
Driver = DM7 ODBC DRIVER (对应odbcinst中的,要改都改)
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236
[root@px unixODBC-2.3.0]#

()注:可以在此直接建文件,不用加载配置
[root@lj unixODBC-2.3.0]# cd /usr/local/etc/
[root@lj etc]# ls
ODBCDataSources odbc.ini odbcinst.ini
[root@lj etc]# cat odbc.ini
[root@lj etc]# cat odbcinst.ini
[root@lj etc]# vim odbc.ini
[root@lj etc]# vim odbcinst.ini

加载配置文件:
[root@px unixODBC-2.3.0]# odbcinst -i -d -f /etc/odbc.ini
odbcinst: Driver installed. Usage count increased to 1.
Target directory is /usr/local/etc
[root@px unixODBC-2.3.0]# odbcinst -i -s -l -f /etc/odbc.ini
[root@px unixODBC-2.3.0]#

验证ODBC: 使用DM 用户连接
[root@px unixODBC-2.3.0]# isql -v dm
[01000][unixODBC][Driver Manager]Can’t open lib ‘/dm7/dmdbms/bin/libdodbc.so’ : file not found
[ISQL]ERROR: Could not SQLConnect
[root@px unixODBC-2.3.0]#

[dmdba@px ~]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 68.756(毫秒)
disql V7.6.0.95-Build(2018.09.13-97108)ENT
Connected to: DM 7.1.6.95
SQL> exit
[dmdba@px ~]$ isql -v dm
±--------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
±--------------------------------------+
SQL>

SQL> create table cndba as select * from sysobjects;
SQLRowCount returns -1
SQL> select count(1) from cndba;
±--------------------+
| COUNT(1) |
±--------------------+
| 1409 |
±--------------------+
SQLRowCount returns 1
1 rows fetched
SQL>

连接成功。
路径错误如下:
[root@px etc]# cat odbc.ini
[dm]
Description = DM ODBC DSN
Driver = DM7 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236
[root@px etc]# cat odbcinst.ini
[DM7 ODBC DRIVER]
Description = ODBC DRIVER FOR DM7
Driver = /dm/dmdbms/bin/libdobdc.so
[root@px etc]# vim odbcinst.ini
[root@px etc]# vim odbc.ini
[root@px etc]# su - dm
su: 用户dm 不存在
[root@px etc]#
[root@px etc]#
[root@px etc]# su - dmdba
[dmdba@px ~]$ isql -v dm
[01000][unixODBC][Driver Manager]Can’t open lib ‘/dm/dmdbms/bin/libdobdc.so’ : file not found
[ISQL]ERROR: Could not SQLConnect
[dmdba@px ~]$ ps -ef|grep dm.ini
dmdba 2448 1 0 08:04 ? 00:00:03 /dm/dmdbms/bin/dmserver /dm/dmdbms/data/DAMENG/dm.ini -noconsole
dmdba 2902 2874 0 08:24 pts/0 00:00:00 grep dm.ini
[dmdba@px ~]$ ll /dm/dmdbms/bin/libdobdc.so
ls: 无法访问/dm/dmdbms/bin/libdobdc.so: 没有那个文件或目录
[dmdba@px ~]$ ls /dm/dmdbms/bin/libd
Display all 117 possibilities? (y or n)
[dmdba@px ~]$ ls /dm/dmdbms/bin/libdodbc.so
/dm/dmdbms/bin/libdodbc.so
[dmdba@px ~]$ ll /dm/dmdbms/bin/libdodbc.so
-rwxr-xr-x 1 dmdba dinstall 164814 12月 12 19:56 /dm/dmdbms/bin/libdodbc.so
[dmdba@px ~]$ exit
logout
[root@px etc]# pwd
/usr/local/etc
[root@px etc]# ls
ODBCDataSources odbc.ini odbcinst.ini
[root@px etc]# vim odbcinst.ini
[root@px etc]# su - dmdba
[dmdba@px ~]$ isql -v dm
±--------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
±--------------------------------------+
SQL> ^C
[dmdba@px ~]$

坑点:
1.编辑时不要留空行、空格。

2.[root@px unixODBC-2.3.0]# cat /etc/odbc.ini
[dm] (就是后面的测试账号)
Description = DM ODBC DSN (这个是描述,根据实际写)
Driver = DM7 ODBC DRIVER (对应odbcinst中的,要改都改)
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236

3.[root@dm8 /]# cat /etc/odbcinst.ini
[DM7 ODBC DRIVER]
Description = ODBC DRIVER FOR DM7
Driver = /dm7/dmdbms/bin/libdodbc.so(路径一定要通过find命令查找,一致)

4.验证时不要用root账号,会懵逼的,什么都是对的,验证不了。用你创建的账户,上面是账户dmdba。

你可能感兴趣的:(基本操作)