Oracle系统管理.docx

上传人:b****6 文档编号:7315270 上传时间:2023-01-22 格式:DOCX 页数:23 大小:27.91KB
下载 相关 举报
Oracle系统管理.docx_第1页
第1页 / 共23页
Oracle系统管理.docx_第2页
第2页 / 共23页
Oracle系统管理.docx_第3页
第3页 / 共23页
Oracle系统管理.docx_第4页
第4页 / 共23页
Oracle系统管理.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

Oracle系统管理.docx

《Oracle系统管理.docx》由会员分享,可在线阅读,更多相关《Oracle系统管理.docx(23页珍藏版)》请在冰豆网上搜索。

Oracle系统管理.docx

Oracle系统管理

 

Oracle系统管理

(1)

常见的数据库维护过程

 

 

常见的数据库维护过程

一.数据备份

1,备份与恢复前的准备

(1)设定字符集

setNLS_LANG=.ZHS16CGB231280

exportNLS_LANG

(2)检查空间大小

df-k

(3)资源开销

联机备份资源开销较大,一般在2:

30分左右进行。

2,数据备份

以下是文件exp.file的内容:

expuserid=cinms3/cinms3full=Yinctype=completeconstraints=Yfile=cinms3_200804_1.dmplog=cinms3_200804_1.log

注意备份生成的数据文件的名称要有时间标识,留下备份成功与否的log,

备份的工作放在后台去执行,如下所示

$nohup/u03/oradata/exp.file&

3,数据恢复

(1)恢复前的检查

(a)磁盘空间的大小

df-k

(b)数据表空间的大小

以下scriptsql检查数据库中所有的表空间及数据文件的资源分配及目前的开销,剩余空间的大小,以便分析、决定是否需要扩展数据文件。

selecta.file_id"FileNo",a.tablespace_name"Tablespace_name",a.file_name"DataFile_name",

a.bytes"Bytes",a.bytes-sum(nvl(b.bytes,0))"Used",

sum(nvl(b.bytes,0))"Free",

sum(nvl(b.bytes,0))/a.bytes*100"%free"

fromdba_data_filesa,dba_free_spaceb

wherea.file_id=b.file_id(+)

groupbya.tablespace_name,a.file_name,

a.file_id,a.bytesorderbya.tablespace_name

(c)回滚段

检查目前所用的回滚段,及其开销。

selectn.name,s.extents,s.rssize,s.status

fromv$rollnamen,v$rollstatswheren.usn=s.usn;

由于在恢复数据时,事务交易是大事务集中处理,回滚段开销较大,应考虑扩展回滚表空间与回滚段,使某个回滚段的大小在260M以上,交易处理在此回滚段上进行。

CREATEROLLBACKSEGMENTr15 

 TABLESPACErbs

 STORAGE(INITIAL1mNEXT1mMINEXTENTS10 

     MAXEXTENTS280mOPTIMAL20m);

使回滚段在线:

  当回滚段创建后,回滚段是离线的,不能被数据库使用,为了使回滚段被事务利用,必须将回滚段在线。

可以用以下命令使回滚段在线:

ALTERROLLBACKSEGMENTr15ONLINE;

其他回滚段离线

ALTERROLLBACKSEGMENTrollback_segmentOFFLINE;

ALTERROLLBACKSEGMENTr01OFFLINE;

ALTERROLLBACKSEGMENTr02OFFLINE;

ALTERROLLBACKSEGMENTr03OFFLINE;

ALTERROLLBACKSEGMENTr04OFFLINE;

ALTERROLLBACKSEGMENTr05OFFLINE;

ALTERROLLBACKSEGMENTr06OFFLINE;

ALTERROLLBACKSEGMENTr07OFFLINE;

ALTERROLLBACKSEGMENTr08OFFLINE;

ALTERROLLBACKSEGMENTr09OFFLINE;

ALTERROLLBACKSEGMENTr10OFFLINE;

ALTERROLLBACKSEGMENTr11OFFLINE;

ALTERROLLBACKSEGMENTr12OFFLINE;

此时,在import恢复数据时,交易将只在r15上进行。

(d)扩展数据表空间

重新调整数据文件的大小,要均匀地分布在不同的磁盘上。

altertablespaceCINMS_USERadddatafile'/u02/oradata/unicom/cinms_user000.dbf'size500m;

(e)扩展系统表空间

扩展系统表空间的大小

altertablespaceSYSTEMadddatafile'/u02/oradata/unicom/system02.dbf'size300m;

(f)共享缓冲池

清除共享池数据:

altersystemflushshared_pool;

功能:

清除shared_pool中的碎片,解决连续的空间

(db_block_size*db_block_buffers决定了share_pool的大小)

(g)字符集

再次检查字符集

setNLS_LANG=.ZHS16CGB231280

exportNLS_LANG

(h)清除回滚段数据:

alterrollbacksegmenttestrollshrink;

功能:

把回滚段已提交地事务清空,使占有地资源释放出来。

(i)删除不需要的会话

查看后台进程,删除不需要的会话

selectspid,namefromv$process,v$bgprocesswhereaddr=paddr

altersystemkillsessionsession_id,process_id;

(j)

(2)恢复过程

恢复时,执行imp.file,并提交到后台执行。

Imp.file文件内容如下:

impuserid=cinms3/cinms3fromuser=cinms3ignore=ycommit=y

file=unicom_cinms3.dmplog=cinms3_200108021_1.log

恢复工作放在后台去执行,如下所示

$nohup/u03/oradata/imp.file&

(3)恢复后的检查

(a),检查数据库对象的个数

检查数据库中表地个数,Trigger,Procedure,Package,Funcation地个数,与原库中相应地数据库对象进行比较,如相等,说明对象及数据已恢复。

selectcount(*)fromuser_sourcewheretype='FUNCTION';

selectcount(*)fromuser_sourcewheretype='PROCEDURE';

selectcount(*)fromuser_sourcewherenamelike'RADIUS%';

selectcount(*)fromuser_sourcewheretype='PACKAGE';

selectcount(*)fromuser_tables;

(b)使回滚段在线

 可以用以下命令使回滚段在线:

ALTERROLLBACKSEGMENTr15ONLINE;

ALTERROLLBACKSEGMENTrollback_segmentOFFLINE;

ALTERROLLBACKSEGMENTr01ONLINE;

ALTERROLLBACKSEGMENTr02ONLINE;

ALTERROLLBACKSEGMENTr03ONLINE;

ALTERROLLBACKSEGMENTr04ONLINE;

ALTERROLLBACKSEGMENTr05ONLINE;

ALTERROLLBACKSEGMENTr06ONLINE;

ALTERROLLBACKSEGMENTr07ONLINE;

清除回滚段数据:

alterrollbacksegmentr15shrink;

(c)重新编译数据库对象――TRIGGER

/*编译所有的触发器*/

setpages0feedoffechooff

spooltrgcomp.sql

promptspooltrgcom.lst

promptsetechoonfeedon

select'altertrigger'||trigger_name||'compile;'fromuser_triggers;

promptspooloff

spooloff

(d)重新编译数据库对象――PROCEDURE,FUNCATION,PACKAGE

/*编译所有的函数,过程,包*/

setpages0feedoffechooff

spoolppfcomp.sql

promptspoolppfcomp

promptsetechoonfeedon

selectdistinct'alter'||type||''||name||'compile;'fromuser_source

wheretype<>'PACKAGEBODY';

promptspooloff

spooloff

(e)快速编译所有视图

当在把数据库倒入到新的服务器上后(数据库重建),需要将视图重新编译一遍,因为该表空间视图到其它表空间的表的连接会出现问题,可以利用PL/SQL的语言特性,快速编译。

SQL>SPOOLcomp_view.sql

SQL>SELECT‘ALTERVIEW‘||TNAME||’COMPILE;’FROMUSER_TABLES;

SQL>SPOOLOFF

然后执行ON.sql即可。

SQL>@comp_view.SQL

当然,授权和创建同义词也可以快速进行,如:

SQL>SELECT‘GRANTSELECTON’||TNAME||’TOUSERNAME;’FROMUSER_TABLES;

SQL>SELECT‘CREATESYNONYM‘||TNAME||’FORUSERNAME.’||TNAME||’;’FROMTABLES;

(f)数据库重建应注意的问题

在利用import进行数据库重建过程中,有些视图可能会带来问题,因为结构输入的顺序可能造成视图的输入先于它低层次表的输入,这样建立视图就会失败.要解决这一问题,可采取分两步走的方法:

首先输入结构,然后输入数据.命令举例如下(uesrname:

cinms3,password:

cinms3,hoststing:

unicom,数据文件:

expdata.dmp):

impcinms3/cinms3@unicomfile=empdata.dmprows=N

impcinms3/cinms3@unicomfile=empdata.dmpfull=Ybuffer=64000commit=Yignore=Y

第一条命令输入所有数据库结构,但无记录.第二次输入结构和数据,64000字节提交一次,ignore=Y选项保证第二次输入既使对象存在的情况下也能成功.

(g)

4,阿若误认为

二.空间管理

1.检查目前表空间的大中小

数据文件的创建应以在磁盘上均匀分布为原则,创建时,在所有磁盘上要同时创建,使数据均匀地分布在各个磁盘上。

colFileNoformata3

colTablespace_nameformata22

colDataFile_nameformata30

colBytesformata15

colUsedformata15

colFreeformata15

col%freeformata15

selecta.file_id"FileNo",a.tablespace_name"Tablespace_name",a.file_name"DataFile_name",

a.bytes"Bytes",a.bytes-sum(nvl(b.bytes,0))"Used",sum(nvl(b.bytes,0))"Free",

sum(nvl(b.bytes,0))/a.bytes*100"%free"

fromdba_data_filesa,dba_free_spaceb

wherea.file_id=b.file_id(+)

groupbya.tablespace_name,a.file_name,

a.file_id,a.bytesorderbya.tablespace_name

2.检查某个数据文件上含有的数据库表

在数据文件/export/home/app/oracle/datafile/cinms3_user02.dbf'上有那些数据库表,将segment_type改为TRIGGER,PROCEDURE,FUNCATION,PACKAGE等可以查看其他数据库对象在数据文件上地分布情况。

colsegment_nameformata20

coltablespace_nameformata12

colfile_nameformata45

selecta.segment_name,a.tablespace_name,b.file_name

fromuser_segmentsa,dba_data_filesb

wherea.segment_type='TABLE'anda.tablespace_name=b.tablespace_name

andb.file_name='/export/home/app/oracle/datafile/cinms3_user02.dbf';

3.将数据文件从一个磁盘移到另一个

(1)使用SERVERMANAGER关闭实例

SVRMGR>connectinternal;

SVRMGR>shutdown;

SVRMGR>exit;

(2)移动数据库文件位置

使用操作系统命令来移动数据库文件位置(假设这里操作系统为SOLARIS2.7).在UNIX中用mv命令可以把文件移动到新的位置,

mv/export/home/oracle/u02/cinms_user81.dbf/export/home/oracle/oradata/cinms

mv/u02/oradata/unicom/cinms_user04.dbf/u03/oradata/unicom

(3)装载数据库

装载数据库并用alterdatabase命令来改变数据库中的文件名

SVRMGR>connectinternal;

SVRMGR>startupmount

SVRMGR>alterdatabaserenamefile

>‘/ora13/orarun/document.dbf’to

>‘/ora12/orarun/document.dbf’;

或者

alterdatabaserenamefile'/export/home/oracle/u02/cinms_user81.dbf'to'/export/home/oracle/oradata/cinms/cinms_user81.dbf';

或者

alterdatabaserenamefile'/u02/oradata/unicom/cinms_user04.dbf'to'/u03/oradata/unicom/cinms_user04.dbf';

(4).启动实例.

SVRMGR>alterdatabaseopen;

4.删掉某个数据文件

简单的方法是offline并删除该数据文件

svrmgrl>startupmount

svrmgrl>alterdatabasedatafile'/u02/oradata/unicom/cinms_user04.dbf'offlinedrop;

svrmgrl>alterdatabasedatafile'/u02/oradata/unicom/cinms_user00.dbf'offlinedrop;

svrmgrl>alterdatabasedatafile'/u02/oradata/unicom/cinms_user01.dbf'offlinedrop;

svrmgrl>alterdatabasedatafile'/u02/oradata/unicom/cinms_user02.dbf'offlinedrop;

svrmgrl>alterdatabasedatafile'/u02/oradata/unicom/cinms_user03.dbf'offlinedrop;

svrmgrl>alterdatabasedatafile'/u02/oradata/unicom/cinms_user05.dbf'offlinedrop;

svrmgrl>alterdatabaseopen;

此时,可将数据文件u02/oradata/unicom/cinms_user04.dbf从磁盘上物理删除。

5.删除某个表空间及其含有的所有数据文件

(a)altertablespaceCINMS_USERoffline;

(b)droptablespaceCINMS_USERincludingcontents;

(c)droptablespaceCINMS_USER;

随着表空间地删除,其上地数据文件随之删除。

6.检查回滚段地状态

对于电信业务而言,基本上联机事务处理OLTP,回滚段不要太大,个数要适当多,究竟多少要根据具体情况而定,但有一点,一定要联机ONLINE,

检查Scriptsql如下:

selectn.name,s.extents,s.rssize,s.optsize,s.hwmsize,s.xacts,s.status

fromv$rollnamen,v$rollstatswheren.usn=s.usn;

SQL>/

NAMEEXTENTSRSSIZEOPTSIZESTATUS

---------------------------------------------------------------------------

SYSTEM8407552ONLINE

R051011589632ONLINE

R0154572542208ONLINE

R0210334168832ONLINE

R033710606592ONLINE

R0417122759424ONLINE

R0656316032ONLINE

R0734206592ONLINE

R0845261312ONLINE

R096468544512ONLINE

R1056316032ONLINE

从上可以看到,R01占用了较多地区域,应作shrink处理。

同时系统在长期运行后,可能会发生rollbacksegmentoffline现象,此时,要做如下处理:

清除回滚段数据:

alterrollbacksegmenttestrollshrink;

ALTERROLLBACKSEGMENTr15ONLINE;

7.表空间的创建和扩建

(1)创建临时表空间

createtablespacetemp_userdatafile

'/u01/oradata/cinms/Billing_curcomdedial_1.dbf'size200m,

temporary;

(2)创建用户数据表空间

(a)方法1

CREATETABLESPACE"CINMS_USER"

DATAFILE'/u02/oradata/unicom/cinms_user000.dbf'

SIZE500mREUSE,'/u02/oradata/unicom/cinms_user001.dbf'

SIZE500mREUSEDEFAULT

STORAGE(INITIAL40KNEXT40KMINEXTENTS1MAXEXTENTS

2147483645PCTINCREASE0);

(b)方法2

CREATETABLESPACE"CINMS_USER33"

DATAFILE'/export/home/app/oracle/datafile/cinms_user000.dbf'SIZE1m

DEFAULTSTORAGE(INITIAL40KNEXT40KMINEXTENTS1MAXEXTENTS

2147483645PCTINCREASE0);

(4)创建索引表空间

CREATETABLESPACE"CINMS_INDEXES"

DATAFILE'/u03/oradata/unicom/cinms_index03.dbf'SIZE300M

DEFAULT

STORAGE(INITIAL128KNEXT128KMINEXTENTS1MAXEXTENTS4096

PCTINCREASE0);

(5)在给定的表空间上增加数据文件(扩展表空间)

altertablespaceCINMS_USERadddatafile'/u02/oradata/unicom/cinms_user002.dbf'size500m

altertablespaceCINMS_USERadddatafile'/u02/oradata/unicom/cinms_user003.dbf'size500m

(6)重建表空间及所有对象

删除某个用户,同时将此用户所具有的数据库对象全部删除,包括,table,index,procedure,funcation,package等,然后再创建表空间及其数据文件。

以system/manager用户登录数据库,执行如下scriptsql:

dropusercinms3cascade;

createusercinms3identifiedbycinms3defaulttablespacecinms_user;

grantresourcetocinms3;

grantdbatocinms3;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1