分享
 
 
 

我的oracle笔记四(DBA管理)

王朝oracle·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

1、通常oracle需要启动OracleServiceORCL,OracleStartORCL,OracleTNSListener 任务

在NT上至少要启动两个服务

oraclestartID和oracleserverID

每个数据库都有一个系统标识符(SID),典型安装的数据库使用的系统标识符是ORCL

2、启动关闭数据库

关闭:

svrmgr>connect internal/oracle

>shutdown --正常关闭数据库

svrmgr>shutdown immediate --立即关闭数据库

svrmgr>shutdown abort --一种最直接的关闭数据库的方式,执行之后,重新启动需要花6-8小时

启动:

svrmgr>startup --正常启动

--等价于:startup nomount;

alter database mount;

alter database open;

svrmgr>startup mount; --安装启动:用于改变数据库的归档或执行恢复状态

svrmgr>startup nomount; --用于重建控制文件或重建数据库

svrmgr>startup restrict; --约束启动,能启动数据库,但只允许具有一定特权的用户访问

如果希望改变这种状态,连接成功后

alter system disable restricted session;

svrmgr>startup force;当不能关闭数据库时,可采用强制启动数据库来完成数据库的关闭操作。

svrmgr>startup pfile=d:\orant\database\initorcl.ora --带初始化参数文件的启动

3、缺省用户和密码

<1>. Oracle安裝完成后的初始口令?

internal/oracle

sys/change_on_install

system/manager

scott/tiger

sysman/oem_temp

<2>. ORACLE9IAS WEB CACHE的初始默认用户和密码?

administrator/administrator

4、让定义自己的回滚段生效

在initorcl.ora中加入rollback_segments=(rb0,rb1,...)

其中rb0,rb1为自己定义的回滚段,可使这些回滚段在启动时生效

5、查看修改数据库的字符集

<1>数据库服务器字符集

在表props$中

update props$ set value$='ZHS16CGB231280'

where name ='NLS_CHARACTERSET'

然后重新启动数据库,而不需要重新安装

8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。

Startup nomount;

Alter database mount exclusive;

Alter system enable restricted session;

Alter system set job_queue_process=0;

Alter database open;

Alter database character set zhs16gbk;

sql> show parameter NLS

查看数据库字符集:

SELECT * FROM NLS_DATABASE_PARAMETERS;

SELECT * FROM V$NLS_PARAMETERS;

<2>

客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,

表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表

会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件

字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

<3> 有时候用crontab发起的时候,由于执行的shell脚本的不同,导致很多的环境变量不同。常常看到插入到数据库中的汉字变成乱码。

比如shell脚本cai.sh如下内容。

#!/bin/ksh

export ORACLE_BASE=/u01/oracle/app/oracle

export ORACLE_HOME=${ORACLE_BASE}/product/9.2.0

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$LD_LIBRARY_PATH

export SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:/app/prepay/lib

/u01/oracle/app/oracle/product/9.2.0/bin/sqlplus aicbs/aicbs@busi_cs <<!

insert into okcai values('okcai是个大好人呀');

commit;

quit

!

在crontab中定时每天20:19执行一次

19 20 * * * /bin/sh /app/prepay/cai.sh >/dev/null 2>&1 &

则可以看到数据库中数据变成了:

2LQSJY

当前数据库的字符集是

SELECT * FROM NLS_DATABASE_PARAMETERS

AMERICAN.ZHS16GBK

为了正常,必须保持客户端和数据库一致的字符集

改脚本如下即可

#!/bin/ksh

export ORACLE_BASE=/u01/oracle/app/oracle

export ORACLE_HOME=${ORACLE_BASE}/product/9.2.0

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$LD_LIBRARY_PATH

export SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:/app/prepay/lib

####下面就是增加的

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

/u01/oracle/app/oracle/product/9.2.0/bin/sqlplus aicbs/aicbs@busi_cs <<!

insert into okcai values('okcai是个大好人呀');

commit;

quit

!

6、svgmgr>show sga

7、查询锁的原因

如果进程被死锁,可以按下面方式查询

<1> 从v$session或者v$locked_object找到此session

<2> 如果有lockwait,查询v$lock,

select * from v$lock where kaddr = 'C00000024AB87210'

如果没有,根据sid

select * from v$lock where sid = 438

<3> 查看v$lock

lmode > 0,表示已经得到此锁

request > 0 表示正在请求此锁

根据id1和id2的值可以判断请求哪个锁的释放。

select * from v$lock where id1=134132 and id2 = 31431

8. 查询锁的状况的对象

V$LOCK, V$LOCKED_OBJECT, V$SESSION, V$SQLAREA, V$PROCESS ;

查询锁的表的方法:

SELECT S.SID SESSION_ID, S.USERNAME,

DECODE(LMODE, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive', TO_CHAR(LMODE)) MODE_HELD,

DECODE(REQUEST, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive', TO_CHAR(REQUEST)) MODE_REQUESTED,

O.OWNER||'.'||O.OBJECT_NAME||' ('||O.OBJECT_TYPE||')', S.TYPE LOCK_TYPE, L.ID1 LOCK_ID1, L.ID2 LOCK_ID2

FROM V$LOCK L, SYS.DBA_OBJECTS O, V$SESSION S

WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID ;

9. 怎样查得数据库的SID ?

select name from v$database;

也可以直接查看 init.ora文件

10、管理回滚段:

存放事务的恢复信息

建立回滚段

create public rollback segment SEG_NAME tabelspace TABLESPACE_NAME;

alter rollback segment SEG_NAME online;

删除回滚段

首先改变为offline状态

直接使用回滚段

sql>set transaction use rollback segment SEG_NAME;

11. 计算一个表占用的空间的大小

select owner,table_name,

NUM_ROWS,

BLOCKS*AAA/1024/1024 "Size M",

EMPTY_BLOCKS,

LAST_ANALYZED

from dba_tables

where table_name='XXX';

Here: AAA is the value of db_block_size ;

XXX is the table name you want to check

12. 表在表空间中的存储情况

select segment_name,sum(bytes),count(*) ext_quan from dba_extents where

tablespace_name='&tablespace_name' and segment_type='TABLE' group by tablespace_name,segment_name;

13. 索引在表空间中的存储情况

select segment_name,count(*) from dba_extents where segment_type='INDEX' and owner='&owner'

group by segment_name;

14.查看某表/索引的大小

SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments

where segment_name=upper('&table_name');

索引

SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments

where segment_name=upper('&index_name');

15、确定可用空间

select tablespace_name,sum(blocks),sum(bytes) from sys.dba_free_space group by tablespace_name;

16、程序中报错:maxinum cursor exceed!

<1> 查看当前的open cursor参数

sql> show parameter open_cursors

<2> 如果确实很小,应该调整数据库初始化文件

加如一项 open_cursors

[1] [2] [3] [4] [5] [6] [7] [8] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有