Oracle-for-Tiptop-系统培训教程课件.ppt
神州数码管理系统有限公司Digital China Management Systems Limited,Oracle for Tiptop系统培训教程,内容纲要,Oracle 体系结构 Oracle 一些重要的概念 Oracle 数据存储 Oracle 数据库启动和关闭 Oracle 服务器参数文件Oracle 表空间管理Oracle 用户管理Oracle 数据库备份和恢复Oracle 警告日志和工具,Oracle 体系及架构,Oracle 内存及进程(1),Oracle 内存结构SGA 系统全局区包括数据库缓冲存储区、字典缓存区、日志缓冲区和共享池等软件代码区PGA 程序全局区为单个用户进程分配的专用内存区域,私有的用户进程,不能共享;包括栈区和数据区排序区,Oracle 内存及进程(2),Oracle 进程结构服务器进程 用于处理连接到该实例的用户进程的请求 后台进程 系统为了使性能最好和协调多个用户,在多进程系统中使用一些附加进程,称为后台进程。每个后台进程与Oracle数据库的不同部分交互。Oracle 后台进程的名字:ora_XXXX_YYYYXXXX 为进程的功能名称(我们把它理解成进程名称)YYYY 为数据库实例名称如 ora_smon_topprod#ps ef|grep ora_,Oracle 内存及进程(3),后台进程(续)系统监控进程(smon)数据库系统启动时执行恢复性工作,对有故障数据库进行修复进程监控进程(pmon)用于恢复失败的用户进程数据库写入进程(dbwr)将修改后的数据块内容写回数据库日志写入进程(lgwr)将内存中的日志内容写入日志文件归档进程(arch)日志归档(当数据库服务器以归档方式运行时),Oracle 内存及进程(4),后台进程(续)检查点进程(ckpt)标识检查(check point),用户减少数据库恢复所需的时间恢复进程(redo)用户分布式数据中的失败处理锁进程(lckn)在并行服务器模式下,保持数据的一致性,一些重要的概念,数据库名 区分数据库内部标识。对应的参数DB_NAME SQL select name from v$database;或 show parameter db_name;实例名用于数据库与操作系统之间的联系。对应参数instance_name,操作系统环境变量ORACLE_SIDSQL select instance_name from v$instance;或 show parameter instance_name,一些重要的概念,网络服务名也可叫主机字符串,包括三方面内容:网络协议、对方主机名或IP地址、数据库服务名。用于客户端连接数据库。,一些重要的概念,实例 Instance用来访问数据库文件集的存储结构及后台进程的集合;实例为存取和控制一数据库的软件机制;每一次在数据库服务器上启动一数据库时,称为系统全局区(System Global Area)的一内存区(简称SGA)被分配,有一个或多个Oracle进程被启动,该SGA和Oracle进程的结合称为一个Oracle数据库实例;一个实例的SGA和进程为管理数据库数据而工作,为该数据库一个或多个用户服务而工作;,一些重要的概念,实例与数据库文件之间的关系,数据库文件(Data Files),一些重要的概念,模式和模式对象一个数据库可以有多个用户;每个用户都拥有一个模式(Schema);每个用户模式是表和索引等数据库逻辑对象的集合;创建了一个用户后,则该用户自动对应了一个模式,用户登录后,可以操作自己模式下的对象,但不可以操作其他用户模式下的对象,除非为该用户授权;Oracle数据库中的表是基于用户的,每个用户可以有名称相同的表而互不干扰。,一些重要的概念,图解数据库、用户、模式、数据库对象的关系,system,sys,ds,ds1,ds2,Oracle 数据存储,物理结构每一个 Oracle 数据库是由几种主要类型的物理文件组成:数据文件(Data File)用于存放所有的数据,扩展名为.dbfSQL select name from v$datafile;重做日志文件(Redo Log File)记录了对数据库进行的所有操作,扩展名为.log控制文件(Control File)记录了数据库所有文件的控制信息,扩展名为.ctl除数据库实体文件以外,还有:参数文件(Parameter File)备份文件(Backup)警告和跟踪日志,Oracle 数据存储,逻辑结构数据库逻辑结构包含表空间(table space)、段(segment)、范围(extent)、数据块(block)。一个数据库在逻辑上是由一个或多个表空间组成的。一个表空间是由段所组成的。一个段是由范围组成的。一个范围是由一组连续的数据块组成的。一个数据块对应于磁盘上的一个或多个物理的块。是数据库使用的 I/O 的最小单位,数据块大小应该是操作系统块大小的倍数,Oracle 数据存储,Oracle数据库,表空间,表,表空间,表空间,索引,视图,数据段,数据段,索引段,范围,回滚段,临时段,范围,数据块,数据块,表空间,数据库,逻辑对象,段,范围,数据块,Oracle 数据存储,表空间一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(TableSpace)。一个表空间可将相关的逻辑结构组合在一起。,Oracle 数据库启动和关闭(1),数据库启动顺序:启动一个实例 装配数据库 打开数据库数据库关闭顺序:关闭数据库 卸下数据库 停止实例,Oracle 数据库启动和关闭(2),数据库启动命令:运行 SQL*Plus 工具#sqlplus/nolog启动 SQL*Plus,不提供Oracle认证,连接到空闲实例#sqlplus oracle_username/password启动 SQL*Plus,使用 Oracle 帐户认证一次完成(连接实例、装载数据库、打开数据库)#sqlplus/nologSQL connect userid/passwd as sysdba或SQL connect/as sysdbaSQL startupSQL show sga,Oracle 数据库启动和关闭(3),数据库启动命令(续):连接到实例,或更换用户和模式SQL connectSQL connect ds/dsSQL connect/as sysdba启动实例,但不装载数据库SQL startup nomount装载数据库,但不打开数据库SQL startup mount,Oracle 数据库启动和关闭(4),数据库启动命令(续)SQL startup restrict启动实例、装载数据库、打开数据库,但限制访问数据库,仅允许具有create session和restricted session 两个系统权限的用户访问,常用于数据库排他的导入导出;SQL startup force强制启动实例,当不能关闭当前实例和启动实例时遇到问题时使用;SQL startup open recover启动例程、装载数据库并启动整个介质恢复SQL startup db_name PFILE=init.ora启动指定数据库名和参数文件,Oracle 数据库启动和关闭(5),数据库关闭命令:SQL shutdown immediate;立即关闭数据库,此命令发出后,不允许新的连接和事务启动,回滚未提交的事务,不等待当前用户与数据库断开连接,Oracle隐式地回滚活动的事务并且断开所有的连接用户。下次启动时不需任何实例恢复过程。SQLshutdown;或SQL shutdown normal;正常关闭数据库,此命令发出后,不允许重新连接,并且在数据库被关闭前,Oracle等所有的当前被连接的用户从数据库断开。数据库下次启动时不需任何实例恢复过程。,Oracle 数据库启动和关闭(6),数据库关闭命令(续):SQL shutdown transactional;事务性关闭数据库,此命令发出后,不允许新的连接和事务启动,等待事务完成提交后才断开用户的连接。下次启动时不需任何实例恢复过程。SQL shutdown abort;强制关闭数据库,此命令发出后,不允许新的连接和事务启动,当前Oracle处理的SQL语句被立即终止,回滚未提交的事务。Oracle隐式地回滚活动的事务并且断开所有的连接用户。下次启动时要求实例恢复过程。,Oracle 数据库启动和关闭(7),Oracle 网络监听服务 Listener启动监听服务lsnrctl start停止监听服务lsnrctl stop查看监听服务状态lsnrctl status,数据库的可用性(1),SQL alter database open;打开关闭的数据库 SQL alter database open read only;以只读模式打开数据库SQL alter database open read write;以读写模式打开数据库 SQL alter database mount;以独占模式装载数据库但不打开 SQL alter system disable restricted session;取消对打开数据库限制访问控制,数据库的可用性(2),SQL alter system enable restricted session;对打开数据库限制其的访问SQL alter system suspend;挂起数据库 SQL alter system resume;恢复挂起的数据库SQL select database_status from v$instance;查看数据库状态,服务器参数文件,显示当前使用服务器参数文件名SQL show parameters spfile;创建服务器参数文件SQL create spfile=/tmp/spfile_test.ora from pfile=/u1/oracle/dbs/init.ora;SQL create spfile from pfile=/u1/oracle/dbs/init.ora;没有指定SPFILE名字,默认为spfile$ORACLE_SID.ora导出服务器参数文件SQL create pfile=/u1/oracle/dbs/init.ora from spfile=/u1/oracle/dbs/spfile_test.ora;SQL create pfile=/tmp/init.ora from spfile;,Oracle 表空间管理(1),系统表空间(SYSTEM)临时表空间(TEMP)工具表空间(TOOLS)用户表空间(USERS)数据及索引表空间 撤消表空间,Oracle 表空间管理(2),建立表空间CREATE TABLESPACE tablespacename DATAFILE filename autoexetend_clause,.MININUM EXTENT integer K/M|BLOCKSIZE integer K|LOGGING|NOLOGGING|DEFAULT storage_clause|ONLINE|OFFLINE|PERMANENT|TEMPORARY|extent_management_clause|segment_management_clause;,Oracle 表空间管理(3),创建表空间范例SQL CREATE TABLESPACE dbs1 DATAFILE/u1/oradb/oradata/dbs1-01.dbf SIZE 500M;SQL CREATE TABLESPACE temptabsDATAFILE/u1/oradb/oradata/temptabs.dbf SIZE 100MAUTOEXTEND ON NEXT 10M;SQL CREATE UNDO TABLESPACE undotbs2 DATAFILE/u1/oradb/oradata/undotbs21.dbf SIZE 50M;SQL CREATE TEMPORARY TABLESPACE temp2 TEMPFILE/u2/oradb/oradata/temp21.dbf SIZE 200M;,Oracle 表空间管理(4),修改表空间ALTER TABLESPACE tablespacename datafile_tempfile_clauses|DEFAULT storage_clauses|MINIMU EXTENT integer K|M|ONLINE|OFFLINE NORMAL|TEMPORARY|IMMEDIATE|FOR RECOVER|BEGIN|END BACKUP|READ ONLY|WRITE|PERMANENT|TEMPORARY|COALESCE LOGGING|NOLOGGING;,Oracle 表空间管理(5),修改表空间范例SQL ALTER TABLESPACE temp ADD TEMPFILE/u2/oradb/oradata/temp02.dbf size 2000Mreuse autoextend on next 10M MAXSIZE 5000M;SQL ALTER TABLESPACE undotbs1 ADD DATAFILE/u2/oradb/oradata/undotbs02.dbf size 2000Mreuse autoextend on next 10M MAXSIZE 5000M;SQL ALTER TABLESPACE dbs1 ADD DATAFILE/u1/oradb/oradata/dbs1-02.dbf SIZE 2000M;,Oracle 表空间管理(6),删除表空间DROP TABLESPACE tablespacename INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS INCLUDING CONTENTS删除包含有任何数据库对象的表空间时,必须指定该子句,其作用是删除表空间的全部内容。AND DATAFILES删除表空间时同时删除其数据文件CASCADE CONSTRAINTS删除其他表空间中的表的引用完整性约束,这些约束是对删除的表空间的表的主关键字或唯一关键字的引用。,Oracle 用户管理(1),创建用户CREATE USER user IDENTIFIED BY password|EXTERNALLY|GLOBALLY AS external_name DEFAULT TABLESPACE tablespace|TEMPORARY TABLESPACE tablespace|QUOTA integer K|M|UNLIMITED ON tablespace|PROFILE profile|PASSWORD EXPIRE|ACCOUNT LOCK|UNLOCK,Oracle 用户管理(2),创建用户(续)IDENTIFIED指定如何验证用户BY password登录口令DEFAULT TABLESPACE指定用户建立对象缺省表空间,默认为 SYSTEM 表空间TEMPORARY TABLESPACE指定用户建立对象的临时表空间,默认为 SYSTEM 表空间QUOTA允许用户分配表空间的空间,默认为UNLIMITEDPROFILE分配给用户的资源文件,默认分配DEFAULT这个资源给用户PASSWORD EXPIRE要求用户口令立即期满,强制用户在首次登录到数据库时更改口令ACCOUNT LOCK|UNLOCK锁住或不锁住用户的账号,Oracle 用户管理(3),创建用户(续)SQL create user ds1 identified by ds1default tablespace dbs1temporary tablespace temp;,Oracle 用户管理(4),修改用户ALTER USER user IDENTIFIED BY password|EXTERNALLY|GLOBALLY AS external_name DEFAULT TABLESPACE tablespace|TEMPORARY TABLESPACE tablespace|QUOTA integer K|M|UNLIMITED ON tablespace|PROFILE profile|PASSWORD EXPIRE|ACCOUNT LOCK|UNLOCK|DEFAULT ROLE role_name DEFAULT ROLE 给用户指定缺省的角色。不能在 CREATE USER 语句中给用户一个缺省的角色。当创建一个用户时,设置的用户的缺省角色是ALL。,Oracle 用户管理(5),删除用户DROP USER user CASCADE CASCADE 表示在删除用户前应该删除该用户模式的所有对象(表、索引等),Oracle 用户管理(6),#sqlplus system/manager;SQL drop user ds1 cascade;SQL connect system/manager;SQL create user ds1 identified by ds1 default tablespace dbs1temporary tablespace temp;SQL grant create session,create table to ds1;SQL grant resource to ds1;SQL connect/as sysdba;SQL grant drop any table to ds1;SQL grant drop any sequence to ds1;SQL grant create public synonym to ds1;SQL grant create synonym to ds1;SQL grant drop public synonym to ds1;SQL grant select on sys.v_$session to ds1;SQL exit,Oracle 数据库备份和恢复,备份方式导出(exp)/导入(imp)冷备份热备份RMAN备份,Oracle 数据库备份和恢复,exp/imp 的三种模式:用户模式(U方式)导出用户所有对象以及对象中的数据 表模式(T方式)导出用户所有表或者指定的表 整个数据库(Full方式)导出数据库中所有对象,Oracle 数据库备份和恢复,exp(导出)范例$exp system/managerowner=ds,ds1,ds2 file=backup.dmp$exp ds/ds tables=zx_file,zxy_filefile=backup.dmp$exp system/manager full=y file=full.dmp$exp ds/ds file=ds.dmp,Oracle 数据库备份和恢复,imp(导入)范例$imp system/managerfromUser=ds toUser=ds1file=backup.dmp$imp ds3/ds3 tables=zx_file file=ds3.dmp$imp ds/ds full=y ignore=y file=ds.dmp,Oracle 数据库备份和恢复,冷备份冷备份发生在数据库已经正常关闭的情况下,把数据库使用的每个文件都备份下来,这些文件包括:所有数据文件所有控制文件 所有联机 Redo Log 文件 init$ORACLE_SID.ora 文件(可选)值得注意的是冷备份必须是数据库关闭的情况下完成,当数据库开着的时候,执行数据库文件系统备份无效。冷备份一般步骤是:正常关闭要备份的实例(instance)备份整个数据库到一个目录启动数据库,Oracle 数据库备份和恢复(6),热备份 热备份是在数据库运行的情况下,采用 archive log mode 方式备份数据的方法。Oracle归档重做日志设置 1、修改init.ora参数 LOG_ARCHIVE_START=TRUE LOG_ARCHIVE_DEST=/backup/archive LOG_ARCHIVE_DUPLEX_DEST=/u2/archive 2、调整日志为归档方式 STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;3、手工执行日志归档 ALTER SYSTEM ARCHIVE LOG ALL;ALTER SYSTEM ARCHIVE LOG CURRENT;,,Oracle 数据库备份和恢复,热备份的步骤:刷新在线重做日志文件如:alter system archive log current;拷贝 init.ora 文件到备份目录对每个表空间的数据文件进行一个一个地备份。3.1设置表空间为备份状态(视图 dba_tablespaces 查看表空间)如:alter tablespace users begin backup;3.2备份表空间的数据文件(视图 v$datafile 查看数据文件)如:!cp/data/oradata/topprod/users01.dbf/backup 3.3恢复表空间为正常状态 如:alter tablespace users end backup;,Oracle 数据库备份和恢复,热备份(续)3.4用 alter database backup controlfile 命令来备份拷贝文件如 alter database backup controlfile to trace;或 alter database backup controlfile to/tmp/control.0101;3.5通过在 sqlplus 上执行 archive log list 命令获取当前的日志顺序号,从 oldest online log sequence 开始到 current log sequence 的联机 redo 日志应该是热备份的一部分。在 sqlplus 上执行 alter system switch logfile 来强迫日志切换,以便所有的日志都被归档。3.6刷新在线重做日志文件,以确保备份过程中的改动已被存档如:alter system archive log current;,Oracle 数据库备份和恢复,RMAN备份脚本:rman target sys/tiptop%run allocate channel t1 device type disk;setlimit channel t1 kbytes 2048000;change archivelog all crosscheck;backup full database filesperset 5 format/u2/rmanbackup/%d_DB_%T_%s_p%p;sql alter system archive log current;backup archivelog all delete input filesperset 20 format/u2/rmanbackup/%d_Log_%T_%s_p%p;backup current controlfile format/u2/rmanbackup/%d_Ctrl_%T_%s_p%p;release channel t1;%,Oracle 警告日志(1),警告日志所记录信息如下:重做日志转换检查点关键性错误和信息警告日志记录的重要事件如下:数据库启动和关闭对数据库结构的改变对段状态的修改,Oracle 警告日志(2),警告日志物理上是 Oracle 产生的一种文本文件,其所在的目录由初始化参数 BACKGROUND_DUMP_DEST 指定。可由下面命令显示其值:SQL show parameter BACKGROUND_DUMP_DEST;或 SQL select name,value from v$parameterwhere name=background_dump_dest;BACKGROUND_DUMP_DEST 缺省位置为:$ORACLE_BASE/admin/$ORACLE_SID/bdump,SQL*Loader(1),SQL*Loadersqlldr username/passwordcontrol=xxx_file.ctl direct=truexxx_file.ctl(控制文件.ctl)的内容:load datainfile xxx.unl(xxx.unl为数据文件)truncate(或append)into table xxx_file(xxx_file为表名)fields terminated by A(A 为分隔符)(aab01,aab02,aab04),SQL*Loader(2),接上例:xxx.unl 数据文件内容样本:A001AdemoA01/07/27AA002AdemoA01/07/27AA003AdemoA01/07/27AA004AdemoA01/06/07AA005AdemoA01/06/07AA006AdemoA00/01/05AB001AdemoA00/01/05AB002AdemoA00/01/05A,使用 Tiptop 程式进行文本数据导入导出,Load 和 unload 所在的目录$TOP/ora/binLoadx 和 unloadx 所在的目录$TOP/ora/bin命令用法load dbname tablename filenameunload dbname tablename filename loadx dbname filename“select SQL”unloadx dbname filename“select SQL”使用范例load ds zx_file zx_file.txt从 zx_file.txt 文本文件中读取数据,写入数据库 ds 的 zx_file 表中unload ds zx_file zx_file.txt从数据库 ds 的 zx_file 表中读取数据,写入到文本文件 zx_file.txt 中注意:文本数据文件各栏位分隔符要与环境参数 DBDELIMITER 的值一致,文本数据文件各栏位要与 tablename 的各栏位一致,Tiptop 系统常用脚本工具,$TOP/ora/scripts/*oraq q_users$TOP/ds4gl2/bin/rebuild$TOP/ora/bin/createdb$TOP/ora/bin/analyze,谢谢!,