Oracle数据库技术培训.ppt

上传人:xin****828 文档编号:15821380 上传时间:2020-09-08 格式:PPT 页数:91 大小:244KB
收藏 版权申诉 举报 下载
Oracle数据库技术培训.ppt_第1页
第1页 / 共91页
Oracle数据库技术培训.ppt_第2页
第2页 / 共91页
Oracle数据库技术培训.ppt_第3页
第3页 / 共91页
资源描述:

《Oracle数据库技术培训.ppt》由会员分享,可在线阅读,更多相关《Oracle数据库技术培训.ppt(91页珍藏版)》请在装配图网上搜索。

1、,Oracle数据库技术培训,2008年4月,培训内容,Oracle数据库基础 Oracle 数据库结构 Oracle 数据库实例 * Oracle 数据库访问 * Oracle 分布式处理及分布式数据库 * Oracle 数据库备份和恢复 *,培训内容,数据库基础 Oracle 数据库结构 Data block, Extent,Segment Tablespace, Datafile Data Dictionary Oracle 数据库实例 Database and Instance Startup and Shutdown Memory Structure Process Structur

2、e Oracle 数据库访问 Oracle Sql and Pl*sql Oracle Procedure and Package,培训内容,Oracle分布式处理及分布式数据库 分布式处理 Oracle 客户机服务器的体系结构 Net8 分布式数据库 Oracle分布式数据库体系结构 Oracle 数据库的备份和恢复 物理备份 热备份 逻辑备份,数据库基础,关系型数据库,在1970年提出了关系模型的概念. 这是关系型数据库管理系统的基础 (RDBMS). 关系模型包含以下内容: 对象和关系的集合 关系上的一组操作 数据一致性管理,关系型数据库,关系型数据库是关系或二维表的集合.,Oracle

3、 Server,IDLAST_NAMEFIRST_NAME 10HavelMarta 11MageeColin 12GiljumHenry 14NguyenMai,SALES_ IDNAMEPHONEREP_ID 201Unisports55-206610112 202Simms Atheletics81-2010114 203Delhi Sports91-1035114 204Womansport1-206-104-010311,Table Name: CUSTOMER,Table Name: EMP,关系型数据库,SALES_ IDNAMEPHONEREP_ID 201Unisports5

4、5-206610112 202Simms Atheletics81-2010114 203Delhi Sports91-1035114 204Womansport1-206-104-010311,Row (Tuple),Column (Attribute),S_CUSTOMER Table (Relation),每个表由行和列组成. 通过执行结构化查询语句(SQL)操纵行上的数据.,关系型数据库,主键(PK)-基表中每一行都有的唯一标识符. 外键(FK)-多个基表间建立逻辑关系的标识.,IDLAST_NAMEFIRST_NAME 10HavelMarta 11MageeColin 12Gilj

5、umHenry 14NguyenMai,Table Name: S_CUSTOMER,Table Name: S_EMP,Primary Key,Foreign Key,Primary Key,SALES_ IDNAMEPHONEREP_ID 201Unisports55-206610112 202Simms Atheletics81-2010114 203Delhi Sports91-1035114 204Womansport1-206-104-010311,关系型数据库特点,通过SQL命令访问或修改数据库中的对象 由一系列基表构成 支持大量操作 便于修改 数据独立性,关系型数据库对象,描述

6、 数据库的基本存储单位(由行和列组成). 一个或多个表中数据的逻辑映像. 产生主键的值. 提高查询的性能. 改变对象的名称 过程、函数和包(由SQL、PL/SQL语句组成).,对象 基表 视图 序列号 索引 同义词 程序单元,Oracle 数据库结构,Oracle数据库结构,数据块,区和段的关系 数据块(db_block) 它是Oracle数据库存储的最小单位,Oracle是以多个Oracle块的大小来请求数据的。 数据块的大小是在数据库创建时设定的。并且块大小是操作系统块大小的倍数。 块格式:块头,表目录,行目录,行数据,空闲空间,区 (Extent),数据库存储空间分配的一个逻辑单元,它是

7、由一些连续的数据块组成。而一个或多个区又够成段(Segment)。 初始区( Initial Extent ) 增量区( Next Extent ) 数据段区 (在创建表时,可指定表的存储参数。若不指定,使用缺省表空间存 储参数) 举例:Create table table_name (col1 type, col2 type ) Storage ( initial 50K next 50k pctincrease 0); 索引段区 分配给索引段的区,只要索引存在就保留其分配。如果删除索引及相关 的表,Oracle将回收这些区给表空间中的其它用户使用。,区 (Extent),回退段区 Orac

8、le将自动检测数据库中的回退段,是否已经大于最佳大小, 若大于最大值,Oracle将自动释放回退段中的一个或多个区。 临时段区 Oracle在执行完需要临时段的语句时,Oracle将自动删除临时段, 并将其已经分配给该段的区返回到相关的表空间中。,段(Segment),段是由一组区组成。它包括表空间中特定逻辑存储结构组成的所有数 据。 组成 数据段 表 分区 表簇 索引段 临时段 在处理查询时,Oracle需要临时工作区,作为语法检查和执行的中间场所。Oracle将自动分配临时工作区,通常临时工作区作为排序工作区。,段(Segment),组成 (Cont.) 临时段 下列语句需要临时工作区 C

9、reate Index Select order by Select distinct Select group by Select Union Select Intersect Select Minus 若用户在定义时,若没有指定临时段表空间,则缺省的临时段 空间为system表空间。,段(Segment),组成 (Cont.) 回退段 每个数据库都包含一个或多个回退段。回退段记录了由每个事 物处理改变了的原值。它主要用于提供读一致性、回退事物处 理和恢复数据库。 在创建回退段时,需要指定该段的区的分配。每个回退段必须 至少分配两个区。 事物顺序地写入回退段中。每个事物在任何时候只写入回退段

10、 一个区中。多个活动的事务可以并行地写入单个回退段甚至是 同一个回退段的区中。但是回退段中的每个数据块,只为单个 事物处理保存数据。,回退段(rollback Segment),回退段管理 OEM(oracle enterprise manager)来管理 rollback segment SQL 命令来管理 创建回退段: create rollback segment name tablespace ts_name storage( initial number k or M next number k or M optimal number k or M minextent number

11、maxextent number);,回退段(rollback Segment),查询系统中已有的回退段数 通过系统的参数文件来查看系统中可用的rollback segment 个数。 initsid.ora 文件 (私有的) connect sys/manager desc dba_rollback_segs select segment_name from dba_rollback_segs; /*查询系统中使用的回退段数*/ 查询回退段请求数 select sum(value) data requests from v$sysstat where name in ( do block g

12、ets,consistent gets);,Oracle数据库结构,表空间及数据文件 逻辑上Oracle将数据存储于表空间中,物理上存储于相应表空间关 联的数据文件上。 Oracle是由一个或多个表空间组成。 每个表空间由一个或多个数据文件组成。 数据库的全部数据存储于数据文件中,这些数据文件组成了数据库中的每个表空间。,表空间,系统表空间(system) 每个数据库都包含一个system表空间。它是在数据库创建时,由Oracle自动创建的。 system表空间始终包含整个数据库的数据字典。 临时段表空间(Temporary Tablespace) 临时段所属的表空间 索引表空间(Index

13、Tablespace) 索引段所属的表空间 回退段表空间(Rollback Tablespace) 回退段所属的表空间,创建表空间,OEM(Oracle Enterprise Manager) Oracle提供图形界面的管理工具来创建、管理表空间。 SQL 命令 创建tablespace Create tablespace test_ts Datafile file_name size 10M default Storage ( initial 50k next 50k pctincrease 0 minextents 2); 修改tablespace Alter tablespace tes

14、t_ts add datafile file_name size 10M; 删除tablespace drop tablespace;,表空间查询,通过执行下面的语句来查询该数据库系统中所包含的表空间及状态 Connect sys/manager; desc dba_tablespaces select * from dba_tablespaces; /* 查询表空间当前状态及存储参数 */ select tablespace_name,sum(bytes) from dba_free_space group by tablespace_name; /* 查询表空间的剩余状态 */,数据文件,

15、在一个完整的数据库的环境中,需要下列文件: 数据文件 每个数据文件只能于一个表空间和一个数据库关联。 在数据文件被首次创建时,分配的磁盘空间被格式化。 使用数据字典,查询数据库对应的数据文件。 connect sys/manager; desc dba_data_files; select * from dba_data_files;,重做日志文件(redolog file),数据的每一种改变,都记录到重做日志文件中。当 事故发生时,使用重做日志文件恢复所有的事物。 在数据库创建时,只定三个缺省的redolog file. redolog1,redolog2,redolog3 在数据库处于非归

16、档方式下,redolog file是循环使用的。 在处于归档方式下的数据库,所有的redolog信息被保留。 查看系统的redolog file的状态 connect sys/manager; desc v$logfile; select * from v$logfile;,控制文件(control file),控制文件用于保存数据库管理系统操作的重要信息。它是在数据 实例(instance)启动时,确定数据文件和重做日志文件在系统中 的位置。 控制文件的丢会给数据库的系统管理带来灾难性的后果. 建议将控制文件存储于多个磁盘卷。也可以在数据库创建后,建 立一个备份的控制文件。 alter da

17、tabase backup controlfile to trace; 在系统的trace目录找到控制文件的创建模板。 查询control file 位置 connect sys/manager desc v$controlfile; select * from v$controlfile;,参数文件 (initsid.ora),参数文件在数据库的位置: $ORACLE_HOME/dbs/init(sid).ora if sid=ora805 then 参数文件名为: initora805.ora 它定义在系统启动时所定义的信息.定义例程运行环境.通过 对参数文件的调整可以优化系统性能. 查询

18、系统运行的参数值 svrmgrl svrmgrconnect internal; svrmgrshow parameters; svrmgrshow parameter db,定义:在数据库启动例程时,所必须读取的包含数据库例程和配置参数列表的文本文件。,参数文件 (initsid.ora),初始化参数内容: 启动例程的数据库名 SGA在内存结构中占有多少内存 如何处理装满的联机重做日志文件 数据库控制文件的名称及位置 数据库私有rollback段的名称及个数 见系统参数文件:E:pora804databaseinitorcl.ora,Oracle数据库结构,数据字典 数据字典是Oracle数

19、据库的重要组成。它由一组只读表组成。 包括: 数据库所有对象的定义(表,视图,索引,簇,同义词,序列 ,过程,函数,程序包,触发器) 空间的分配和使用状况 列的缺省值 完整性约束信息 用户名 已授予用户的角色和权限 审计信息等,数据字典,数据字典结构 基表 存放相关数据库信息的基础表 视图 汇总并显示存放数据字典基表中信息的视图,数据字典,数据字典所有者 Oracle的sys用户拥有数据字典所有的基表和视图。任何Oracle用户都不能改变数据字典的任何数据。不能更新、插入、 删除。数据字典的改变会影响数据库的正常运行。 系统管理员需要严格管理系统用户.(sys and system),数据字典

20、,常用的数据字典 前缀范围 USER用户视图 ALL用户可访问的部分 DBA数据库管理员视图,常用的数据字典,dba_tablespaces dba_data_files dba_tables dba_users dba_views dba_indexes dba_db_links dba_free_space,dba_ind_columns dba_jobs dba_objects dba_rollback_segs dba_segments dba_sequences dba_snappshots dba_synonyms dba_tab_columns dba_triggers dba_

21、constraints dba_cons_columns,Oracle数据库实例,Oracle数据库实例,数据库和实例 每个Oracle数据库的运行都于Oracle的例程(Instance)相关。 数据库在服务器上启动时,Oracle分配一个SGA(system global area)的内存区。 例程是由(SGA和后台进程组成),是Oracle数据库的运行 环境 在通常情况下,数据库与例程是一对一的,但是在Oracle Parallel Server的环境下,允许多个例程装载相同的数据库。,数据库的启动和关闭,数据库的启动于关闭必须使用管理员权限. 在数据库安装后,建立了一个叫做intern

22、al的操作系统用户,其口令是由数据库的口令文件来认证的。它负责数据库的启动与关闭。 数据库的启动分为三个步骤: 启动例程 装载数据库 打开数据库,数据库的启动和关闭,数据库正常启动过程: svrmgrl (启动server manager) svrmgrl connect internal; svrmgrlstartup /*启动数据库*/ svrmgrlshutdown /*关闭数据库 */ Svrmgrl 它是数据库的管理工具,关于它的具体的使用,见 svrmgrl help,数据库的启动和关闭,在数据库关闭时应注意: 若有数据库的客户端没有退出数据库连接,在使用正常的数据库关闭的方式,无

23、法关闭,数据库关闭处于等待状态。 使用下面的方式关闭数据库: svrmgrl shutdown; svrmgrl shutdown immediate; /* 断开数据库连接,关闭数据库*/ svrmgrl shutdown abort; /*在某些特殊情况下,使用这种关闭数据库方式。它将立即结束当前的sql语句,不回退未提交的事物,数据完整性没有保护。在下次启动时,数据库将自动进行恢复,用户最好不使用这种方法。*/,Oracle数据库实例,内存结构 SGA(系统全局区) 它是一组共享内存结构,由Instance 数据和控制信息组成。 包含下面的结构: 数据库缓冲区高速缓存 (db_block

24、_buffer) 重做日志缓冲区 (log_buffer) 共享池(shared_pool_size) 数据字典高速缓存 其他 PGA(程序全局区) 是内存中的区域,包含单个进程的数据和控制信息。每个服务器进程分配一个PGA,PGA由每个服务器进程独占。当用户连接入Oracle数据库并建立会话时,Oracle分配PGA。,Oracle数据库实例,进程结构 在Oracle数据库中,有两类进程: 服务器进程 Oracle通过服务器进程来处理与例程连接的用户请求。 后台进程 为了将性能提到最高限度以及容纳更多的用户,多进程的Oracle系统使用了一些另外的进程(后台进程) Oracle 中的后台进程

25、包括: DBW0 数据库写入进程,将缓冲区的内容写入数据文件。 LGWR 将重做日志缓冲区的内容写入磁盘的重做日志文件,Oracle数据库实例,进程结构 Cont 后台进程 SMON 系统监控进程,在例程启动时,负责实现系统的崩溃恢复。 PMON 用户进程失败时,进程监控程序实现进程恢复。 RECO 它是解决与分布式事物相关的故障。只有例程允许分布式事物处理并且 Distributed_transactions 0时,RECO进程才会 出现。 CKPT 检查点进程,Oracle数据库实例,进程结构 Cont 后台进程 ARCn 归档程序进程。当数据库设于归挡方式时,当重做日志文件已满或出现 a

26、lter system switch logfile命令进行日志切换时,Oracle的 ARCn进程将重做日志文件中的内容拷贝到指定的存储设备上。 Dnnn 调度程序进程 (在多线索结构中使用) Snnn 共享服务器进程(在多线索结构中使用),Oracle数据库访问,Oracle数据库访问,Oracle SQL,SQL*Plus and PL*SQL SQL是结构化的查询语言 Oracle的SQL语言包含对ANSI/ISO标准SQL语言的扩充。 Oracle的SQL语言分为以下几类: DML(数据操纵语言) DDL(数据定义语言) 事物处理的控制语言 会话控制语句 系统控制语句 SQL*PLU

27、S 是Oracle的一个使用程序,它可以运行于客户端,也可以运行 服务器端,通过它能够查看数据字典的信息,以及查看用户数据和结构等,运行程序。,Oracle数据库访问,PL*SQL 是Oracle的一种过程化的语言。他有自己的程序结构, 有各种条件控制和循环控制。通过语言,能够写数据库的存储过程和包。甚至通过PL*SQL语言还可以开发基于Web的应用。,SQL,DML Select (从一个或多个表或视图中检索数据) select empno,ename,sal,deptno from emp where deptno=10; 复杂的select 语句: group by 子句 select

28、deptno,min(sal),max(sal) from emp group by deptno; having 子句 select deptno,min(sal),max(sal) from emp where job=CLERK group by deptno having min(sal)1000;,SQL,DML selectcont Order by select ename ,deptno,sal from emp order by deptno ASC,sal DESC; for upfate select empno,sal,comm from emp,dept where

29、job=CLERK and emp.deptno=dept.deptno and loc=NEW YORKfor update; select empno,sal,comm from emp,dept where job=CLERK and emp.deptno=dept.deptno and loc=NEW YORK for update of emp.sal; join select empno,ename,dname from emp,dept where emp.deptno=dept.deptno;,SQL,DML update(改变表与视图现有行与列的值) update emp s

30、et sal=1000 where empno=7369; Insert (向表与视图中增加新行) insert into emp values(8888,abc,clerk,0000,sysdate,2000,0,10); delete (从表与视图中删除行) delete from emp where deptno=10;,常用的sql函数,number function abs(n) mod(m,n) power(m,n) round(m,n) sign(n) sort(n) 开平方 trunc(n,m),常用的sql函数,character function CONCAT(char1,

31、 char2) / *返回char1与char2的连接 */ INITCAP(char) /* 返回第一个字母大写的string */ LPAD(char1,n ,char2) LTRIM(char ,set) LOWER REPLACE(char,search_string,replacement_string) SUBSTR(char, m ,n) INSTR (char1,char2 ,n,m) UPPER(char) LENGTH(char) .,常用的sql函数,Date function ADD_MONTHS(d,n) LAST_DAY(d) MONTHS_BETWEEN(d1,

32、d2) NEXT_DAY(d, char) SYSDATE .,常用的sql函数,Conversion Functions TO_CHAR(d ,format) TO_CHAR(n ,format) TO_NUMBER TO_DATE 其它函数 NVL(expr1, expr2) USER .,SQL*Plus,SQLPlus 是Oracle 的一个实用程序. sql*plus的使用: 数据库创建后,将安装scott/tiger的demo用户。 sqlplus scott/tiger sql /* sql*plus的命令行状态 */ sql set pause on spool filenam

33、e spool off,PL*SQL,Pl*SQL是Oracle对SQL的过程化的扩充。Pl*SQL能使用户将SQL语句和过程化的结构结合起来。 PL*SQL的程序单元分为 匿名块 结构: Declare /*变量 定义 */ Begin /* 程序体 */ Exception /* 异常处理 */ End;,Pl*SQL匿名块 (举例),DECLARE acct_balance NUMBER(11,2); acct CONSTANT NUMBER(4) := 3; debit_amt CONSTANT NUMBER(5,2) := 500.00; BEGIN SELECT bal INTO

34、acct_balance FROM accounts WHERE account_id = acct FOR UPDATE OF bal; IF acct_balance = debit_amt THEN UPDATE accounts SET bal = bal - debit_amt WHERE account_id = acct; ELSE INSERT INTO temp VALUES (acct, acct_balance, 扞nsufficient funds?; - insert account, current balance, and message END IF; COMM

35、IT; END;,PL*SQL,存储过程 procedure,package and function procedure and function 结构,PROCEDURE name (parameter, parameter, .) IS local declarations/*变量定义*/ BEGIN executable statements /*过程体*/ EXCEPTION exception handlers/*异常处理*/ END name; FUNCTION name (parameter, parameter, .) RETURN datatype IS local dec

36、larations/*变量定义*/ BEGIN executable statements?/*过程体*/ EXCEPTION exception handlers/*异常处理*/ END name;,Pl*SQL过程 (举例),PROCEDURE raise_salary (emp_id INTEGER, increase REAL) IS current_salary REAL; salary_missing EXCEPTION; BEGIN SELECT sal INTO current_salary FROM emp WHERE empno = emp_id; IF current_s

37、alary IS NULL THEN RAISE salary_missing; ELSE UPDATE emp SET sal = sal + increase WHERE empno = emp_id; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO emp_audit VALUES (emp_id, No such number); WHEN salary_missing THEN INSERT INTO emp_audit VALUES (emp_id, Salary is null); END raise_salary;,P

38、l*SQL函数 (举例),FUNCTION sal_ok (salary REAL, title REAL) RETURN BOOLEAN IS min_sal REAL; max_sal REAL; BEGIN SELECT losal, hisal INTO min_sal, max_sal FROM sals WHERE job = title; RETURN (salary = min_sal) AND (salary = max_sal); END sal_ok;,Pl*SQL,包结构:,CREATE PACKAGE name AS - specification (visible

39、part) - public type and item declarations - subprogram specifications END name; CREATE PACKAGE BODY name AS - body (hidden part) - private type and item declarations - subprogram bodies BEGIN - initialization statements END name;,Pl*SQL 包定义(举例),CREATE PACKAGE emp_actions AS - specification TYPE EmpR

40、ecTyp IS RECORD (emp_id INTEGER, salary REAL); CURSOR desc_salary RETURN EmpRecTyp; PROCEDURE hire_employee ( ename VARCHAR2, job VARCHAR2, mgr NUMBER, sal NUMBER, comm NUMBER, deptno NUMBER); PROCEDURE fire_employee (emp_id NUMBER); END emp_actions;,Pl*SQL包体 (举例),CREATE PACKAGE BODY emp_actions AS

41、- body CURSOR desc_salary RETURN EmpRecTyp IS SELECT empno, sal FROM emp ORDER BY sal DESC; PROCEDURE hire_employee ( ename VARCHAR2, job VARCHAR2, mgr NUMBER, sal NUMBER, comm NUMBER, deptno NUMBER) IS BEGIN INSERT INTO emp VALUES (empno_seq.NEXTVAL, ename, job, mgr, SYSDATE, sal, comm, deptno); EN

42、D hire_employee; PROCEDURE fire_employee (emp_id NUMBER) IS BEGIN DELETE FROM emp WHERE empno = emp_id; END fire_employee; END emp_actions;,Oracle分布式处理及分布式数据库,分布式处理,Oracle C/S Architechture 在Oracle数据库的环境中,数据库应用程序与数据库分为两个部分。前端成为客户机部分,后端成为服务器部分。此即客户机服务器体系结构。 在Oracle客户机服务器的体系结构中,Oracle 需要sql*net(net8)

43、来保障客户机与服务器间的通信。,分布式处理,Net8(sql*net) Net8是oracle的网络接口。它允许在客户机服务器上运行。 在分布式的环境中,Oracle的应用程序需要运行在Net8之上 Net8分为client端和server端两部分。在server端需要运行监听程序保障client 端的请求。 Server端的监听程序为: $ORACLE_HOME/network/admin/listener.ora 启动net8 server: lsnrctl start 查看net8 server的状态: lsnrctl status 停止net8 Server: lsnrctl stop

44、,分布式处理,Net8(sql*net) Net8 client 目录: $ORACLE_HOME/net8/admin/tnsnames.ora 测试net8 client是否连通: tnsping alisename; sqlplus scott/tigeralisename;,Net8 client配置文件,AliseName.world = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (Host = hostname) (Port = 1521) ) ) (CONNECT_DATA = (SID = orasid

45、) ) ),分布式数据库,Oracle分布式数据库体系结构 分布式数据库是指存储在多台计算机上的数据库的集合,一般以单个数据库的形式出现在应用程序面前。应用程序可以同时访问并修改网络上若干数据库的数据。 数据库与数据库链接 分布式数据库中的每个数据库都与系统中的其他数据库有所不同。拥有自己的全局数据库名。 在分布式数据库系统为了简化程序的请求。Oracle使用了数据库链接的技术。数据库链接定义了从一个Oracle数据库到另外一个数据库单向通讯的路径。,数据库链接,database link 它是本地数据库和网上另一数据库之间的链接。通过这个链接,使本地数据库用户访问远端数据库的任务变得简单。对

46、于本地数据库用户对远端数据库的访问是透明的。 创建database link create database link dblink_name connect to username identified by password using connect string ; 其中username与password是需要访问的远端数据库的用户和口令 connect string是本地访问员端数据库的sql*net连接。,数据库链接(举例),CREATE DATABASE LINK CONNECT TO scott IDENTIFIED BY tiger USING sale;,创建数据库链接:,

47、使用数据库链接:,SELECT * FROM ,INSERT INTO (acc_no, acc_name, balance) VALUES (5001, BOWER? 2000);,UPDATE SET balance = balance + 500; DELETE FROM WHERE acc_name = BOWER,Oracle 数据库的备份与恢复,备份方式,物理备份 就是Oracle的数据文件通过操作系统的工具进行的 备份。 热备份 数据库启动并以归档方式 online offline 冷备份 数据库关闭 归档方式 非归档方式 逻辑备份 通过Oracle的实用程序进行的备份 exp

48、NAMESTATUS - /u02/oradata/test/systest.dbfSYSTEM /u03/oradata/test/rbstest.dbfONLINE /u03/oradata/test/temptest.dbfONLINE /u04/oradata/test/usrtest.dbfONLINE /u04/oradata/test/tooltest.dbfONLINE,物理备份,确认需要备份的文件的位置 日志文件 以Oracle用户的身份进入操作系统 sqlplus sys/manager select member from v$logfile; MEMBER - /u01

49、/oradata/test/log1test.dbf /u01/oradata/test/log2test.dbf /u01/oradata/test/log3test.dbf,物理备份,确认需要备份的文件的位置 控制文件 以Oracle用户的身份进入OS。 $svrmgrl svrmgrconnect internal; connected svrmgrshow parameter control_file; NAMETYPE VALUE - control_filesstring/u01/oradata/test/ctrl1test.ctl svrmgr 通常情况下,系统会有三个控制文件。

50、,物理备份,确认需要备份的文件的位置 归档文件 以Oracle的身份进入操作系统。键入如下命令: $svrmgrl svrmgrconnect internal; connected. svrmgrshow parameter archive; NAMETYPEVALUE - log_archive_desstring?/dba/arch log_archive_formatstring%t_%s.dbf svrmgr,物理备份,确认需要备份的文件的位置 参数文件 以oracle用户的身份进入操作系统,并且知道oracle数据库的sid. 假设sid为ora805 $cd $ORACLE_HO

51、ME/dbs $ls init*.ora init.ora initora805.ora (其中initora805.ora 是系统的参数文件) 或者通过下列的命令查询instance 的sid: sqlplus sys/manager; sqlselect instance from v$tread; INSTANCE - test/* test为oracle的sid */,热备份(物理备份),定义 在数据库启动的情况下进行的备份。对数据库所有的物理文件进行拷贝时,Oracle用户仍然处于不间断运行的环境中。 热备份可以两种:online与offline的唯一区别是:数据库的tablespa

52、ce 是否在线。 online 需要备份的tablespace是在线的。 offline 需要备份的tablespace是离线的。,数据库热备份的步骤,1. 以archive log 方式启动数据库 在正常数据shutdown。修改参数文件: init.ora 增加下面两行: log_archive_start=true log_archive_dest=$ORACLE_HOME/dbs/arch 重新启动数据库,这时数据库将以archive log 方式运行. $svrmgrl svrmgrconnect internal; svrmgrstartup mount; svrmgralter

53、database archivelog; svrmgrarchive log start; svrmgralter database open;,数据库热备份的步骤,2.备份数据库 在线的tablespace的备份 执行 svrmgrl svrmgrconnect internal; svrmgralter tablespace tablespace_name begin backup; svrmgr执行系统的备份文件命令 cp svrmgralter tablespace tablespace_name end backup; 下线的tablespace的备份 svrmgralter tab

54、lespace tablespace_name offline normal; svrmgr执行操作系统备份的命令 svrmgralter tablespace tablespace_name online;,数据库热备份的步骤,2.备份数据库 备份控制文件 svrmgrconnect internal; svrmgralter database backup controlfile to filenamereues; 备份控制文件trace svrmgrconnect internal; svrmgralter database backup controlfile to trace; 在系

55、统发生故障时的恢复工作,需要根据不同的故障情况,在oracle工程师的指导下实现恢复的工作。,数据库热备份的注意事项,在执行热备份的方式下,数据库不能运行于noarchive log方式。 查询数据库的运行模式: svrmgrconnect internal; svrmgrarchive log list; Database log ModeArchive Mode sqlconnect sys/manager sqlselect log_mode from v$database; LOG_MODE - ARCHIVELOG,数据库热备份的注意事项,在数据库中,system表空间不能offli

56、ne,所以,只能使 用online的热备份方式。 对于一个tablespace中所有的数据文件均需要进行备份,否则整个tablespace 是无效的。 在做热备份时,尽量选择数据库最不繁忙时进行。,冷备份,定义: 在数据库系统正常关闭的情况下,通过操作系统的命令将所有相关的数据库文件拷贝进行的备份。 冷备份分为归档和非归档两种方式。 需要拷贝的数据文件为: 归档方式: 数据文件,控制文件,归档的日志文件,配置文件和参数 文件 非归档方式: 数据文件,控制文件,联机日志文件,配置文件和参数文 件,逻辑备份,通过export和import进行的数据库的备份为逻辑备份。 export 能够实现数据库

57、的增量备份与累计备份。 参数 inctype=complete (全备份) 将数据库中的所有数据对象卸载 inctype=incremental (增量备份) 对数据库经过上次全备份、累计备份、增量备份后修改的表进行export。 inctype=cumulative(累计备份) 对数据库经历了全备份或累计备份之后的修改的表进行的备份。,进行逻辑备份的举例,现有一个数据库,它由object1 - object20,20个数据对象组成。 第一天:全数据备份(备份20个对象) 第二天:增量备份(对修改过记录的object2,object4进行备份) 第三天:增量备份(对修改过记录的object3,

58、object7进行备份) 第四天:增量备份(对修改过记录的object4,object12进行备份) 第五天:累计备份(对全数据库备份后修改过记录object2,object3,object4,object7,object12进行备份) 第六天:增量备份 (对修改过记录的object8,12进行备份) 第七天:增量备份 (对修改过记录的object4,12进行备份) 第八天:累计备份 (对自从做了累计备份后修改过记录的object4,8,12进行备份) 第九天:增量备份 (对修改过记录的object2,4进行备份) 第十天:增量备份 (对修改过记录的object2,3进行备份),逻辑备份的恢复

59、,对于上面累积备份的例子,通过下面的方法实现相应恢复。 先恢复第十天的数据 再做全数据库备份的恢复(第一天) 再做第一次累计备份文件的恢复(第五天) 再做最后一次累计备份文件的恢复(第八天) 在依此做第九天,第十天的增量恢复。,使用export&import实现增量数据备份和恢复,1. 全数据库export $exp sys/manager buffer=4096000 file=full.dmp full=y inctype=complete 2. 第一天的增量备份 $exp sys/manager buffer=4096000 file=incr1.dmp inctype=incremen

60、tal 3. 第二天的增量备份 $exp sys/manager buffer=4096000 file=incr2.dmp inctype=incremental 4. 第三天的增量备份 $exp sys/manager buffer=4096000 file=incr3.dmp inctype=incremental 假设数据库在第三天发生损坏,下面是根据目前的备份文件进行恢复。,备份:,使用export&import实现增量数据备份和恢复,将最后一次的dump文件imp到oracle数据库中。 imp sys/manager buffer=4096000 file=incr3.dmp f

61、ull=y ignore=y inctype=system 将整个数据库备份的dump文件至数据库中 imp sys/manager buffer=4096000 file=full.dmp full=y ignore=y inctype=restore 将第一天增量备份的dump文件imp到数据库中。 imp sys/manager buffer=4096000 file=incr1.dmp ignore=y full=y inctype=restore 将第二天增量备份的dump文件imp到数据库中。 imp sys/manager buffer=4096000 file=incr2.dmp ignore=y full=y inctype=restore 将第三天增量备份的dump文件imp到数据库中。 imp sys/manager buffer=4096000 file=incr3.dmp ignore=y full=y inctype=restore,恢复:,问题解答?,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!