Informix数据库学习随笔

一、 Window下informix安装教程

informix 11.5 安装教程:https://wenku.baidu.com/view/4dc0977c590216fc700abb68a98271fe910eafd9.html

informix 11.7 安装教程:https://wenku.baidu.com/view/ec43f1fbc8d376eeaeaa3179.htmle

二、informix数据库字符集的设置问题。

Informix 数据库最早支持的编码方案是en_US.8859-1.
由于英文字符一般是以一个字节来存储的,7位的编码方案最多只能代表128个字符;经过扩展的8为编码方案也能
代表256个字符,这远远不能满足计算机发展的需要,对于亚洲国家复杂的字符存储需要更多的码位,于是各种编码方案
随之而生。

为了容纳全世界各种语言的所有字符和符号,解决不同编码之间的兼容和转换问题,1991年1月,十多家公司共同出资,
组建Unicode协会,随后Unicode编码产生了。

Unicode 协会的口号是:给每个字符提供一个唯一的数字,不论是什么平台,不论是什么程序,不论什么语言。
最初Unicode编码使用2-Byte(16bit)来进行编码,但是最多只能容纳65536个字符,仍然不够使用,后来进行了
扩充,也就是Unicode 3.1标准,增加了额外的补充字符定义,现在Unicode 5.0标准已经发布,具体参考Unicode
官方站点(http://www.unicode.org)。Unicode 主要有3个实施标准:UTF-8,USC-2和UTF-16。Informix通过Informix
International Language Supplement 支持UTF-8。

根据各种不同标准的含义,如果数据库需要存放不同语言的不同字符和符号,需要进行跨数据库的数据交换
与分析,一般建议使用Unicode编码方案。当然,Unicode方案可以表示更多的字符,但是由于多位的存储,需要额外
的存储空间和网络传输,所以选择最适合的数据库字符集仍然需要慎重考虑。

1、查看数据库字符集

有如下两种方式:

A.

dbaccess dbname

select site from systables where tabname=' GL_COLLATE'

B.

dbaccess sysmaster

select * from sysdbslocale

2、查看支持字符集情况

A.

操作系统

locale -a |grep -i 字符集名

B.

INFOMRIX的GLS

cd $INFORMIXDIR

plfiles

查看lc11.txt文件信息

3、如何设置字符集

由于INFORMIX数据库的字符集是对整个实例有效,默认字符集为:en_US.819

SET CLIENT_LOCALE = en_US.819

SET DB_LOCALE = en_US.819

其他字符集可以通过如下方式进行设置(只有数据库初始安装时才可以修改),以UTF-8字符集为例。

在Informix环境变量中添加

setLANG=ZH_CN.UTF-8

set DB_LOCALE=zh_cn.utf8
set CLIENT_LOCALE=zh_cn.utf8

重新初始化数据库,新的数据库支持UTF8字符集。

三、informix界面操作

1、执行dbaccess命令,可选择相应的数据库,并在该库上执行SQL语句或其它的操作。

 

【Database】菜单:选择/断开数据库

Select:             选择数据库

cLose:              关闭与当前数据库的连接

【Connection】:连接/断开数据库服务器

Connect:         连接数据库服务器,提示“Select Database Server”时选择目标数据库服务器;

User Name:       如以运行当前用户连接数据库,可直接回车;否则输入连接数据库服务器的用户名称;

Password:        用户口令;

Select Database: 选择所要连接的数据库

2、编辑执行SQL语句

选择数据库后,选择【Query-language】菜单,如果此时没有指定数据库,系统会先让你选择数据库。包括以下执行菜单项:

New:         输入新的SQL语句,输入完成后按ESC键退出;

Run:         运行当前SQL语句;

Modify:      修改当前SQL语句;

Use-editor:      通过用户指定的编辑器,如vi编辑SQL语句;

Output:      指定SQL语句执行结果的输出位置,如文件等;

Choose:      选择脚本文件,可以将常用的SQL语句写成脚本文件,执行时从中进行选择;

Save:        将当前SQL语句保存至文件,以后可以进行选择;

Info:        当前数据库的库表信息;

Drop:        删除不用的脚本文件;

Exit:        退出

3、装数/卸数

unload to /tmp/sa1.txt select * from sa1;

load from /tmp/sa1.txt insert into sa1;

四、informix常用命令

 

1、Oninit

oninit –i 初始化数据库,不要对正常的数据库使用以下命令,仅当第一次初始化数据库时使用
oninit将系统从off-line模式变为on-line模式 
oninit -s  将系统从off-line模式变为quiescent模式
oninit -p  在共享内存初始化时,不搜索,删除临时表 
oninit -y  对提示自动回答yes 
oninit -v加入这个选项显示oninit详细处理过程 

oninit -- 键入此命令可以获得使用帮助

2.onmode

onmode–k 停止数据库服务
onmode –u修改数据库状态为单用户维护状态
onmode -m将数据库从单用户转化为正常状态

onmode –z sid 杀进程(sid由onstat –g sql得到)

3.onstat

Onstat –d查看dbspace和磁盘块的布局
onstat -l 查看逻辑日志使用状况
onstat -g sql 查看访问数据库情况
onstat–u 查看用户活动
onstat -g ses 查看有哪些用户session连接,如需要,可以用onmode -z id 杀掉

onstat - 查看数据库当前状态(用于确认数据库是否正常启动)

4.ontape

ontape -s 做整个系统的0级备份
ontape –s –N db_name停止记日志(一般出现在某个操作涉及数据量巨大,日志空间hold不住时,可以暂停记录日志,动作完成后再恢复日志记录)

ontape –s –U db_name恢复记日志

5、其他常用命令

onspaces -c -d spacesname -p “路径名 文件名.000”-o 0 -s 20480000 加表空间

onspaces -a spacesname -p “路径名 文件名.000”-o 0 -s 20480000 为表空间加容器

onparams -a -d logdbs -s 200000 加日志文件

dbaccess dbname - 进入数据库

DOS命令下informix中文乱码,设置DOS窗口字符集(代码页),chcp 936 chcp54936

dbimport dbname-c -d spacename 导入UNL数据

五、SSIS包采集informix库步骤

1、安装informix数据库对应的32bit客户端(32bit Client SDK 为SSIS数据源提供IBM OLE DB Provider驱动)

IBM Informix 11.70 —— IBM Informix Client SDK 3.70

IBM Informix 11.50 —— IBM Informix Client SDK 3.50

2、设置包属性Run64BitRuntime为False,设置客户端Setnet32的环境变量和服务信息(消除中文乱码,及设置连接的服务名)

3、配置SSIS数据源,服务名或文件名:dbname@servername 用户名密码:Windows用户 密码

4、设置ConnectString在最后加上UNICODE=TRUE(启用UNICODE字符集,防止中文乱码)

5、建SSIS包,在建立OLE DB源时配置属性AlwaysUseDefaultPage为True,启用代码页936。

6、SSIS包运行报错,对于无法!对列转化字符的错误可改用表或视图,快速加载模式无法转化生僻字。

所有步骤完成后:OLE DB源预览中不能出现【无法显示列】,预览中文仍是乱码,但采集到sqlserver中无乱码。

遗留问题:如何解决SSIS包预览乱码问题。

  • 0
    点赞
  • 13
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

问寒

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值