DB2数据库管理器配置参数SRVCON_AUTH

环境:winXP, DB2 9.7

C:\\Documents and Settings\\rand>db2 get dbm cfg | findstr /i “authentication”

Server Connection Authentication          (SRVCON_AUTH) = NOT_SPECIFIED

Database manager authentication        (AUTHENTICATION) = SERVER

srvcon_auth —> 指定当处理服务器上的入局连接时如何进行用户认证以及在何处进行用户认证,如果未指定值,则DB使用 authentication 数据库管理器配置参数的值。

authentication —-> 数据库管理器连接配置,连接实例的使用该方式。

DB2分割镜像来备份数据库

分割镜像是对那些含有数据库数据的镜像磁盘里面数据库的“瞬时”拷贝,当需要数据库的备份拷贝的时候,将镜像分割。进行镜像是一个将数据库中的所有数据同时写入两个独立的磁盘(或者是磁盘子系统)的处理过程;其中一个磁盘/子系统保存数据库数据,另一个磁盘/子系统则保存对前一个磁盘/子系统的精确备份(被称为镜像)。镜像的分割只是将数据库的主拷贝和副拷贝相互分离开来。

在DB2数据库的分割镜像拷贝能够被使用之前,必须首先将其初始化;一个分割镜像数据库拷贝可以通过执行系统命令db2inidb来进行初始化。这个命令的语法如下:
db2inidb [DatabaseAlias]
AS [SNAPSHOT | MIRROR | STANDBY]

可以以如下三种方式中的一种来初始化:
* SNAPSHOT(快照)  数据库的分割镜像拷贝可作为基本数据库的克隆来初始化。(它可成为一个拥有自己的事务日志文件的工作拷贝)
* MIRROR(镜像)  数据库的分割镜像拷贝可作为恢复基本数据库使用的备份镜像来初始化。
* STANDBY(备用)  数据库的分割镜像拷贝可被初始化,并被设置为向前回滚的未决状态,这样它就总是可以与基本数据库保持同步。(在任何时间里,基本数据库产生的新的日志都可被检索,并且可被应用到数据库拷贝中。)因此,当基本数据库由于某些原因而崩溃时,数据库的备用拷贝就可以接替基本数据库的位置了。

下面介绍Mirror步骤过程:

1. 确定启动该数据库归档进程 (设置logarchmeth1)

2. 挂起数据库的I/O  (set write suspend for database)

3. 使用OS命令拷贝该数据库的存储文件,不包括日志归档文件

4.恢复数据库的I/O (set write resume for database)

5. 假设该数据库破坏,将之前备份的副本覆盖到该数据库

6. 启动实例db2start

7. 初使化数据库 ( db2inidb [dbalias] as mirror)

8, 应用日志归档文件 ( rollforward db [dbalias] to end of logs and stop)

DB2删除模式下对象

环境:  Windows XP,   DB2 V9.7

DB2有删除模式的语句drop schema xxx restrict, 但只能在该模式没有对象的情况下才能执行。因此就有一个存储过程ADMIN_DROP_SCHEMA用于删除模式下的对象和模式本身。其语法为:ADMIN_DROP_SCHEMA(schemadropmode,errortabschemaerrortab)。例如: db2 call admin_drop_schema(‘DB2ADMIN’,NULL, ‘ERRORSCHEMA’, ‘ERRORTABLE’),  这个过程不支持删除nicknames ,packages ,typed tables

db2 设置语句结束符

环境: db2 9.5 , windows xp

设置方法: 在cmd命令行中输入 db2set db2options=td;

其中td为设置的结束符的标识,而;为设置好的结束符。

 

********************************************************************************

 

在db2环境下写存储过程,函数和触发器时,由于这些语句中;为语句终止符,所以需要重新设置语句终止符。方法如下:

在语句开始前输入 –#SET TERMINATOR @,这样将这些单元的终止符设置为@。

语句结束后输入 –#SET TERMINATOR ;

数据库查询配置值

Oracle :    show parameter 配置名

DB2 :    ! db2 get db cfg for 数据库名 | find /i “配置名”

SQL Server :  select * from sys.configuration  (sql server 2005)

PostgreSQL :  show all 或 show 参数名

MySQL :   show variables 或 show variables like ‘参数名%’

搭配私人和公共的IM平台

环境:Ubuntu 12.04, Pidgin, pidgin-lwqq, Spark, ejabberd

由于个人经常在Ubuntu平台上操作,而这个平台上基于XMPP协议和跨平台比较好用的客户端有pidgin和spark,因而可以自己搭配私人的IM的平台。同时要跟外部QQ通信,因而希望其支持。

具体步骤如下:

安装ejabberd

1. 安装erlang
sudo apt-get install erlang

2. 安装ejabberd
sudo apt-get install ejabberd

3. 修改ejabberd.cfg,增加管理员用户,密码和主机名
vi /etc/ejabberd/ejabberd.cfg

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Options which are set by Debconf and managed by ucf

%% Admin user
{acl, admin, {user, “jerry”, “hq”}}.

%% Hostname
{hosts, [“hq”]}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

4. 修改hosts,增加ip与主机名对应
sudo vi /etc/hosts

192.168.56.101  hq

5. 修改ejabberd管理员密码
sudo ejabberdctl register jerry hq jerry

6. 重启ejabberd服务
sudo service ejabberd restart

****************************************************************************************************************************

安装pidgin和pidgin-lwqq

1.  安装pidgin
sudo apt-get install pidgin

2. 安装pidgin-lwqq
sudo add-apt-repository ppa:lainme/pidgin-lwqq
sudo apt-get update
sudo apt-get install pidgin-lwqq

****************************************************************************************************************************

启动并使用pidgin

1. 启动pidgin
jerry@hq:~$ pidgin

2. 与QQ通信
增加帐户,”Basic”项目栏protocol指定为WebQQ,输入QQ的用户名和密码即可

3. 私人通信
增加帐户,”Basic”项目栏protocol指定为XMPP,”Advanced”项目栏上输入主机和端口(例: hq, 5222, 此信息是ejabberd所提供的)

至止,可以跨平台跨各种通信协议来使用自己的和外部的即时通信了

Octave 数值计算

环境: Ubuntu 12.04 ,  Octave 3.8.2

Octave是一个旨在提供与Matlab语法兼容的开放源代码科学计算数值分析的工具,它支持向量和矩阵计算,方便写数学表达式。

安装步骤如下:
wget ftp://ftp.gnu.org/gnu/octave/octave-3.8.2.tar.gz
tar xvf octave-3.8.2.tar.gz
cd octave-3.8.2
./configure
make
sudo make install

进入命令行:
jerry@hq:~$ octave
warning: docstring file ‘/usr/local/share/octave/3.8.2/etc/built-in-docstrings’ not found
No protocol specified
GNU Octave, version 3.8.2
Copyright (C) 2014 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type ‘warranty’.

Octave was configured for “x86_64-unknown-linux-gnu”.

Additional information about Octave is available at http://www.octave.org.

Please contribute if you find this software useful.
For more information, visit http://www.octave.org/get-involved.html

Read http://www.octave.org/bugs.html to learn how to submit bug reports.
For information about changes from previous versions, type ‘news’.

octave:1>

octave:28> version
ans = 3.8.2
octave:29> pi
ans =  3.1416
octave:30> A
A =

1   2
3   4

octave:31>

MySQL 导出导入二进制文件

环境:winXP, mysql, Redhat

在一次从RHEL 5 dump整个数据库并在winXP下恢复,由于有一个表包含图片数据,导致“’”分隔符被吞噬(由于二进制编码的问题,引号分隔符被当作了数据的一部分),从而使得数据不能被正常导入。造成整个数据库无法导入。

解决方法:1.  使用select [binary_column] into dumpfile ‘dump_dir’ from [table_name], 然后在命令行中insert into table(binary_column) values(load_file(‘dump_dir’)); 由于只能导出单行。用起来相当麻烦。

2.  使用select col1, col2, … , hex([binary_column])  into outfile ‘dump_dir’ from [table_name], 然后在命令行中导入load data infile ‘dump_dir’ into table [table_name], 最后将之前转化为十六制的字段再转为二进制 update [table_name] set [binary_column] = unhex([binary_column]),这样就完成导入过程。

MySQL 与OS交互

环境:RHEL 5,  MySQL 5

一直都以为mysql 不能像oracle/db2/sql server那样在存储过程或函数中执行操作命令,今天在网上发现有个lib_mysqludf_sys可以实现这种功能。这个库文件在http://www.mysqludf.org/lib_mysqludf_sys/index.php上。

解压后其中有一个库文件是lib_mysqludf_sys.so,将其中放到mysql的 –plug-dir目录下(ps -ef | grep mysql可以查到plug-dir 或 在mysql命令行中查询select @@plugin_dir;),重新启动mysql服务。进入mysql命令行中,选择mysql数据库,执行CREATE FUNCTION sys_eval RETURNS STRING SONAME ‘lib_mysqludf_sys.so’; 这样就可以执行OS命令了,mysql>select sys_eval(‘ls’);