informixWord文档格式.docx
- 文档编号:6818381
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:42
- 大小:93.33KB
informixWord文档格式.docx
《informixWord文档格式.docx》由会员分享,可在线阅读,更多相关《informixWord文档格式.docx(42页珍藏版)》请在冰点文库上搜索。
(添加逻辑日志时使用)
10.onspaces
创建、删除和修改dbspace、chunk工具。
11.ontape
进行逻辑日志的备份,改变数据库日志的状态,执行数据恢复。
ontape-a备份所有已满的逻辑日志
ontape-c启动连续逻辑日志备份
ontape-s启动数据备份
ontape-r启动数据恢复
ontape-s-B|-N|-U数据库名改变数据库日志的状态
12.onstat
监视数据库的操作。
onstat--help显示所有信息help
onstat-显示数据库状态信息
onstat-l显示物理日志和逻辑日志信息
onstat-gses显示用户线索信息
onstat-gsql显示sql语句
onstat-k显示锁信息
onstat-x显示事物信息
onstat-d显示数据库空间使用信息
onstat-D显示CHUNK读写信息
onstat-c显示配置信息
onstat-m显示online.log最后20行信息
onstat-p显示性能信息
onstat-r周期性重复显示信息
onstat-u显示用户信息
onstat-z将所有统计值置为0
onstat-gath显示线程
onstat-gseg显示内存信息
onstat-grea显示等待线程
onstat-gact显示活动线程
onstat-giof显示CHUNK读写信息
onstat-gioq显示AIO队列信息
onstat-gntu显示网络端口读写信息
onstat-gntd显示线程读写信息
13.在x-windows下可以运行的程序
$onperf数据库性能监控
$iploadInformix最快的load数据工具
$onploadipload的命令行方式工具
14.onbar
$onbar支持IBM光盘库、磁带库的备份工具
15.Dbaccess
$dbaccess最常用的数据库管理(库、表、索引)工具
16.onmonitor
$onmonitor菜单界面的Informix数据库管理工具
17.Updatestatistics需要定期处理,最好每天都做
对性能最有影响的SQL语句
18.setexplainon打开分析SQL语句性能的开关
19.dbaccessdemo7建立demo数据库
3.5数据库导入/导出
Informix数据库在不同配置(如数据库空间大小、名称等)的系统上进行恢复与备份时,使用ontape、onbar等方式备份的数据库可能无法恢复。
推荐使用导入dbimport/导出dbexport方式进行备份与恢复。
3.5.1数据库导出(备份)
$cd/informix;
mkdirexport_db建立导出目录,已存在则可跳过
$dbexportdb_name-o/informix/export_db导出数据库db_name
$tarcvfdb_name.tar/informix/export_db打包export_db目录为db_name.tar
$compressdb_name.tar压缩为.Z文件
3.5.2数据库导入(恢复、新建)
$cd/informix
$uncompress-cdb_name.tar.Z|tarxvf-解压缩、解包
$dbimport-dmapdbs_sd-lbuffered-i<
目录,db_name.exp的父目录>
db_name
参数说明:
-dmapdbs_db指定dbspace为mapdbs_sd,应根据实际修改,注意:
必须指定本参数,否则数据库可能会建立在rootdbs。
-lbuffered指定数据库为buffered日志模式
db_name数据库名,必须与目录db_name.exp匹配
如果需要改变数据库的名称,如改变数据库名db_name为new_db_name则在导入前必须进行如下:
a)改变文件db_name.exp/db_name.sql为db_name.exp/new_db_name.sql,“.sql”不变;
$cddb_name.exp
$mvdb_name.sqlnew_db_name.sql
b)改变目录db_name.exp为new_db_name.exp,“.exp”不变;
$mvdb_name.expnew_db_name.exp
2.3.5.3修改数据库日志模式
$ontape-Udb_name
如果失败,则可能需要0级备份,可使用如下命令
$ontape-s-L0-Udb_name
$onmonitor
选择Status/Databases可查看状态。
2.3.6数据库错误码查询方法
Informix的错误码可通过命令finderr查询错误详细信息,该命令在安装目录的bin目录(如/informix/bin)下。
$finderr107查询错误代码107的详细信息
$finderr显示其帮助
-----------------------------------------------------------
Oracle和Informix数据库的锁收藏
对于informix数据库
选择sysmaster数据库
select*fromsyslocks;
查到锁表的owner
然后在informix下onmode-zowner;
锁表处理步骤:
1、onstat-ks|grepHDR+X
//重查询是那个表被锁
address
wtlist
owner
lklist
type
tblsnum
rowid
key#/bsiz
c18095100
d656e774c181cb3cHDR+X
6002e1
2c602
0
需要关注lklist和type项,从上面来看tblsnum为6002e1(6292193十六进制转换成十进制)的表被锁了。
可以重查询是那个表被锁:
dbaccess:
select*fromsystableswherepartnum='
6292193'
得到
tabname
basetab_mvpn
owner
smpmml
partnum
6292193
tabid
12813
rowsize
464
ncols
61
nindexes
1
nrows
2984
created
12/10/2002
version
839843846
tabtype
T
locklevel
R
npused
746
fextsize
16
nextsize
flags
2、onstat-u,将owner(address)为d656e774的线程找出来
flags
sessid
user
tty
wait
toutlocksnreads
nwrites
d656e774Y--P---4261
smp20
-
d6ad23300
180
99620
3、onstat-gsqld656e774可以将这个线程执行过的sql语句打印出来。
4、只要用informix用户执行onmode-zsessid干掉线程
onmode-z4261
重点说明:
onstat-gsessessid找个进程PID来,然后ps-ef|grepPid;
kill-9pid
在处理这些问题时还会遇到表被锁是因为该线程还没有执行完毕,此时就不能简单的onmode-z杀线程
------------------------------------------------------------------------------------
对于Oracle数据库的锁:
查看被锁的表:
selectp.spid,
c.object_name,
b.session_id,
b.oracle_username,
b.os_user_name
fromv$processp,v$sessiona,v$locked_objectb,all_objectsc
wherep.addr=a.paddr
anda.process=b.process
andc.object_id=b.object_id
解锁:
altersystemkillsession'
146'
;
(其中146为锁住的进程号)
]INFORMIXSQL介紹
作者:
lovqing
发表时间:
2003/01/0406:
17pm
INFORMIXSQL介紹
作者:
springwind
一、簡介:
1)、INFORMIX主要產品分為三大部分:
數據庫服務器(數據庫核心)
應用開發工具
網絡數據庫互聯產品
2)、數據庫服務器有兩種,作用都是提供數據操作和管理:
SE:
完全基UNIX操作系統,主要針對非多媒體的較少用戶數的應用
ONLINE:
針對大量用戶的聯機事務處理和多媒體應用環境
3)、應用開發工具是用以開發應用程序必要的環境和工具,主要也有兩個系列:
4GL:
INFORMIX傳統的基字符界面的開發工具,該系列的主要產品有五個,他們是I-SQL、4GLRDS、4GLCCOMPILER、4GLID和ESQL/C;
NewEra:
INFORMIX最新提供的具有事件驅動能力、面向對象的基各種圖形界面的開發工具。
4)、INFORMIX的網絡數據庫互聯產品:
提供給用戶基多種工業標準的應用程序接口,通過它可以和其它遵守這些工業標準的數據庫聯接。
二、I-SQL菜單簡介:
Form 可以執行、創建、修改、編譯屏幕格式或刪除已存在的屏幕格式
Run 執行某一已經存在的屏幕格式
Modify 修改指定的已經存在的屏幕格式
Generate為指定的表創建一個缺省的屏幕格式
Compile 編譯一個制定的屏幕格式
New 創建特定的用戶屏幕格式
Drop 刪除某已經存在的格式文件
Exit 退出Form菜單
Report可以執行、建立、修改、編譯、或刪除報表
Run 執行某一報表
Modify 修改指定的報表
Generate為某一個表建立一個缺省的報表
New 建立一個用戶指定的報表
Compile 編譯指定的報表
Drop 刪除一個指定的已經存在的報表
Exit 退出Report菜單
Query-Language 詳見實用程序說明:
dbaccess
User-menu可以執行、建立或修改用戶建立的菜單
Run 執行當前數據庫的用戶菜單
Modify 允許用戶建立或修改用戶菜單
Exit 退出User-menu菜單
Database 詳見實用程序說明:
Table 詳見實用程序說明:
Exit 退出實用程序isqlrf(或isql)
三、常用操作:
創建數據庫
ISQL==》DATABASE==》CREATE==》輸入新建數據庫名稱
創建表
ISQL==》TABLE==》CREATE==》輸入欲建的表名==》ADD
==》輸入欲建的字段名及類型等==》EXIT==》BUILD-NEW-TABLE
生成缺省表格式
ISQL==》FORM==》GENERATE=》選擇數據庫==》輸入表格式名稱==》選擇表==》TABLE-SELECTION-COMPLETE-----》編譯成功==》RUN
四、使用RDSQL(交互式查詢語言)編寫SQL語句
方法:
ISQL==》QueryLangavage==》NEW==》RUN
建立數據庫
CREATE DATABASE 數據庫名
建表(格式及可選數據類型)
基本格式:
CREATE TABLE表名
( 字段名 類型 ,
字段名 類型 ,
--- 字段名 類型);
詳細定義:
CREATETABLE表名
( COL1 INTEGER NOT NULL,
COL2 CHAR
(2) CHECK(COL2 IN(“?
?
”,“?
”)),
COL3 DATE DEFAULT TODAY,
COL4 SMALLINT UNIQUE,
--- 字段名 類型 )
FRAGMENTBYROUNDROBIN(BYEXPRESSION) INDB1,DB2
EXTENTSIZE1000NEXTSIZE600
WITHNOLOG(LOG;
BUFFEREDLOG;
LOGMODEANSI)
LOCKMODEROW(PAGE);
例1:
CREATETABLEORDERS
(ORDER_NUM INTEGER
UNIQUE CONSTRAINT ORDER_NUM_UQ,
ORDER_DATE DATE
NOTNULL CONSTRAINT ORDER_DATE_NN
DEFAULT TODAY);
例2:
CREATE TABLE CUSTOMER(
CUSTOMER_NUM SERIAL,
FNAME CHAR(20),
PRIMARY KEY (CUSTOMER_NUM)
CONSTRAINT PK_CNUM
);
CREATE TABLE ORDERS(
ORDER_NUMSERIAL,
CUSTOMER_NUMINTEGER,
FOREIGN KEY(CUSTOMER_NUM)
REFERENCES CUSTOMER
CONSTRAINT FK_CNUM
數據類型:
字符型(CHAR(20)), VARCHAR(MINSIZE,MAXSIZE)
數值型(六種,DECIMAL(16,2),SMALLINT,INTEGER,SMALLFLOAT,FLOAT,SERIAL)
日期型(DATE,默認格式為:
MM/DD/YYYY)
**要修改DATE類型的缺省格式,只要在用戶主目錄的.profile文件中做如下說明:
DBDATE=Y4MD/
EXPORT DBDATE **
貨幣型(MONEY(8,2))
其它(如:
INTERVAL,DATETIME 等)
建立索引(必須建立命名索引)
CREATE [UNIQUE] INDEX 索引名 ON 表名(字段名)
CREATE [UNIQUE] INDEX 索引名 ON 表名(字段名) DISABLED;
SET INDEXES 索引名 ENABLED
DROP INDEX 索引名
數據庫權限
CONNECT:
訪問數據庫
RESOURCE:
允許用戶建立或清除數據庫中的表和索引
DBA:
數據庫管理員,所有權限,一般建表者即為DBA
GRANT 權限 TO 〈PUBLIC|用戶名〉
REVOKE 權限 FROM 〈PUBLIC|用戶名〉
檢索數據庫
DATABASE 數據庫名
SELECT * FROM 表名
SELECT 字段名,字段名 FROM 表名
SELECT 字段名,字段名+-*/ 新字段名 FROM 表名
SEKECT AVG(字段),MIN(),MAX(),SUM(),COUNT() FROM 表名
WHERE 子句 = 〈〉!
= <
<
= >
>
=
MATCHES *0多個 ?
單個 []單個字符或一個范圍 \轉義下一個字符
LIKE %:
0--多個_單個 \轉義下一個特殊字符
ORDER BY (DESC)
時間函數:
DAY MDY MONTH WEEKDAY YEAR DATE CURRENT
其它函數:
LENGTH USER CURRENT TODAY
從多個表中查找,SELECT 嵌套
字段名不同可直接寫出,若不同表中有相同字段名,則前綴表名
SELECT 表一.字段名 FROM 表一,表二
向表中插入數據
INSERTINTO表名[列1,列2。
。
] VALUES[ ]
修改
UPDATE 表名 SET 字段名= WHERE
刪除
DELETE FROM 表名 WHERE
修改表的結構:
例1:
ALTER TABLE表名
DROP COL2,
MODIFY COL1 INTEGER NOT NULL,
ADD COL4 INTEGER,
ADD COL3 CHAR(20) BEFORE COL4;
例2:
ALTER TABLE ORDERS
MODIFY NEXT SIZE 300;
改名:
RENAME COLUMN TABLE。
COL TO NEWCOL_NAME
RENAME TABLE TABLE_NAME TO NEWTABLE_NAME
RENAME DATABASE DATABASE_NAME TO NEWDATABASE_NAME
刪除:
DROP TABLE TABLE_NAME
DROP DATABASE DATABASE_NAME
練習題:
建立一個公司職員庫,其中包含一個公司職員表,內容包括:
EMPLOYEE_NAME,EMPLOYEE_NUM,HIRE_DATE, SALARY等
Informix常见错误处理思路(故障分析)
2009-07-1510:
44
逻辑日志满
故障现象:
数据库不再进行任何操作,使用onstat–l命令观察逻辑日志状态,所有的逻辑日志都处于已使用未备份状态,即flags为U------标志。
故障分析:
由于数据库的大部分操作都需要记录逻辑日志,所以如果逻辑日志由于各种各样的原因被充满都会导致数据库停止正常的操作,等待逻辑日志空间的释放、重新再利用。
这一般会由于数据库逻辑日志没有及时备份、数据库逻辑日志空间分配过小、逻辑日志里面包含活动事务、包含检查点信息等原因。
故障处理:
检查是否是由于逻辑日志备份出现问题,如果是不能备份请查找不能备份的原因,可能是由于磁带满或磁带机出现故障,或者是磁带设备繁忙;
个别情况下即使逻辑日志标志为已备份但是仍然是不可使用的,包括:
1.该逻辑日志包含活动的事务信息,由于数据库需要考虑其可能的回滚操作,因此是不会让该逻辑日志的内容被覆盖的,可以通过onstat–x检查其beginlg来确定事务的逻辑日志起始位置;
2.包含检查点信息,可以通过onstat–l观察flags的最后一位为L的逻辑日志的位置,在它之后的逻辑日志即使已经备份也是不可使用的,因为这些逻辑日志内容将会在快速恢复中使用到。
在这些情况出现以后如果暂时不能快速的处理,在IDS9.3x或以后的版本上可以使用逻辑日志联机增加的功能,只要有空闲的chunk空间,使用onparams-a-d<
DBspace>
-s<
size>
-i即可在当前逻辑日志后增加新的逻辑日志,并且不需要执行0级备份.
频繁的锁冲突
在正常的数据库操作中会经常出现-243、-244等一类的锁错误码出现
-243Couldnotpositionwithinatabletable-name.
-244Couldnotdoaphysical-orderreadtofetchnextrow.
数据库在进行修改操作的时候为了防止其他用户的同时修改,都会在修改所涉及的数据上设置对应的锁,如果其他
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- informix
![提示](https://static.bingdoc.com/images/bang_tan.gif)