版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、检查数据库连通TNS数据库侦听lsnrctl查看 SIDSQL SELECT * FROM V$INSTANCE;SQL SELECT * FROM V$DATABASE;SQL / 执行上个操作命令SQL EDIT命令缓存区查看语言配置SQL show parameters nlsSQL select * from V$NLS_PARAMETERS查看启动参数文件SQL show parameters spfile;查看数据块配置大小SQL show parameters db;查看ORACLE 版本SQL SELECT * FROM V$VER显示所有组建版本SQL select * fr
2、omponent_ver;配置输出日志SQL spool c:testora.logSQL spool off切换归档日志SQL ALTER SYSTEM ARCHIVE LOG CURRENT;SQL ALTER SYSTEM SWITCH LOGFILE;查看数据库对象结构SQL desc v$dbfile查看DatafileSQLSELECT * FROM V$DBFILE;SQLSELECT * FROM V$DATAFILE;查看所有的用户SQL SELECT USERNAME FROM DBA_USERS查看控制文件SQL select * from v$controlfile;设
3、置输出的行宽SQL set linesize 20000查看REDOLOG 文件SQL SELECT * FROM V$LOGFILE;查看表空间SQL SELECT * FROM V$tablespace;手动删除归档日志后,同步CATALOGSQLCROSSCHECK ARCHIVELOG ALLSQLCHANGE ARCHIVELOG ALL CROSSCHECK连接数据库C:SQLPLUS /NOLOGSQLCONN / AS SYSDBA1.Oracle 关闭SQLSHUTDOWN (ABORT|IMMEDIATE|NORMAL)2.Oracle 启动SQLSTARTUP (REMO
4、UNT MOUNT|OPENT)3.SQL HELP SHOWSHOWShows the value of a SQL*Plus system variable,or thecurrent SQL*Plus environment.SHOW optionwhere option represents one of the following terms or clauses:system_variableALLBTITLEERRORS FUNCTION | PROCEDURE | PACKAGE | PACKAGE BODY | TRIGGER| VIEW | TYPE | TYPE BODY
5、 | DIMEN| JAVA CLASS LNOPARAMETERS parameter_namePNORELEASEREPFOOTERREPHEADERSGASPOOLSQLCODETTITLEUSERSHOW SPOOL is not available iniSQL*Plus4.TNSTNS 连接问题检测TNSNAME.ORA5.执行 SQL ScriptSQLC:RUN.SQL6.查看执行结果(开启/关闭)SQLSET ECHO ON(OFF)7.常用配置SQLSET LINESIZE 1000SQLECHO ONSQLSET TIMING ONSQLSPOOL
6、C:TEST.LOGSQLSELECT * FROMXXSQLSPOOL OFF8.建立连接 GRANT CREATE SESTO USERNAME移除连接 REVOKE CREATE SESTO USERNAME其他GRANT SELECT,INSERT,DELETE,UPDATE ONSCOTT.EMPTOUSERNAME确认更改SQLCOMMIT9.更改Alter user username identified by password10.察看DatafileSQLSELECT * FROM V$DATAFILE11 察看结构SQLDESC V$DATAFILE12,察看DB File
7、SQLSELECT * FROM V$DBFILE13.察看TablespaceSQLSELECT * FROM V$TABLESPACE14.察看SGA 大小SQL SHOW PARAMETER SGA15.更改 SGA 大小,SQLALTER SYSTEM SET SHARED_POOL_SIZE=.M16.察看CONTROLFILESQL SELECT * FROM V$CONTROLFILE17 察看REDO LOGSQL SELECT * FROM V$CONTROLFILE18.察看所有的用户SQL SELECT USERNAME FROM DBA_USERS19.在Offline
8、 状态下搬迁数据库文件关闭数据库SQLSHUTDOWN IMMEDIATE搬迁数据文件连接数据库SQLCONN / AS SYSDBASQLSTARTUP MOUNTSQLAlter database rename file e:to c:SQLALTER DATABASE OPENSQLSHUTDOWN删除旧的数据文件20.更改ONLINE REDO LOGSQLALTER SYSTEM SWITCH LOGFILE;Oracle 数据库日常在Oracle 数据库运行期间,DBA 应该对数据库的运行日志及表空间的使用情况进行,及早发现数据库中存在。一、Oracle 警告日志文件Oracle
9、在运行过程中,会在警告日志文件(alert_SID.log)中数据库的一些运行情况:l 数据库的启动、关闭,启动时的非缺省参数;l 数据库的重做日志切换情况,每次切换的时间,及如果因为检查点(checkpo)操作没有执行完成造成不能切换,会不能切换的原因;l 对数据库进行的某些操作,如创建或删除表空间、增加数据文件;l 数据库发生的错误,如表空间不够、出现坏块、数据库错误(ORA600)DBA 应该定期检查日志文件,根据日志中发现及时进行处理二、数据库表空间使用情况(字典管理表空间)数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA 应该及时了解表空
10、间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。问题处理启动参数不对检查初始化参数文件因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率;有人删除了表空间检查数据库的安全问题,是否太简单;必要撤消某些用户的系统权限出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建表空间不够增加数据文件到相应的表空间出现 ORA-600根据日志文件的内容查看相应的 TRC 文件,如果是Oracle 的 bug,要及时打上相应的补丁select
11、tablespace_name,count(*) cks ,max(bytes/1024/1024) max_ckfrom dba_free_spacegroup by tablespace_name;上面的 SQL 列出了数据库中每个表空间的空闲块情况,如下所示:TABLESPACE_NAME CKS MAX_CKINDX 1 57.9921875RBS 3 490.992188RMAN_TS 1 16.515625SYSTEM 1 207.296875TEMP 20 70.8046875TOOLS 1 11.8359375USERS 67 71.3671875其中,CKS 列表示表空间中有
12、多少可用的空闲块(每个空闲块是由一些连续的Oracle 数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了 100 个,那么该表空间的碎片状况就比较严重了,可以尝试用以下的 SQL 命令进行表空间相邻碎片的接合:alter tablespace 表空间名 coalesce;然后再执行查看表空间碎片的 SQL 语句,看表空间的碎片有没有减少。如果没有效果,并且表空间的碎片已经严重影响到了数据库的运行,则考虑对该表空间进行重建。MAX_CK 列的结果是表空间上最大的可用块大小,如果该表空间上的对象所需分配的空间(NEXT 值)大于可用块的大小的话,就会提示ORA-1652、ORA-
13、1653、ORA-1654 的错误信息,DBA 应该及时对表空间的空间进行扩充,以避免这些错误发生。对表空间的扩充对表空间的数据文件大小进行扩展,或向表空间增加数据文件,具体操作见“存储管理”部份。三、查看数据库的连接情况DBA 要定时对数据库的连接情况进行检查,看与数据库建立的会话数目是不是正常,如果建立了过多的连接,会消耗数据库的资源。同时,对一些“挂死”的连接,可能会需要DBA 手工进行。以下的 SQL 语句列出当前数据库建立的会话情况:select sid,serial#,username,program,machine,s usfrom v$ses;输出结果为:SID SERIAL#
14、 USERNAME PROGRAM MACHINE SUS1 1ORACLE.EXE WORK3 ACTIVE2 1ORACLE.EXE WORK3 ACTIVE3 1ORACLE.EXE WORK3 ACTIVE4 1ORACLE.EXE WORK3 ACTIVE5 3ORACLE.EXE WORK3 ACTIVE6 1ORACLE.EXE WORK3 ACTIVE7 1ORACLE.EXE WORK3 ACTIVE8 27 SYS SQLPLUS.EXE WORKGROUPWORK3 ACTIVE11 5 DBSNMP dbsnmp.exe WORKGROUPWORK3 INACTIVE其
15、中,SID 会话(ses)的 ID 号;SERIAL# 会话的序列号,和 SID 一起用来唯一标识一个会话;USERNAME 建立该会话的用户名;PROGRAM 这个会话是用什么工具连接到数据库的;SUS 当前这个会话的状态,ACTIVE 表示会话正在执行某些任务,INACTIVE 表示当前会话没有执行任何操作;如果DBA 要手工断开某个会话,则执行:alter system kill sesSID,SERIAL#;注意,上例中 SID 为 1 到 7(USERNAME 列为空)的会话,是 Oracle 的进程,不要对这些会话进行任何操作。四、控制文件的备份在数据库结构发生变化时,如增加了表空
16、间,增加了数据文件或重做日志文件这些操作,都会造成Oracle 数据库控制文件的变化,DBA 应及进行控制文件的备份,备份方法是:执行 SQL 语句:alter databasebackup controlfile to /home/backup/control.bak;或:alter databasebackup controlfile to trace;这样,会在USER_DUMP_DEST(初始化参数文件中指定)目录下生成创建控制文件的 SQL 命令。五、检查数据库文件的状态DBA 要及时查看数据库中数据文件的状态(如被误删除),根据实际情况决定如何进行处理,检查数据文件的状态的 SQL
17、 如下:select file_name,s usfrom dba_data_files;如果数据文件的SUS 列不是 AVAILABLE,那么就要采取相应的措施,如对该数据文件进行恢复操作,或重建该数据文件所在的表空间。六、检查数据库定时作业的完成情况如果数据库使用了Oracle 的 JOB 来完成一些定时作业,要对这些 JOB 的运行情况进行检查:select job,log_user,last_date,failuresfrom dba_jobs;如果 FAILURES 列是一个大于 0 的数的话,说明 JOB 运行失败,要进一步的检查。七、数据库坏块的处理当Oracle 数据库出现坏块
18、时,Oracle 会在警告日志文件(alert_SID.log)中坏块的信息:ORA-01578: ORACLE data block corrupted (file # 7, block # )ORA-01110: data file : /oracle1/oradata/V920/oradata/V816/users01.dbf其中,AFN代表坏块所在数据文件的绝对文件号,代表坏块是数据文件上的第几个数据块出现这种情况时,应该首先检查是否是硬件及操作系统上的故障导致 Oracle 数据库出现坏块。在排除了数据库以外的原因后,再对发生坏块的数据库对象进行处理。1确定发生坏块的数据库对象SEL
19、ECT tablespace_name,segment_type,owner,segment_nameFROM dba_extentsWHEREfile_id = AND betn block_id AND block_id+blocks-1;2决定修复方法如果发生坏块的对象是一个索引,那么可以直接把索引 DROP 掉后,再根据表里的进行重建;如果发生坏块的表的可以根据其它表的生成的话,那么可以直接把这个表 DROP 掉后重建;如果有数据库的备份,则恢复数据库的方法来进行修复;如果表里的没有其它办法恢复,那么坏块上的就丢失了,只能把表中其它数据块上的记录取出来,然后对这个表进行重建。3用Ora
20、cle 提供的 DBMS_REPAIR 包标记出坏块exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS(,);4使用Create table as select 命令将表中其它块上的保存到另一张表上create table corrupt_table_bakasselect * from corrupt_table;5用DROP TABLE 命令删除有坏块的表drop table corrupt_table;6用alter table rename 命令恢复原来的表alter table corrupt_table_bakrename to corrupt_table;7
21、如果表上存在索引,则要重建表上的索引八、操作系统相关DBA 要注意对操作系统的:l文件系统的空间使用情况(df -k),必要时对Oracle 的警告日志及TRC 文件进行l如果Oracle 提供网络服务,检查网络连接是否正常l检查操作系统的资源使用情况是否正常l检查数据库服务器有没有硬件故障,如磁盘、内存报错在大型数据库管理系统中,ORACLE 数据库不论在数据库管理能力还是在安全性方面都是无可非议的。国内企业使用 ORACLE 数据库的也较多,但是由于 ORACLE 不同版本的字符集,给数据一、字符集参数一旦数据库创建后,数据库的字符集是不能改变的。因此,考虑使用哪一种字符集是十分重要的。数
22、据库字符集应该是操作系统本地字符集的一个超集。存取数据库的客户使用的字符集将决定选择哪一个超集,即数据库字符集应该是所有客户字符集的超集。下面介绍一些与字符集有关的 NLS_LANG 参数:NLS_LANG 格式:NLS_LANG=language_territory.charset有三个组成部分(语言、地域和字符集),每个组成成分控制了 NLS 子集的特性。三个成AMERICAN_AMERICA.US7SCIIJPA_JAPAN.JA16EUC其中:language 指定服务器消息的语言。 territory 指定服务器的日期和数字格式。 Charset 指定字符集还有一些子集可以更明确定义
23、 NLS_LANG 参数: NLS_DATE_FORMAT 缺省的日期格式 NLS_DATE_LANGUAGE 缺省的日期语言 NLS_NUMBERIC_CHARACTERS 小数字符和组分隔开 NLS_CURRENCY 本地货币字符 NLS_ISO_CURRENCY ISO 货币字符NLS_SORT 字符排序序列二、字符集转换1、NLS_LANG 参数的修改方法:1)用 SYS 用户名登陆 ORACLE。查看字符集内容修改相应的字符子集SQLSELECT * FROM PROPS$;SQLUPDATE PROPS$ SET VALUE$=SIMPLIFIED CHIWHERE NAME=NL
24、S_LANGUAGE;4) 递交COMMIT;2、NLS_LANG 参数的具体应用:1)采用服务器端/客户端方式,两端字符集不同修改客户端字符集:WIN95/WIN98:修改表HKEY_LOCAL_MACHINESOFTWAREORACLENLS_LANGUNIX:按照 1 方法,直接进入 ORACLE 修改。2)不同字符集使用EXP/IMP 命令按照 1 方法,修改IMP 端的字符集设置,如果是WIN98/WIN95 系统,还必须修改表。注意:NLS_LANG 三个子集的参数必须一致。另外,如果字符集修字节设置不同,则不能通过改字符集进行转换。可以使用其他方式,不修改字符集,进行 ORACL
25、E 数据库搬移,如数据量比较小,可以使用 SQLLOAD 命令,通过文本文件转换;使用其他数据库等)转换。(ACS,FOXPROORACLE 备份策略(ORACACKUP STRATEGY)一、了解备份的重要性可以说,从计算机系统出世的那天起,就有了备份这个概念,计算机以其强大的速度处理能力,取代了很多人为的工作,但是,往往很多时候,它又是那么弱不,主板上的、主板电路、内存、电源等任何一项不能正常工作,都会导致计算机系统不能正常工作。当然,这些损坏可以修复,不会导致应用和数据的损坏。但是,如果计算机的硬盘损坏,将会导致数据丢失,此时必须用备份恢复数据。其实,在的现实世界中,已经就存在很多备份策
26、略,如RAID 技术,双机热备,集群技术发展的不就是计算机系统的备份和高可用性吗?有很多时候,系统的备份的确就能解决数据库备份,如磁盘介质的损坏,往往从镜相上面做简单的恢复,或简单的切换机器就可以了。但是,上面所说的系统备份策略是从硬件的角度来考虑备份与恢复,这是需要代价的。所能选择备份策略的依据是:丢是数据的代价与确保数据不丢失的代价之比。还有的时候,硬件的备份有时根本满足不了现实需要,假如你误删了一个表,但是你又想恢复的时候,数据库的备份就变的重要了。ORACLE 本身就提供了强大的备份与恢复策略,这里只ORACLE 备份策略,以下的备份都是指ORACLE 数据库备份,恢复将放到下一讲中所
27、谓备份,就是把数据库到转储设备的过程。其中,转储设备是指用于放置数据库拷贝的磁带或磁盘。能够进行什么样的恢复依赖于样的备份。作为 DBA,有责任从以下三个方面数据库的可恢复性:使数据库的失效次数减到最少,从而使数据库保持最大的可用性;当数据库不可避免地失效后,要使恢复时间减到最少,从而使恢复的效率达到最高;当数据库失效后,要确保尽量少的数据丢失或根本不丢失,从而使数据具有最大的可恢复性。恢复的最重要的工作是设计充足频率的硬盘备份过程。备份过程应该满足系统要求的可恢复性。例如,如果数据库可有较长的关机时间,则可以每周进行一次冷备份,并归档重做日志,对于 24*7 的系统,或许考虑的只能是热备份。
28、 如果每天都能备份当然会很理想,但要考虑其现实性。企业都在想办法降低成本,现实的方案才可能被采用。只要仔细计划,并想办法达到数据库可用性的,花少量的钱进行成功的备份与恢复也是可能的。二、了解ORACLE 的运行方式ORACLE 数据库有两种运行方式:一是归档方式(ARCHIVELOG),归档方式的目的是当数据库发生故障时最大限度恢复数据库,可以保证不丢失任何已提交的数据;二是不归档方式(NOARCHIVELOG),只能恢复数据库到最近的回收点(冷备份或是逻辑备份)。根据数据库的高可用性和用户可承受丢失的工作量的多少,对于生产数据库,强烈要求采用为归档方式;那些正在开发和调试的数据库可以采用不归
29、档方式。如何改变数据库的运行方式,在创建数据库时,作为创建数据库的一部分,就决定了数据库初始的存档方式。一般情况下为 NOARCHIVELOG 方式。当数据库创建好以后,根据的需要把需要运行在归档方式的数据库改成ARCHIVELOG 方式。1、改变不归档方式为为归档方式a.关闭数据库,备份已有的数据,改变数据库的运行方式是对数据库的重要改动,所以要对数据库做备份,对可能出现作出保护。b. 修改初试化参数,使能自动存档 修改(添加)初始化文件initSID.ora 参数:log_archive_start=true #启动自动归档log_archive_format=ARC%T%S.arc #归
30、档文件格式log_archive_dest=/arch12/arch #归档路径在 8i 中,可以最多有五个归档路径,并可以归档到其它服务器,如备用数据库(standby database)服务器c.启动 Instance 到Mount 状态,即加载数据库但不打开数据库:$SVRMGRLSVRMGRL connecternalSVRMGRL startup mountd.发出修改命令SVRMGRL alter database archivelog;SVRMGRLalter database open;2、改变归档状态为不归档状态与以上步骤相同,但有些操作不一样,主要是在以上的b 操作中,现在
31、为删除或注释该参数,在d 操作中,命令为SVRMGRL alter databasenoarchivelog; 注意,从归档方式转换到非归档方式后一定要做一次数据库的全冷备份,防止意外事件的发生。三、ORACLE 备份的分类简单的按照备份进行的方式,可以分为逻辑备份、冷备份(脱机备份)、热备份(联机备份),其实冷备份与热备份又可以合称为物理备份。按照备份的工具,可以分为EXP/IMP 备份、OS 拷贝、RMAN、第工具,如VERITAS 。以下从多个角度来说明以上的各种备份方式1、EXP/IMP 逻辑备份导入/导出是ORACLE 幸存的最古老的两个命令行工具了,其实我从来不认为 Exp/Imp
32、 是一种好的备份方式,正确的说法是 Exp/Imp 只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理等中有不小的功劳。当然,也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议。对于越来越大的数据库,特别是TB 级数据库和越来越多数据仓库的出现,EXP/IMP 越来越力不从心了,这个时候,数据库的备份都转向了RMAN 和第工具。下面还是简要介绍一下EXP/IMP 的使用。i、使用方法Exp parameter_name=valueOr Exp parameter_name=(value1,value2)只要输入参数help=y 就可以看
33、到所有帮助如:C:set nls_lang=simplified chi_china.zhs16gbkC:exp -helpExport: Release .0 - Production on四 4 月 10 19:09:21 2003(c) Copyright 1999 Oracle Corporation.s.通过输入 EXP 命令和用户名/口令,您可以在用户 / 口令之后令实例: EXP SCOTT/TIGER或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出” 的运行方式。要指定参数,您可以使用关键字格式: EXP KEYWORD=value 或 KEYWORD=(valu
34、e1,value2,.,valueN)实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) 或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表USERID 必须是命令行中的第一个参数。关键字说明(默认)关键字说明(默认)USERID用户名/口令FULL导出整个文件 (N)BUFFER数据缓冲区的大小OWNER所有者用户名列表FILE输出文件 (EXPDAT.DMP)TABLES表名列表COMPRESS导入一个范围 (Y)RECORDLENGTHIO的长度GRANTS导出权限 (Y)INCTYPE增量导出类型INDEXES导出索
35、引 (Y)RECORD增量导出 (Y)ROWS导出数据行 (Y)PARFILE参数文件名CONSTRAS导出限制 (Y)CONSISTENT交叉表一致性LOG屏幕输出的日志文件SISTICS分析对象 (ESTIMATE)DIRECT直接路径 (N)TRIGGERS导出触发器 (Y)FEEDBACK显示每 x 行 (0) 的进度FILESIZE各转储文件的最大尺寸QUERY选定导出表子集的子句下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)TABLESPA将传输的表空间列表在没有警告的情况下成功终止导出。帮助已经很详细的说明了参数的意义和使
36、用方法,并列举了几个简单的例子,注意的是,从 8i 开始,已经开始支持数据子集的方法,就是可以指定自己的Where 条件,可以从表中导出一行或多行数据。注意上面的set nls_lang=simplified chi_china.zhs16gbk,通过设置环境变量,可以让exp 的帮助以中文显示,如果set nls_lang=American_america.字符集,那么你的帮助就是英文的了。增量和累计导出必须在全库方式下才有效,而且,大多数情况下,增量和累计导出并没有想象中的那么有效。ORACLE 从 9i 开始,不再支持增量导出和累计导出。ii、表空间传输表空间传输是 8i 新增加的一种快
37、速在数据库间移动数据的一种办法,是把一个数据库上的格式数据文件附加到另外一个数据库中,而不是把数据导出成Dmp 文件,这在有些时候是非常管用的,因为传输表空间移动数据就象文件一样快。关于传输表空间有一些规则,即:源数据库和目标数据库必须运行在相同的上。源数据库与目标数据库必须使用相同的字符集。源数据库与目标数据库一定要有相同大小的数据块(9i 已经不用)目标数据库不能有与迁移表空间同名的表空间SYS 的对象不能迁移必须传输自包含的对象集有一些对象,如物化视图,基于函数的索引等不能被传输可以用以下的方法来检测一个表空间或一套表空间是否符合传输标准:exec sys.dbms_tts.transp
38、ort_set_check(tablespace_name,true);select * from sys.transport_set_violation;如果没有行选择,表示该表空间只包含表数据,并且是自包含的。对于有些非自包含的表空间,如数据表空间和索引表空间,可以一起传输。以下为简要使用步骤,如果想参考详细使用方法,也可以参考ORACLE 联机帮助。a.设置表空间为只读(假定表空间名字为APP_Data 和APP_Index)alter tablespace app_data read only;alter tablespace app_index read only;b.发出EXP 命
39、令SQLhost exp userid=”sys/password as sysdba”transport_tablespace=y tablespace=(app_data, app_index)以上需要注意的是为了在SQL 中执行EXP,USERID 必须用三个引号,在UNIX 中也必须注意避免“/”的使用在 816 和以后,必须使用sysdba 才能操作这个命令在SQL 中必须放置在一行(这里是因为显示问题放在了两行)c.拷贝数据文件到另一个地点,即目标数据库可以是cp(unix)或 copy(windows)或通过ftp 传输文件(一定要在bin 方式)d.把本地的表空间设置为读写e.
40、在目标数据库附加该数据文件imp file=expdat.dmp userid=”sys/password as sysdba”transport_tablespace=y“datafile=(c:tempapp_d:tempapp_index)”f.设置目标数据库表空间为读写alter tablespace app_data read write;alter tablespace app_index read write;iii、导出/导入与字符集明白ORACLE 的多国语言设置,ORACLE 多国语言设置是为了支持世界范围的语言与字符集,一般对语言提示,货币形式,排序方式和CHAR,VAR
41、CHAR2,CLOB,LONG 字段的数据的显示等有效。ORACLE 的多国语言设置最主要的两个特性就是国家语言设置与字符集设置,国家语言设置决定了界面或提示使用的语言种类,字符集决定了数据库保存与字符集有关数据(如文本)时候的编码规如刚才上面的一个小例子,环境变量NLS_LANG 的不同,导致EXP 帮助发生变化,这就是多国语言设置的作用(NLS_LANG 包含国家语言设置与字符集设置,这里起作用的是国家语言设置,而不是字符集)。ORACLE 字符集设定,分为数据库字符集和客户端字符集环境设置。在数据库端,字符集在创建数据库的时候设定,并保存在数据库 props$表中对于 8i 以上产品,已
42、经可以采用“Alter database character set 字符集”来修改数据库的字符集,但也仅仅是从子集到超集,不要通过update props$来修改字符集,如果是不支持的转换,可能会失去所有与字符集有关的数据,就是支持的转换,也可能导致数据库的不正常工作。字符集分为单字节字符集与多字节字符集,US7ASCII 就是典型的单字节字符集,在这种字符集中length=lengthb,而ZHS16GBK 就是常用的双字节字符集,在这里lengthb=2*length。在客户端的字符集环境比较简单,主要就是环境变量或表项NLS_LANG,注意 NLS_LANG 的优先级别为:参数文件 表
43、 环境变量alterses。NLS_LANG 的组成为“国家语言设置.字符集”,如 nls_lang=simplified chi_china.zhs16gbk。客户端的字符集最好与数据库端一样(国家语言设置可以不一样,如zhs16gbk 的字符集,客户端可以是nls_lang =simplified chi_china.zhs16gbk 或Ameircan_America.zhs16gbk,都不影响数据库字符的正常显示),如果字符集不一样,而且字符集的转换也不兼容,那么客户端的数据显示与导出/导入的与字符集有关的数据将都是乱码。使用一点点技巧,就可以使导出/导入在不同的字符集的数据库上转换数
44、据。这里需要一个 2 进制文件编辑工具即可,如uedit32。用编辑方式打开导出的dmp 文件,获取 2、3 字节的内容,如 00 01,先把它转换为 10 进制数,为 1,使用函数NLS_CHARSET_NAME 即可获得该字符集:SQL select nls_charset_name(1) from dual;NLS_CHARSET_NAME(1)US7ASCII可以知道该dmp 文件的字符集为US7ASCII,如果需要把该 dmp 文件的字符集换成ZHS16GBK,则需要用 NLS_CHARSET_ID 获取该字符集的:SQL select nls_charset_id(zhs16gbk
45、) from dual;NLS_CHARSET_ID(ZHS16GBK)852把 852 换成 16 进制数,为 354,把 2、3 字节的 00 01 换成 03 54,即完成了把该dmp 文件字符集从us7ascii 到zhs16gbk 的转化,这样,再把该dmp文件导入到zhs16gbk 字符集的数据库就可以了。(注意,十进制数与十六进制之间的转换,想明白其中的道理)Iv、跨版本使用Exp/ImpExp/Imp 很多时候,可以跨版本使用,如在版本 7 与版本 8 之间导出导入数据,但这样做必须选择正确的版本,规则为:总是使用IMP 的版本匹配数据库的版本,如果要导入到 816,则使用 8
46、16 的导入工具。总是使用EXP 的版本匹配两个数据库中低的那个版本,如在 815 与 816 之间互导,则使用 815 的EXP 工具。2、OS 备份操作系统备份有两类,冷备份(Cold backup)与热备份(Hot backup),操作系统备份与以上的逻辑备份有本质的区别。逻辑备份提取数据库的数据内容,而不备份物理数据块。而操作系统备份则是拷贝整个的数据文件。i、冷备份在文件级备份开始前数据库必须彻底关闭。关闭操作必须用带有normal、immediate、tranion 选项的shutdown 来执行。 数据库使用的每个文件都被备份下来,这些文件包括:所有数据文件所有控制文件所有联机R
47、EDO LOG 文件INIT.ORA 文件(可选)作冷备份一般步骤是:a.正常关闭要备份的实例(instance);b.备份整个数据库到一个目录c.启动数据库如:SVRMGRLconnecternalSVRMGRL shutdown immediateSVRMGRL ! cp 或SVRMGRL !tar cvf /dev/rmt/0 /u01/oradata/prodSVRMGRL startup注意:如果利用对数据库进行冷备份,必须对关闭数据库令进行逻辑检查,如果发生关闭数据库令不能正常执行而导致数据库没有正常关闭,那么,所有的冷备份将回是无效的。ii、热备份热备份是当数据库打开并对用户有效
48、是的OS 级的数据备份。热备份只能用于ARCHIVELOG 方式的数据库。在数据文件备份之前,对应的表空间必须通过使用ALTER TABLESPACE BEGIN BACKUP 以备份方式放置。然后组成表空间的数据文件可以使用类似冷备份的操作系统命令进行拷贝。在数据文件用操作系统命令拷贝后,应使用ALTER TABLESPACE END BACKUP 命令使表空间脱离热备份方式。热备份没有必要备份联机日志,但必须是归档状态,在实例恢复的时候,可能需要用到归档日志。当前联机日志一定要保护好或是处于镜相状态,当前联机日志的损坏,对于数据库的损坏是巨大的,只能以数据的丢失来进行数据库的恢复工作。对于
49、临时表空间,存放的是临时信息,在热备份是也可以考虑不用备份,如果临时文件发生故障,可以删除该数据文件与表空间,重建一个临时表空间。热备份的优点是显而易见的- a可在表空间或数据文件级备份,备份时间短。- b备份时数据库仍可使用。- c可达到秒级恢复(恢复到某一时间点上)。- d可对几乎所有数据库实体作恢复。- e恢复是快速的,在大多数情况下在数据库仍工作时恢复。操作系统作热备份的一般步骤为:连接数据库SVRMGRLconnecternal;将需要备份的表空间(如User)设置为备份方式SVRMGRLAlter tablespace User begin backup;拷贝数据文件SVRMGRL
50、!cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora Or $cp cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora在数据文件拷贝完成后,将表空间拖体备份方式SVRMGRLAlter tablespace User end backup;对所有需要备份的表空间重复 2,3,4使用如下令备份控制文件ALTER DATABSE BACKUP CONTROLFILE如备份成二进制文件 alter database backup controlfile to new fielnam
51、e;备份成文本文件 alter database backup controlfile to trace;因为热备份的时候,用户还在操作数据库,所以,最好是每个表空间处于备份状态的时间最短,这样就要求一个表空间一个表空间的备份,不要一起使表空间处于备份状态而同时拷贝数据文件。注意:如果在热备份的时候如果数据库中断(如断电),那么在重新启动数据库的时候,数据库将提示有数据文件需要恢复,你需要把正在断电时候的处于备份状态的数据文件通过ALTER TABLESPACE END BACKUP 结束备份方式。具体哪个数据文件或表空间处于备份状态,可以通过v$backup 与v$datafile 来获得。
52、3、RMAN(备份与恢复管理器)i.使用 RMAN 进行备份Recovery manager(RMAN)是ORACLE 提供的DBA 工具,用语管理备份和恢复操作。RMAN 只能用于ORACLE8 或更高的版本中。它能够备份整个数据库或数据库,其中包括表空间、数据文件,控制文件和归档文件。RMAN 可以按要求存取和执行备份和恢复。RMAN 备份有如下优点:支持热备份支持多级增量备份支持并行备份、恢复减少所需要备份量备份、恢复使用简单重要的是,使用恢复管理器允许您进行增量数据块级的备份(这个与导出/导入的增量截然不同)。增量RMAN 备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那
53、些数据块。另一个空间有效的RMAN 特性是它只备份数据文件中使用的数据块,忽略空的,未用的数据块,这个对于预分配空间的表空间有很大的好处。从 9i 开始,还增加了RMAN 的数据块级别的恢复,可以进一步减少数据库恢复时间。RMAN 支持以下不同类型的备份FULL 数据库全备份,包括所有的数据块INCREMENTAL 增量备份,只备份自上次增量备份以来修改过的数据块。需要一个 0 级的增量作为增量的基础,可以支持 5 级增量。OPEN 在数据库打开的时候使用CLOSED 在数据库安装(MOUNT)但不打开的时候备份,关闭备份可以是 CONSISTENT 或IN CONSISTENT 类型的。CO
54、NSISTENT 在数据库安装,单不打开,并且在安装之前数据库被彻底关闭(而不是被破坏或异常退出)时使用。CONSISTENT 备份可以简单的进行复原(RESTORE)而不是恢复(RECOVER)INCONSISTENT 在数据库打开或安装(但不打开)时使用。在该数据库正常关闭或后,INCONSISTENT 备份需要恢复。理解BACKUP,RESTORE,RECOVER 命令,这是 RMAN 最基本的三个命令,可以进行数据库的备份,复原以及恢复操作。理解恢复目录,RMAN可以在没有恢复目录(NOCATALOG)下运行,这个时候备份信息保存在控制文件。保存在控制文件的备份信息是很的,如果控制文件
55、的破坏将导致备份信息的丢失与恢复,而且,没有恢复目录,很多RMAN令将不被支持。所以对于重要的数据库,建议创建恢复目录,恢复目录也是一个数据库,只不过这个数据库用来保存备份信息,一个恢复目录可以用来备份多个数据库。创建RMAN 目录,以下步骤说明了在一个数据库中尽力RMAN 目录的过程。a.为目录创建一个单独的表空间SQLCreate tablespace tools datafile fielname size 50m;b.创建RMAN 用户SQLCreate user RMAN identified by RMAN default tablespace tools temporary ta
56、blespace temp;c.给RMAN 授予权限SQLGrant connect , resource , recovery_catalog_owner to rman;d.打开RMAN $RMANe.连接数据库RMANconnect catalog rman/rmanf.创建恢复目录RMANCreate catalog tablespace rman目标数据库,恢复目录创建成功后,就可以目标数据库了,目标数据库就是需要备份的数据库,一个恢复目录可以多个目标数据库,目标数据库令为:$RMANernal/password catalog rman/rmanrcdb; RMANRegister
57、 database; 数据库完成,就可以用RMAN 来进行备份了,命令请参考ORACLE 联机手册或ORACLE8i 备份与恢复手册。RMAN 使用来备份数据库,以下是RMAN 进行备份的几个例子。a.备份整个数据库backup full tag basicdb format /bak/oradata/full_%u_%s_%p database;b.备份一个表空间backup tag tsuser format /bak/oradasuser_%u_%s_%p tablespace users;c.备份归档日志backup tag alog format /bak/archivebak/ar
58、cbak_%u_%s_%p archivelog all delete input;ii.RMANRMAN 的主要分为几个方面:1、 查看RMAN 的信息检查现有备份: RMANlist backup列出过期备份: RMANreport obsolete删除过期的备份:RMlocate channel for ma enance type disk;RMANchange backupset id delete;RMANrelease channel;2、 同步或重置RMAN 如果目标数据库物理对象发生了变化,如添加了一个数据文件,需要用如下命令同步:RMANresync catalog; 如果
59、目标数据库 reset 了数据库,需要用如下命令同步RMANreset database; 当手工删除了数据库的归档文件后,要执行以下同步RMlocate channel for ma enance type disk;RMAN change archivelog all crosscheck;RMANrelease channel; 当手工删除了数据库的RMAN 备份后,要执行以下来同步RMlocate channel for ma enance type disk;RMANcrosscheck backup;RMANdelete expired backup;RMANrelease cha
60、nnel;四、定制恰当的备份策略i.定制正确的策略正确的备份策略不仅能保证数据库服务器的 24*7 的高性能的运行,还能保证备份与恢复的快速性与可靠性。以RMAN 的多级增量备份作为一个备份策略的例子来。采用多级备份就是为了减少每天备份所需要的时间,而又保证系统有良好的恢复性。恢复时间与备份时间要有一个权衡。比如只要进行一个数据库的全备份,然后就只备份归档也可以保证能把数据库恢复到的状态,但是这样的恢复时间将是不可的。多级备份也正是 为了解决这种问题,以下就是一个多级备份的例子:每半年做一个数据库的全备份(包括所有的数据和只读表空间)每一个月做一次零级备份(不包含只读表空间)每个做一次一级备份
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度股权投资合同:甲方投资乙方公司的投资金额、股权比例等3篇
- 二零二五年度车辆包车保险合同规范3篇
- 二零二五版地下综合管廊安全防护质量保修合同3篇
- 二零二五版30万吨矿砂船船舶维修保养及配件供应长期合同3篇
- 二零二五版专业环保印刷保密合同3篇
- 二零二五年度网络直播平台运营与分成合同2篇
- 二零二五年环保搬运承包项目合同3篇
- 解除2025年度互联网金融服务合同3篇
- 二零二五版文化衍生品开发及销售合同范本3篇
- 二零二五版服装品牌管理公司员工劳动合同范本3篇
- 2025年中国高纯生铁行业政策、市场规模及投资前景研究报告(智研咨询发布)
- 2022-2024年浙江中考英语试题汇编:完形填空(学生版)
- 2025年广东省广州市荔湾区各街道办事处招聘90人历年高频重点提升(共500题)附带答案详解
- 中试部培训资料
- 硝化棉是天然纤维素硝化棉制造行业分析报告
- 央视网2025亚冬会营销方案
- 北师大版数学三年级下册竖式计算题100道
- 计算机网络技术全套教学课件
- 屋顶分布式光伏发电项目施工重点难点分析及应对措施
- 胃镜下超声穿刺护理配合
- 2024解析:第三章物态变化-基础练(原卷版)
评论
0/150
提交评论