• 1. 数据库基础服务支持中心
  • 2. 目录 informix数据库安装和使用 informix数据库简介数据库概述Oracle数据库简介 oracle数据库安装和使用
  • 3. 什么是数据库数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。 这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
  • 4. 数据库的基本结构数据库的基本结构分三个层次,反映了观察数据库的三种不同角度: (1) 物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。 (2) 概念数据层。它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。 (3) 逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。
  • 5. 数据库特点 (1) 实现数据共享。数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。 (2) 减少数据的冗余度。同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。 (3) 数据的独立性。数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。
  • 6. 数据库特点 (4) 数据实现集中控制。文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。 (5) 数据一致性和可维护性,以确保数据的安全性和可靠性。主要包括:①安全性控制:以防止数据丢失、错误更新和越权使用;②完整性控制:保证数据的正确性、有效性和相容性;③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;④故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。
  • 7. 数据库——二维表表学号 0001 0002 0003 0004 姓名 张三 李四 王五 赵六年龄 18 19 18 20班级 一班 二班 一班 三班班级号 101 102 103 104班级名 一班 二班 三班 四班学生表班级表
  • 8. 常用数据库(1) Oracle:UNIX平台主流数据库 (2) Informix:UNIX平台数据库(被IBM收购) (3) DB2:UNIX平台主流数据库(IBM) (4) SQL server:windows平台数据库 (5) Access:windows平台数据库(中小应用) (6) Sybase (7) DBASE (8) VFP
  • 9. 目录 informix数据库安装和使用 informix数据库简介数据库概述Oracle数据库简介 oracle数据库安装和使用
  • 10. Oracle数据库简介Oracle的发展 1977年软件开发实验室(Software Development Laboratories, SDL); 1979年更名为关系软件有限公司(Relational Software, Inc. RSI); 1983年更名为Oracle; 1979年RSI推出ORACLE的第一个版本,直接命名为第2版;整合了比较完整的SQL实现,不稳定,缺少事务处理这样的重要功能; 1983年RSI发布的第三版,采用C语言重写,开始具备了可移植性的关键特性,实现了事务处理; 1984年Oracle发布第四版本,增加了数据库的又一关键特性:读一致性; 1985年Oracle发布5.0版,采用C/S模式运行,实现通过网络访问数据库服务器; 1986年的5.1版本开始支持分布式查询;
  • 11. Oracle的发展 1988年6.0发布,引入了行级锁的重要特性,还引入了不太完善的PL/SQL语言,引入联机热备份功能; 1992年,真正出色的7.0版本推出,增加了很多新的性能特性:分布式事务处理功能、增强的管理功能、用于应用程序开发的新工具以及安全性方法;此外还包含了一些新功能,如存储过程、触发过程等,使数据库真正的具有可编程能力; 1997年Oracle8.0发布,支持面向对象的开发及多媒体应用,同时此版本开始具有同时处理大量用户和海量数据的特性; 1998年Oracle8i发布,“I”代表Internet。这一版本提供了全方位的Java支持; 2001年Oracle9i发布,重要特性:支持集群服务; 2004年Oracle10g, “g”代表网格,此版本最大特性就是加入网格计算的功能;
  • 12. 体系结构图示共享池数据缓冲区日志缓冲区SGA数据文件日志文件参数文件控制文件DBWRARCHCKPTLGWRPMONLCKnRECOSMON存储介质ServerUserUserUser
  • 13. Oracle数据库简介实例: 存储结构: 进程: 数据库: 物理结构 逻辑结构
  • 14. Oracle数据库简介一个ORACLE数据库是数据的集合,被处理成一个单位。每个ORACLE数据库有一个物理结构和一个逻辑结构。
  • 15. Oracle数据库数据库物理结构 由三种类型的物理文件组成: 数据文件 日志文件 控制文件
  • 16. Oracle数据库数据文件 每一个ORACLE数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引)的数据也是物理地存储在数据库的数据文件中。数据文件有下列特征: 一个数据文件仅与一个数据库相联系。 一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。 数据文件中的数据在需要时可以读取并存储在ORACLE内存中。
  • 17. Oracle数据库日志文件 每一个数据库有两个或多个日志文件(redo log file)组,每一个日志文件组用于收集数据库日志. 日志的主要功能是记录对数据所做的修改,所以对数据库作的全部修改均被记录在日志中。 日志文件主要是保护数据库以防止故障。为了防止连日志文件本身的故障,ORACLE允许镜象日志(mirrored redo log),以便可在不同磁盘上维护多个相同的日志副本。
  • 18. Oracle数据库控制文件 每一个ORACLE数据库有一个控制文件(control file),它记录数据库的物理结构,包含下列信息类型: 数据库名 数据库数据文件和日志文件的名字和位置 数据库建立日期 每一个ORACLE数据库的实例在启动时,它的控制文件用于标识数据库和日志文件,当进行数据库操作时它们被打开。当数据库的物理组成更改时,ORACLE将自动更改该数据库的控制文件。 数据恢复时,需要使用控制文件。 为了安全起见,同样允许控制文件被镜象。
  • 19. 数据库逻辑结构
  • 20. Tablespaces Segments Extents Data blocks
  • 21. 目录 informix数据库安装和使用 informix数据库简介数据库概述Oracle数据库简介 oracle数据库安装和使用
  • 22. 数据库系统安装创建用户组dba和用户oracle 用户环境的配置 安装介质 修改操作系统参数 修改init.ora参数 启动数据库 具体请详见《oracle 安装手册》系统安装
  • 23. 主要环境变量和配置文件用户环境变量: set path=(/bin /usr/bin /usr/sbin /usr/ucb /etc /usr/ccs/bin /opt/SUNWspro/bin / opt/mqm /usr/local/bin /usr/openwin/bin /usr/dt/bin /opt/oracle/bin /opt/oracle/product/9i/bin .) setenv ORACLE_BASE /opt/oracle setenv ORACLE_HOME /opt/oracle/product/9i setenv ORACLE_SID gpnms4 setenv NLS_LANG ‘SIMPLIFIED CHINESE’_CHINA.ZHS16GBK setenv NLS_DATE_FORMAT 'YYYY-MM-DD HH24:MI:SS'
  • 24. 数据库参数文件$ORACLE_HOME/admin/SID/pfile/initSID.ora Show parameter 显示数据库参数信息 Alter system set 参数=参数值 调整数据库参数
  • 25. 警告日志$ORACLE_HOME/admin/SID/bdump/ Alert_sid.log Current log# 3 seq# 149626 mem# 0: /opt/oracle/redofile/redo03.log Fri Jun 26 16:11:54 2009 ARC1: Evaluating archive log 2 thread 1 sequence 149625 Fri Jun 26 16:11:54 2009 ARC1: Beginning to archive log 2 thread 1 sequence 149625 Creating archive destination LOG_ARCHIVE_DEST_1: '/back4/archive/1_149625.dbf' ARC1: Completed archiving log 2 thread 1 sequence 149625 Fri Jun 26 16:34:17 2009 Thread 1 advanced to log sequence 149627 Current log# 4 seq# 149627 mem# 0:
  • 26. 启动和关闭Oracle数据库过程图shutdownopen开机关机读控制文件未连上数据库 仅启动instancesnomountmount连上数据库,但未打开读参数文件
  • 27. Oracle数据库的启动方式startup nomount (启动SGA和后台进程,这种启动只需要init.ora文件) startup mount dbname (打开控制文件 ,可执行:数据库日志归档、数据库恢复、重新命名一些数据库文件) startup open dbname startup (startup nomoun/ alter database mount/ alter database open) startup restrict (约束方式启动,只允许具有一定特权的用户访问 ) startup force(强制启动方式 ) startup pfile=参数文件名 (带初始化参数文件的启动方式 )
  • 28. Oracle数据库的关闭方式 shutdown normal或者shutdown (正常方式关闭数据库) shutdown transactional (事务处理方式关闭数据库) shutdown immediate (立即方式关闭数据库 ) shutdown abort (异常中止例程,即不完全关闭数据库)
  • 29. 监听程序启动监听程序 %lsnrctl start 查看监听程序状态 %lsnrctl status 停止监听程序 %lsnrctl stop
  • 30. ORACLE用户管理创建用户 create user npmdb identified by npmoptr default tablespace npmdbs temporary tablespace temp; 修改用户 ALTER USER scott IDENTIFIED BY hello; 删除用户 DROP USER 用户名 [CASCADE] 若不使用CASCADE选项,则必须在该用户的所有实体都删除之后,才能删除该用户。使用CASCADE后,则不论用户实体有多大,都一并删除。
  • 31. 用户权限和角色管理系统权限 GRANT create any view TO scott; REVOKE create any view FROM scott; 实体权限 GRANT select,insert ON emp TO scott REVOKE select ON emp FROM scott; 角色 grant connect to npmdb;
  • 32. Oracle数据库数据库逻辑结构 表空间 模式对象:表、视图、索引、同义词等结构
  • 33. Oracle表空间管理创建表空间 CREATE TABLESPACE hist2004apr DATAFILE '/ORADATA/PROD/HIST2004APR.DBF' SIZE 25G EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO; 修改表空间 ALTER TABLESPACE fin RENAME TO payables; 删除表空间 DROP TABLESPACE dba_sandbox INCLUDING CONTENTS;
  • 34. 在表空间内添加数据文件 ALTER TABLESPACE receivables ADD DATAFILE '/u02/oradata/ORA10/receivables01.dbf' SIZE 2G; 使表空间脱机 ALTER TABLESPACE receivables OFFLINE; 让表空间只读 ALTER TABLESPACE sales2003 READ ONLY;
  • 35. 模式和模式对象 模式对象(schema object)的集合称为模式(schema),每一个数据库用户对应一个模式。 模式对象被定义为可以直接引用数据库数据的任何一种逻辑结构,模式对象可以是表、视图、索引、同义词等结构。模式对象是逻辑数据存储结构,每一种模式对象在磁盘上并不存在存储其所引用的数据的物理文件。一个模式对象逻辑地存储在数据库的一个表空间中,实际上每一个模式对象所引用的数据是物理地被存储在表空间的一个或多个数据文件中的。例如:表、索引等模式对象,在指定表空间的数据文件上为该对象分配多少空间。 模式与表空间之间的关系为:一个表空间可包含不同模式的对象,而一个模式中的对象可包含在不同的表空间中
  • 36. 表(Table)表是数据库的最基本的逻辑结构,所有的数据在逻辑上存放在表中(相对的,在物理上是存放在数据文件中的)。一个ORACLE数据库就是由若干个数据表组成。其它数据库对象都是为了用户很好地操作表中的数据。表是关系模型中反映实体与属性关系的二维表格,它由列和行组成,通过行与列的关系,表达出了实体与属性的关系 CREATE TABLE Drop table Alter table Truncate table
  • 37. 约束(constraints)表约束是数据库能够实施业务规则以及保证数据遵循实体—关系模型的一种手段 Oracle支持下列约束: UNIQUE 列上不能寻在相同值的两条记录,但可以有多条空值得记录。 NOT NULL 指定列必须具有一个值 PRIMARY KEY 主键是定位记录的手段,指定值必须同时满足 UNIQUE和NOT NULL CHECK 可以被用来实施简单的规则,例如值得范围。 Foreign Key 用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键
  • 38. CREATE TABLE bonus ( emp_id VARCHAR2 (40) NOT NULL, salary NUMBER (9,2), bonus NUMBER (9,2), CONSTRAINT ck_bonus check (bonus > 0)); ALTER TABLE bonus ADD CONSTRAINT ck_bonus2 CHECK (bonus < salary);
  • 39. 索引(Index) 索引是与表相关的一种选择结构。索引可建立在一表的一列或多列上,一旦建立,由ORACLE自动维护和使用,对用户是完全透明的,用户感觉不到它的存在。 索引不仅在逻辑上独立于数据,而且在物理存储上独立于数据。索引的建立或删除对表中的数据存储没有影响,所有应用可继续处理。
  • 40. 通过建立索引可以得到以下的好处: 加快查询速度,根据索引对记录进行快速定位 确保唯一性特征。可以为表中的某一列建一个唯一性索引,在向表中插入一行记录之前,系统会检查该记录中索引列的域值,如果发现这个有索引的列的数值与以前已有值重复,则系统会拒绝这个操作。
  • 41. CREATE INDEX IND1_ORDERS ON ORDERS (ORDER_DATE);
  • 42. 视图(View)根据视图的定义,将表中所需要的列和行选取出来传递给用户。 并不是真正的将表中的数据重新复制一遍,不占用物理存储空间。 不仅可以在表的基础上建立视图,还可在视图的基础之上再建立视图。 Create view emp as select * from employees where department_id =30 drop view emp;
  • 43. 建立视图的主要目的: 保护数据安全,防止机密数据泄露。 简化数据查询方式,建立有效的查询。 保持数据独立性,保证程序不会随着数据的位置变化、名称变化而需要修改
  • 44. 序列(sequence)典型的数据库系统中存在许多需要唯一数字的情况。例如:所有开出的发票都必须具有唯一的发票号,数据库要自己完成这个功能。 使用一个起始点和一个增量能够定义一个序列,其中,起始点和增量都默认为1。 Create sequence inv_nos start with 1 increment by 1; Select inv_nos.nextval from dual; Drop sequence inv_nos;
  • 45. 同义词(Synonym)同义词是对表、视图或其它数据库实体所起的一个别名。可以用与存取表、视图等实体同样的方法来存取别名。 采用同义词后,有以下好处: 简单性:对数据库表的存取通常以“用户名.表名”的方式进行,定义了同义词后,可以直接使用对同义词的操作,简化了操作。 表的独立性:在表的名称、位置发生变化时,只需修改同义词的定义,避免修改大量应用程序
  • 46. CREATE SYNONYM employees FOR hr.employees; DROP SYNONYM employees;
  • 47. Export/Import实用程序 利用ORACLE的实用程序Export,可将数据从数据库中提取出来;用另一个实用程序Import可将提取出来的数据送回ORACLE数据库中。
  • 48. Export实用程序Export是在数据库打开并能使用的情况下后备数据库数据的实用程序。 它把ORACLE数据库中的数据以ORACLE二进制形式写到操作系统文件上,该文件叫卸出文件。卸出文件在需要时能被再装入到ORACLE数据库中,也可装入到另一个CPU上的ORACLE数据库上,还可把它装入到不同ORACLE版本的数据库上。用Export可实现应用程序失败时的恢复,例如可把某个表或某些表恢复到执行该Export时的状态。 由于卸出文件的特殊格式,只能用Import实用程序将其读入数据库中。
  • 49. Export实用程序$ exp –help $ exp userid=npmdb/npmoptr file=tpd.dmp rows=n tables=tpd_msc Export: Release 9.2.0.8.0 - Production on ÐÇÆÚËÄ 6ÔÂ 25 09:30:22 2009 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.8.0 - Production Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set Note: table data (rows) will not be exported About to export specified tables via Conventional Path ... . . exporting table TPD_MSC Export terminated successfully without warnings.
  • 50. Import实用程序Import和Export是两个相配套的实用程序,Export把数据库中的数据卸出到操作系统文件中,而Import实用程序则把Export卸出的数据恢复到数据库中。 例如:如果一个用户把他的所有表和数据卸出到文件mydata.exp中,则当装入mydata.exp文件时,Import重新建立每一张表,并读入数据。Import实用程序只能装入由Export卸出的数据。
  • 51. SQL Loadersqlldr userid= $1/$2@$3 control=meta_tablelevel.ctl data=meta_tablelevel.unl meta_tablelevel.ctl load data append into table meta_tablelevel fields terminated by '|' optionally enclosed by '"' ( TABID,TLEVEL,NLEVEL,SV_LEVEL,BUSY_TYPE ) meta_tablelevel.unl 85|0|300||| 131|0|200|||
  • 52. 配置客户机/服务器结构手工配置网络服务名(配置tnsnames.ora文件) # vi $ORACLE_HOME/network/admin/tnsnames.ora (定义了oracle 服务本地名字解析的连接字符串) GPNMS4 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = wnms3)(PORT = 1521)) ) (CONNECT_DATA =(SERVICE_NAME = gpnms4) ) )
  • 53. SQL*Plus的使用SQL*Plus是ORACLE数据库用来存储、查询、操纵、控制、显示和打印数据库中信息的交互式工具,是对标准SQL语言的实现和扩展,它包括了SQL语言命令和SQL*Plus特有命令两大部分。SQL*Plus是一种交互式语言,是维护ORACLE数据库的实用工具。
  • 54. SQLPlus 对数据字典的直接操作可以进行数据库状态的检查和维护;
  • 55. Oracle数据库进入SQL*Plus 以没有连接数据库的方式启动SQL*Plus $sqlplus /nolog 作为SYSDBA 连接到Oracle SQL> conn username/password as sysdba $sqlplus npmdb/npmoptr@gpnms4 SQL> 退出SQL*Plus SQL>exit 显示表结构命令 SQL>DESC 表名
  • 56. C:\>sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 7月 5 11:16:10 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> conn /as sysdba 已连接。 SQL> show user USER 为 "SYS" SQL>
  • 57. End with a semicolon (;). The statement is completed and executed. Enter a slash (/) on a new line by itself. The statement in the buffer is executed. Enter a blank line. The statement is saved in the buffer.
  • 58. LIST SQL> L 1 SELECT empno, ename 2* FROM emp SQL> LIST LAST 2* FROM emp SQL> APPEND SQL> A WHERE empno <> 7926 2* FROM emp WHERE empno <> 7926 SQL> CHANGE SQL> C /<>/= 2* FROM emp WHERE empno = 7926 SQL> C /7926 2* FROM emp WHERE empno = SQL>
  • 59. INPUT SQL> I 3 7777 AND 4 empno = 4354 5 SQL> I ORDER BY 1 SQL> L 1 SELECT empno, ename 2 FROM emp WHERE empno = 3 7777 AND 4 empno = 4354 5* ORDER BY 1 SQL>
  • 60. DEL SQL> 3 3* 7777 AND SQL> DEL SQL> L 1 SELECT empno, ename 2 FROM emp WHERE empno = 3 empno = 4354 4* ORDER BY 1 SQL> DEL 3 * SQL> L 1 SELECT empno, ename 2* FROM emp WHERE empno = SQL>
  • 61. CLEAR BUFFER SQL> L 1 SELECT empno, ename 2* FROM emp WHERE empno = SQL> CL BUFF buffer cleared SQL> L No lines in SQL buffer. SQL>
  • 62. Oracle数据库优化 analyze table abc compute statistics ANALYZE TABLE ORDERS ESTIMATE STATISTICS SAMPLE 20 PERCENT;
  • 63. oracle常用工具PL/SQL
  • 64. ORACLE常用工具_OEM
  • 65. 如何查询错误号操作系统上 oerr ora 12345 或者 sqlplus 里 sql> host oerr ora 12345
  • 66. 目录 informix数据库安装和使用 informix数据库简介数据库概述Oracle数据库简介 oracle数据库安装和使用
  • 67. INFORMIX数据库概述Informix的发展 1980年Informix公司成立; 第一个真正支持SQL语言的关系型数据库为InformixSE; 90年代初,Informix-Online,引入了C/S结构,同时数据管理使用了表空间的方式; 1993年,InformixDynamicServer:动态可伸缩结构(DSA)、线程机制、虚处理概念 1999年,IDS.2000对用户自定义数据类型和操作过程提供了完整的工具环境,同时在传统事务处理的性能有很大的提升; 2001年被IBM收购。
  • 68. 系统的主要组成部分 数据库介绍INFORMIX-OnLine DSA介绍OnLine 系统体系结构共享内存进程磁盘 进程进程
  • 69. 数据库介绍INFORMIX-OnLine DSA介绍进程部分:虚拟处理器虚处理器虚处理器虚处理器虚处理器类OnLine环境中的每个进程都称为虚处理器(VP),它在内部调度及运行其线索。 每一个VP都属于一个VP类,以完成一组特殊的任务。进程部分
  • 70. 数据库介绍INFORMIX-OnLine DSA介绍共享内存部分驻留部分用于数据缓冲及系统资源虚拟部分主要用于多线索控制信息消息部分用于与应用的通讯共享内存部分
  • 71. 数据库介绍磁盘部分INFORMIX-OnLine DSA介绍OnLine 系统共享内存原始磁盘UNIX 文件进程进程ChunksChunk是赋给OnLine 系统的空间 单位. 它可以是一块原始磁盘 也可以是UNIX 文件.主要磁盘组成:Chunks
  • 72. Server(服务器) INFORMIXSERVER DB(数据库) create database
  • 73. A.熟设备:经过加工的文件空间(cooked file space),它是由Unix系统来管理其物理磁盘I/O. B.原始磁盘空间: 未经使用的磁盘空间,是由Online系统直接来管理其物理磁盘I/O。
  • 74. chunkchunk 是磁盘上用于online系统的数据存储的最大物理单元。chunk既可以代表已加工过的磁盘空间,也可以代表原始磁盘空间。 如果chunk代表原始磁盘空间,则chunk的名称为/dev目录下的特殊字符文件的名称。在许多操作系统中,特殊字符文件与特殊chunk文件名的首字符是否为r相区别的(如/dev/rdsk0a)。原始磁盘空间上分配的chunk在物理空间上是连续的。 如果某个chunk是已加工过的磁盘空间,则该chunk的名字将以已加工过的文件的完整路径名出现。由于已加工过的磁盘空间分配的chunk是以操作系统文件的形式存在的,因而其空间在物理上不一定是连续的。
  • 75. (2)page 一个chunk中的所有空间以page为单位进行划分。所有I/O操作都是以整个page作为基本单位的。每一页的大小在配置文件(onconfig)中由BUFFSIZE指定,此值是由操作系统确定。
  • 76. dbspace(数据库空间)dbspace(数据库空间)包含数据库与表, dbspace是由一个或多个chunk组成的。当用户创建一个dbspace时,他可以赋之以一个或多个主chunk。用户在任何时候均可以增加多个chunk。Online管理员的一个主要的任务是监视所有的chunk的使用程度,并预期为一个dbspace分配新的chunk。
  • 77. 根dbspace根dbspace的初始chunk及其镜像chunk是在磁盘空间初始化期间唯一被创建的chunk,根dbspace 中的初始chunk包含了一些特定的保留页和内部表,这些保留页和内部表是用来描述和跟踪所有其它dbspace、blobspace、chunk、数据库与tblspace的。
  • 78. database(数据库)存在于dbspace中,该dbspace是在创建数据库时使用SQL语句create database中指定的dbspace。如果创建数据库时没有指定dbspace,则数据库被存于根dbspace中。 用户通过执行SQL语句create table创建一个表。创建的表也存在于SQL语句所指定的dbspace中,如果创建时未指定任何dbspace,则该被创建的表与其数据库同在一个dbspace之内。
  • 79. tblspace 分配给一个表的所有磁盘空间称为该表的表空间(tblspace)。 属于表空间的页是以extent的方式分配的,extent可以分布于表所处的dbspace中。因为这个缘故,组成某个表空间的所有页在dbspace内并不必须是连续的。 多个表空间可以同处于一个dbspace中。
  • 80. extent 可以往一个表中增加多行数据或索引,Online是以物理上连续的页(称为extent)为单位将磁盘空间分配给一个表的。分配给一个表的第一个extent称为初始extent,每一个后来的extent都叫做附加extent。 一个表的所有extent可以处于同一个dbspace的不同chunk上。然而,一个extent本身只能处于一个chunk中,extent并不能超过chunk大小限制。一个extent中的所有数据属于同一个表空间。一个表的初始extent与其之后所有附加extent在大小上可能不一样。表的extent大小是由SQL语句create table的一部分指出的。
  • 81. 物理日志 物理日志的作用在于保持一批dbspace页的前映象。这些“前映象”代表了所有数据在物理上与逻辑上都保持一致的这样一个时刻。将物理日志中的前映象与逻辑日志中的逻辑日志记录结合起来,可以恢复数据库自上一次已知的一致点以来发生的所有事务。这样的已知的一致点称为检查点。在快速恢复过程中,第一步首先用到物理日志,将整个系统恢复在Online中最近一次检查点时所处的物理一致的状态。
  • 82. 逻辑日志 逻辑日志文件的作用在于自上一次Online archive以来,对Online数据所发生的变化进行记录。Online把逻辑日志分成三个或更多个相互分离的磁盘空间,每磁盘空间称为一个逻辑日志文件。相应于每一个逻辑日志文件有一个唯一标识号。
  • 83. 目录 informix数据库安装和使用 informix数据库简介数据库概述Oracle数据库简介 oracle数据库安装和使用
  • 84. 数据库系统安装创建用户组informix和用户informix 用户环境的配置 安装介质 修改操作系统参数 修改onconfig参数 初始化数据库实例(oninit -ivy) 具体请详见《Informix 安装手册》系统安装
  • 85. 参数的配置主要环境变量用户环境变量: set path=(/bin /usr/bin /usr/local/perl/bin /usr/sbin /usr/ucb /etc /opt/informix /opt/informix/bin /opt/informix/etc .) INFORMIXDIR /opt/informix INFORMIXSERVER nmserver2 ONCONFIG onconfig INFORMIXSQLHOSTS /opt/informix/etc/sqlhosts LD_LIBRARY_PATH $INFORMIXDIR/lib
  • 86. 配置文件$INFORMIXDIR/etc/sqlhosts nmserver1 onipcshm 主机名 8001 nmserver3 ontlitcp 主机名 8002 注:nmserver3为定义在.cshrc中的INFORMIXSERVER,ontlitcp为tcp/ip方式,hostname为定义在/etc/hosts中的主机名,此服务器名是网络中的所有用户所使用的;而nmserver1是为本机更快的访问而设置的。
  • 87. 参数的配置数据库参数文件$INFORMIXDIR/etc/onconfig ROOTPATH /opt/informix/chunks/rootchunk ROOTSIZE 2000000 MSGPATH /opt/informix/online.log ALARMPROGRAM /opt/informix/etc/log_full.sh SYSALARMPROGRAM /opt/informix/etc/evidence.sh # System Configuration SERVERNUM 0 DBSERVERNAME wnmsserver DBSERVERALIASES wnmsserver 1 MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor NUMCPUVPS 9 # Number of user (cpu) vps
  • 88. 常用的命令数据库启停1. onmode -k 2. oninit (-v) 3. onmode –m 4. onmode –s(u) 5. oninit -s 6. onmode –k(y)OnlineOfflineQuiescent123456
  • 89. 常用的命令数据库日志文件$INFORMIXDIR/online.log 包含了一些系统运行状态信息,其中一些是正常信息,另外一此是异常信息. 常见的正常信息包括: A.状态的改变 09:29:07 DR: DRAUTO is 0 (Off) 09:29:08 INFORMIX-Onlline Initialized –Shared Memory Initialized. B.快速恢复信息 14:42:46 Physical Recovery Started. 14:42:46 Physical Recovery Complete: 0 Pages Restored. 14:42:46 Logical Recovery Started. 14:42:50 Logical Recovery Complete. 0 Committed, 0 Rolled Back, 0 Open, 0 Bad Locks C.检查点的记录和间隔时间 14:47:05 Checkpoint Completed: duration was 3 seconds. D.配置参数的改变信息 18:42:54 Onconfig parameter SHMVORTSIZE modified from 200000 to 8000. E.动态分配内存信息 18:42:54 Dynamically allocated new shared memory segment (size 8388608)
  • 90. 常用的命令数据库状态查看onstat – IBM Informix Dynamic Server Version 9.40.FC5 -- On-Line -- Up 168 days 08:41:38 -- 7902208 Kbytes 检查数据库运行状态是否正常 , On-Line表明系统运行正常
  • 91. 数据库状态查看onstat –d 查看数据库系统的Dbspaces和Chunks的分布和使用情况。 Dbspacesaddressnumberflagsnchunksfchunkflagsownername253c61501111Ninformixrootdbs253c71002200121NTinformixtpmdbs1253c7700101105NinformixtmndbsChunksaddresschk/dbsoffsetsizefreebpagesflagspathname253c62101/10500000498659PO-/inf_disk/rootchk253c63e02/20250001505PO-/inf_disk/tmpchk1.chk253c6d8013/10010000007PO-/inf_disk/tmnchk2.chk253c6e6014/10010000002PO-/inf_disk/tmnchk3.chk常用的命令
  • 92. chk/dbs 前一数字chk表示chunk编号,后一数字dbs表示dbspace编号,如dbspace 编号相同则表示其相应前面编号chunk属同一dbspace size 该chunk的大小,单位为page free 该chunk的空闲空间 flags 表示目前chunk状态 注意事项: A:如某—dbspace的所有chunk空闲很小,则需要增加chunk B:flags正常标志为PO-,否则为异常. 出现异常情况时,flags标志的第二位为: D:表示该chunk down了 I:表示数据不一致(Inconsistent)
  • 93. 数据的导入和导出 Dbexport 工具可以将整个数据库的结构和数据导出到指定目录下的文本文件中 dbimport可以创建数据库并导入数据。 将整个数据库的结构和数据导出: $ dbexport -o {output_path} {database_name} 创建数据库并导入数据: $ dbimport -i {input_path} {database_name}
  • 94. Onunload/onloadonload和onunload工具使用二进制格式,其功能类似dbexport和dbimport工具。 onunload工具可以将整个数据库或者单个表的结构和数据导出到指定二进制文件中 Onload 可以创建整个数据库或者单个表,然后装入数据。导出数据时,要事先手工创建0字节的输出文件。 将整个数据库的结构和数据导出: $ onunload -t {output_file} {database_name} 将指定表的结构和数据导出: $ onunload -t {output_file} {database_name}:{table_name} 创建数据库并导入数据: $ onload -t {input_file} {database_name} 创建表并导入数据: $ onload -t {input_file} {database_name}:{table_name}
  • 95. 常用的命令结构脚本dbschema 从数据库中导出数据库对象的脚本,如: dbschema –d -t dbschema –d -f !
  • 96. Dbaccess介绍 字符型图形化工具; 支持调用系统的文本编辑工具(vi);向导式的结构维护; 简单的数据库级的维护;
  • 97. dbaccess 运行脚本: dbaccess dbaccess -<
  • 98. 常用的命令数据操纵表级数据 出数据库: UNLOAD TO ‘sqlfile.sql’ SELECT * FROM TABLENAME; 入数据库: LOAD FROM ‘sqlfile.sql’ INSERT INTO TABLENAME;
  • 99. 常用工具-SQL Editor
  • 100. INFORMIX数据库优化update statistics for table {table_name} dbaccess  Query-Language  New  Update Statistics ESC  Run
  • 101. 如何查询错误号 在命令行查询错误号用 finderr error-number 其中error-number指具体错误号码。
  • 102. 谢谢欢赏