Archive for 5月, 2005
今天一朋友安装ORACLE9i时出现如下错误:
她是这样安装的,将下载后的文件解压到桌面,然后执行安装文件,当加载到99%时报该错误!
我猜想大概的原因是由于中文路径引起的,因为放置在桌面,其路径是带有中文的,比如我的桌面的路径是:C:\Documents and Settings\TopBright\桌面
所以解决方法是:
1.直接在光盘里面执行安装
2.将文件解压到没有中文路径的目录中去,比如d:
该脚本在Linux AS 3.0下测试通过
——————————————————————————————————–
#!/bin/sh
#1.修改/etc/oratab:
#
#格式:SID:ORACLE_HOME:AUTO
#例如:orcl:/home/ oracle /8.1.7:Y
# bright:/home/ oracle /8.1.7:N
#2.自动启动及关闭脚本
#/etc/rc.d/init.d/ oracle
#注解:启动及停止 oracle 数据库和监听程序
case “$1″ in
start)
echo -n “Starting oracle Database:”
echo “———————————————————————–”>>/var/log/ oracle
date +”%T %a %D :Starting oracle Database as part of system up.”>>/var/log/ oracle
echo “———————————————————————–”>>/var/log/ oracle
su - oracle -c dbstart >>/var/log/ oracle
date +”%T %a %D : oracle [...]
三.案例分析
一客户发现一重要TABLE资料被删除,初步断定被删除的时间为2004年12月27日3点-5点,资料量大概为50万笔,请求紧急援助,恢复被删除的数据。。。
1.方案分析
1.1客户数据库状况
A)IBM AIX系统, oracle 8.1.7
B)数据库处于归档模式
C)用RMAN备份,NO CATALOG
D)硬盘上有当天的RMAN备份后的文件
1.2方案选择
A)方案一:不完全恢复法
A1)先COLD FULL BACKUP
A2)居于时间点的不完全恢复
A3)EXP被删掉的TABLE
A4)用刚才做的冷备做完全恢复
A5)IMP被删掉的TABLE
缺点:所需时间长,可能会丢失小部分数据单COLD BACKUP就需要两个小时,需两次SHUTDOWN DATABASE
B)方案二:用LOGMINER恢复
B1)修改初始话参数:utl_file_dir
环境:
OS:Window XP+SP2
oracle 9.2.0.1.0 Enterprise Edition
SID:RMAN
ORACLE_BASE: G:\ oracle \
ORACLE_HOME : G:\ oracle \ora92
一.安装LogMiner
以SYS身份登陆,执行如下脚本:
SQL>@%ORACLE_HOME%\rdbms\admin\dbmslm.sql
Package created.
Grant succeeded.
SQL>@%ORACLE_HOME%\rdbms\admin\dbmslmd.sql
Procedure created.
No errors.
Grant succeeded.
PL/SQL procedure successfully completed.
Package created.
注:第一个脚本是创建DBMS_Logmnr包的,用来分析日志文件,第二个脚本用来创建DBMS_Logmnr_D包,该包用来创建数据字典。
裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Linux通过文件系统来读取的特殊字符设备.它由应用程序负责对它进行读写操作,不经过文件系统的缓冲.
1.裸设备的创建
裸设备的分区可以是没有格式化的普通分区,也可以是LVM中没有格式化的LV
#vi /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/vg01/lv02
其中/dev/raw/raw1为裸设备,/dev/vg01/lv02为对应分区
2.激活裸设备
#service rawdevices restart
3.裸设备在 oracle 中的使用
1).更改权限
如果是供 oracle 使用,则需修改/dev/raw/*的权限:
#chown root:dba /dev/raw/*
#chmod g+w /dev/raw/*
2).在裸设备上创建数据文件
create tablespace raw_ts
datafile ‘/dev/raw/raw1’ size 100m,
‘/dev/raw/raw2’ size 100m;
1.LVM(Logical Volume Management): 是一种把硬盘驱动器空间分配成逻辑卷的方法,可以动态的改变分区的大小,而不用重新分区.
2.几个概念:
1). Physical Volume (PV):物理卷,可以是一个硬盘或一个标准分区或RAID卷
2). Physical Extent (PE):物理区域,物理卷中最小的可分配储存单元,默认为4M
3). Logical Extent (LE):逻辑区域,逻辑卷中可用于分配的最小储存单元每个LE对应一个PE
4). Logical Volume (LV):逻辑卷,由众多LE组成,可动态改变大小
5). Volume Group (VG):卷组,由众多LV组成
6). Volume Group Descriptor Area (VGDA): 卷组描述区域, 用于描述物理卷,卷组,逻辑卷分配的所有信息
3.几种关系:
1).一个LE对应一个PE
2).一个VG物理上由一个或多个PV组成,逻辑上由一个或多个LV组成
3).PE大小由创建VG时指定,也就是说一个VG只能有一种PE
4).创建逻辑卷的顺序是:PV-VG-LV
4.使用LVM
1).#vgscan –生成配置文件(/etc/lvmtab,/etc/lvmconf)
2).创建PV
如果要将整个硬盘做成PV,可以直接:
#pvcreate /dev/sdd
如果是将分区做成PV,则:
#fdisk /dev/sdd
Command(m for help):n
Command action:
e extended
p primary partition(1-4)
p
partition number(1-4):1
…
Command (m for help):t
Selected partition 1
Hex code (type L to list codes):8e —将分区标识为LVM
…
w
#pvcreate /dev/sdd1
3).创建VG
#vgcreate –s [...]
一. 修改instance name
1. Windows环境
1).用oradim新建一个instance,比如:TEST
oradim –NEW –SID TEST –STARTMODE m
oradim –EDIT –SID TEST –STARTMODE a
2).建立相关目录
A) 在%ORACLE_BASE%\admin下新建TEST目录
B) 在TEST下建bdump,cdump,udump,pfile,create等目录
3).修改或新建初始化参数文件,并设定如下参数:
instance_name=TEST
core_dump_dest=’d:\ oracle \admin\test\cdump’
user_dump_dest=’d:\ oracle \admin\test\udump’
4).将修改过的参数文件命名为:
spfileTEST.ORA(SPFILE)
initTEST.ORA(PFILE)
5).设置环境变量,指定新的SID
set ORACLEL_SID=TEST
今天一客户执行如下命令时报错:
SQL> connect john/wanghong@john
ERROR: ORA-01034: oracle not available
ORA-27101: shared memory realm does not exist
该错误多数是由于ORACLE_HOME或ORACLE_SID设置不当造成的,如果是Windows,则多半是由于多个instance造成的,解决方法如下:
1.设定好正确的ORACLE_HOME和ORACLE_SID
在Unix&Linux下,在profile里设置正确的ORACLE_HOME和ORACLE_SID或者手工临时指定:
export ORACLE_HOME=/opt/ oracle /8.1.7
export ORACLE_SID=test
在Windows中在注册表里添加ORACLE_HOME及ORACLE_SID,并设置正确,也可以手工临时指定:
set ORACLE_SID=TEST
问题描述:
—————
MSCS一个节点的Cluster Service无法启动,这时在另一节点上的sql server的resource一直处于online pending状态,查看windows event发现event id 1145错误,该event id建议调整该resource的pend timeout时间,但调整后还是处于online pending…系统重起后状况依旧,但启动时提示:
At least one service or driver failed during system startup. Use Event
Viewer to examine the event log for details
解决过程:
————-
1.在网上查找关于event id 1145的解决方法,未果;
2.将其中一节点关掉,单节点进行测试,发现本节点上的service可以起来,原本属于另一节点的service无法起来;
3.查看 cluster.log,没发现异常状况;
4.最后该公司DBA(lm.lv)发现其中一节点上的event viewer上有如下错误:
Event ID 7022 Source: Service Control Manager
Description: The Messenger Service hung on startup
在微软网站上查找,提供如下解决方法:
CAUSE
This behavior can occur if a file that is associated with [...]
问题:一客户出现 oracle undo tablespace不断增长并无法回缩
解决方法:
1.新建一新的undo tablespace,如:undotbs2
2.alter system set undo_tablespace=undotbs2 scope=both;
3.drop tablespace undotbs1 including contents and datafiles;
但这是事后的解决方法,如何让 oracle 自动管理的undo tablespace自动收缩,如何合理的设置undo tablespace的大小,正在寻找答案中……