远程利用Web管理达梦数据库DM7告警

本文演示环境:

操作系统: Windows Server 2012 R2 Standard

数据库 :DM Database Server x64 V7.1.6.48-Build(2018.03.01-89507)ENT

01、部署DMAgent并添加数据库实例

在启用告警之前,我们需要提前部署好DEM、DMAgent以及添加需要监控的数据库实例,具体方法可以参考《远程利用Web管理DM7数据库—DMAgent监控篇》。

02、配置告警通知方式

DEM支持用邮箱和短信两种方式推送告警信息,在使用前需要先行配置。

2.1通过邮箱发送警告

如要通过邮箱发送警告,首先需要开启邮箱推送,并配置SMTP服务器的相关信息,具体方式如图。

这里我采用的是腾讯企业邮箱的SMTP服务器,工作中大家也可以根据实际情况进行设置。配置完成后,可以点击上方“邮件推送测试”,检测是否成功。

如果配置成功,则可以通过收件人收到对应的邮件。

2.2 通过短信发送警告

若需要启用短信通知

则需要借助DEM目录下WEB-INF/lib/demsdk.jar,

实现com.dameng.dem.server.util.IPhoneNotify 接口,将依赖包及实现类打包放入到WEB-INF/lib下,重启web容器,然后在系统配置中完成短信通知的相关配置即可。篇幅关系,这里就不具体演示了,有兴趣的同学可以自己进行测试。

03、配置告警

告警的配置分为三步,配置应用资源,配置告警规则,配置通知。下面就来一一演示。

3.1应用资源配置

首先添加一个新的告警,设置告警名称

选择需要监控的数据库实例

3.2告警规则配置

告警规则的配置也分两步,首先确定告警的度量

之后设置告警的运算规则

这里为了演示方便,我们设置规则为总会话数>=5,就开始报警。实际工作中,可以根据需求来选择报警。

3.3通知用户配置

第三步,选择用何种方式通知哪些,此处我们只有一个dmin用户,采用邮件的方式进行通知。

此时,告警的配置就完成了。

04、触发报警

我们设置的报警条件为总会话数>=5,此时我们只要在对应的实例上多开启几个会话,就很容易达到报警的要求,此处省略过程。

当我们开启了一定数量的会话之后,便会收到系统发送过来的告警邮件

邮件正文会告诉我们此时数据库违反了拿些规则,以及数据库当前的状态。同时我们通过DEM也可以在告警通知中查看到对应的告警信息。

至此,关于DEM工具相关的知识我们就分享完了,如果大家有兴趣在工作中使用DEM,也可以参考《DEM联机帮助手册》,该手册在DEM安装目录下help内可以找到。

达梦数据库(DM7)中网络通讯异常的排查方法

一、达梦数据库的服务没有启动

1)linux服务器执行 ps -ef|grep dmserver,查看进程是否存在;

2)windows服务器,使用达梦服务查看器(dmdbms\tool\dmservice.exe查看达梦数据库实例服务)检查服务是否启动,或者用windows自带的服务查看器(cmd运行services.msc),查看达梦数据库实例服务状态;

二、远程访问被防火墙拦截

如果服务在本地连接正常,但是使用远程连接时提示网络异常,一般情况下是防火墙引发的问题。此时需要检查防火墙相关设置,一般生产系统是不允许直接关闭防火墙的,那么就需要在数据库服务器上开启对应端口远程访问的权限(默认为5236)。

此处已Linux下为例:

直接编辑/etc/sysconfig/iptables文件

1、编辑/etc/sysconfig/iptables文件:vi /etc/sysconfig/iptables

加入内容并保存:-A RH-Firewall-1-INPUT -m state–state NEW -m tcp -p tcp –dport 5236 -j ACCEPT

2、重启服务:/etc/init.d/iptablesrestart

3、查看端口是否开放:/sbin/iptables-L -n

三、端口号不对

达梦数据库默认端口号为5236,使用达梦管理工具或jdbc等其他接口访问数据库,若未单独指定端口号,则默认使用5236端口;

端口号相关设置默认在dmdbms/data/DAMENG目录下的dm.ini文件中搜索PORT_NUM,确认端口号后,再使用正确的端口号访问

参数说明:

PORT_NUM 服务器通讯端口号, 有效值范围(1024~65534),默认值5236

四、达到最大会话数限制,无法建立新的连接

解决方法:

1)先确定是否达到最大会话数限制

在dmdbms/log目录下,查看当月日志,例如,本月(8月)的日志名为:dm_DMSERVER_201808.log 若日志中有reach the maxsession limit的提示,则说明达到最大会话数限制。

2)确认是由此原因导致无法访问数据库,则需要进行以下两个方面的排查

a. 应用连接池配置,连接池最大会话数要进行合理的设置

b. dm.ini文件中,MAX_SESSIONS参数,默认为100,可根据实际需要调整

参数说明:

MAX_SESSIONS 系统允许同时连接的最大数,同时还受到LICENSE的限制,取二者中较小的值,有效值范围(1~65000)

3)若应用连接池设置的最大连接数设置为500,且li cense为正式企业版、测试企业版,则需要修改dm.ini中MAX_SESSION参数>500

在数据库中执行SP_SET_PARA_VALUE(2,’MAX_SESSIONS’,600);

WordPress开启多站点功能以及插件MU Domain Mapping教程

WordPress开源的强大,无与伦比,插件主题应有尽有,作为全球最流行的博客、CMS、论坛、商城程序,使用wordpress建立多个站点,不在话下。

自wordpress3.0开始就支持多站点了,就是一个博客程序可以安装多个网站,这些网站共享一个数据库,只是前缀不一样。有个用户数据库表是共用的,表 wp_usermeta 和 wp_users。

博客的一切功能都可以单独管理,插件主题,可以自由选择,不过有一些插件不支持多站点。

第一步:开通wordpress网络设置

1、先安装一个域名作为主站,打开网站根目录下的wp-config.php文件,在底部equire_once(ABSPATH . ‘wp-settings.php’);前面加上以下代码:

define(‘WP_ALLOW_MULTISITE’,true);

2、刷新页面后,工具下出现了个配置网络,这里可以选择子域名或子目录做站两种表现形式进行安装。

3、点击安装后,提示DNS配置错误,需要修改DNS设置和修改WordPress规则。

4、先是添加代码到wp-config.php文件。

或选择子域名方式:主站有不错的内容质量,可以考虑子域名做站,安装博客时主站使用www.可以在设置”->“常规”里面,把站点地址(URL)的www.去掉。

define(‘MULTISITE’, true);

define(‘SUBDOMAIN_INSTALL’, true);

define(‘DOMAIN_CURRENT_SITE’, ‘duimin.com’);

define(‘PATH_CURRENT_SITE’, ‘/’);

define(‘SITE_ID_CURRENT_SITE’, 1);

define(‘BLOG_ID_CURRENT_SITE’, 1);

或选择子目录:如果主站内容少,质量差,可以考虑用子目录做站。

define(‘MULTISITE’, true);

define(‘SUBDOMAIN_INSTALL’, false);

define(‘DOMAIN_CURRENT_SITE’, ‘duimin.com’);

define(‘PATH_CURRENT_SITE’, ‘/’);

define(‘SITE_ID_CURRENT_SITE’, 1); define(‘BLOG_ID_CURRENT_SITE’, 1);

修改主站域名配置文件,位置一般在/usr/local/nginx/conf/vhost/duimin.com.conf,如果使用的BT面板,在域名管理中配置文件里 } 的上一行,添加下边代码。

rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
if (-f $request_filename){
set $rule_2 1;
}
if (-d $request_filename){
set $rule_2 1;
}
if ($rule_2 = “1”){
#ignored: “-” thing used or unknown variable in regex/rew
}
rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
rewrite /. /index.php last;

5、刷新博客后台,神奇的一刻出现了,多了一个我的站点,我的站点下的管理网络,就进入了站点管理功能中。

6、点击添加站点,输入一个二级域名,新网站的标题和管理员邮箱。

7、添加成功后,点击所有站点下的新网站域名,编辑。

8、可以更改成任何的二级、一级、顶级域名。

第二步、配置绑定多域名

1、然而,添加域名,www和不带www的都添加上,必须安装个插件,才能绑定别的域名,下载安装 WordPress MU Domain Mapping 插件后台搜索MU Domain Mapping,安装网络激活即可,再把插件里面 sunrise.php 文件移到 /wp-content目录中。

2、根目录下的wp-config.php文件中,添加代码。刷新后台,出现一个domains的功能。

define(‘SUNRISE’, ‘on’);

3、获取站点的ID,点击域名编辑,看浏览器域名后边的编号,比如显示/site-info.php?id=2。比如咱们要为刚才ID2的img.duimin.com再绑定一个域名,点击设置下的domains,进行绑定。

4、如此,绑定就成功了,域名解析到主机IP,就可以访问新站了。

PS:

剩下的就是为不同的博客设置不同的主题和插件了。如此一个强大的wordpress站群系统就建成了,特别适合seo多站运营,让建站和管理的速度提高了好几倍。多站点功能支持WP Super Cache,妥妥的,没毛病。

聚合和拆分开,比较麻烦,每新建一个网站,数据前缀就增加一个数,比如B站wp_2_,C站wp_3_,所以如果是搬家搬入的话,需要把原来的数据库表前缀修改以下,建议在原来站点使用插件变更。搬入后用户数据库表公用wp_的,所以原来站点的用户都不会出现。

如果是搬出B站的话,导出wp_2_,在导出wp_usermeta 和 wp_users。用户的两个表格,把这两个表格里的wp_批量修改为wp_2_,然后再正常wordpress搬家就行了。

windows下端口映射

1.用windows的netsh实现
优点:
(1)部署简单。Windows自带,支持IPv4和IPv6
(2)不用重启机器,还长记性。命令即时生效,重启系统后配置仍然存在.
缺点:
(1)不支持UDP
(2)XP/2003需要先安裝IPV6,Win7以上系统自带.
用法:
下面都是命令行
(1)安装环境支持
netsh interface ipv6 install

(2)查看已配置的“端口映射”清单
netsh interface portproxy show v4tov4

(3)添加“端口映射”
netsh interface portproxy add v4tov4 listenaddress=192.168.222.145 listenport=15001 connectaddress=192.168.222.63 connectport=81
将本机(192.168.222.145)的15001端口映射到192.168.222.63的81端口

(4)删除“端口映射”
netsh interface portproxy delete v4tov4 listenaddress=192.168.222.145 listenport=15001

2.用SSH端口转发实现
https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/
http://koumm.blog.51cto.com/703525/1318975

linux环境下上安装sql server 2017

先决条件

您必须具有的 RHEL 7.3、 7.4、 7.5 或 7.6 计算机至少 2 GB的内存。

若要在自己的计算机上安装 Red Hat Enterprise Linux,请访问 https://access.redhat.com/products/red-hat-enterprise-linux/evaluation  也可在 Azure 中创建 RHEL 虚拟机。 请参阅使用 Azure CLI 创建和管理 Linux VM,并在对 az vm create 的调用中使用 --image RHEL

如果以前已安装的 CTP 或 SQL Server 2017 的 RC 版本,必须执行以下步骤之前先删除旧存储库。 有关详细信息,请参阅配置 Linux 存储库以用于 SQL Server 2017 和 2019年

其他系统要求,请参阅Linux 上的 SQL Server 的系统要求

安装 SQL Server

若要在 RHEL 上配置 SQL Server,请在终端中运行以下命令,以便安装mssql server包:

  1. 下载 Microsoft SQL Server 2017 Red Hat 存储库配置文件:
    bash
    sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
    

     提示

    如果你想要试用 SQL Server 2019,则必须改为注册预览版 (2019) 存储库。 对于 SQL Server 2019 安装中使用以下命令:

    bash
    sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-preview.repo
    
  2. 运行以下命令,安装 SQL Server:
    bash
    sudo yum install -y mssql-server
    
  3. 程序包安装完成后,请运行 mssql-conf setup 命令并按提示设置 SA 密码,然后选择版本。
    bash
    sudo /opt/mssql/bin/mssql-conf setup
    

     提示

    以下 SQL Server 2017 版本自由地授予使用许可:评估、 开发人员版和 Express。

     备注

    请确保为 SA 帐户指定强密码(最少 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号)。

  4. 配置完成后,请验证服务是否正在运行:
    bash
    systemctl status mssql-server
    
  5. 若要允许远程连接,请在 RHEL 上打开防火墙上的 SQL Server 端口。 默认的 SQL Server 端口为 TCP 1433。如果对防火墙使用 FirewallD,可以使用以下命令:
    bash
    sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
    sudo firewall-cmd --reload
    

SQL Server 目前正在 RHEL 计算机上运行,可以使用了!

安装 SQL Server 命令行工具

若要创建数据库,需要使用一个能够在 SQL Server 上运行 Transact-SQL 语句的工具进行连接。 以下步骤安装 SQL Server 命令行工具: sqlcmdbcp

  1. 下载 Microsoft Red Hat 存储库配置文件。
    bash
    sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
    
  2. 如果你有旧版mssql 工具安装,请删除任何较旧的 unixODBC 包。
    bash
    sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
    
  3. 运行以下命令以安装 mssql-tools 和 unixODBC 开发人员包。
    bash
    sudo yum install -y mssql-tools unixODBC-devel
    
  4. 为方便起见,请将 /opt/mssql-tools/bin/ 添加到 PATH 环境变量。 这样就可以在运行工具时不指定完整路径。 请运行以下命令,以便修改登录会话和交互/非登录会话的 PATH
    bash
    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
    source ~/.bashrc
    

本地连接

以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例。

  1. 使用 SQL Server 名称 (-S),用户名 (-U) 和密码 (-P) 的参数运行 sqlcmd。 在本教程中,用户进行本地连接,因此服务器名称为 localhost 用户名为 SA,密码是在安装过程中为 SA 帐户提供的密码。
    bash
    sqlcmd -S localhost -U SA -P '<YourPassword>'
    

     提示

    可以在命令行上省略密码,以收到密码输入提示。

     提示

    如果以后决定进行远程连接,请指定 -S 参数的计算机名称或 IP 地址,并确保防火墙上的端口 1433 已打开。

  2. 如果成功,应会显示 sqlcmd 命令提示符:1>
  3. 如果连接失败,请首先尝试根据错误消息诊断问题。 然后查看连接故障排除建议

创建和查询数据

下面各部分将逐步介绍如何使用 sqlcmd 新建数据库、添加数据并运行简单查询。

新建数据库

以下步骤创建一个名为 TestDB 的新数据库。

  1. 在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:
    SQL
    CREATE DATABASE TestDB
    
  2. 在下一行中,编写一个查询以返回服务器上所有数据库的名称:
    SQL
    SELECT Name from sys.Databases
    
  3. 前两个命令没有立即执行。 必须在新行中键入 GO 才能执行以前的命令:
    SQL
    GO
    

 提示

若要详细了解如何编写 Transact-SQL 语句和查询,请参阅教程:编写 Transact-SQL 语句

插入数据

接下来创建一个新表 Inventory,然后插入两个新行。

  1. 在 sqlcmd 命令提示符中,将上下文切换到新的 TestDB 数据库:
    SQL
    USE TestDB
    
  2. 创建名为 Inventory 的新表:
    SQL
    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. 将数据插入新表:
    SQL
    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
    
  4. 要执行上述命令的类型 GO
    SQL
    GO
    

选择数据

现在,运行查询以从 Inventory 表返回数据。

  1. 通过 sqlcmd 命令提示符输入查询,以返回 Inventory 表中数量大于 152 的行:
    SQL
    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. 执行命令:
    SQL
    GO
    

退出 sqlcmd 命令提示符

要结束 sqlcmd 会话,请键入 QUIT

SQL
QUIT

性能最佳实践

在 Linux 上安装 SQL Server 后, 查看配置 Linux 和 SQL Server 来提高生产方案的性能的最佳做法。 有关详细信息,请参阅的性能最佳实践和 Linux 上的 SQL Server 配置准则

跨平台数据工具

除了sqlcmd,可以使用以下跨平台工具来管理 SQL Server:

Azure 数据 Studio 跨平台 GUI 数据库管理实用程序。
mssql-cli 用于运行 TRANSACT-SQL 命令的跨平台命令行界面。
Visual Studio Code 运行 TRANSACT-SQL 语句,mssql 扩展通过一个跨平台 GUI 代码编辑器。

从 Windows 连接

Windows 上的 SQL Server 工具连接到 Linux 上的 SQL Server 实例,操作方式与连接到任何远程 SQL Server 实例一样。

如果有一台可以连接到 Linux 计算机的 Windows 计算机,请从运行 sqlcmd 的 Windows 命令提示符尝试执行本主题中的相同步骤。 仅验证所使用的是目标 Linux 计算机名称或 IP 地址,而非 localhost,并确保 TCP 端口 1433 已打开。 如果从 Windows 进行连接存在任何问题,请参阅连接故障排除建议

有关在 Windows 上运行,但连接到 Linux 上的 SQL Server 的其他工具,请参阅: