Oracle日常维护运维基础篇.docx
- 文档编号:4568788
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:9
- 大小:20.96KB
Oracle日常维护运维基础篇.docx
《Oracle日常维护运维基础篇.docx》由会员分享,可在线阅读,更多相关《Oracle日常维护运维基础篇.docx(9页珍藏版)》请在冰豆网上搜索。
Oracle日常维护运维基础篇
集团文件发布号:
(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-19882)
Oracle日常维护运维基础篇
Oracle日常维护:
数据库启动、关闭介绍
数据库启动说明:
1、两台主机启动后,首先检查IBM的HACMP双机软件是否已启动,可通过以下命令去查看HA是否已启动:
#lssrc–lcluster
(此命令应该出来至少2行显示clusteractive,即两台主机2个HA服务才算正常)
#lsvg–o
(此命令结果在两台主机应该看到oradatavg这个共享、并发的卷组VG)
假设HA服务没有启,需要使用命令在两台主机上分别启动:
#smittyclstart
(HA启动一后oradatavg卷组才会看得见)
2、在确保HA服务已启动后,便可启动ORACLE数据库:
$sqlplus/nolog
$connassysdba
或$sqlplus“system/sysassysdba”
Sql>startup
3、启动监听后台进程:
$lsnrctlstartLISTENER_PBS
数据库关闭说明:
1、关闭ORACLE数据库:
$sqlplus“system/sysassysdba”
Sql>shutdownimmediate
2、关闭监听后台进程:
$lsnrctlstopLISTENER_PBS
3、关闭HA服务:
#smittyclstop
4、重启IBM主机:
#shutdown-Fr
其它AIX相关的维护命令:
1、查看lv裸设备大小及使用情况:
#lsvg–loradatavg
033
Oracle导出程序Exp的使用具体过程
Oracle的导出实用程序(Exportutility)允许从数据库提取数据,并且将数据写入操作系统文件。
exp使用的基本格式:
exp[username[/password[@service]]],以下例举exp常用用法。
?
1.获取帮助?
exphelp=y
2.导出一个完整数据库
expsystem/managerfile=bible_dblog=dible_dbfull=y
3.导出数据库定义而不导出数据
expsystem/managerfile=bible_dblog=dible_dbfull=yrows=n
4.导出一个或一组指定用户所属的全部表、索引和其他对象
expsystem/managerfile=seaparklog=seaparkowner=seapark
expsystem/managerfile=seaparklog=seaparkowner=(seapark,amy,amyc,harold)
注意:
在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。
解决方法是用以下的SQL*Plus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。
SETLINESIZE132
SETPAGESIZE0
SETTRIMSPOOLON
SPOOLc:
\
SELECT'Createpublicsynonym'||synonym_name
||'for'||table_owner||'.'||table_name||';'
FROMdba_synonyms
WHEREtable_owner='SEAPARK'ANDowner='PUBLIC';
SPOOLOFF
5.导出一个或多个指定表
expseapark/seaparkfile=tanklog=tanktables=tank
expsystem/managerfile=tanklog=tanktables=
expsystem/managerfile=tanklog=tanktables=,
6.估计导出文件的大小
全部表总字节数:
SELECTsum(bytes)?
FROMdba_segments?
WHEREsegment_type='TABLE';
seapark用户所属表的总字节数:
SELECTsum(bytes)
FROMdba_segments
WHEREowner='SEAPARK'
ANDsegment_type='TABLE';
seapark用户下的aquatic_animal表的字节数:
SELECTsum(bytes)
FROMdba_segments
WHEREowner='SEAPARK'
ANDsegment_type='TABLE'
ANDsegment_name='AQUATIC_ANIMAL';
7.导出表数据的子集(oracle8i以上)
NT系统:
expsystem/managerquery='Wheresalad_type='FRUIT''tables=?
file=fruitlog=fruit
UNIX系统:
expsystem/managerquery=\"Wheresalad_type=\'FRUIT\'\"tables=?
file=fruitlog=fruit
8.用多个文件分割一个导出文件
expsystem/manager?
file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck,filesize=1Gtables=
9.使用参数文件
expsystem/managerparfile=
参数文件:
#ExportthesampletablesusedfortheOracle8iDatabaseAdministrator'sBible.
file=bible_tables
log=bible_tables
tables=(
)
10.增量导出
“完全”增量导出(complete),即备份整个数据库?
expsystem/managerinctype=completefile=
“增量型”增量导出(incremental),即备份上一次备份后改变的数据?
expsystem/managerinctype=incrementalfile=
“累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据?
expsystem/managerinctype=cumulativefile=
1.如何查看ORACLE的隐含参数
ORACLE的显式参数,除了在文件中定义的外,在svrmgrl中用"showparameter*",可以显示。
但ORACLE还有一些参数是以“_”,开头的。
如我们非常熟悉的“_offline_rollback_segments”等。
这些参数可在$ksppi表中查出。
语句:
“selectksppinmfromx$ksppiwheresubstr(ksppinm,1,1)='_';”
2.如何查看安装了哪些ORACLE组件
进入${ORACLE_HOME}/orainst/,运行./inspdver,显示安装组件和版本号。
3.如何查看ORACLE所占用共享内存的大小
可用UNIX命令“ipcs”查看共享内存的起始地址、信号量、消息队列。
在svrmgrl下,用“oradebugipc”,可看出ORACLE占用共享内存的分段和大小。
example:
SVRMGR>oradebugipc
--------------Sharedmemory--------------
SegIdAddressSize
11537fe000784
11548000000
1155
4.如何查看当前SQL*PLUS用户的sid和serial#
在SQL*PLUS下,运行:
“selectsid,serial#,statusfromv$session
whereaudsid=userenv('sessionid');”
5.如何查看当前数据库的字符集
在SQL*PLUS下,运行:
“selectuserenv('language')fromdual;”
或:
“selectuserenv('lang')fromdual;”
6.如何查看数据库中某用户,正在运行什么SQL语句
根据MACHINE、USERNAME或SID、SERIAL#,连接表V$SESSION和V$SQLTEXT,可查出。
SQL*PLUS语句:
“SELECTSQL_TEXTFROMV$SQL_TEXTT,V$SESSIONSWHERE=
AND=
AND='XXXXX'ORUSERNAME='XXXXX'--查看某主机名,或用户名
/”
7.如何删除表中的重复记录
例句:
DELETE
FROMtable_namea
WHERErowid>(SELECTmin(rowid)
FROMtable_nameb
WHERE=
and=);
8.手工临时强制改变服务器字符集
以sys或system登录系统,sql*plus运行:
“createdatabasecharactersetus7ascii;".
有以下错误提示:
*createdatabasecharactersetUS7ASCII
ERRORatline1:
ORA-01031:
insufficientprivileges
实际上,看v$nls_parameters,字符集已更改成功。
但重启数据库后,数据库字符集又变回原来的了。
该命令可用于临时的不同字符集服务器之间数据倒换之用。
9.怎样查询每个instance分配的PCM锁的数目
用以下命令:
selectcount(*)"NumberofhashedPCMlocks"fromv$lock_elementwherebitand(flags,4)<>0
/
selectcount(*)"NumberoffinegrainPCMlocks"fromv$lock_element
wherebitand(flags,4)=0
/
10.怎么判断当前正在使用何种SQL优化方式
用explainplan产生EXPLAINPLAN,检查PLAN_TABLE中ID=0的POSITION列的值。
.
selectdecode(nvl(position,-1),-1,'RBO',1,'CBO')fromplan_tablewhereid=0
/
11.做EXPORT时,能否将DUMP文件分成多个
ORACLE8I中EXP增加了一个参数FILESIZE,可将一个文件分成多个:
EXPSCOTT/TIGERFILE=,,FILESIZE=1GTABLES=ORDER;
其他版本的ORACLE在UNIX下可利用管道和split分割:
mknodpipep
split-b2048mpipeorder将文件分割成,每个2GB大小的,以order为前缀的文件:
#orderaa,orderab,orderac,...并将该进程放在后台。
EXPSCOTT/TIGERFILE=pipetables=order
具体方法如下:
先创建一个文件如:
exp_file内容为filesize=500Mfile=,,,...
full=yinctype=completebuffer=
再使用expuser/passwordparfile=exp_file
一个exp/imp的实例,还有什么改进可以提高速度吗
下面是从9i导出到9i的一个实例,请帮我看看还有什么改进的地方可以提高速度
首先在需要导入的数据库中新建用户
--Createtheuser
createuserusr
identifiedbyusr
defaulttablespaceTEST
temporarytablespaceTEMP
profileDEFAULT;
--Grant/Revokeroleprivileges
grantconnecttousr;
grantresourcetousr;
然后导出,导入数据
expusr/usr@dbfile=log=direct=yowner=usrfeedback=100000recordlength=65535
impusr/usrfile=log=ignore=ybuffer=65535recordlength=65535feedback=10000commit=y
前者导出只要10分钟
后者导入花了4个多小时
请教:
关于oracle的数据导入导出(exp/imp)问题
1.本地一个数据库用户aa,其所在用户数据均在表空间tbs_aa上,将该用户数据export后,需要import进异地另外一个数据库中的表空间tbs_bb中,tbs_bb是该数据库用户bb的默认表空间,请问上述imp如何操作?
2.建设我正imp入一个大表(比如T_test),由于该表数据量较大,在import时,界面只提示如下信息:
"importingT_test...",而这时查询导入的该表记录条数总为零,只有当数据全部导入完毕时,才会提交记录条数.我想知道在这个漫长的导入过程中,如何察看数据的导入过程,即确定数据正被一行一行写入。
或者如何实现一边import数据,一边提交记录条数
甲骨文四段
UID106148
精华0
积分403
帖子403
金钱8O元
阅读权限80
注册2005-6-30
状态离线
发表于2007-3-310:
53
1如果用户bb数据库里没有tbs_aa表空间,导入的时候应该是将表自动创建在bb默认的表空间上的,把ignore参数设为y就可以了
2imp时把commit参数设为y,还有设置feedback参数,例如feedback=10000,每插入1w行,imp程序会显示一次进度.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 日常 维护 基础