您的位置:首页 > 数据库

Informix11.70培训笔记(1)

2016-07-22 15:45 260 查看
stop iptables

stop selinux

创建组和用户:

groupadd -g 2000 informix

useradd -g informix -u 2000 informix

cat /etc/group

cat /etc/passwd

passwd informix

grep informix /etc/group

grep informix /etc/passwd

update hostname:

vi /etc/sysconfig/network

修改:HOSTNAME=ifx1

配置主机名解析:

vi /etc/hosts

192.168.10.100  ifx1 ifx1.abc.com

使用vmware-tools上传informix软件,进行安装

cd /cdrom

mkdir /vmtools

cp *.tar.gz /vmtools

cd  /cdtools

 tar  -xzvf *.tar.gz

 ./*.pl

 

informix软件安装:

 

安装使用root用户,管理使用informix用户

安装的目录结构:/opt/IBM

权限:

mkdir -p /opt/IBM

chgrp informix /opt/IBM

chown informix /opt/IBM

(chown informix:informix /opt/IBM)

ids install:

cd /soft

./ids_install -i swing

 安装的时候现在OAT(open admin tool):

 用户admin,密码admin,端口8080

设置用户变量:informix

vi ~/.bash_profile

export INFORMIXDIR=/opt/IBM/informix

export INFORMIXSERVER=inst1

export PATH=$INFORMIXDIR/bin:.:$PATH

export ONCONFIG=onconfig.inst1

12、配置实例:一个实例可以管理多个数据库,一个数据库要属于某个实例,一个服务器上可以有多个实例

配置一个实例需要的条件

(1:informix)要有配置文件(参数文件):名称可任意(onconfig.inst1),在这个配置文件中会有一系列的键值对。配置文件可以从模板文件中拷贝

cd /opt/IBM/informix/etc

ls onconfig.*(onconfig.std)

cp onconfig.std onconfig.inst1

(2:informix)修改配置文件:

ROOTPATH   /dbs/rootdbs

LTAPEDEV   /dev/null

DBSERVERNAME inst1

NETTYPE    soctcp,1,50,CPU

(3:root)设置chunk:一个数据库至少要有一个dbspace,一个dbspace至少要有一个chunk,默认的dbspace是rootdbs

给rootdbs设置chunk(操作系统文件或者裸设备)

如果是操作系统文件,文件是一个空文件(不是目录),权限必须是660

mkdir -p /dbs

chown informix:informix /dbs

chmod 770 /dbs (informix用户和组有完全权限)

cd /dbs

touch rootdbs

chown informix:informix rootdbs

chmod 660 rootdbs

(4:informix)配置网络设置:sqlhosts

位置:/opt/IBM/informix/etc

从模板文件中拷贝

cd /opt/IBM/informix/etc

cp sqlhosts.std sqlhosts

修改sqlhosts文件:修改最后一行

instl onsoctcp 192.168.109.129 60000

(5:informix)初始化实例:

oninit -ivy

i:初始化(只需要做一次,重复做会删除用户的东西)

v:verbose显示详细信息

y;say yes

(6)检查实例的状态:

ps -aux|grep oninit

netstat -an|grep 60000

重启系统验证 reboot

oninit -vy

13:客户端工具 使用dbaccess字符界面的工具

dbaccess

(1)基于字符界面的菜单

(2)直接运行命令

运行命令,交互模式

dbaccess - - 

create database test2;

database test2;

create table t1

(
id int,
name varchar(20),

);

insert into t1 values(1,'u1');

select/update/delete^^^^^

ctrl+d 退回操作系统

连接特定的数据库:

dbaccess test2 -

info tables;

select * from t1;

insert into t1 values(3,'u3');

ctrl+d

或者

dbaccess - -

database test2;

dbaccess结合echo命令执行操作:

echo 'hello world'

echo "select * from t1"|dbaccess test2;

echo "create database test3" | dbaccess -

echo "create table tl(id int)" | dbaccess test3;

echo "insert into tl values (1)" | dbaccess test3;

echo "select * from tl" | dbaccess test3;

读取外部脚本:

cd

vi test5.sql

create database test4;

database test4;

create table t1

(

id int

);

insert into t1 values (1);

select * from t1;

dbaccess - /home/informix/test4.sql

dbaccess - -

在这个环境下支持调用操作系统命令:! cmd

查看数据库状态:onstat -

启动数据库:oninit -vy

创建脚本:

vi /home/informix/2.sql

create database a1;

database a1;

create table t1

(

id serial not null,

name varchar(20)

);

insert into t1 (name) values('name1');

insert into t1 (name) values('name2');

select * from t1;

创建新实例(和前面的inst1创建类似,注意修改如下):inst2

vi .bash_profile

修改两个值:

ONCONFIG

INFORMIXSERVER

sqlhosts里面修改:

端口61000

onconfig.inst2里面修改:

ROOTPATH /dbs/rootdbsinst2

DBSERVERNAME inst2

SERVERNUM 1 ---编号唯一。很重要,要不当前实例无法启动,或者其他实例无法启动

vi inst2.sh

export INFORMIXSERVER=inst2

export ONCONFIG=onconfig.inst2

要操作inst2的时候,执行上面的脚本文件:

. ./inst2.sh

查看当前实例有哪些数据库,从系统数据库中查询:sysmaster

dbaccess - -

database sysmaster

select name from sysdatabases;

echo "select name from sysdatabases" | dbaccess sysmaster

查看数据库中有哪些表:

select tabname from systables;  --系统表和用户表

只查看用户表:

select tabname from systables where tabid > 99;

info tables;

echo "select tabname from systables where tabid > 99" | dbaccess test1;

查看表的字段信息:

echo "info columns for t1" | dbaccess d1;

-------------------------------------------

whoami (root/informix)

echo $INFORMIXDIR

cd $INFORMIXDIR

echo $INFORMIXSERVER

echo $ONCONFIG

-------------------------------------------

关闭实例:

onmode -ky

启动实例:

oninit -vy

在informix数据库中对象的引用:

创建用户:用户是操作系统用户

useradd -g informix -u 2001 ifx1

passwd ifx1 <<EOF

abc

abc

EOF

验证用户:

su - informix

whoami

su - ifx1

whoami

su - informix

whoami

dbaccess - -

create database d5;

database d5;

create table t1

(

id int

);

insert into t1 values(1);

select * from t1;

select * from informix.t1;

create database d6;

database d6;

create table t2

(

id int

);

insert into t2 values(100);

select * from t2;

select * from informix.t2;

select * from t1;---error

select * from informix.t1;----error

select * from d5:t1;

select * from d5:informix.t1;

database d5;

select * from t2;---error

select * from informix.t2;----error

select * from d6:t2;

select * from d6:informix.t2;

ctrl+d

dbaccess - -

connect to '@inst2' ;--连接特定的实例

database d5;

select name from sysmaster:sysdatabases;

connect to '@inst1';

select name from sysmaster:sysdatabases;

informix数据库中通过create database命令创建的数据库是不记录日志的。

通过dbname:username.tabname方式访问时要求两个数据库有相同的日志模式。

database d5;

select * from d1:informix.t1; --success

database sysmaster;

select * from d1:informix.t1; --fail

database d5;

select * from d1@inst2:informix.tl; --在informix数据库中的全称引用(可以跨越实例访问)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息